add: root_automator

This commit is contained in:
hyb1996
2017-08-01 21:42:32 +08:00
parent 8734ae3992
commit 6a3392cfe6
22 changed files with 474 additions and 112 deletions

View File

@@ -1,6 +1,7 @@
package com.stardust.scriptdroid.autojs;
import android.app.Activity;
import android.app.Notification;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
@@ -36,6 +37,7 @@ import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.console.JraskaConsole;
import com.stardust.view.accessibility.AccessibilityServiceUtils;
import com.stardust.view.accessibility.LayoutInspector;
import com.stardust.view.accessibility.NotificationListener;
/**
@@ -55,6 +57,7 @@ public class AutoJs {
}
private final AccessibilityActionRecorder mAccessibilityActionRecorder = new AccessibilityActionRecorder();
private final NotificationListener.Observer mNotificationObserver;
private final LayoutInspector mLayoutInspector = new LayoutInspector();
private final Context mContext;
private final UiHandler mUiHandler;
@@ -68,6 +71,7 @@ public class AutoJs {
mContext = context;
mUiHandler = new UiHandler(context);
mAppUtils = new AppUtils(context);
mNotificationObserver = new NotificationListener.Observer(context);
mAccessibilityInfoProvider = new AccessibilityInfoProvider(context.getPackageManager());
mScriptEngineService = buildScriptEngineService();
addAccessibilityServiceDelegates();
@@ -130,6 +134,7 @@ public class AutoJs {
private void addAccessibilityServiceDelegates() {
AccessibilityService.addDelegate(100, mAccessibilityInfoProvider);
AccessibilityService.addDelegate(200, mNotificationObserver);
AccessibilityService.addDelegate(300, mAccessibilityActionRecorder);
}
@@ -198,6 +203,11 @@ public class AutoJs {
return mAccessibilityInfoProvider;
}
@Override
public NotificationListener.Observer getNotificationObserver() {
return mNotificationObserver;
}
}
private class ScreenCaptureRequesterImpl extends ScreenCaptureRequester.AbstractScreenCaptureRequester {

View File

@@ -20,7 +20,6 @@ import com.stardust.scriptdroid.autojs.AutoJs;
import com.stardust.view.accessibility.NodeInfo;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutBoundsView;
import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayoutHierarchyView;
import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.theme.ThemeColorManagerCompat;
import com.stardust.util.IntentUtil;
import com.stardust.util.MessageEvent;
@@ -189,7 +188,6 @@ public class HoverMenuService extends Service {
tryInitViews();
if (mWindowHoverMenu != null)
mWindowHoverMenu.show();
AccessibilityServiceTool.enableAccessibilityServiceByRootIfNeeded();
return START_STICKY;
}
@@ -200,6 +198,8 @@ public class HoverMenuService extends Service {
if (eventBus.isRegistered(this))
eventBus.unregister(this);
setIsRunning(false);
if (mWindowViewController == null)
return;
mWindowViewController.removeView(mFloatingLayoutBoundsView);
mWindowViewController.removeView(mFloatingLayoutHierarchyView);
}

View File

@@ -85,9 +85,6 @@ public class RecordNavigatorContent implements NavigatorContent, Recorder.OnStat
ButterKnife.bind(this, mView);
HoverMenuService.getEventBus().register(this);
AccessibilityService.getStickOnKeyObserver().addListener(mVolumeKeyListener);
if (Pref.isRecordVolumeControlEnable()) {
AutoJs.getInstance().ensureAccessibilityServiceEnabled();
}
if (Pref.hasRecordTrigger()) {
mKeyObserver = new KeyObserver(mContext);
mKeyObserver.startListening();

View File

@@ -14,10 +14,14 @@ public class ProgressDialog {
private MaterialDialog mDialog;
public ProgressDialog(Context context) {
this(context, R.string.text_on_progress);
}
public ProgressDialog(Context context, int resId) {
mDialog = new MaterialDialog.Builder(context)
.progress(true, 0)
.cancelable(false)
.content(R.string.text_on_progress)
.content(resId)
.show();
}

View File

@@ -133,7 +133,12 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
AccessibilityServiceTool.goToAccessibilitySetting();
return;
}
final ProgressDialog progress = new ProgressDialog(getContext());
enableAccessibilityServiceByRoot();
}
private void enableAccessibilityServiceByRoot() {
final ProgressDialog progress = new ProgressDialog(getContext(), R.string.text_enable_accessibility_service_by_root_ing);
UnderuseExecutors.execute(new Runnable() {
@Override
public void run() {
@@ -156,6 +161,9 @@ public class SideMenuFragment extends android.support.v4.app.Fragment {
void setFloatingWindowEnable(CompoundButton button, boolean enable) {
if (enable && !HoverMenuManger.isHoverMenuShowing()) {
HoverMenuManger.showHoverMenu();
if (Pref.enableAccessibilityServiceByRoot()) {
enableAccessibilityServiceByRoot();
}
} else if (!enable && HoverMenuManger.isHoverMenuShowing()) {
HoverMenuManger.hideHoverMenu();
}