From 7e2f09b9aaf867618ab1cecc3f9e962402012804 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 15 Apr 2018 16:29:09 +0800 Subject: [PATCH] feat(ui): add `pointer location` and `stop all scripts` to circular menu --- .../stardust/scriptdroid/tool/RootTool.java | 26 ++++++++++++ .../scriptdroid/ui/floating/CircularMenu.java | 38 +++++++++++++++++- .../ic_zoom_out_map_white_24dp.png | Bin 0 -> 326 bytes .../ic_zoom_out_map_white_24dp.png | Bin 0 -> 235 bytes .../ic_zoom_out_map_white_24dp.png | Bin 0 -> 332 bytes .../ic_zoom_out_map_white_24dp.png | Bin 0 -> 510 bytes .../ic_zoom_out_map_white_24dp.png | Bin 0 -> 584 bytes .../main/res/layout/circular_action_menu.xml | 15 +++---- app/src/main/res/values/ids.xml | 4 ++ app/src/main/res/values/strings.xml | 4 ++ 10 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_zoom_out_map_white_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_zoom_out_map_white_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_zoom_out_map_white_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_zoom_out_map_white_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_zoom_out_map_white_24dp.png diff --git a/app/src/main/java/com/stardust/scriptdroid/tool/RootTool.java b/app/src/main/java/com/stardust/scriptdroid/tool/RootTool.java index 4ee2b8ea..da5830e9 100644 --- a/app/src/main/java/com/stardust/scriptdroid/tool/RootTool.java +++ b/app/src/main/java/com/stardust/scriptdroid/tool/RootTool.java @@ -1,5 +1,6 @@ package com.stardust.scriptdroid.tool; +import com.stardust.autojs.core.util.ProcessShell; import com.stericson.RootShell.RootShell; /** @@ -16,4 +17,29 @@ public class RootTool { return false; } } + + private static final String cmd = "enabled=$(settings get system pointer_location)\n" + + "pkg=%s\n" + + "if [[ $enabled == 1 ]]\n" + + "then\n" + + "settings put system pointer_location 0\n" + + "else\n" + + "settings put system pointer_location 1\n" + + "fi\n"; + + public static void togglePointerLocation() { + try { + ProcessShell.execCommand(cmd, true); + } catch (Exception ignored) { + ignored.printStackTrace(); + } + } + + public static void setPointerLocationEnabled(boolean enabled) { + try { + ProcessShell.execCommand("settings put system pointer_location " + (enabled ? 1 : 0), true); + } catch (Exception ignored) { + + } + } } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java index c3f23d60..c03c47a8 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/floating/CircularMenu.java @@ -79,6 +79,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp private Context mContext; private GlobalActionRecorder mRecorder; private MaterialDialog mSettingsDialog; + private MaterialDialog mLayoutInspectDialog; private String mRunningPackage, mRunningActivity; private Deferred mCaptureDeferred; @@ -182,10 +183,25 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp mRecorder.stop(); } + @Optional + @OnClick(R.id.layout_inspect) + void inspectLayout() { + mWindow.collapse(); + mLayoutInspectDialog = new OperationDialogBuilder(mContext) + .item(R.id.layout_bounds, R.drawable.ic_circular_menu_bounds, R.string.text_inspect_layout_bounds) + .item(R.id.layout_hierarchy, R.drawable.ic_circular_menu_hierarchy, + R.string.text_inspect_layout_hierarchy) + .bindItemClick(this) + .title(R.string.text_inspect_layout) + .build(); + DialogUtils.showDialog(mLayoutInspectDialog); + } + @Optional @OnClick(R.id.layout_bounds) void showLayoutBounds() { - mWindow.collapse(); + mLayoutInspectDialog.dismiss(); + mLayoutInspectDialog = null; if (!ensureCapture()) { return; } @@ -200,7 +216,8 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp @Optional @OnClick(R.id.layout_hierarchy) void showLayoutHierarchy() { - mWindow.collapse(); + mLayoutInspectDialog.dismiss(); + mLayoutInspectDialog = null; if (!ensureCapture()) { return; } @@ -212,6 +229,15 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp } + + @Optional + @OnClick(R.id.stop_all_scripts) + void stopAllScripts() { + mWindow.collapse(); + AutoJs.getInstance().getScriptEngineService().stopAllAndToast(); + } + + @Override public void onCaptureAvailable(NodeInfo capture) { if (mCaptureDeferred != null && mCaptureDeferred.isPending()) @@ -250,6 +276,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp .item(R.id.class_name, R.drawable.ic_ali_android, mContext.getString(R.string.text_current_activity) + mRunningActivity) .item(R.id.open_launcher, R.drawable.ic_android_eat_js, R.string.text_open_main_activity) + .item(R.id.pointer_location, R.drawable.ic_zoom_out_map_white_24dp, R.string.text_pointer_location) .item(R.id.exit, R.drawable.ic_close_white_48dp, R.string.text_exit_floating_window) .bindItemClick(this) .title(R.string.text_more) @@ -265,6 +292,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp AccessibilityServiceTool.enableAccessibilityService(); } + private void dismissSettingsDialog() { if (mSettingsDialog == null) return; @@ -300,6 +328,12 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } + @Optional + @OnClick(R.id.pointer_location) + void togglePointerLocation() { + dismissSettingsDialog(); + RootTool.togglePointerLocation(); + } @Optional @OnClick(R.id.exit) diff --git a/app/src/main/res/drawable-hdpi/ic_zoom_out_map_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_zoom_out_map_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..141adc875eb4c3c2186da9aa0d532de670c19d4e GIT binary patch literal 326 zcmV-M0lEH(P)kD87JpONf+i;|gt@>#2X{eB2A$FG!u6l6bB&V!`T2tZ60}E}NlXig z+8`APArIlW5hZmY_vXsQFETX>m0z@=Ff}C`zsOWkvIURmo(0O1BBR-%Ob}C~XG6gf zWknHb_9)Yr5hO2qe7|rCRsbAn2N69^0LD^AQ+qtL2*=OvwN ze@8Wc{AeiYW&8WJ*H0@-h7(sw%q?fuH4hR&qSQRmiB@wCbCAkPS_uk;=2Vb4Un>Jc zutZR?L74`cFr8t+$XD1Vs>!I9&YB%+Y?VW#!#0fSMGh51aEojel@(=w*+R?zW&h#f Y2^XS48L*_+Z2$lO07*qoM6N<$g8ajS2LJ#7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_zoom_out_map_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_zoom_out_map_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..b707939e0119242e7b05ed08f716ce93c3308fe6 GIT binary patch literal 235 zcmVHS&>y07F1zSR!ghFn0pfxWl^ zq>f#{9t%k&pIKwy2HZ$2v66jf3tP-Y26f>6bNjVNr{CEN&lci$f6)F~nbS&qF6sSu zDO^fTN95EHwCTW3V_wYrH!^Yji l2ZIJMrWIGI}_hM^ly2Ahf002ovPDHLkV1j_&WYYiu literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_zoom_out_map_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_zoom_out_map_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2182249ebc061cc9927d3601a9a0e7c67a55a702 GIT binary patch literal 332 zcmV-S0ki&zP)XmZfvtJ_pl*;C;nyT>8|}RjRrBtHUS+We+wL0 zK}aM5hvpFydf>nW=(2%R6X7x!cw4+QRALb>fLv z5`(fbJ4GKQ7}ceJ>Ge|L3e*6a-X#zMf?i0dfin}~Di?rG(vOf02nhzr280AXWCKEi e4%9%NM&lD#+%c|iINo7mBdMEfAY^f@E$vn^VNVgXX(T#spauvoY3&?t zYd-eZHWEGeP!hDqIob`Kf%Aa&jRP}CA9NZn(eCm{3_PLz;ByGXsi2+ZGr|?x1APYP z8SUrtp&*(-!da4T&>sI!V&wII&nVFf+D$$yhv7eQhIYB+C@B}TJetO!Q?y&! zKRE`FlIXZkkJE_{AfpfmUViAxmR7|9+(jZwk*`wvM2I!k`Own*&9&`|9#7TJ&#Ik#Q1E?&C z1E>XpSb$R$WF)Zo$pdYCXy~Y@_a8m>YiaCsUjJyeBm~WAvtN`dL!!A8PzK z*!CQ)Kds8(@X1n9?gLvXGZR>pY0tBZejPxj%L9ga{+x^rt$n+h&u!^p_F$GRKPT_` zm$Bi%XJ!UBiKVg3-ME@dK6@ozC-s1?JX*LDgE zYJTr)V3_v5)gZ>xg7xR)uRq-w7=BOW6-d}8$Z_BkW8+ilM#eYSr%D~#ysEq|a$-IU z+mA`_FRz>vuVf|8AgHp+4R@C+^*sSK=R!)=l^zwg1;Wevf0%>+hJJnZCum z$?LM>t?X&}EHTNGLuUE;#~iM)cfIuT!lF43el{fhyv?y|iiU$0Z@L)!)%NS{m)x43 z7B_^f`rLo3Z{;mEzYC%L!9K0eotvI2Hwfz7=bK>evpk#Qcpbw$rk(}HGx#}ny{lcc z`$3Jvk9p@A_oaSaY3cC6{}um>Y4L@}jF}F6?lk}fvIi`XpT4(|Js$TZd>8Y&#sB%I zocQyP!R5hE83Bh2Q$_e4SmvE)U}TB)`pDq);3p%43&##l4uJ|gh9^*O-eYceYmV{a S(qaat5C%_IKbLh*2~7aA@C_~i literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/circular_action_menu.xml b/app/src/main/res/layout/circular_action_menu.xml index 8683d964..95a7332a 100644 --- a/app/src/main/res/layout/circular_action_menu.xml +++ b/app/src/main/res/layout/circular_action_menu.xml @@ -29,26 +29,24 @@ android:src="@drawable/ic_ali_record"/> + android:src="@drawable/ic_circular_menu_bounds"/> + android:padding="8dp" + android:src="@drawable/ic_close_white_48dp"/> + android:src="@drawable/ic_circular_menu_settings"/> \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index 518e7de3..cb558626 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -8,4 +8,8 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2c1d3716..4364203b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -351,4 +351,8 @@ 正则表达式不能向前查找 通知 打包插件版本过低,打包的应用可能无法正常运行。是否立即下载对应版本的打包插件? + 布局范围分析 + 布局层次分析 + 布局分析 + 指针位置[Root]