add: auto() function and two mode of fetching rootInActiveWindow

This commit is contained in:
hyb1996
2017-07-31 10:15:39 +08:00
parent dc9f8f417a
commit 33cdef21c6
13 changed files with 163 additions and 104 deletions

View File

@@ -1,4 +1,4 @@
"auto"; auto();
var 好友验证信息 = "AutoJs自动添加群好友"; var 好友验证信息 = "AutoJs自动添加群好友";
var 延迟 = 500; var 延迟 = 500;

View File

@@ -1,4 +1,4 @@
"auto"; auto("fast");
toast("请打开一个聊天窗口"); toast("请打开一个聊天窗口");

View File

@@ -5,7 +5,6 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import com.stardust.autojs.runtime.api.AutomatorConfig; import com.stardust.autojs.runtime.api.AutomatorConfig;
import com.stardust.automator.AccessibilityEventCommandHost;
import com.stardust.scriptdroid.autojs.AutoJs; import com.stardust.scriptdroid.autojs.AutoJs;
import org.mozilla.javascript.NativeArray; import org.mozilla.javascript.NativeArray;
@@ -25,9 +24,7 @@ public class Pref {
private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() { private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(getString(R.string.key_run_mode))) { if (key.equals(getString(R.string.key_guard_mode))) {
AutoJs.getInstance().getCommandHost().setRunMode(getRunModeFromValue(sharedPreferences.getString(key, null)));
} else if (key.equals(getString(R.string.key_guard_mode))) {
AutomatorConfig.setIsUnintendedGuardEnabled(sharedPreferences.getBoolean(getString(R.string.key_guard_mode), false)); AutomatorConfig.setIsUnintendedGuardEnabled(sharedPreferences.getBoolean(getString(R.string.key_guard_mode), false));
} }
} }
@@ -37,19 +34,6 @@ public class Pref {
AutomatorConfig.setIsUnintendedGuardEnabled(def().getBoolean(getString(R.string.key_guard_mode), false)); AutomatorConfig.setIsUnintendedGuardEnabled(def().getBoolean(getString(R.string.key_guard_mode), false));
} }
private static int getRunModeFromValue(String value) {
if (value == null)
return AccessibilityEventCommandHost.RUN_MODE_THREAD_POOL;
switch (value) {
case "KEY_THREAD_POOL":
return AccessibilityEventCommandHost.RUN_MODE_THREAD_POOL;
case "KEY_NEW_THREAD_EVERY_TIME":
return AccessibilityEventCommandHost.RUN_MODE_NEW_THREAD_EVERY_TIME;
default:
return AccessibilityEventCommandHost.RUN_MODE_SINGLE_THREAD;
}
}
private static SharedPreferences def() { private static SharedPreferences def() {
return PreferenceManager.getDefaultSharedPreferences(App.getApp()); return PreferenceManager.getDefaultSharedPreferences(App.getApp());
} }

View File

@@ -42,7 +42,7 @@ import com.stardust.view.accessibility.LayoutInspector;
* Created by Stardust on 2017/4/2. * Created by Stardust on 2017/4/2.
*/ */
public class AutoJs implements AccessibilityBridge { public class AutoJs {
private static AutoJs instance; private static AutoJs instance;
@@ -56,36 +56,29 @@ public class AutoJs implements AccessibilityBridge {
private final AccessibilityActionRecorder mAccessibilityActionRecorder = new AccessibilityActionRecorder(); private final AccessibilityActionRecorder mAccessibilityActionRecorder = new AccessibilityActionRecorder();
private final LayoutInspector mLayoutInspector = new LayoutInspector(); private final LayoutInspector mLayoutInspector = new LayoutInspector();
private final ScriptEngineService mScriptEngineService; private final Context mContext;
private final AccessibilityInfoProvider mAccessibilityInfoProvider;
private final UiHandler mUiHandler; private final UiHandler mUiHandler;
private final AppUtils mAppUtils; private final AppUtils mAppUtils;
private final ScreenCaptureRequester mScreenCaptureRequester = new ScreenCaptureRequester.AbstractScreenCaptureRequester() { private final AccessibilityInfoProvider mAccessibilityInfoProvider;
private final ScreenCaptureRequester mScreenCaptureRequester = new ScreenCaptureRequesterImpl();
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private final ScriptEngineService mScriptEngineService;
@Override
public void request() {
Activity activity = mAppUtils.getCurrentActivity();
if (activity instanceof OnActivityResultDelegate.DelegateHost) {
ScreenCaptureRequester requester = new ActivityScreenCaptureRequester(
((OnActivityResultDelegate.DelegateHost) activity).getOnActivityResultDelegateMediator(), activity);
requester.setOnActivityResultCallback(mCallback);
requester.request();
} else {
ScreenCaptureRequestActivity.request(mUiHandler.getContext(), mCallback);
}
}
};
private AutoJs(final Context context) { private AutoJs(final Context context) {
mContext = context;
mUiHandler = new UiHandler(context); mUiHandler = new UiHandler(context);
mAppUtils = new AppUtils(context); mAppUtils = new AppUtils(context);
mAccessibilityInfoProvider = new AccessibilityInfoProvider(context.getPackageManager()); mAccessibilityInfoProvider = new AccessibilityInfoProvider(context.getPackageManager());
ScriptEngineManager manager = createScriptEngineManager(context); mScriptEngineService = buildScriptEngineService();
addAccessibilityServiceDelegates();
mScriptEngineService.registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
registerActivityLifecycleCallbacks();
}
private ScriptEngineService buildScriptEngineService() {
ScriptEngineManager manager = createScriptEngineManager(mContext);
final Console globalConsole = new JraskaConsole(); final Console globalConsole = new JraskaConsole();
mScriptEngineService = new ScriptEngineServiceBuilder() return new ScriptEngineServiceBuilder()
.uiHandler(mUiHandler) .uiHandler(mUiHandler)
.globalConsole(globalConsole) .globalConsole(globalConsole)
.engineManger(manager) .engineManger(manager)
@@ -96,21 +89,18 @@ public class AutoJs implements AccessibilityBridge {
return new ScriptRuntime.Builder() return new ScriptRuntime.Builder()
.setConsole(new StardustConsole(mUiHandler, globalConsole)) .setConsole(new StardustConsole(mUiHandler, globalConsole))
.setScreenCaptureRequester(mScreenCaptureRequester) .setScreenCaptureRequester(mScreenCaptureRequester)
.setAccessibilityBridge(AutoJs.this) .setAccessibilityBridge(new AccessibilityBridgeImpl())
.setUiHandler(mUiHandler) .setUiHandler(mUiHandler)
.setAppUtils(mAppUtils) .setAppUtils(mAppUtils)
.setShellSupplier(new Supplier<AbstractShell>() { .setShellSupplier(new Supplier<AbstractShell>() {
@Override @Override
public AbstractShell get() { public AbstractShell get() {
return new Shell(context, true); return new Shell(mContext, true);
} }
}).build(); }).build();
} }
}) })
.build(); .build();
addAccessibilityServiceDelegates();
mScriptEngineService.registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
registerActivityLifecycleCallbacks();
} }
private void registerActivityLifecycleCallbacks() { private void registerActivityLifecycleCallbacks() {
@@ -159,14 +149,16 @@ public class AutoJs implements AccessibilityBridge {
return mLayoutInspector; return mLayoutInspector;
} }
@Nullable
@Override public ScriptEngineService getScriptEngineService() {
public AccessibilityService getService() { return mScriptEngineService;
return AccessibilityService.getInstance();
} }
@Override public AccessibilityInfoProvider getInfoProvider() {
public void ensureServiceEnabled() { return mAccessibilityInfoProvider;
}
public void ensureAccessibilityServiceEnabled() {
if (AccessibilityService.getInstance() == null) { if (AccessibilityService.getInstance() == null) {
String errorMessage = null; String errorMessage = null;
if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(App.getApp(), AccessibilityService.class)) { if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(App.getApp(), AccessibilityService.class)) {
@@ -187,12 +179,40 @@ public class AutoJs implements AccessibilityBridge {
} }
} }
@Override
public AccessibilityInfoProvider getInfoProvider() { private class AccessibilityBridgeImpl extends AccessibilityBridge {
return mAccessibilityInfoProvider;
@Override
public void ensureServiceEnabled() {
AutoJs.this.ensureAccessibilityServiceEnabled();
}
@Nullable
@Override
public AccessibilityService getService() {
return AccessibilityService.getInstance();
}
@Override
public AccessibilityInfoProvider getInfoProvider() {
return mAccessibilityInfoProvider;
}
} }
public ScriptEngineService getScriptEngineService() { private class ScreenCaptureRequesterImpl extends ScreenCaptureRequester.AbstractScreenCaptureRequester {
return mScriptEngineService; @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void request() {
Activity activity = mAppUtils.getCurrentActivity();
if (activity instanceof OnActivityResultDelegate.DelegateHost) {
ScreenCaptureRequester requester = new ActivityScreenCaptureRequester(
((OnActivityResultDelegate.DelegateHost) activity).getOnActivityResultDelegateMediator(), activity);
requester.setOnActivityResultCallback(mCallback);
requester.request();
} else {
ScreenCaptureRequestActivity.request(mContext, mCallback);
}
}
} }
} }

View File

@@ -1,18 +1,17 @@
__runtime__.init(); __runtime__.init();
if(__engine_name__ == "rhino"){ __importClass__ = importClass;
__importClass__ = importClass; var importClass = function(pack){
var importClass = function(pack){
if(typeof(pack) == "string"){ if(typeof(pack) == "string"){
__importClass__(Packages[pack]); __importClass__(Packages[pack]);
}else{ }else{
__importClass__(pack); __importClass__(pack);
} }
} }
var loadJar = function(path){
var loadJar = function(path){
__runtime__.loadJar(path); __runtime__.loadJar(path);
}
} }
__runtime__.bridges.setFunctionCaller(function(func, target, args){ __runtime__.bridges.setFunctionCaller(function(func, target, args){

View File

@@ -97,12 +97,28 @@ module.exports = function(__runtime__, scope){
} }
automator.input = function(a, b){ automator.input = function(a, b){
if(arguments.length == 1){ if(arguments.length == 1){
return __runtime__.automator.appendText(__runtime__.automator.editable(-1), a); return __runtime__.automator.appendText(__runtime__.automator.editable(-1), a);
}else{ }else{
return __runtime__.automator.appendText(__runtime__.automator.editable(a), b); return __runtime__.automator.appendText(__runtime__.automator.editable(a), b);
}
} }
}
var modes = {
"normal": 0,
"fast": 1
}
scope.auto = function(mode){
if(mode){
if(typeof(mode) !== "string"){
throw new TypeError("mode should be a string");
}
mode = modes[mode.toLowerCase()];
}
mode = mode || 0;
__runtime__.accessibilityBridge.setMode(mode);
}
scope.__asGlobal__(__runtime__.automator, ['back', 'home', 'powerDialog', 'notifications', 'quickSettings', 'recents', 'splitScreen']); scope.__asGlobal__(__runtime__.automator, ['back', 'home', 'powerDialog', 'notifications', 'quickSettings', 'recents', 'splitScreen']);
scope.__asGlobal__(automator, ['click', 'longClick', 'press', 'swipe', 'gesture', 'gestures', 'gestureAsync', 'gesturesAsync', 'scrollDown', 'scrollUp', 'input', 'setText']); scope.__asGlobal__(automator, ['click', 'longClick', 'press', 'swipe', 'gesture', 'gestures', 'gestureAsync', 'gesturesAsync', 'scrollDown', 'scrollUp', 'input', 'setText']);

View File

@@ -16,7 +16,8 @@ module.exports = function(__runtime__, scope){
} }
return function(){ return function(){
return __runtime__.selector(scope.__engine__); var s = __runtime__.selector(scope.__engine__);
return s;
}; };
} }

View File

@@ -2,7 +2,6 @@ package com.stardust.autojs.runtime;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Looper;
import android.support.annotation.CallSuper; import android.support.annotation.CallSuper;
import com.stardust.autojs.engine.ScriptEngine; import com.stardust.autojs.engine.ScriptEngine;
@@ -24,6 +23,8 @@ import com.stardust.util.UiHandler;
import com.stardust.view.accessibility.AccessibilityInfoProvider; import com.stardust.view.accessibility.AccessibilityInfoProvider;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/** /**
* Created by Stardust on 2017/5/4. * Created by Stardust on 2017/5/4.
@@ -61,16 +62,19 @@ public abstract class AbstractScriptRuntime {
@ScriptVariable @ScriptVariable
public Timers timers; public Timers timers;
@ScriptVariable
public AccessibilityBridge accessibilityBridge;
private Images images; private Images images;
private UiHandler mUiHandler; private UiHandler mUiHandler;
private AccessibilityBridge mAccessibilityBridge;
private static WeakReference<Context> applicationContext; private static WeakReference<Context> applicationContext;
private Map<String, Object> mProperties = new ConcurrentHashMap<>();
public AbstractScriptRuntime(UiHandler uiHandler, Console console, AccessibilityBridge bridge, AppUtils appUtils, ScreenCaptureRequester screenCaptureRequester) { public AbstractScriptRuntime(UiHandler uiHandler, Console console, AccessibilityBridge bridge, AppUtils appUtils, ScreenCaptureRequester screenCaptureRequester) {
this.app = appUtils; this.app = appUtils;
this.console = console; this.console = console;
mAccessibilityBridge = bridge; accessibilityBridge = bridge;
mUiHandler = uiHandler; mUiHandler = uiHandler;
this.automator = new SimpleActionAutomator(bridge, this); this.automator = new SimpleActionAutomator(bridge, this);
this.info = bridge.getInfoProvider(); this.info = bridge.getInfoProvider();
@@ -90,7 +94,7 @@ public abstract class AbstractScriptRuntime {
if (loopers != null) if (loopers != null)
throw new IllegalStateException("already initialized"); throw new IllegalStateException("already initialized");
loopers = new Loopers(); loopers = new Loopers();
events = new Events(mUiHandler.getContext(), mAccessibilityBridge, bridges, loopers); events = new Events(mUiHandler.getContext(), accessibilityBridge, bridges, loopers);
timers = new Timers(bridges); timers = new Timers(bridges);
} }
@@ -158,5 +162,16 @@ public abstract class AbstractScriptRuntime {
return images; return images;
} }
public Object getProperty(String key) {
return mProperties.get(key);
}
public Object putProperty(String key, Object value) {
return mProperties.put(key, value);
}
public Object removeProperty(String key) {
return mProperties.remove(key);
}
} }

View File

@@ -1,6 +1,8 @@
package com.stardust.autojs.runtime; package com.stardust.autojs.runtime;
import android.content.Context;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.view.accessibility.AccessibilityNodeInfo;
import com.stardust.view.accessibility.AccessibilityInfoProvider; import com.stardust.view.accessibility.AccessibilityInfoProvider;
import com.stardust.view.accessibility.AccessibilityService; import com.stardust.view.accessibility.AccessibilityService;
@@ -9,15 +11,37 @@ import com.stardust.view.accessibility.AccessibilityService;
* Created by Stardust on 2017/4/2. * Created by Stardust on 2017/4/2.
*/ */
public interface AccessibilityBridge { public abstract class AccessibilityBridge {
void ensureServiceEnabled(); public static final int MODE_NORMAL = 0;
public static final int MODE_FAST = 1;
AccessibilityInfoProvider getInfoProvider(); private int mMode = MODE_NORMAL;
public abstract void ensureServiceEnabled();
@Nullable @Nullable
AccessibilityService getService(); public abstract AccessibilityService getService();
@Nullable
public AccessibilityNodeInfo getRootInActiveWindow() {
AccessibilityService service = getService();
if (service == null)
return null;
if (mMode == MODE_FAST) {
return service.fastRootInActiveWindow();
}
return service.getRootInActiveWindow();
}
public abstract AccessibilityInfoProvider getInfoProvider();
public void setMode(int mode) {
mMode = mode;
}
} }

View File

@@ -1,9 +1,9 @@
package com.stardust.autojs.runtime.api; package com.stardust.autojs.runtime.api;
import android.accessibilityservice.AccessibilityService;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo;
@@ -17,6 +17,7 @@ import com.stardust.automator.UiObjectCollection;
import com.stardust.automator.filter.DfsFilter; import com.stardust.automator.filter.DfsFilter;
import com.stardust.util.DeveloperUtils; import com.stardust.util.DeveloperUtils;
import com.stardust.view.accessibility.AccessibilityNodeInfoAllocator; import com.stardust.view.accessibility.AccessibilityNodeInfoAllocator;
import com.stardust.view.accessibility.AccessibilityService;
import org.mozilla.javascript.NativeArray; import org.mozilla.javascript.NativeArray;
@@ -58,6 +59,8 @@ import static android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.
public class UiSelector extends UiGlobalSelector { public class UiSelector extends UiGlobalSelector {
private static final String TAG = "UiSelector"; private static final String TAG = "UiSelector";
private AccessibilityBridge mAccessibilityBridge; private AccessibilityBridge mAccessibilityBridge;
@@ -80,16 +83,14 @@ public class UiSelector extends UiGlobalSelector {
Log.d(TAG, "isSelfPackage return null"); Log.d(TAG, "isSelfPackage return null");
return UiObjectCollection.EMPTY; return UiObjectCollection.EMPTY;
} }
AccessibilityService service = mAccessibilityBridge.getService(); AccessibilityNodeInfo root = mAccessibilityBridge.getRootInActiveWindow();
if (service != null) { if (root == null) {
AccessibilityNodeInfo root = service.getRootInActiveWindow(); return UiObjectCollection.EMPTY;
if (root != null) {
return findOf(UiObject.createRoot(root, mAllocator));
}
} }
return UiObjectCollection.EMPTY; return findOf(UiObject.createRoot(root, mAllocator));
} }
private void ensureAccessibilityServiceEnabled() { private void ensureAccessibilityServiceEnabled() {
mAccessibilityBridge.ensureServiceEnabled(); mAccessibilityBridge.ensureServiceEnabled();
} }

View File

@@ -5,6 +5,7 @@ import android.accessibilityservice.GestureDescription;
import android.graphics.Rect; import android.graphics.Rect;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi; import android.support.annotation.RequiresApi;
import android.util.Log; import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo;
@@ -254,10 +255,7 @@ public class SimpleActionAutomator {
Log.d(TAG, "performAction: running package is self. return false"); Log.d(TAG, "performAction: running package is self. return false");
return false; return false;
} }
AccessibilityService service = mAccessibilityBridge.getService(); AccessibilityNodeInfo root = mAccessibilityBridge.getRootInActiveWindow();
if (service == null)
return false;
AccessibilityNodeInfo root = service.getRootInActiveWindow();
if (root == null) if (root == null)
return false; return false;
Log.v(TAG, "performAction: " + simpleAction + " root = " + root); Log.v(TAG, "performAction: " + simpleAction + " root = " + root);

View File

@@ -3,6 +3,7 @@ package com.stardust.view.accessibility;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.support.annotation.Nullable;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
@@ -39,8 +40,8 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
private static boolean containsAllEventTypes = false; private static boolean containsAllEventTypes = false;
private static final Set<Integer> eventTypes = new HashSet<>(); private static final Set<Integer> eventTypes = new HashSet<>();
private OnKeyListener.Observer mOnKeyObserver = new OnKeyListener.Observer(); private OnKeyListener.Observer mOnKeyObserver = new OnKeyListener.Observer();
private Handler mHandler;
private ExecutorService mKeyEventExecutor; private ExecutorService mKeyEventExecutor;
private AccessibilityNodeInfo mFastRootInActiveWindow;
public static void addDelegate(int uniquePriority, AccessibilityDelegate delegate) { public static void addDelegate(int uniquePriority, AccessibilityDelegate delegate) {
mDelegates.put(uniquePriority, delegate); mDelegates.put(uniquePriority, delegate);
@@ -64,6 +65,11 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
Log.v(TAG, "onAccessibilityEvent: " + event); Log.v(TAG, "onAccessibilityEvent: " + event);
if (!containsAllEventTypes && !eventTypes.contains(event.getEventType())) if (!containsAllEventTypes && !eventTypes.contains(event.getEventType()))
return; return;
int type = event.getEventType();
if (type == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED || type == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER
|| type == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT) {
mFastRootInActiveWindow = super.getRootInActiveWindow();
}
for (Map.Entry<Integer, AccessibilityDelegate> entry : mDelegates.entrySet()) { for (Map.Entry<Integer, AccessibilityDelegate> entry : mDelegates.entrySet()) {
AccessibilityDelegate delegate = entry.getValue(); AccessibilityDelegate delegate = entry.getValue();
Set<Integer> types = delegate.getEventTypes(); Set<Integer> types = delegate.getEventTypes();
@@ -127,17 +133,13 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
LOCK.lock(); LOCK.lock();
ENABLED.signalAll(); ENABLED.signalAll();
LOCK.unlock(); LOCK.unlock();
mHandler = new Handler();
// FIXME: 2017/2/12 有时在无障碍中开启服务后这里不会调用服务也不会运行安卓的BUG??? // FIXME: 2017/2/12 有时在无障碍中开启服务后这里不会调用服务也不会运行安卓的BUG???
} }
private AccessibilityNodeInfo superGetRootInActiveWindow() {
try { @Nullable
return super.getRootInActiveWindow(); public AccessibilityNodeInfo fastRootInActiveWindow() {
} catch (IllegalStateException e) { return mFastRootInActiveWindow;
e.printStackTrace();
return null;
}
} }
public static boolean disable() { public static boolean disable() {
@@ -162,4 +164,5 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
public static OnKeyListener.Observer getStickOnKeyObserver() { public static OnKeyListener.Observer getStickOnKeyObserver() {
return stickOnKeyObserver; return stickOnKeyObserver;
} }
} }

View File

@@ -35,7 +35,7 @@ import com.stardust.view.accessibility.AccessibilityServiceUtils;
* Created by Stardust on 2017/7/1. * Created by Stardust on 2017/7/1.
*/ */
public class AutoJs implements AccessibilityBridge { public class AutoJs {
private static AutoJs instance; private static AutoJs instance;
@@ -84,11 +84,12 @@ public class AutoJs implements AccessibilityBridge {
.runtime(new Supplier<ScriptRuntime>() { .runtime(new Supplier<ScriptRuntime>() {
@Override @Override
public com.stardust.autojs.runtime.ScriptRuntime get() { public ScriptRuntime get() {
return new ScriptRuntime.Builder() return new ScriptRuntime.Builder()
.setConsole(new StardustConsole(mUiHandler)) .setConsole(new StardustConsole(mUiHandler))
.setScreenCaptureRequester(mScreenCaptureRequester) .setScreenCaptureRequester(mScreenCaptureRequester)
.setAccessibilityBridge(AutoJs.this) // TODO: 2017/7/31
.setAccessibilityBridge(null)
.setUiHandler(mUiHandler) .setUiHandler(mUiHandler)
.setAppUtils(mAppUtils) .setAppUtils(mAppUtils)
.setShellSupplier(new Supplier<AbstractShell>() { .setShellSupplier(new Supplier<AbstractShell>() {
@@ -134,12 +135,10 @@ public class AutoJs implements AccessibilityBridge {
} }
@Nullable @Nullable
@Override
public AccessibilityService getService() { public AccessibilityService getService() {
return AccessibilityService.getInstance(); return AccessibilityService.getInstance();
} }
@Override
public void ensureServiceEnabled() { public void ensureServiceEnabled() {
Context context = mApplication.getApplicationContext(); Context context = mApplication.getApplicationContext();
if (AccessibilityService.getInstance() == null) { if (AccessibilityService.getInstance() == null) {
@@ -154,7 +153,6 @@ public class AutoJs implements AccessibilityBridge {
} }
} }
@Override
public AccessibilityInfoProvider getInfoProvider() { public AccessibilityInfoProvider getInfoProvider() {
return mAccessibilityInfoProvider; return mAccessibilityInfoProvider;
} }