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.autojs.AutoJs;
import com.stardust.auojs.inrt.launch.AssetsProjectLauncher; 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.ConsoleView;
import com.stardust.autojs.core.console.StardustConsole; import com.stardust.autojs.core.console.StardustConsole;
@@ -21,16 +22,23 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; 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_DENIED;
import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.PERMISSION_GRANTED;
public class LogActivity extends AppCompatActivity { public class LogActivity extends AppCompatActivity {
public static final String EXTRA_LAUNCH_SCRIPT = "launch_script";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setupView(); setupView();
if (getIntent().getBooleanExtra(EXTRA_LAUNCH_SCRIPT, false)) {
GlobalProjectLauncher.getInstance().launch(this);
}
} }
private void setupView() { private void setupView() {

View File

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

View File

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