fix: built ui script shows log instead of ui
This commit is contained in:
@@ -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() {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user