fix fucking accessibility service

This commit is contained in:
hyb1996
2017-07-16 10:19:07 +08:00
parent fcf46c49de
commit 73773faedc
13 changed files with 186 additions and 69 deletions

View File

@@ -30,7 +30,12 @@ public class HoverMenuManger {
if (!HoverMenuService.isServiceRunning()) {
if (!SettingsCompat.canDrawOverlays(App.getApp())) {
Toast.makeText(App.getApp(), R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
SettingsCompat.manageDrawOverlays(App.getApp());
try {
SettingsCompat.manageDrawOverlays(App.getApp());
} catch (Exception e) {
e.printStackTrace();
IntentUtil.goToAppDetailSettings(App.getApp());
}
} else {
HoverMenuService.startService(App.getApp());
}

View File

@@ -22,6 +22,7 @@ import com.stardust.scriptdroid.external.floatingwindow.menu.view.FloatingLayout
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;
import com.stardust.util.MessageIntent;
@@ -129,7 +130,12 @@ public class HoverMenuService extends Service {
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
SettingsCompat.manageDrawOverlays(this);
try {
SettingsCompat.manageDrawOverlays(this);
} catch (Exception ex) {
ex.printStackTrace();
IntentUtil.goToAppDetailSettings(this);
}
}
}

View File

@@ -17,6 +17,7 @@ import com.stardust.scriptdroid.tool.AccessibilityServiceTool;
import com.stardust.scriptdroid.ui.main.MainActivity_;
import com.stardust.util.ClipboardUtil;
import com.stardust.util.MessageEvent;
import com.stardust.view.accessibility.AccessibilityService;
import org.greenrobot.eventbus.Subscribe;
@@ -61,10 +62,14 @@ public class MainMenuNavigatorContent implements NavigatorContent {
Toast.makeText(mView.getContext(), R.string.text_layout_inspector_is_dumping, Toast.LENGTH_SHORT).show();
return false;
}
if (inspector.getCapture() == null) {
if (AccessibilityService.getInstance() == null) {
Toast.makeText(mView.getContext(), R.string.text_no_accessibility_permission_to_capture, Toast.LENGTH_SHORT).show();
return false;
}
if (inspector.getCapture() == null) {
Toast.makeText(mView.getContext(), R.string.text_inspect_failed, Toast.LENGTH_SHORT).show();
return false;
}
return true;
}

View File

@@ -1,5 +1,7 @@
package com.stardust.scriptdroid.external.floatingwindow.menu.layout_inspector;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.Log;
import android.view.accessibility.AccessibilityNodeInfo;
@@ -43,6 +45,17 @@ public class LayoutInspector {
}
}
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
private void refreshChildList(AccessibilityNodeInfo root) {
if (root == null)
return;
root.refresh();
int childCount = root.getChildCount();
for (int i = 0; i < childCount; i++) {
refreshChildList(root.getChild(i));
}
}
public boolean isDumping() {
return mDumping;
}