diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java
index 03897f37..519ae598 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/build/BuildActivity.java
@@ -1,6 +1,9 @@
package com.stardust.scriptdroid.ui.build;
import android.annotation.SuppressLint;
+import android.app.ListActivity;
+import android.app.PendingIntent;
+import android.content.Intent;
import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
@@ -76,6 +79,12 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
mAppName.setText(file.getSimplifiedName());
}
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+
+ }
+
@Click(R.id.select_source)
void selectSourceFilePath() {
String initialDir = new File(mSourcePath.getText().toString()).getParent();
diff --git a/autojs/src/main/AndroidManifest.xml b/autojs/src/main/AndroidManifest.xml
index 2c32768d..7f096fb3 100644
--- a/autojs/src/main/AndroidManifest.xml
+++ b/autojs/src/main/AndroidManifest.xml
@@ -5,8 +5,9 @@
-
-
+
diff --git a/get_global_functions.py b/get_global_functions.py
deleted file mode 100644
index c9292321..00000000
--- a/get_global_functions.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import re
-
-def get_functions(path):
- list = []
- with open(path) as f:
- for line in f:
- func = get_function_or_null(line)
- if func:
- list.append(func)
- return to_str(list)
-
-def to_str(list):
- return str(list).replace("'", '"')
-
-def get_function_or_null(line):
- m = re.match(r'^var\s(\S+)\s=', line)
- if m and not m.group(1).startswith('__'):
- return m.group(1)
- else:
- return None
-
-if __name__ == "__main__":
- print(get_functions(r'autojs\src\main\assets\javascript_engine_init.js'))
- print(get_functions(r'app\src\main\assets\js\autojs_init.js'))
-
\ No newline at end of file
diff --git a/inrt/src/main/AndroidManifest.xml b/inrt/src/main/AndroidManifest.xml
index 9d3358ec..3f5e329d 100644
--- a/inrt/src/main/AndroidManifest.xml
+++ b/inrt/src/main/AndroidManifest.xml
@@ -4,6 +4,9 @@
package="com.stardust.auojs.inrt">
+
+
+
", js);
- AutoJs.getInstance().getScriptEngineService().execute(source);
- } catch (IOException e) {
- e.printStackTrace();
+ setupView();
+ checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
+ runScript();
+ }
+
+ private void setupView() {
+ ConsoleView consoleView = new ConsoleView(this);
+ consoleView.setConsole(AutoJs.getInstance().getGlobalConsole());
+ setContentView(consoleView);
+ }
+
+
+ private void runScript() {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ String js = PFiles.read(getAssets().open("script.js"));
+ StringScriptSource source = new StringScriptSource("main", js);
+ AutoJs.getInstance().getScriptEngineService().execute(source);
+ } catch (Exception e) {
+ AutoJs.getInstance().getGlobalConsole().log(e);
+ }
+ }
+ }).start();
+ }
+
+ 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 {
+ int[] grantResults = new int[permissions.length];
+ Arrays.fill(grantResults, PERMISSION_GRANTED);
+ onRequestPermissionsResult(PERMISSION_REQUEST_CODE, permissions, grantResults);
}
}
- private void checkPermissions() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 11124);
+
+ @RequiresApi(api = Build.VERSION_CODES.M)
+ private String[] getRequestPermissions(String[] permissions) {
+ List list = new ArrayList<>();
+ for (String permission : permissions) {
+ if (checkSelfPermission(permission) == PERMISSION_DENIED) {
+ list.add(permission);
+ }
}
+ return list.toArray(new String[list.size()]);
}
+
}
diff --git a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
index 13d61da7..23c360d3 100644
--- a/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
+++ b/inrt/src/main/java/com/stardust/auojs/inrt/rt/AutoJs.java
@@ -14,6 +14,7 @@ import com.stardust.auojs.inrt.R;
import com.stardust.autojs.ScriptEngineService;
import com.stardust.autojs.ScriptEngineServiceBuilder;
import com.stardust.autojs.core.accessibility.AccessibilityBridge;
+import com.stardust.autojs.core.console.GlobalStardustConsole;
import com.stardust.autojs.core.inputevent.InputEventObserver;
import com.stardust.autojs.core.record.accessibility.AccessibilityActionRecorder;
import com.stardust.autojs.engine.LoopBasedJavaScriptEngine;
@@ -62,30 +63,32 @@ public class AutoJs {
private final AccessibilityActionRecorder mAccessibilityActionRecorder = new AccessibilityActionRecorder();
private final NotificationListener.Observer mNotificationObserver;
private ScriptEngineManager mScriptEngineManager;
- private final LayoutInspector mLayoutInspector = new LayoutInspector();
private final Context mContext;
private final UiHandler mUiHandler;
private final AppUtils mAppUtils;
private final AccessibilityInfoProvider mAccessibilityInfoProvider;
private final ScreenCaptureRequester mScreenCaptureRequester = new ScreenCaptureRequesterImpl();
private final ScriptEngineService mScriptEngineService;
- private final Console mGlobalConsole;
+ private final StardustConsole mGlobalConsole;
private AutoJs(final Context context) {
mContext = context;
mUiHandler = new UiHandler(context);
mAppUtils = new AppUtils(context);
- mGlobalConsole = new NoOpConsole();
+ mGlobalConsole = new GlobalStardustConsole(mUiHandler);
mNotificationObserver = new NotificationListener.Observer(context);
mAccessibilityInfoProvider = new AccessibilityInfoProvider(context.getPackageManager());
mScriptEngineService = buildScriptEngineService();
addAccessibilityServiceDelegates();
- //mScriptEngineService.registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
registerActivityLifecycleCallbacks();
InputEventObserver.initGlobal(context);
}
+ public StardustConsole getGlobalConsole() {
+ return mGlobalConsole;
+ }
+
private ScriptEngineService buildScriptEngineService() {
initScriptEngineManager();
return new ScriptEngineServiceBuilder()
@@ -153,50 +156,29 @@ public class AutoJs {
AccessibilityService.addDelegate(300, mAccessibilityActionRecorder);
}
- public AccessibilityActionRecorder getAccessibilityActionRecorder() {
- return mAccessibilityActionRecorder;
- }
-
- public AppUtils getAppUtils() {
- return mAppUtils;
- }
-
- public UiHandler getUiHandler() {
- return mUiHandler;
- }
-
- public LayoutInspector getLayoutInspector() {
- return mLayoutInspector;
- }
-
-
public ScriptEngineService getScriptEngineService() {
return mScriptEngineService;
}
- public AccessibilityInfoProvider getInfoProvider() {
- return mAccessibilityInfoProvider;
- }
-
public void ensureAccessibilityServiceEnabled() {
if (AccessibilityService.getInstance() == null) {
- String errorMessage = null;
- if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(App.getApp(), sAccessibilityServiceClass)) {
- errorMessage = App.getApp().getString(R.string.text_auto_operate_service_enabled_but_not_running);
- } else {
- if (true) {
- if (!AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(App.getApp(), 2000)) {
- errorMessage = App.getApp().getString(R.string.text_enable_accessibility_service_by_root_timeout);
- }
- } else {
- errorMessage = App.getApp().getString(R.string.text_no_accessibility_permission);
+ String errorMessage = getErrorMessage();
+ AccessibilityServiceTool.goToAccessibilitySetting();
+ throw new ScriptException(errorMessage);
+ }
+ }
+
+ private String getErrorMessage() {
+ if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(App.getApp(), sAccessibilityServiceClass)) {
+ return App.getApp().getString(R.string.text_auto_operate_service_enabled_but_not_running);
+ } else {
+ if (true) {
+ if (!AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(App.getApp(), 2000)) {
+ return App.getApp().getString(R.string.text_enable_accessibility_service_by_root_timeout);
}
}
- if (errorMessage != null) {
- AccessibilityServiceTool.goToAccessibilitySetting();
- throw new ScriptException(errorMessage);
- }
}
+ return App.getApp().getString(R.string.text_no_accessibility_permission);
}