api(app): app.startActivity() for string param
This commit is contained in:
@@ -4,6 +4,7 @@ import android.app.Application;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.stardust.autojs.core.console.GlobalStardustConsole;
|
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.accessibility.AccessibilityConfig;
|
||||||
import com.stardust.autojs.runtime.exception.ScriptException;
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
||||||
import com.stardust.autojs.runtime.api.Console;
|
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.Pref;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.pluginclient.DevPluginService;
|
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.view.accessibility.AccessibilityService;
|
||||||
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
||||||
|
|
||||||
@@ -86,4 +90,12 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
|||||||
return App.getApp();
|
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){
|
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){
|
app.sendBroadcast = function(i){
|
||||||
|
|||||||
@@ -99,20 +99,24 @@ public abstract class AutoJs {
|
|||||||
mScriptEngineManager = new ScriptEngineManager(mContext);
|
mScriptEngineManager = new ScriptEngineManager(mContext);
|
||||||
mScriptEngineManager.registerEngine(JavaScriptSource.ENGINE, () -> {
|
mScriptEngineManager.registerEngine(JavaScriptSource.ENGINE, () -> {
|
||||||
LoopBasedJavaScriptEngine engine = new LoopBasedJavaScriptEngine(mContext);
|
LoopBasedJavaScriptEngine engine = new LoopBasedJavaScriptEngine(mContext);
|
||||||
engine.setRuntime(new ScriptRuntime.Builder()
|
engine.setRuntime(createRuntime());
|
||||||
.setConsole(new StardustConsole(mUiHandler, mGlobalConsole))
|
|
||||||
.setScreenCaptureRequester(mScreenCaptureRequester)
|
|
||||||
.setAccessibilityBridge(new AccessibilityBridgeImpl())
|
|
||||||
.setUiHandler(mUiHandler)
|
|
||||||
.setAppUtils(mAppUtils)
|
|
||||||
.setEngineService(mScriptEngineService)
|
|
||||||
.setShellSupplier(() -> new Shell(mContext, true)).build());
|
|
||||||
return engine;
|
return engine;
|
||||||
});
|
});
|
||||||
mScriptEngineManager.registerEngine(AutoFileSource.ENGINE, () -> new RootAutomatorEngine(mContext));
|
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() {
|
protected void registerActivityLifecycleCallbacks() {
|
||||||
getApplication().registerActivityLifecycleCallbacks(new SimpleActivityLifecycleCallbacks() {
|
getApplication().registerActivityLifecycleCallbacks(new SimpleActivityLifecycleCallbacks() {
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
tools:replace="android:label, android:allowBackup">
|
tools:replace="android:label, android:allowBackup">
|
||||||
<activity android:name=".MainActivity">
|
<activity android:name=".LogActivity">
|
||||||
|
|
||||||
</activity>
|
</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_DENIED;
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
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
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setupView();
|
setupView();
|
||||||
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupView() {
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
startActivity(new Intent(this, SettingsActivity.class));
|
startActivity(new Intent(this, SettingsActivity.class));
|
||||||
@@ -1,19 +1,33 @@
|
|||||||
package com.stardust.auojs.inrt;
|
package com.stardust.auojs.inrt;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.annotation.RequiresApi;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.widget.TextView;
|
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.
|
* Created by Stardust on 2018/2/2.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class SplashActivity extends AppCompatActivity {
|
public class SplashActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private static final int PERMISSION_REQUEST_CODE = 11186;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
@@ -29,8 +43,45 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void main() {
|
private void main() {
|
||||||
startActivity(new Intent(this, MainActivity.class));
|
checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||||
finish();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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 android.content.Context;
|
||||||
|
|
||||||
import com.stardust.auojs.inrt.App;
|
import com.stardust.auojs.inrt.App;
|
||||||
|
import com.stardust.auojs.inrt.LogActivity;
|
||||||
import com.stardust.auojs.inrt.Pref;
|
import com.stardust.auojs.inrt.Pref;
|
||||||
import com.stardust.auojs.inrt.R;
|
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.autojs.runtime.exception.ScriptException;
|
||||||
import com.stardust.view.accessibility.AccessibilityService;
|
import com.stardust.view.accessibility.AccessibilityService;
|
||||||
import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
import com.stardust.view.accessibility.AccessibilityServiceUtils;
|
||||||
@@ -59,4 +62,12 @@ public class AutoJs extends com.stardust.autojs.AutoJs {
|
|||||||
protected Application getApplication() {
|
protected Application getApplication() {
|
||||||
return App.getApp();
|
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;
|
package com.stardust.auojs.inrt.launch;
|
||||||
|
|
||||||
import android.app.Activity;
|
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.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;
|
||||||
@@ -33,12 +36,17 @@ public class AssetsProjectLauncher {
|
|||||||
|
|
||||||
public void launch() {
|
public void launch() {
|
||||||
prepare();
|
prepare();
|
||||||
if (mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs()) {
|
if (!(mProjectConfig.getLaunchConfig().shouldHideLogs() || Pref.shouldHideLogs())) {
|
||||||
mActivity.runOnUiThread(mActivity::finish);
|
mActivity.runOnUiThread(() -> {
|
||||||
|
mActivity.startActivity(new Intent(mActivity, LogActivity.class));
|
||||||
|
mActivity.finish();
|
||||||
|
mActivity = null;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
mActivity.finish();
|
||||||
|
mActivity = null;
|
||||||
}
|
}
|
||||||
mActivity = null;
|
|
||||||
runScript();
|
runScript();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runScript() {
|
private void runScript() {
|
||||||
@@ -54,7 +62,7 @@ public class AssetsProjectLauncher {
|
|||||||
private void prepare() {
|
private void prepare() {
|
||||||
String projectConfigPath = PFiles.join(mProjectDir, ProjectConfig.CONFIG_FILE_NAME);
|
String projectConfigPath = PFiles.join(mProjectDir, ProjectConfig.CONFIG_FILE_NAME);
|
||||||
ProjectConfig projectConfig = ProjectConfig.fromFile(projectConfigPath);
|
ProjectConfig projectConfig = ProjectConfig.fromFile(projectConfigPath);
|
||||||
if (projectConfig != null && projectConfig.getVersionCode() == mProjectConfig.getVersionCode()) {
|
if (!BuildConfig.DEBUG && projectConfig != null && projectConfig.getVersionCode() == mProjectConfig.getVersionCode()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PFiles.copyAsset(mActivity, PFiles.join(mAssetsProjectDir, ProjectConfig.CONFIG_FILE_NAME), projectConfigPath);
|
PFiles.copyAsset(mActivity, PFiles.join(mAssetsProjectDir, ProjectConfig.CONFIG_FILE_NAME), projectConfigPath);
|
||||||
|
|||||||
Reference in New Issue
Block a user