From 9d489c17cd0d20ff9f6675d0fbe1630bb92186df Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 08:29:23 +0800 Subject: [PATCH 1/7] fix hyb1996-guest/AutoJsIssueReport#5188 --- app/build.gradle | 4 ++-- .../com/stardust/scriptdroid/ui/main/SideMenuFragment.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 29cc33e8..869eabfb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.stardust.scriptdroid" minSdkVersion 17 targetSdkVersion 23 - versionCode 143 - versionName "2.0.13 Beta2" + versionCode 145 + versionName "2.0.13 Beta3" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true ndk { diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java index 967091e4..3d257f3f 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java @@ -78,6 +78,9 @@ public class SideMenuFragment extends android.support.v4.app.Fragment { mExecutor.execute(new Runnable() { @Override public void run() { + if (mAccessibilityServiceSwitch == null) { + return; + } final boolean checked = AccessibilityService.isEnabled(App.getApp()); mAccessibilityServiceSwitch.post(new Runnable() { @Override From 32e07c6951a28cf1e7f38af8906df90bf15a1cce Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 08:32:54 +0800 Subject: [PATCH 2/7] fix hyb1996-guest/AutoJsIssueReport#5141 --- .../com/stardust/scriptdroid/ui/main/SideMenuFragment.java | 3 +++ .../com/stardust/autojs/execution/ScriptExecuteActivity.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java index 3d257f3f..0991db51 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/SideMenuFragment.java @@ -85,6 +85,9 @@ public class SideMenuFragment extends android.support.v4.app.Fragment { mAccessibilityServiceSwitch.post(new Runnable() { @Override public void run() { + if (mAccessibilityServiceSwitch == null) { + return; + } mAccessibilityServiceSwitch.setChecked(checked); } }); diff --git a/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java b/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java index 2f83c081..7ae23709 100644 --- a/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java +++ b/autojs/src/main/java/com/stardust/autojs/execution/ScriptExecuteActivity.java @@ -40,6 +40,10 @@ public class ScriptExecuteActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (execution == null) { + finish(); + return; + } mScriptSource = execution.getSource(); mScriptEngine = execution.getEngine(); mExecutionListener = execution.getListener(); From 077612fa057fca0effa6d8d5b58cf368cbaafb40 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 08:36:23 +0800 Subject: [PATCH 3/7] fix hyb1996-guest/AutoJsIssueReport#5116 --- .../stardust/scriptdroid/sublime/SublimePluginClient.java | 6 +++++- .../scriptdroid/sublime/SublimePluginService.java | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java index 1a6a28e8..cbd18af5 100644 --- a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java +++ b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginClient.java @@ -35,7 +35,7 @@ public class SublimePluginClient { } } - private Socket mSocket; + private volatile Socket mSocket; private Handler mResponseHandler; private String host; private int port; @@ -73,6 +73,10 @@ public class SublimePluginClient { }).start(); } + public boolean isListening() { + return mSocket != null; + } + private void tryClose() { try { close(); diff --git a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginService.java b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginService.java index 89c994ad..a7d37eba 100644 --- a/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginService.java +++ b/app/src/main/java/com/stardust/scriptdroid/sublime/SublimePluginService.java @@ -13,7 +13,7 @@ public class SublimePluginService { private static SublimePluginClient client; public static boolean isConnected() { - return client != null; + return client != null && client.isListening(); } public static void disconnectIfNeeded() { @@ -44,6 +44,10 @@ public class SublimePluginService { JsonObject object = new JsonObject(); object.addProperty("type", "log"); object.addProperty("log", log); - client.send(object); + try { + client.send(object); + } catch (IllegalStateException e) { + e.printStackTrace(); + } } } From fd2b5e5206b60a2839f3bad227b0c5b7b5c93e91 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 08:37:34 +0800 Subject: [PATCH 4/7] fix hyb1996-guest/AutoJsIssueReport#5097 --- .../scriptdroid/external/tasker/FireSettingReceiver.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/external/tasker/FireSettingReceiver.java b/app/src/main/java/com/stardust/scriptdroid/external/tasker/FireSettingReceiver.java index c811e59d..5a8acac9 100644 --- a/app/src/main/java/com/stardust/scriptdroid/external/tasker/FireSettingReceiver.java +++ b/app/src/main/java/com/stardust/scriptdroid/external/tasker/FireSettingReceiver.java @@ -32,7 +32,8 @@ public class FireSettingReceiver extends AbstractPluginSettingReceiver { @Override protected void firePluginSetting(@NonNull Context context, @NonNull Bundle bundle) { context.startActivity(new Intent(context, RunIntentActivity.class) - .putExtras(bundle)); + .putExtras(bundle) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } } From a660a98539fd5b83c1cc8605188d823744883f76 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 10:08:47 +0800 Subject: [PATCH 5/7] fix lag when click shortcut of script with dialog --- .../external/shortcut/Shortcut.java | 41 +++++++++++++++---- .../runtime/api/ui/BlockedMaterialDialog.java | 5 ++- .../autojs/runtime/api/ui/Dialogs.java | 5 ++- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java index ce00f41a..9087b4aa 100644 --- a/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java +++ b/app/src/main/java/com/stardust/scriptdroid/external/shortcut/Shortcut.java @@ -2,7 +2,7 @@ package com.stardust.scriptdroid.external.shortcut; import android.content.Context; import android.content.Intent; -import android.content.pm.PackageManager; +import android.graphics.Bitmap; import android.os.Bundle; /** @@ -15,9 +15,10 @@ public class Shortcut { private String mName; private String mTargetClass; private String mTargetPackage; - private Intent.ShortcutIconResource mIcon; + private Intent.ShortcutIconResource mIconRes; private boolean mDuplicate = false; private Intent mLaunchIntent = new Intent(); + private Bitmap mIcon; public Shortcut(Context context) { mContext = context; @@ -50,16 +51,32 @@ public class Shortcut { } - public Shortcut icon(Intent.ShortcutIconResource icon) { + public Shortcut iconRes(Intent.ShortcutIconResource icon) { + if (mIcon != null) { + throw new IllegalStateException("Cannot set both iconRes and icon"); + } + mIconRes = icon; + return this; + } + + public Shortcut iconRes(int resId) { + return iconRes(Intent.ShortcutIconResource.fromContext(mContext, resId)); + } + + + public Shortcut icon(Bitmap icon) { + if (mIconRes != null) { + throw new IllegalStateException("Cannot set both iconRes and icon"); + } mIcon = icon; return this; } - public Shortcut icon(int resId) { - mIcon = Intent.ShortcutIconResource.fromContext(mContext, resId); - return this; + public Intent.ShortcutIconResource getIconRes() { + return mIconRes; } + public Shortcut duplicate(boolean duplicate) { mDuplicate = duplicate; return this; @@ -69,7 +86,7 @@ public class Shortcut { return mName; } - public Intent.ShortcutIconResource getIcon() { + public Bitmap getIcon() { return mIcon; } @@ -86,12 +103,18 @@ public class Shortcut { } public Intent getCreateIntent() { - return new Intent(Intent.ACTION_CREATE_SHORTCUT) + Intent intent = new Intent(Intent.ACTION_CREATE_SHORTCUT) .putExtra(Intent.EXTRA_SHORTCUT_NAME, getName()) - .putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, getIcon()) .putExtra(Intent.EXTRA_SHORTCUT_INTENT, getLaunchIntent()) .putExtra("duplicate", isDuplicate()) .setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + Bitmap icon = getIcon(); + if (icon == null) { + intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, getIconRes()); + } else { + intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon); + } + return intent; } public Intent getLaunchIntent() { diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java index f86978bf..25004e3e 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/BlockedMaterialDialog.java @@ -36,8 +36,9 @@ public class BlockedMaterialDialog extends MaterialDialog { private boolean isActivityContext(Context context) { if (context == null) return false; - if (context instanceof Activity) - return true; + if (context instanceof Activity) { + return !((Activity) context).isFinishing(); + } if (context instanceof ContextWrapper) { return isActivityContext(((ContextWrapper) context).getBaseContext()); } diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java index 35d9a5ab..01f5c6bc 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/ui/Dialogs.java @@ -1,5 +1,6 @@ package com.stardust.autojs.runtime.api.ui; +import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.text.TextUtils; @@ -73,7 +74,7 @@ public class Dialogs { private Context getContext() { if (mThemeWrapper != null) return mThemeWrapper; - mThemeWrapper = new ContextThemeWrapper(mUiHandler.getContext(), R.style.Theme_AppCompat_Light); + mThemeWrapper = new ContextThemeWrapper(mUiHandler.getContext().getApplicationContext(), R.style.Theme_AppCompat_Light); return mThemeWrapper; } @@ -115,7 +116,7 @@ public class Dialogs { private BlockedMaterialDialog.Builder dialogBuilder() { Context context = mAppUtils.getCurrentActivity(); - if (context == null) { + if (context == null || ((Activity) context).isFinishing()) { context = getContext(); } return (BlockedMaterialDialog.Builder) new BlockedMaterialDialog.Builder(context, mUiHandler) From c6e31dcb4167d26ac5ca002f896975143d349e2c Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 9 Jul 2017 11:28:28 +0800 Subject: [PATCH 6/7] release 2.0.13 Beta3 for YingYongBao --- .../java/com/stardust/scriptdroid/Pref.java | 7 +++++- .../stardust/scriptdroid/script/Scripts.java | 3 ++- .../scriptdroid/ui/main/MainActivity.java | 3 +++ app/src/main/res/values/strings.xml | 2 +- autojs/src/main/assets/modules/__images__.js | 4 +++ .../autojs/runtime/api/image/Images.java | 25 +++++++++++++------ .../res/xml/accessibility_service_config.xml | 2 +- .../accessibility/AccessibilityService.java | 21 ++++------------ 8 files changed, 40 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/Pref.java b/app/src/main/java/com/stardust/scriptdroid/Pref.java index ec102dff..07f848d8 100644 --- a/app/src/main/java/com/stardust/scriptdroid/Pref.java +++ b/app/src/main/java/com/stardust/scriptdroid/Pref.java @@ -147,7 +147,12 @@ public class Pref { def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply(); return true; case "Off": - return false; + lastShowMillis = def().getLong(KEY_LAST_SHOW_AD_MILLIS, 0); + if (System.currentTimeMillis() - lastShowMillis < TimeUnit.DAYS.toMillis(2)) { + return false; + } + def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply(); + return true; } return true; } diff --git a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java index 7f2a2173..7fb2075f 100644 --- a/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java +++ b/app/src/main/java/com/stardust/scriptdroid/script/Scripts.java @@ -2,6 +2,7 @@ package com.stardust.scriptdroid.script; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.net.Uri; import com.stardust.autojs.execution.ExecutionConfig; @@ -69,7 +70,7 @@ public class Scripts { public static void createShortcut(ScriptFile scriptFile) { new Shortcut(App.getApp()).name(scriptFile.getSimplifiedName()) .targetClass(ShortcutActivity.class) - .icon(R.drawable.ic_node_js_black) + .iconRes(R.drawable.ic_node_js_black) .extras(new Intent().putExtra(CommonUtils.EXTRA_KEY_PATH, scriptFile.getPath())) .send(); } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java index a627887f..3973202c 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/main/MainActivity.java @@ -25,6 +25,7 @@ import android.widget.Toast; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; +import com.qq.e.comm.DownloadService; import com.stardust.app.FragmentPagerAdapterBuilder; import com.stardust.app.NotAskAgainDialog; import com.stardust.app.OnActivityResultDelegate; @@ -103,6 +104,8 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega EventBus.getDefault().register(this); mVersionGuard = new VersionGuard(this); showAnnunciationIfNeeded(); + //Stop download service of ad sdk + stopService(new Intent(this, DownloadService.class)); } @AfterViews diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f587aa81..0847fbc5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -224,7 +224,7 @@ 默认 每天显示一次 - 不显示 + 两天显示一次 diff --git a/autojs/src/main/assets/modules/__images__.js b/autojs/src/main/assets/modules/__images__.js index 559dea5c..e46d4566 100644 --- a/autojs/src/main/assets/modules/__images__.js +++ b/autojs/src/main/assets/modules/__images__.js @@ -10,6 +10,10 @@ module.exports = function(__runtime__, scope){ images.saveImage = __runtime__.images.saveImage.bind(__runtime__.images); + images.pixel = __runtime__.images.pixel; + + images.detectsColor = __runtime__.images.detectsColor.bind(__runtime__.images); + images.findColor = function(img, color, options){ if(typeof(color) == 'string'){ if(color.startsWith('#')){ diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java index 05b4cba5..9c51d107 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/image/Images.java @@ -5,15 +5,11 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Color; import android.graphics.Matrix; import android.media.Image; -import android.media.ImageReader; -import android.media.ImageWriter; -import android.media.MediaCodec; import android.os.Build; -import android.provider.ContactsContract; import android.support.annotation.RequiresApi; -import android.view.Surface; import com.stardust.autojs.runtime.AbstractScriptRuntime; import com.stardust.autojs.runtime.ScriptInterruptedException; @@ -29,7 +25,7 @@ import java.nio.ByteBuffer; /** * Created by Stardust on 2017/5/20. */ - +@RequiresApi(api = Build.VERSION_CODES.KITKAT) public class Images { private AbstractScriptRuntime mScriptRuntime; @@ -109,13 +105,28 @@ public class Images { public static int pixel(Image image, int x, int y) { Image.Plane plane = image.getPlanes()[0]; int offset = y * plane.getRowStride() + x * plane.getPixelStride(); - return plane.getBuffer().getInt(offset); + int c = plane.getBuffer().getInt(offset); + return (c & 0xff000000) + ((c & 0xff) << 16) + (c & 0x00ff00) + ((c & 0xff0000) >> 16); } public static int pixel(Bitmap bitmap, int x, int y) { return bitmap.getPixel(x, y); } + public boolean detectsColor(Image image, int x, int y, int color) { + if (image == null) + return false; + int pixel = pixel(image, x, y); + return colorFinder.defaultColorDetector(color).detectsColor(Color.red(pixel), Color.green(pixel), Color.blue(pixel)); + } + + public boolean detectsColor(Image image, int x, int y, int color, int threshold) { + if (image == null) + return false; + int pixel = pixel(image, x, y); + return colorFinder.defaultColorDetector(color, threshold).detectsColor(Color.red(pixel), Color.green(pixel), Color.blue(pixel)); + } + public static Bitmap read(String path) { return BitmapFactory.decodeFile(path); } diff --git a/autojs/src/main/res/xml/accessibility_service_config.xml b/autojs/src/main/res/xml/accessibility_service_config.xml index 11faefa4..28a7fdb7 100644 --- a/autojs/src/main/res/xml/accessibility_service_config.xml +++ b/autojs/src/main/res/xml/accessibility_service_config.xml @@ -2,7 +2,7 @@ Date: Sun, 9 Jul 2017 11:34:52 +0800 Subject: [PATCH 7/7] update version.json to 2.0.13 Beta3 --- version.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/version.json b/version.json index daae8864..32ef58b4 100644 --- a/version.json +++ b/version.json @@ -1,7 +1,7 @@ { - "versionCode": 137, - "versionName": "2.0.12 Beta", - "releaseNotes": "* 新增 安卓5.0以上免Root截图、保存与找色\n* 新增 电脑端Sublime Text 3插件的支持\n* 新增 Android7.0及以上支持免root任意坐标点击、点按、手势\n* 新增 界面相关API\n* 修复 部分机型上转屏时手机重启的问题\n", + "versionCode": 145, + "versionName": "2.0.13 Beta3", + "releaseNotes": "* 新增 脚本循环运行选项,可设置循环间隔、次数、延迟等(长按脚本)\n* 新增 兼容安卓4.2 (可能会崩溃\n* 新增 跳转悬浮窗权限适配\n* 新增 SublimeText插件支持保存脚本到手机\n* 增加 点赞群成员、名片顺序点赞、批量删除QQ好友脚本\n* 修复 一些bug", "downloads" : [ { "name": "酷安",