feat: hiding logs support when launch a project on built app
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
package com.stardust.autojs.project;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Stardust on 2018/1/25.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class LaunchConfig {
|
||||||
|
|
||||||
|
@SerializedName("hideLogs")
|
||||||
|
private boolean mHideLogs = false;
|
||||||
|
|
||||||
|
public boolean shouldHideLogs() {
|
||||||
|
return mHideLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHideLogs(boolean hideLogs) {
|
||||||
|
mHideLogs = hideLogs;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,6 +41,9 @@ public class ProjectConfig {
|
|||||||
@SerializedName("assets")
|
@SerializedName("assets")
|
||||||
private List<String> mAssets = new ArrayList<>();
|
private List<String> mAssets = new ArrayList<>();
|
||||||
|
|
||||||
|
@SerializedName("launchConfig")
|
||||||
|
private LaunchConfig mLaunchConfig;
|
||||||
|
|
||||||
public static ProjectConfig fromJson(String json) {
|
public static ProjectConfig fromJson(String json) {
|
||||||
if (json == null) {
|
if (json == null) {
|
||||||
return null;
|
return null;
|
||||||
@@ -122,6 +125,9 @@ public class ProjectConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getAssets() {
|
public List<String> getAssets() {
|
||||||
|
if (mAssets == null) {
|
||||||
|
mAssets = new ArrayList<>();
|
||||||
|
}
|
||||||
return mAssets;
|
return mAssets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,6 +135,17 @@ public class ProjectConfig {
|
|||||||
mAssets = assets;
|
mAssets = assets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LaunchConfig getLaunchConfig() {
|
||||||
|
if (mLaunchConfig == null) {
|
||||||
|
mLaunchConfig = new LaunchConfig();
|
||||||
|
}
|
||||||
|
return mLaunchConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLaunchConfig(LaunchConfig launchConfig) {
|
||||||
|
mLaunchConfig = launchConfig;
|
||||||
|
}
|
||||||
|
|
||||||
public String toJson() {
|
public String toJson() {
|
||||||
return GSON.toJson(this);
|
return GSON.toJson(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,5 +6,8 @@
|
|||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"assets" : [
|
"assets" : [
|
||||||
"auto.js.png"
|
"auto.js.png"
|
||||||
]
|
],
|
||||||
|
"launchConfig": {
|
||||||
|
"hideLogs": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -46,9 +46,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void runScript() {
|
private void runScript() {
|
||||||
new Thread(() -> new AssetsProjectLauncher("project", this).launch()).start();
|
new Thread(() -> new AssetsProjectLauncher("project", this).launch()).start();
|
||||||
if (!Pref.shouldShowMainActivity()) {
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ public class Pref {
|
|||||||
return getPreferences().getBoolean(getString(R.string.key_enable_accessibility_service_by_root), false);
|
return getPreferences().getBoolean(getString(R.string.key_enable_accessibility_service_by_root), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean shouldShowMainActivity() {
|
public static boolean shouldHideLogs() {
|
||||||
return !getPreferences().getBoolean(getString(R.string.key_dont_show_main_activity), false);
|
return getPreferences().getBoolean(getString(R.string.key_dont_show_main_activity), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean shouldStopAllScriptsWhenVolumeUp() {
|
public static boolean shouldStopAllScriptsWhenVolumeUp() {
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
package com.stardust.auojs.inrt.launch;
|
package com.stardust.auojs.inrt.launch;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.app.Activity;
|
||||||
|
|
||||||
|
import com.stardust.auojs.inrt.Pref;
|
||||||
import com.stardust.auojs.inrt.autojs.AutoJs;
|
import com.stardust.auojs.inrt.autojs.AutoJs;
|
||||||
import com.stardust.autojs.execution.ExecutionConfig;
|
import com.stardust.autojs.execution.ExecutionConfig;
|
||||||
import com.stardust.autojs.project.ProjectConfig;
|
import com.stardust.autojs.project.ProjectConfig;
|
||||||
import com.stardust.autojs.script.JavaScriptFileSource;
|
import com.stardust.autojs.script.JavaScriptFileSource;
|
||||||
import com.stardust.pio.PFiles;
|
import com.stardust.pio.PFiles;
|
||||||
|
|
||||||
import org.mozilla.javascript.optimizer.ClassCompiler;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -22,18 +21,27 @@ public class AssetsProjectLauncher {
|
|||||||
private String mProjectDir;
|
private String mProjectDir;
|
||||||
private File mMainScriptFile;
|
private File mMainScriptFile;
|
||||||
private ProjectConfig mProjectConfig;
|
private ProjectConfig mProjectConfig;
|
||||||
private Context mContext;
|
private Activity mActivity;
|
||||||
|
|
||||||
public AssetsProjectLauncher(String projectDir, Context context) {
|
public AssetsProjectLauncher(String projectDir, Activity activity) {
|
||||||
mAssetsProjectDir = projectDir;
|
mAssetsProjectDir = projectDir;
|
||||||
mContext = context;
|
mActivity = activity;
|
||||||
mProjectDir = new File(context.getFilesDir(), "project/").getPath();
|
mProjectDir = new File(activity.getFilesDir(), "project/").getPath();
|
||||||
mProjectConfig = ProjectConfig.fromAssets(context, ProjectConfig.configFileOfDir(mAssetsProjectDir));
|
mProjectConfig = ProjectConfig.fromAssets(activity, ProjectConfig.configFileOfDir(mAssetsProjectDir));
|
||||||
mMainScriptFile = new File(mProjectDir, mProjectConfig.getMainScriptFile());
|
mMainScriptFile = new File(mProjectDir, mProjectConfig.getMainScriptFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void launch() {
|
public void launch() {
|
||||||
prepare();
|
prepare();
|
||||||
|
if (mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs()) {
|
||||||
|
mActivity.runOnUiThread(mActivity::finish);
|
||||||
|
}
|
||||||
|
mActivity = null;
|
||||||
|
runScript();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void runScript() {
|
||||||
try {
|
try {
|
||||||
JavaScriptFileSource source = new JavaScriptFileSource(mMainScriptFile);
|
JavaScriptFileSource source = new JavaScriptFileSource(mMainScriptFile);
|
||||||
AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
AutoJs.getInstance().getScriptEngineService().execute(source, new ExecutionConfig()
|
||||||
@@ -47,10 +55,10 @@ public class AssetsProjectLauncher {
|
|||||||
if (mMainScriptFile.exists()) {
|
if (mMainScriptFile.exists()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PFiles.copyAsset(mContext, PFiles.join(mAssetsProjectDir, mProjectConfig.getMainScriptFile()),
|
PFiles.copyAsset(mActivity, PFiles.join(mAssetsProjectDir, mProjectConfig.getMainScriptFile()),
|
||||||
mMainScriptFile.getPath());
|
mMainScriptFile.getPath());
|
||||||
for (String asset : mProjectConfig.getAssets()) {
|
for (String asset : mProjectConfig.getAssets()) {
|
||||||
PFiles.copyAsset(mContext, PFiles.join(mAssetsProjectDir, asset), PFiles.join(mProjectDir, asset));
|
PFiles.copyAsset(mActivity, PFiles.join(mAssetsProjectDir, asset), PFiles.join(mProjectDir, asset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user