fix: built ui script shows log instead of ui

This commit is contained in:
hyb1996 2018-03-21 17:03:39 +08:00
parent e705d7f688
commit 6934a068e5
4 changed files with 63 additions and 17 deletions

View File

@ -14,6 +14,7 @@ import android.view.View;
import com.stardust.auojs.inrt.autojs.AutoJs;
import com.stardust.auojs.inrt.launch.AssetsProjectLauncher;
import com.stardust.auojs.inrt.launch.GlobalProjectLauncher;
import com.stardust.autojs.core.console.ConsoleView;
import com.stardust.autojs.core.console.StardustConsole;
@ -21,16 +22,23 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.microedition.khronos.opengles.GL;
import static android.content.pm.PackageManager.PERMISSION_DENIED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
public class LogActivity extends AppCompatActivity {
public static final String EXTRA_LAUNCH_SCRIPT = "launch_script";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupView();
if (getIntent().getBooleanExtra(EXTRA_LAUNCH_SCRIPT, false)) {
GlobalProjectLauncher.getInstance().launch(this);
}
}
private void setupView() {

View File

@ -13,6 +13,7 @@ import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import com.stardust.auojs.inrt.launch.AssetsProjectLauncher;
import com.stardust.auojs.inrt.launch.GlobalProjectLauncher;
import java.util.ArrayList;
import java.util.Arrays;
@ -48,7 +49,7 @@ public class SplashActivity extends AppCompatActivity {
private void runScript() {
new Thread(() -> new AssetsProjectLauncher("project", this).launch()).start();
new Thread(() -> GlobalProjectLauncher.getInstance().launch(this)).start();
}
@Override

View File

@ -1,7 +1,10 @@
package com.stardust.auojs.inrt.launch;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Looper;
import com.stardust.auojs.inrt.BuildConfig;
import com.stardust.auojs.inrt.LogActivity;
@ -24,29 +27,38 @@ public class AssetsProjectLauncher {
private String mProjectDir;
private File mMainScriptFile;
private ProjectConfig mProjectConfig;
private Activity mActivity;
private Context mActivity;
private Handler mHandler;
public AssetsProjectLauncher(String projectDir, Activity activity) {
public AssetsProjectLauncher(String projectDir, Context context) {
mAssetsProjectDir = projectDir;
mActivity = activity;
mProjectDir = new File(activity.getFilesDir(), "project/").getPath();
mProjectConfig = ProjectConfig.fromAssets(activity, ProjectConfig.configFileOfDir(mAssetsProjectDir));
mActivity = context;
mProjectDir = new File(context.getFilesDir(), "project/").getPath();
mProjectConfig = ProjectConfig.fromAssets(context, ProjectConfig.configFileOfDir(mAssetsProjectDir));
mMainScriptFile = new File(mProjectDir, mProjectConfig.getMainScriptFile());
mHandler = new Handler(Looper.getMainLooper());
prepare();
}
public void launch() {
prepare();
if (!(mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs())) {
mActivity.runOnUiThread(() -> {
mActivity.startActivity(new Intent(mActivity, LogActivity.class));
mActivity.finish();
mActivity = null;
});
public void launch(Activity activity) {
//如果需要隐藏日志界面则直接运行脚本
if (mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs()) {
activity.finish();
runScript();
} else {
mActivity.finish();
mActivity = null;
//如果不隐藏日志界面
//如果当前已经是日志界面则直接运行脚本
if (activity instanceof LogActivity) {
runScript();
} else {
//否则显示日志界面并在日志界面中运行脚本
mHandler.post(() -> {
activity.startActivity(new Intent(mActivity, LogActivity.class)
.putExtra(LogActivity.EXTRA_LAUNCH_SCRIPT, true));
activity.finish();
});
}
}
runScript();
}
private void runScript() {

View File

@ -0,0 +1,25 @@
package com.stardust.auojs.inrt.launch;
import android.app.Activity;
import android.content.Context;
import com.stardust.auojs.inrt.App;
/**
* Created by Stardust on 2018/3/21.
*/
public class GlobalProjectLauncher extends AssetsProjectLauncher {
private static GlobalProjectLauncher sInstance;
public static GlobalProjectLauncher getInstance() {
if (sInstance == null)
sInstance = new GlobalProjectLauncher(App.getApp());
return sInstance;
}
GlobalProjectLauncher(Context context) {
super("project", context);
}
}