mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
90 lines
2.9 KiB
Java
90 lines
2.9 KiB
Java
package com.stardust.scriptdroid.autojs;
|
|
|
|
import android.app.Application;
|
|
import android.content.Context;
|
|
|
|
import com.stardust.autojs.core.console.GlobalStardustConsole;
|
|
import com.stardust.autojs.runtime.accessibility.AccessibilityConfig;
|
|
import com.stardust.autojs.runtime.exception.ScriptException;
|
|
import com.stardust.autojs.runtime.api.Console;
|
|
import com.stardust.scriptdroid.App;
|
|
import com.stardust.scriptdroid.BuildConfig;
|
|
import com.stardust.scriptdroid.Pref;
|
|
import com.stardust.scriptdroid.R;
|
|
import com.stardust.scriptdroid.pluginclient.DevPluginService;
|
|
import com.stardust.view.accessibility.AccessibilityService;
|
|
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
|
|
|
|
|
|
/**
|
|
* Created by Stardust on 2017/4/2.
|
|
*/
|
|
|
|
public class AutoJs extends com.stardust.autojs.AutoJs {
|
|
|
|
private static AutoJs instance;
|
|
|
|
public static AutoJs getInstance() {
|
|
return instance;
|
|
}
|
|
|
|
public static void initInstance(Context context) {
|
|
instance = new AutoJs(context);
|
|
}
|
|
|
|
|
|
private AutoJs(final Context context) {
|
|
super(context);
|
|
getScriptEngineService().registerGlobalScriptExecutionListener(new ScriptExecutionGlobalListener());
|
|
}
|
|
|
|
@Override
|
|
protected Console createGlobalConsole() {
|
|
return new GlobalStardustConsole(getUiHandler()) {
|
|
@Override
|
|
public String println(int level, CharSequence charSequence) {
|
|
String log = super.println(level, charSequence);
|
|
DevPluginService.getInstance().log(log);
|
|
return log;
|
|
}
|
|
};
|
|
}
|
|
|
|
public void ensureAccessibilityServiceEnabled() {
|
|
if (AccessibilityService.getInstance() != null) {
|
|
return;
|
|
}
|
|
String errorMessage = null;
|
|
if (AccessibilityServiceTool.isAccessibilityServiceEnabled(App.getApp())) {
|
|
errorMessage = App.getApp().getString(R.string.text_auto_operate_service_enabled_but_not_running);
|
|
} else {
|
|
if (Pref.shouldEnableAccessibilityServiceByRoot()) {
|
|
if (!AccessibilityServiceTool.enableAccessibilityServiceByRootAndWaitFor(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);
|
|
}
|
|
}
|
|
if (errorMessage != null) {
|
|
AccessibilityServiceTool.goToAccessibilitySetting();
|
|
throw new ScriptException(errorMessage);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected AccessibilityConfig createAccessibilityConfig() {
|
|
AccessibilityConfig config = super.createAccessibilityConfig();
|
|
if (BuildConfig.CHANNEL.equals("coolapk")) {
|
|
config.addWhiteList("com.coolapk.market");
|
|
}
|
|
return config;
|
|
}
|
|
|
|
@Override
|
|
protected Application getApplication() {
|
|
return App.getApp();
|
|
}
|
|
|
|
}
|