add: stable mode for AccessibilityService

This commit is contained in:
hyb1996
2017-08-14 21:23:07 +08:00
parent 8034dc7b6b
commit 405075757e
13 changed files with 83 additions and 30 deletions

View File

@@ -133,4 +133,13 @@ public class Pref {
return def().getString(getString(R.string.key_root_record_out_file_type), "binary")
.equals("binary");
}
public static boolean isObservingKeyEnabled() {
return def().getBoolean(getString(R.string.key_enable_observe_key), false);
}
public static boolean isStableModeEnabled() {
return def().getBoolean(getString(R.string.key_stable_mode), false);
}
}

View File

@@ -0,0 +1,25 @@
package com.stardust.scriptdroid.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo;
import com.stardust.scriptdroid.Pref;
/**
* Created by Stardust on 2017/8/14.
*/
public class AccessibilityService extends com.stardust.view.accessibility.AccessibilityService {
@Override
protected void onServiceConnected() {
AccessibilityServiceInfo serviceInfo = getServiceInfo();
if (Pref.isStableModeEnabled()) {
serviceInfo.flags &= ~AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
} else {
serviceInfo.flags |= AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS;
}
setServiceInfo(serviceInfo);
super.onServiceConnected();
}
}

View File

@@ -182,7 +182,7 @@ public class AutoJs {
public void ensureAccessibilityServiceEnabled() {
if (AccessibilityService.getInstance() == null) {
String errorMessage = null;
if (AccessibilityServiceUtils.isAccessibilityServiceEnabled(App.getApp(), AccessibilityService.class)) {
if (AccessibilityServiceTool.isAccessibilityServiceEnabled(App.getApp())) {
errorMessage = App.getApp().getString(R.string.text_auto_operate_service_enabled_but_not_running);
} else {
if (Pref.enableAccessibilityServiceByRoot()) {

View File

@@ -3,16 +3,12 @@ package com.stardust.scriptdroid.tool;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.text.TextUtils;
import android.widget.Toast;
import com.stardust.autojs.runtime.ScriptRuntime;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.util.UiHandler;
import com.stardust.view.accessibility.AccessibilityService;
import com.stardust.scriptdroid.App;
import com.stardust.scriptdroid.R;
import com.stardust.autojs.runtime.api.ProcessShell;
import com.stardust.scriptdroid.accessibility.AccessibilityService;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
import java.util.Locale;
@@ -23,9 +19,11 @@ import java.util.Locale;
public class AccessibilityServiceTool {
private static final Class<AccessibilityService> sAccessibilityServiceClass = AccessibilityService.class;
public static void enableAccessibilityService() {
if (Pref.enableAccessibilityServiceByRoot()) {
if (!enableAccessibilityServiceByRoot(AccessibilityService.class)) {
if (!enableAccessibilityServiceByRoot(sAccessibilityServiceClass)) {
goToAccessibilitySetting();
}
} else {
@@ -62,7 +60,7 @@ public class AccessibilityServiceTool {
}
public static boolean enableAccessibilityServiceByRootAndWaitFor(long timeOut) {
if (enableAccessibilityServiceByRoot(AccessibilityService.class)) {
if (enableAccessibilityServiceByRoot(sAccessibilityServiceClass)) {
return AccessibilityService.waitForEnabled(timeOut);
}
return false;
@@ -71,7 +69,11 @@ public class AccessibilityServiceTool {
public static void enableAccessibilityServiceByRootIfNeeded() {
if (AccessibilityService.getInstance() == null)
if (Pref.enableAccessibilityServiceByRoot()) {
AccessibilityServiceTool.enableAccessibilityServiceByRoot(AccessibilityService.class);
AccessibilityServiceTool.enableAccessibilityServiceByRoot(sAccessibilityServiceClass);
}
}
public static boolean isAccessibilityServiceEnabled(Context context) {
return AccessibilityServiceUtils.isAccessibilityServiceEnabled(context, sAccessibilityServiceClass);
}
}

View File

@@ -153,7 +153,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
}
private void showAccessibilitySettingPromptIfDisabled() {
if (!AccessibilityServiceUtils.isAccessibilityServiceEnabled(this, AccessibilityService.class)) {
if (!AccessibilityServiceTool.isAccessibilityServiceEnabled(this)) {
new NotAskAgainDialog.Builder(this, "Eating...love you...miss you...17.4.12")
.title(R.string.text_need_to_enable_accessibility_service)
.content(R.string.explain_accessibility_permission)

View File

@@ -83,7 +83,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
if (mAccessibilityServiceSwitch == null) {
return;
}
final boolean checked = AccessibilityService.isEnabled(App.getApp());
final boolean checked = AccessibilityServiceTool.isAccessibilityServiceEnabled(App.getApp());
mAccessibilityServiceSwitch.post(new Runnable() {
@Override
public void run() {
@@ -118,7 +118,7 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
@CheckedChange(R.id.sw_accessibility_service)
void setAutoOperateServiceEnable(CompoundButton button, boolean enable) {
boolean isAccessibilityServiceEnabled = AccessibilityService.isEnabled(App.getApp());
boolean isAccessibilityServiceEnabled = AccessibilityServiceTool.isAccessibilityServiceEnabled(App.getApp());
if (enable && !isAccessibilityServiceEnabled) {
enableAccessibilityService();
} else if (!enable && isAccessibilityServiceEnabled) {