mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
api(app): app.startActivity() for string param
This commit is contained in:
parent
66c436cd99
commit
235115edf3
@ -4,6 +4,7 @@ import android.app.Application;
|
||||
import android.content.Context;
|
||||
|
||||
import com.stardust.autojs.core.console.GlobalStardustConsole;
|
||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||
import com.stardust.autojs.runtime.accessibility.AccessibilityConfig;
|
||||
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||
import com.stardust.autojs.runtime.api.Console;
|
||||
@ -12,6 +13,9 @@ import com.stardust.scriptdroid.BuildConfig;
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
import com.stardust.scriptdroid.pluginclient.DevPluginService;
|
||||
import com.stardust.scriptdroid.ui.log.LogActivity_;
|
||||
import com.stardust.scriptdroid.ui.settings.SettingsActivity;
|
||||
import com.stardust.scriptdroid.ui.settings.SettingsActivity_;
|
||||
import com.stardust.view.accessibility.AccessibilityService;
|
||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||
|
||||
@ -86,4 +90,12 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
||||
return App.getApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ScriptRuntime createRuntime() {
|
||||
ScriptRuntime runtime = super.createRuntime();
|
||||
runtime.putProperty("class.settings", SettingsActivity_.class);
|
||||
runtime.putProperty("class.console", LogActivity_.class);
|
||||
return runtime;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -42,7 +42,16 @@ module.exports = function(__runtime__, scope){
|
||||
}
|
||||
|
||||
app.startActivity = function(i){
|
||||
context.startActivity(app.intent(i).addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
if(typeof(i) == "string"){
|
||||
if(__runtime__.getProperty("class." + i)){
|
||||
context.startActivity(new Intent(context, __runtime__.getProperty("class." + i))
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
return;
|
||||
}else{
|
||||
throw new Error("class " + i + " not found");
|
||||
}
|
||||
}
|
||||
context.startActivity(app.intent(i).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
}
|
||||
|
||||
app.sendBroadcast = function(i){
|
||||
|
||||
@ -99,20 +99,24 @@ public abstract class AutoJs {
|
||||
mScriptEngineManager = new ScriptEngineManager(mContext);
|
||||
mScriptEngineManager.registerEngine(JavaScriptSource.ENGINE, () -> {
|
||||
LoopBasedJavaScriptEngine engine = new LoopBasedJavaScriptEngine(mContext);
|
||||
engine.setRuntime(new ScriptRuntime.Builder()
|
||||
.setConsole(new StardustConsole(mUiHandler, mGlobalConsole))
|
||||
.setScreenCaptureRequester(mScreenCaptureRequester)
|
||||
.setAccessibilityBridge(new AccessibilityBridgeImpl())
|
||||
.setUiHandler(mUiHandler)
|
||||
.setAppUtils(mAppUtils)
|
||||
.setEngineService(mScriptEngineService)
|
||||
.setShellSupplier(() -> new Shell(mContext, true)).build());
|
||||
engine.setRuntime(createRuntime());
|
||||
return engine;
|
||||
});
|
||||
mScriptEngineManager.registerEngine(AutoFileSource.ENGINE, () -> new RootAutomatorEngine(mContext));
|
||||
|
||||
}
|
||||
|
||||
protected ScriptRuntime createRuntime() {
|
||||
return new ScriptRuntime.Builder()
|
||||
.setConsole(new StardustConsole(mUiHandler, mGlobalConsole))
|
||||
.setScreenCaptureRequester(mScreenCaptureRequester)
|
||||
.setAccessibilityBridge(new AccessibilityBridgeImpl())
|
||||
.setUiHandler(mUiHandler)
|
||||
.setAppUtils(mAppUtils)
|
||||
.setEngineService(mScriptEngineService)
|
||||
.setShellSupplier(() -> new Shell(mContext, true)).build();
|
||||
}
|
||||
|
||||
protected void registerActivityLifecycleCallbacks() {
|
||||
getApplication().registerActivityLifecycleCallbacks(new SimpleActivityLifecycleCallbacks() {
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
tools:replace="android:label, android:allowBackup">
|
||||
<activity android:name=".MainActivity">
|
||||
<activity android:name=".LogActivity">
|
||||
|
||||
</activity>
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
console.error("打包出错啦~ 使用文件夹打包请把主脚本改名为main.js");
|
||||
console.error("打包出错啦~ 使用文件夹打包请把主脚本改名为main.js");
|
||||
|
||||
@ -23,15 +23,13 @@ import java.util.List;
|
||||
import static android.content.pm.PackageManager.PERMISSION_DENIED;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
public class LogActivity extends AppCompatActivity {
|
||||
|
||||
private static final int PERMISSION_REQUEST_CODE = 11186;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setupView();
|
||||
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
|
||||
private void setupView() {
|
||||
@ -43,43 +41,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void runScript() {
|
||||
new Thread(() -> new AssetsProjectLauncher("project", this).launch()).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
runScript();
|
||||
}
|
||||
|
||||
protected void checkPermission(String... permissions) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
String[] requestPermissions = getRequestPermissions(permissions);
|
||||
if (requestPermissions.length > 0) {
|
||||
requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
|
||||
} else {
|
||||
runScript();
|
||||
}
|
||||
} else {
|
||||
int[] grantResults = new int[permissions.length];
|
||||
Arrays.fill(grantResults, PERMISSION_GRANTED);
|
||||
onRequestPermissionsResult(PERMISSION_REQUEST_CODE, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
private String[] getRequestPermissions(String[] permissions) {
|
||||
List<String> list = new ArrayList<>();
|
||||
for (String permission : permissions) {
|
||||
if (checkSelfPermission(permission) == PERMISSION_DENIED) {
|
||||
list.add(permission);
|
||||
}
|
||||
}
|
||||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
@ -1,19 +1,33 @@
|
||||
package com.stardust.auojs.inrt;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.stardust.auojs.inrt.launch.AssetsProjectLauncher;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static android.content.pm.PackageManager.PERMISSION_DENIED;
|
||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2018/2/2.
|
||||
*/
|
||||
|
||||
public class SplashActivity extends AppCompatActivity {
|
||||
|
||||
private static final int PERMISSION_REQUEST_CODE = 11186;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@ -29,8 +43,45 @@ public class SplashActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void main() {
|
||||
startActivity(new Intent(this, MainActivity.class));
|
||||
finish();
|
||||
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
|
||||
|
||||
private void runScript() {
|
||||
new Thread(() -> new AssetsProjectLauncher("project", this).launch()).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
runScript();
|
||||
}
|
||||
|
||||
protected void checkPermission(String... permissions) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
String[] requestPermissions = getRequestPermissions(permissions);
|
||||
if (requestPermissions.length > 0) {
|
||||
requestPermissions(requestPermissions, PERMISSION_REQUEST_CODE);
|
||||
} else {
|
||||
runScript();
|
||||
}
|
||||
} else {
|
||||
int[] grantResults = new int[permissions.length];
|
||||
Arrays.fill(grantResults, PERMISSION_GRANTED);
|
||||
onRequestPermissionsResult(PERMISSION_REQUEST_CODE, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
private String[] getRequestPermissions(String[] permissions) {
|
||||
List<String> list = new ArrayList<>();
|
||||
for (String permission : permissions) {
|
||||
if (checkSelfPermission(permission) == PERMISSION_DENIED) {
|
||||
list.add(permission);
|
||||
}
|
||||
}
|
||||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -4,8 +4,11 @@ import android.app.Application;
|
||||
import android.content.Context;
|
||||
|
||||
import com.stardust.auojs.inrt.App;
|
||||
import com.stardust.auojs.inrt.LogActivity;
|
||||
import com.stardust.auojs.inrt.Pref;
|
||||
import com.stardust.auojs.inrt.R;
|
||||
import com.stardust.auojs.inrt.SettingsActivity;
|
||||
import com.stardust.autojs.runtime.ScriptRuntime;
|
||||
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||
import com.stardust.view.accessibility.AccessibilityService;
|
||||
import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
||||
@ -59,4 +62,12 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
||||
protected Application getApplication() {
|
||||
return App.getApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ScriptRuntime createRuntime() {
|
||||
ScriptRuntime runtime = super.createRuntime();
|
||||
runtime.putProperty("class.settings", SettingsActivity.class);
|
||||
runtime.putProperty("class.console", LogActivity.class);
|
||||
return runtime;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package com.stardust.auojs.inrt.launch;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.stardust.auojs.inrt.BuildConfig;
|
||||
import com.stardust.auojs.inrt.LogActivity;
|
||||
import com.stardust.auojs.inrt.Pref;
|
||||
import com.stardust.auojs.inrt.autojs.AutoJs;
|
||||
import com.stardust.autojs.execution.ExecutionConfig;
|
||||
@ -33,12 +36,17 @@ public class AssetsProjectLauncher {
|
||||
|
||||
public void launch() {
|
||||
prepare();
|
||||
if (mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs()) {
|
||||
mActivity.runOnUiThread(mActivity::finish);
|
||||
if (!(mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs())) {
|
||||
mActivity.runOnUiThread(() -> {
|
||||
mActivity.startActivity(new Intent(mActivity, LogActivity.class));
|
||||
mActivity.finish();
|
||||
mActivity = null;
|
||||
});
|
||||
} else {
|
||||
mActivity.finish();
|
||||
mActivity = null;
|
||||
}
|
||||
mActivity = null;
|
||||
runScript();
|
||||
|
||||
}
|
||||
|
||||
private void runScript() {
|
||||
@ -54,7 +62,7 @@ public class AssetsProjectLauncher {
|
||||
private void prepare() {
|
||||
String projectConfigPath = PFiles.join(mProjectDir, ProjectConfig.CONFIG_FILE_NAME);
|
||||
ProjectConfig projectConfig = ProjectConfig.fromFile(projectConfigPath);
|
||||
if (projectConfig != null && projectConfig.getVersionCode() == mProjectConfig.getVersionCode()) {
|
||||
if (!BuildConfig.DEBUG && projectConfig != null && projectConfig.getVersionCode() == mProjectConfig.getVersionCode()) {
|
||||
return;
|
||||
}
|
||||
PFiles.copyAsset(mActivity, PFiles.join(mAssetsProjectDir, ProjectConfig.CONFIG_FILE_NAME), projectConfigPath);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user