From c75337a76723f1166a87171fff24686a7517a054 Mon Sep 17 00:00:00 2001
From: hyb1996 <946994919@qq.com>
Date: Fri, 2 Feb 2018 18:30:08 +0800
Subject: [PATCH] api: colors.isSimilar, colors.equals fix: circular menu icon
is not circular when recording feat: splash ui for built apk docs: update to
latest docs fix: floating menu not showing automatically
---
app/src/main/assets/docs/images.html | 155 +++++++++++-------
app/src/main/assets/docs/overview.html | 1 +
app/src/main/assets/indices/all.json | 118 ++++++++++---
.../stardust/scriptdroid/ui/BaseActivity.java | 7 +-
.../scriptdroid/ui/floating/CircularMenu.java | 20 +--
.../ui/main/drawer/DrawerFragment.java | 1 +
.../main/res/layout/circular_action_view.xml | 3 +-
app/src/main/res/values/colors.xml | 1 +
app/src/main/res/values/dimens.xml | 2 +
autojs/src/main/AndroidManifest.xml | 1 +
autojs/src/main/assets/modules/__images__.js | 22 ++-
autojs/src/main/assets/modules/lodash.js | 29 ----
.../stardust/autojs/core/image/Colors.java | 24 ++-
.../res/drawable-mdpi/autojs_material.png | Bin 0 -> 90957 bytes
inrt/src/main/AndroidManifest.xml | 6 +
inrt/src/main/assets/roboto_medium.ttf | Bin 0 -> 172064 bytes
.../java/com/stardust/auojs/inrt/Pref.java | 9 +
.../stardust/auojs/inrt/SettingsActivity.java | 2 +-
.../stardust/auojs/inrt/SplashActivity.java | 36 ++++
inrt/src/main/res/layout/activity_main.xml | 6 +-
.../src/main/res/layout/activity_settings.xml | 6 +-
inrt/src/main/res/layout/activity_splash.xml | 22 +++
inrt/src/main/res/values/colors.xml | 6 -
inrt/src/main/res/values/strings.xml | 1 +
inrt/src/main/res/values/styles.xml | 11 ++
25 files changed, 343 insertions(+), 146 deletions(-)
delete mode 100644 autojs/src/main/assets/modules/lodash.js
create mode 100644 autojs/src/main/res/drawable-mdpi/autojs_material.png
create mode 100644 inrt/src/main/assets/roboto_medium.ttf
create mode 100644 inrt/src/main/java/com/stardust/auojs/inrt/SplashActivity.java
create mode 100644 inrt/src/main/res/layout/activity_splash.xml
delete mode 100644 inrt/src/main/res/values/colors.xml
diff --git a/app/src/main/assets/docs/images.html b/app/src/main/assets/docs/images.html
index 5b36f480..2221100e 100644
--- a/app/src/main/assets/docs/images.html
+++ b/app/src/main/assets/docs/images.html
@@ -2,7 +2,7 @@
-
Images#
+
colors#
+
在Auto.js有两种方式表示一个颜色。
+
一种是使用一个字符串"#AARRGGBB"或"#RRGGBB",其中 AA 是Alpha通道(透明度)的值,RR 是R通道(红色)的值,GG 是G通道(绿色)的值,BB是B通道(蓝色)的值。例如"#ffffff"表示白色, "#7F000000"表示半透明的黑色。
+
另一种是使用一个16进制的"32位整数" 0xAARRGGBB 来表示一个颜色,例如 0xFF112233表示颜色"#112233", 0x11223344表示颜色"#11223344"。
+
可以通过colors.toString()把颜色整数转换为字符串,通过colors.parseColor()把颜色字符串解析为颜色整数。
+
colors.toString(color)#
+
返回颜色值的字符串,格式为 "#AARRGGBB"。
+
colors.red(color)#
+
返回颜色color的R通道的值,范围0~255.
+
colors.green(color)#
+
返回颜色color的G通道的值,范围0~255.
+
colors.blue(color)#
+
返回颜色color的B通道的值,范围0~255.
+
colors.alpha(color)#
+
返回颜色color的Alpha通道的值,范围0~255.
+
colors.rgb(red, green, blue)#
+
返回这些颜色通道构成的整数颜色值。Alpha通道将是255(不透明)。
+
colors.argb(alpha, red, green, blue)#
+
返回这些颜色通道构成的整数颜色值。
+
colors.parseColor(colorStr)#
+
返回颜色的整数值。
+
colors.isSimilar(color2, color2[, threshold, algorithm])#
+
+color1 <number> | <string> 颜色值1
+color1 <number> | <string> 颜色值2
+threshold <number> 颜色相似度临界值,默认为4。取值范围为0~255。这个值越大表示允许的相似程度越小,如果这个值为0,则两个颜色相等时该函数才会返回true。
+algorithm <string> 颜色匹配算法,默认为"diff", 包括:
+- "diff": 差值匹配。与给定颜色的R、G、B差的绝对值之和小于threshold时匹配。
+- "rgb": rgb欧拉距离相似度。与给定颜色color的rgb欧拉距离小于等于threshold时匹配。
+- "rgb+": 加权rgb欧拉距离匹配(LAB Delta E)。
+- "hs": hs欧拉距离匹配。hs为HSV空间的色调值。
+
+
+- 返回 <Boolean>
+
+
返回两个颜色是否相似。
+
colors.equals(color1, color2)#
+
返回两个颜色是否相等。*注意该函数会忽略Alpha通道的值进行比较。
+
log(colors.equals("#112233", "#112234"));
+log(colors.equals(0xFF112233, 0xFF223344));
+
Images#
images模块提供了一些手机设备中常见的图片处理函数,包括截图、读写图片、图片剪裁、找色、找图等。
images.requestScreenCapture([landscape])#
向系统申请屏幕截图权限,返回是否请求成功。
第一次使用该函数会弹出截图权限请求,建议选择“总是允许”。
-
这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是[captureScreen][]。
-
该函数在截图脚本中只需执行一次,而无需每次调用[captureScreen][]都调用一次。
+
这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是captureScreen()。
+
该函数在截图脚本中只需执行一次,而无需每次调用captureScreen()都调用一次。
如果不指定landscape值,则截图方向由当前设备屏幕方向决定,因此务必注意执行该函数时的屏幕方向。
建议在本软件界面运行该函数,在其他软件界面运行时容易出现一闪而过的黑屏现象。
示例:
@@ -379,48 +464,6 @@ if(p){
threshold: threshold
})
该函数也可以作为全局函数使用。
-
colors#
-
colors是颜色处理的工具对象。包含一些常用方法,包括android.graphics.Color的所有方法以及toString方法。
-
colors.toString(color)#
-
返回颜色值的字符串,格式为 #AARRGGBB。
-
colors.red(color)#
-
返回颜色color的R通道的值,范围0~255.
-
colors.green(color)#
-
返回颜色color的G通道的值,范围0~255.
-
colors.blue(color)#
-
返回颜色color的B通道的值,范围0~255.
-
colors.alpha(color)#
-
返回颜色color的Alpha通道的值,范围0~255.
-
colors.rgb(red, green, blue)#
-
返回这些颜色通道构成的整数颜色值。Alpha通道将是255(不透明)。
-
colors.argb(alpha, red, green, blue)#
-
返回这些颜色通道构成的整数颜色值。
Image#
表示一张图片,可以是截图的图片,或者本地读取的图片,或者从网络获取的图片。
Image.getWidth()#
diff --git a/app/src/main/assets/docs/overview.html b/app/src/main/assets/docs/overview.html
index 41a2c3ae..2350f9f2 100644
--- a/app/src/main/assets/docs/overview.html
+++ b/app/src/main/assets/docs/overview.html
@@ -103,6 +103,7 @@
threads: 多线程支持。
ui: UI界面。用于显示自定义的UI界面,和用户交互。
+
除此之外,Auto.js内置了对Promise。
diff --git a/app/src/main/assets/indices/all.json b/app/src/main/assets/indices/all.json
index 1b9202a7..ed6a4d4a 100644
--- a/app/src/main/assets/indices/all.json
+++ b/app/src/main/assets/indices/all.json
@@ -53,28 +53,28 @@
},
{
"key": "openAppSetting",
- "url": "globals.html#globals_getappname_packagename",
+ "url": "app.html#app_app_openappsetting_packagename",
"summary": "应用设置页"
},
{
"key": "sendEmail",
- "url": "globals.html#globals_getappname_packagename",
- "summary": "应用设置页"
+ "url": "app.html#app_app_sendemail_options",
+ "summary": "发送邮件"
},
{
"key": "intent",
- "url": "globals.html#globals_getpackagename_appname",
- "summary": "获取包名"
+ "url": "app.html#app_app_intent_options",
+ "summary": "意图"
},
{
"key": "startActivity",
- "url": "globals.html#globals_getpackagename_appname",
- "summary": "获取包名"
+ "url": "app.html#app_app_startactivity_options",
+ "summary": "启动活动"
},
{
"key": "sendBroadcast",
- "url": "globals.html#globals_getpackagename_appname",
- "summary": "获取包名"
+ "url": "app.html#app_app_sendbroadcast_options",
+ "summary": "发送广播"
}
]
},
@@ -206,6 +206,26 @@
"key": "assert",
"url": "console.html#console_console_assert_value_message",
"summary": "断言"
+ },
+ {
+ "key": "input",
+ "url": "console.html#console_console_input_data_args",
+ "summary": "输入"
+ },
+ {
+ "key": "rawInput",
+ "url": "console.html#console_console_rawinput_data_args",
+ "summary": "输入字符串"
+ },
+ {
+ "key": "setSize",
+ "url": "console.html#console_console_setsize_w_h",
+ "summary": "输入字符串"
+ },
+ {
+ "key": "setPosition",
+ "url": "console.html#console_console_setposition_x_y",
+ "summary": "设置位置"
}
]
},
@@ -216,42 +236,42 @@
"properties": [
{
"key": "select",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_select_title_items_callback",
"summary": "选择"
},
{
"key": "singleChoice",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_singlechoice_title_items_index_callback",
"summary": "单选"
},
{
"key": "multiChoice",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_multichoice_title_items_indices_callback",
"summary": "多选"
},
{
"key": "rawInput",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_rawinput_title_prefill_callback",
"summary": "输入字符串"
},
{
"key": "input",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_input_title_prefill_callback",
"summary": "输入"
},
{
"key": "alert",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_alert_title_content_callback",
"summary": "消息框"
},
{
"key": "confirm",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_confirm_title_content_callback",
"summary": "确认框"
},
{
"key": "prompt",
- "url": "",
+ "url": "dialogs.html#dialogs_dialogs_prompt_title_prefill_callback",
"summary": "输入字符串"
}
]
@@ -262,8 +282,8 @@
"summary": "图色",
"properties": [
{
- "key": "saveImage",
- "url": "images.html#images_images_saveimage_image_path",
+ "key": "save",
+ "url": "images.html#images_images_save_image_path",
"summary": "保存图片"
},
{
@@ -273,12 +293,22 @@
},
{
"key": "read",
- "url": "",
+ "url": "images.html#images_images_read_path",
"summary": "读取图片"
},
+ {
+ "key": "load",
+ "url": "images.html#images_images_load_url",
+ "summary": "加载图片"
+ },
+ {
+ "key": "clip",
+ "url": "images.html#images_images_clip_img_x_y_w_h",
+ "summary": "剪切图片"
+ },
{
"key": "requestScreenCapture",
- "url": "images.html#images_requestscreencapture_width_height",
+ "url": "images.html#images_images_requestscreencapture_landscape",
"summary": "请求截屏",
"global": true
},
@@ -305,6 +335,29 @@
"url": "images.html#images_images_findcolorequals_img_color_x_y_width_height_threads",
"summary": "精确找色",
"global": true
+ },
+ {
+ "key": "findMultiColors",
+ "url": "images.html#images_images_clip_img_x_y_w_h",
+ "summary": "多点找色",
+ "global": true
+ },
+ {
+ "key": "detectsColor",
+ "url": "images.html#images_images_detectscolor_image_color_x_y_threshold_16_algorithm_diff",
+ "summary": "颜色检测"
+ },
+ {
+ "key": "findImage",
+ "url":"images.html#images_images_findimage_img_template_options",
+ "summary": "找图",
+ "global": true
+ },
+ {
+ "key": "findImageInRegion",
+ "url":"images.html#images_images_findimageinregion_img_template_x_y_width_height_threshold",
+ "summary": "区域找图",
+ "global": true
}
]
},
@@ -341,12 +394,27 @@
{
"key": "rgb",
"url": "images.html#images_colors_rgb_red_green_blue",
- "summary": ""
+ "summary": "RGB"
},
{
"key": "argb",
"url": "images.html#images_colors_argb_alpha_red_green_blue",
- "summary": ""
+ "summary": "ARGB"
+ },
+ {
+ "key": "parseColor",
+ "url": "images.html#images_colors_parsecolor_colorstr",
+ "summary": "字符串转颜色"
+ },
+ {
+ "key": "isSimilar",
+ "url": "images.html#images_colors_issimilar_color2_color2_threshold_algorithm",
+ "summary": "颜色相似"
+ },
+ {
+ "key": "equals",
+ "url": "images.html#images_colors_equals_color1_color2",
+ "summary": "颜色相等"
}
]
},
@@ -549,8 +617,8 @@
"summary": "创建文件"
},
{
- "key": "createIfNotExists",
- "url": "files.html#files_files_createifnotexists_path",
+ "key": "createWithDirs",
+ "url": "files.html#files_files_createwithdirs_path",
"summary": "创建文件"
},
{
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/BaseActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/BaseActivity.java
index 207d0923..62be27ea 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/BaseActivity.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/BaseActivity.java
@@ -85,12 +85,7 @@ public abstract class BaseActivity extends AppCompatActivity {
toolbar.setTitle(title);
activity.setSupportActionBar(toolbar);
if (activity.getSupportActionBar() != null) {
- toolbar.setNavigationOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- activity.finish();
- }
- });
+ toolbar.setNavigationOnClickListener(v -> activity.finish());
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
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 fb6ac6d0..a82f2858 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
@@ -5,14 +5,13 @@ import android.content.Intent;
import android.text.TextUtils;
import android.view.ContextThemeWrapper;
import android.view.View;
-import android.widget.ImageView;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
+import com.makeramen.roundedimageview.RoundedImageView;
import com.stardust.app.DialogUtils;
import com.stardust.app.OperationDialogBuilder;
import com.stardust.autojs.core.record.Recorder;
-import com.stardust.autojs.runtime.api.Dialogs;
import com.stardust.enhancedfloaty.FloatyService;
import com.stardust.floatingcircularactionmenu.CircularActionMenu;
import com.stardust.floatingcircularactionmenu.CircularActionMenuFloatingWindow;
@@ -34,7 +33,6 @@ import com.stardust.theme.dialog.ThemeColorMaterialDialogBuilder;
import com.stardust.util.ClipboardUtil;
import com.stardust.view.accessibility.LayoutInspector;
import com.stardust.view.accessibility.NodeInfo;
-import com.stericson.RootShell.RootShell;
import org.greenrobot.eventbus.EventBus;
import org.jdeferred.Deferred;
@@ -77,7 +75,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
CircularActionMenuFloatingWindow mWindow;
private int mState;
- private ImageView mActionViewIcon;
+ private RoundedImageView mActionViewIcon;
private Context mContext;
private GlobalActionRecorder mRecorder;
private MaterialDialog mSettingsDialog;
@@ -113,7 +111,7 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
@Override
public View inflateActionView(FloatyService service, CircularActionMenuFloatingWindow window) {
View actionView = View.inflate(service, R.layout.circular_action_view, null);
- mActionViewIcon = (ImageView) actionView.findViewById(R.id.icon);
+ mActionViewIcon = (RoundedImageView) actionView.findViewById(R.id.icon);
return actionView;
}
@@ -169,13 +167,13 @@ public class CircularMenu implements Recorder.OnStateChangedListener, LayoutInsp
mState = state;
mActionViewIcon.setImageResource(mState == STATE_RECORDING ? R.drawable.ic_ali_record :
IC_ACTION_VIEW);
+ // mActionViewIcon.setBackgroundColor(mState == STATE_RECORDING ? mContext.getResources().getColor(R.color.color_red) :
+ // Color.WHITE);
mActionViewIcon.setBackgroundResource(mState == STATE_RECORDING ? R.drawable.circle_red :
- 0);
- if (state == STATE_RECORDING) {
- mActionViewIcon.setPadding(28, 28, 28, 28);
- } else {
- mActionViewIcon.setPadding(0, 0, 0, 0);
- }
+ R.drawable.circle_white);
+ int padding = (int) mContext.getResources().getDimension(mState == STATE_RECORDING ?
+ R.dimen.padding_circular_menu_recording : R.dimen.padding_circular_menu_normal);
+ mActionViewIcon.setPadding(padding, padding, padding, padding);
EventBus.getDefault().post(new StateChangeEvent(mState, previousState));
}
diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java
index 760a1908..cae6b939 100644
--- a/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java
+++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/drawer/DrawerFragment.java
@@ -131,6 +131,7 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
ThemeColorManager.addViewBackground(mHeaderView);
initMenuItems();
if (Pref.isFloatingMenuShown()) {
+ FloatyWindowManger.showCircularMenu();
setChecked(mFloatingWindowItem, true);
}
setChecked(mConnectionItem, DevPluginService.getInstance().isConnected());
diff --git a/app/src/main/res/layout/circular_action_view.xml b/app/src/main/res/layout/circular_action_view.xml
index ae70d58f..af8682fa 100644
--- a/app/src/main/res/layout/circular_action_view.xml
+++ b/app/src/main/res/layout/circular_action_view.xml
@@ -10,8 +10,9 @@
android:layout_width="42dp"
android:layout_height="42dp"
android:background="@drawable/circle_white"
- android:padding="5dp"
+ android:padding="@dimen/padding_circular_menu_normal"
android:src="@drawable/ic_android_eat_js"
app:riv_corner_radius="16dp"
+ app:riv_mutate_background="true"
app:riv_oval="true"/>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index a872500f..360d82f4 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -10,4 +10,5 @@