From bea1e4d6258aa39369275e4bdf6f2694e437e3f4 Mon Sep 17 00:00:00 2001 From: shijian Date: Thu, 25 Jan 2018 18:33:49 +0800 Subject: [PATCH 1/7] unpack --- app/app.iml | 61 +++++++------------ .../hongbao/services/HongbaoService.java | 48 ++++++++++----- 2 files changed, 56 insertions(+), 53 deletions(-) diff --git a/app/app.iml b/app/app.iml index e62d9277..33c55a33 100644 --- a/app/app.iml +++ b/app/app.iml @@ -9,7 +9,6 @@ - + @@ -47,7 +46,6 @@ - @@ -55,7 +53,6 @@ - @@ -63,30 +60,25 @@ - - - - - - - - - - + + + + + + + - - @@ -96,22 +88,14 @@ - - + + - - - - - - - - @@ -121,19 +105,18 @@ - - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java b/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java index 3a954abb..f3ed42cd 100644 --- a/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java +++ b/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java @@ -7,19 +7,21 @@ import android.content.ComponentName; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.graphics.Path; import android.graphics.Rect; import android.os.Bundle; import android.os.Parcelable; -import android.graphics.Path; import android.preference.PreferenceManager; +import android.util.DisplayMetrics; import android.util.Log; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; -import android.util.DisplayMetrics; -import xyz.monkeytong.hongbao.utils.HongbaoSignature; -import xyz.monkeytong.hongbao.utils.PowerUtil; import java.util.List; +import java.util.Random; + +import xyz.monkeytong.hongbao.utils.HongbaoSignature; +import xyz.monkeytong.hongbao.utils.PowerUtil; public class HongbaoService extends AccessibilityService implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String WECHAT_DETAILS_EN = "Details"; @@ -55,15 +57,18 @@ public void onAccessibilityEvent(AccessibilityEvent event) { if (sharedPreferences == null) return; setCurrentActivityName(event); + Log.i("tone", "onAccessibilityEvent:检测到.. "); /* 检测通知消息 */ if (!mMutex) { + Log.i("tone", "onAccessibilityEvent:检测到-》通知 "); if (sharedPreferences.getBoolean("pref_watch_notification", false) && watchNotifications(event)) return; if (sharedPreferences.getBoolean("pref_watch_list", false) && watchList(event)) return; mListMutex = false; } if (!mChatMutex) { + Log.i("tone", "onAccessibilityEvent:检测到-》聊天 "); mChatMutex = true; if (sharedPreferences.getBoolean("pref_watch_chat", false)) watchChat(event); mChatMutex = false; @@ -79,18 +84,26 @@ private void watchChat(AccessibilityEvent event) { mUnpackNode = null; checkNodeInfo(event.getEventType()); - - /* 如果已经接收到红包并且还没有戳开 */ + Log.i("tone", "watchChat: 查找控件1-" + mLuckyMoneyReceived + mLuckyMoneyPicked + mReceiveNode); + //Log.i("tone", "watchChat: 查找控件"); if (mLuckyMoneyReceived && !mLuckyMoneyPicked && (mReceiveNode != null)) { mMutex = true; - + Log.i("tone", "watchChat: 准备戳开红包"); mReceiveNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK); mLuckyMoneyReceived = false; mLuckyMoneyPicked = true; } + Log.i("tone", "watchChat: 查找控件2-" + mUnpackCount + mUnpackNode); /* 如果戳开但还未领取 */ if (mUnpackCount == 1 && (mUnpackNode != null)) { - int delayFlag = sharedPreferences.getInt("pref_open_delay", 0) * 1000; + //int delayFlag = sharedPreferences.getInt("pref_open_delay", 0) * 1000; + int max = 500; + int min = 10; + //int delayFlag = (int)(Math.random() * 1000); + Random random = new Random(); + int delayFlag = random.nextInt(max) % (max - min + 1) + min; + Log.i("tone", "watchChat: 准备领取红包-" + delayFlag); + //Log.d("delay", "delay:" + delayFlag); new android.os.Handler().postDelayed( new Runnable() { public void run() { @@ -112,9 +125,10 @@ private void openPacket() { float dpi = metrics.density; if (android.os.Build.VERSION.SDK_INT <= 23) { mUnpackNode.performAction(AccessibilityNodeInfo.ACTION_CLICK); + Log.i("tone", "watchChat: <=23"); } else { if (android.os.Build.VERSION.SDK_INT > 23) { - + Log.i("tone", "watchChat: >23"); Path path = new Path(); if (640 == dpi) { path.moveTo(720, 1575); @@ -122,18 +136,19 @@ private void openPacket() { path.moveTo(540, 1060); } GestureDescription.Builder builder = new GestureDescription.Builder(); - GestureDescription gestureDescription = builder.addStroke(new GestureDescription.StrokeDescription(path, 450, 50)).build(); + GestureDescription gestureDescription = builder.addStroke(new GestureDescription.StrokeDescription + (path, 450, 50)).build(); dispatchGesture(gestureDescription, new GestureResultCallback() { @Override public void onCompleted(GestureDescription gestureDescription) { - Log.d("test", "onCompleted"); + Log.i("tone", "onCompleted"); mMutex = false; super.onCompleted(gestureDescription); } @Override public void onCancelled(GestureDescription gestureDescription) { - Log.d("test", "onCancelled"); + Log.i("tone", "onCancelled"); mMutex = false; super.onCancelled(gestureDescription); } @@ -159,6 +174,8 @@ private void setCurrentActivityName(AccessibilityEvent event) { } catch (PackageManager.NameNotFoundException e) { currentActivityName = WECHAT_LUCKMONEY_GENERAL_ACTIVITY; } + + Log.i("tone", "setCurrentActivityName: " + currentActivityName); } private boolean watchList(AccessibilityEvent event) { @@ -246,7 +263,8 @@ private void checkNodeInfo(int eventType) { /* 聊天会话窗口,遍历节点匹配“领取红包”和"查看红包" */ AccessibilityNodeInfo node1 = (sharedPreferences.getBoolean("pref_watch_self", false)) ? - this.getTheLastNode(WECHAT_VIEW_OTHERS_CH, WECHAT_VIEW_SELF_CH) : this.getTheLastNode(WECHAT_VIEW_OTHERS_CH); + this.getTheLastNode(WECHAT_VIEW_OTHERS_CH, WECHAT_VIEW_SELF_CH) : this.getTheLastNode + (WECHAT_VIEW_OTHERS_CH); if (node1 != null && (currentActivityName.contains(WECHAT_LUCKMONEY_CHATTING_ACTIVITY) || currentActivityName.contains(WECHAT_LUCKMONEY_GENERAL_ACTIVITY))) { @@ -261,7 +279,9 @@ private void checkNodeInfo(int eventType) { /* 戳开红包,红包还没抢完,遍历节点匹配“拆红包” */ AccessibilityNodeInfo node2 = findOpenButton(this.rootNodeInfo); - if (node2 != null && "android.widget.Button".equals(node2.getClassName()) && currentActivityName.contains(WECHAT_LUCKMONEY_RECEIVE_ACTIVITY)) { + + if (node2 != null && "android.widget.Button".equals(node2.getClassName()) && currentActivityName.contains + (WECHAT_LUCKMONEY_RECEIVE_ACTIVITY)) { mUnpackNode = node2; mUnpackCount += 1; return; From b271d1de8d8bb7423e2cd0591ebcd8ab21044da4 Mon Sep 17 00:00:00 2001 From: ray Date: Sat, 27 Jan 2018 19:47:21 +0800 Subject: [PATCH 2/7] update gradle to 3.3.1 , focus maven to aliyun F*U*C*K GFW --- .idea/misc.xml | 2 +- .idea/runConfigurations.xml | 12 +++++ WeChatLuckyMoney.iml | 3 +- app/app.iml | 61 ++++++------------------ build.gradle | 5 +- gradle.properties | 6 ++- gradle/wrapper/gradle-wrapper.properties | 4 +- 7 files changed, 40 insertions(+), 53 deletions(-) create mode 100644 .idea/runConfigurations.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 8ce21776..e53d66d2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,7 +27,7 @@ - + diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000..7f68460d --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/WeChatLuckyMoney.iml b/WeChatLuckyMoney.iml index cfb23148..96b0ac86 100644 --- a/WeChatLuckyMoney.iml +++ b/WeChatLuckyMoney.iml @@ -12,8 +12,9 @@ + - + \ No newline at end of file diff --git a/app/app.iml b/app/app.iml index e62d9277..ff5a60d2 100644 --- a/app/app.iml +++ b/app/app.iml @@ -9,7 +9,6 @@ - + @@ -47,7 +46,6 @@ - @@ -55,7 +53,6 @@ - @@ -63,7 +60,6 @@ - @@ -71,7 +67,6 @@ - @@ -79,14 +74,8 @@ - - - - - - @@ -96,44 +85,24 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index bcc276c1..2bae98b8 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,11 @@ buildscript { repositories { jcenter() + maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } + maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:3.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,5 +17,6 @@ buildscript { allprojects { repositories { jcenter() + maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 26aa5d36..1ef48162 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,12 +5,14 @@ # # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m +# Default value: -Xmx1024m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -#Sat Jul 23 18:07:53 CST 2016 +#Sat Jan 27 19:37:03 CST 2018 +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=1087 android.useDeprecatedNdk=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a75b41db..593bb86f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Jan 21 16:40:37 CST 2017 +#Sat Jan 27 19:41:50 CST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From 8a23d10757d8f1a8dad248d302687712e5519a62 Mon Sep 17 00:00:00 2001 From: ray Date: Fri, 9 Feb 2018 22:45:20 +0800 Subject: [PATCH 3/7] support travis ci --- .gitignore | 1 + .idea/misc.xml | 2 +- .travis.yml | 6 ++-- WeChatLuckyMoney.iml | 1 - app/app.iml | 77 +++++++++++++++++++++++++++++--------------- app/build.gradle | 4 +-- build.gradle | 3 -- 7 files changed, 58 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index e575f7ba..e5f037d1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /captures /.idea/dictionaries /monkeytong.jks +/app/release diff --git a/.idea/misc.xml b/.idea/misc.xml index e53d66d2..8ce21776 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,7 +27,7 @@ - + diff --git a/.travis.yml b/.travis.yml index 8cfb9f0c..d791822c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,12 @@ sudo: false jdk: oraclejdk8 env: matrix: - - ANDROID_TARGET=android-25 ANDROID_ABI=armeabi-v7a armeabi + - ANDROID_TARGET=android-26 ANDROID_ABI=armeabi-v7a armeabi android: components: - platform-tools - tools - - build-tools-25.0.2 + - build-tools-26.0.2 - android-N - extra licenses: @@ -16,7 +16,7 @@ licenses: - '.+' before_install: - openssl aes-256-cbc -K $encrypted_6b42a8524af0_key -iv $encrypted_6b42a8524af0_iv - -in monkeytong.jks.enc -out monkeytong.jks -d +-in monkeytong.jks.enc -out monkeytong.jks -d before_script: - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" diff --git a/WeChatLuckyMoney.iml b/WeChatLuckyMoney.iml index 96b0ac86..41c0903e 100644 --- a/WeChatLuckyMoney.iml +++ b/WeChatLuckyMoney.iml @@ -12,7 +12,6 @@ - diff --git a/app/app.iml b/app/app.iml index ab62283e..828fd78e 100644 --- a/app/app.iml +++ b/app/app.iml @@ -27,20 +27,21 @@ + - + - + @@ -48,6 +49,13 @@ + + + + + + + @@ -61,6 +69,7 @@ + @@ -68,33 +77,49 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 4bd7f314..4c658da2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,12 +2,12 @@ android { compileSdkVersion 25 - buildToolsVersion "25.0.2" + buildToolsVersion "26.0.2" useLibrary 'org.apache.http.legacy' defaultConfig { applicationId "xyz.monkeytong.hongbao" minSdkVersion 19 - targetSdkVersion 25 + targetSdkVersion 26 versionCode 5 versionName "v4.0.1" ndk { diff --git a/build.gradle b/build.gradle index 2bae98b8..96f030b9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,8 +3,6 @@ buildscript { repositories { jcenter() - maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' } - maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'} } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' @@ -17,6 +15,5 @@ buildscript { allprojects { repositories { jcenter() - maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} } } \ No newline at end of file From f95c2dc13628e3e3410cb8c028a24feb2cc57acf Mon Sep 17 00:00:00 2001 From: ray Date: Fri, 9 Feb 2018 22:49:53 +0800 Subject: [PATCH 4/7] fix travis ci error --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d791822c..26dece75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ licenses: - '.+' before_install: - openssl aes-256-cbc -K $encrypted_6b42a8524af0_key -iv $encrypted_6b42a8524af0_iv --in monkeytong.jks.enc -out monkeytong.jks -d + -in monkeytong.jks.enc -out monkeytong.jks -d before_script: - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" From 3a85897cb5b765cf425b679a8393046f9c87dd97 Mon Sep 17 00:00:00 2001 From: ray Date: Fri, 9 Feb 2018 23:05:22 +0800 Subject: [PATCH 5/7] downgrade gradle version --- app/app.iml | 38 +++++++++++++++----------------------- build.gradle | 2 +- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/app/app.iml b/app/app.iml index 828fd78e..7b4c607e 100644 --- a/app/app.iml +++ b/app/app.iml @@ -27,21 +27,20 @@ - + - + - @@ -49,13 +48,6 @@ - - - - - - - @@ -108,18 +100,18 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 96f030b9..33ebd9ac 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From ca97832f39d64f1b2026eb3ad5840c795677deb1 Mon Sep 17 00:00:00 2001 From: ray Date: Mon, 12 Feb 2018 17:05:45 +0800 Subject: [PATCH 6/7] update ui , replace uber with alipay luckymoney --- app/app.iml | 34 ++---- app/build.gradle | 10 +- .../hongbao/activities/MainActivity.java | 6 +- .../res/layout-v21/activity_preferences.xml | 42 +++++++ .../main/res/layout-v21/activity_webview.xml | 47 ++++++++ app/src/main/res/layout/activity_main.xml | 109 +++++++++--------- .../main/res/layout/activity_preferences.xml | 2 +- app/src/main/res/layout/activity_webview.xml | 14 +-- .../main/res/layout/preference_category.xml | 8 +- .../main/res/layout/preference_checkbox.xml | 12 +- .../main/res/layout/preference_seekbar.xml | 2 +- .../main/res/mipmap-xxhdpi/icon_alipay.png | Bin 0 -> 69662 bytes app/src/main/res/values-en/strings.xml | 9 +- app/src/main/res/values-w820dp/strings.xml | 5 + app/src/main/res/values/strings.xml | 9 +- build.gradle | 5 + 16 files changed, 198 insertions(+), 116 deletions(-) create mode 100644 app/src/main/res/layout-v21/activity_preferences.xml create mode 100644 app/src/main/res/layout-v21/activity_webview.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/icon_alipay.png create mode 100644 app/src/main/res/values-w820dp/strings.xml diff --git a/app/app.iml b/app/app.iml index 7b4c607e..118868fd 100644 --- a/app/app.iml +++ b/app/app.iml @@ -76,41 +76,27 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/app/build.gradle b/app/build.gradle index 4c658da2..a83b92e5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,9 +7,9 @@ android { defaultConfig { applicationId "xyz.monkeytong.hongbao" minSdkVersion 19 - targetSdkVersion 26 - versionCode 5 - versionName "v4.0.1" + targetSdkVersion 25 + versionCode 7 + versionName "v5.0.0" ndk { //设置支持的SO库架构 abiFilters 'armeabi', 'armeabi-v7a' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' @@ -40,6 +40,6 @@ android { //其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.0.1 compile 'com.tencent.bugly:nativecrashreport:latest.release' //其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0 - compile 'com.android.support:support-v4:25.1.0' - compile 'com.android.support:appcompat-v7:25.1.0' + compile 'com.android.support:support-v4:25.4.0' + compile 'com.android.support:appcompat-v7:25.4.0' } \ No newline at end of file diff --git a/app/src/main/java/xyz/monkeytong/hongbao/activities/MainActivity.java b/app/src/main/java/xyz/monkeytong/hongbao/activities/MainActivity.java index 3c1776e7..ec9c82bc 100644 --- a/app/src/main/java/xyz/monkeytong/hongbao/activities/MainActivity.java +++ b/app/src/main/java/xyz/monkeytong/hongbao/activities/MainActivity.java @@ -116,10 +116,8 @@ public void openGitHub(View view) { public void openUber(View view) { Intent webViewIntent = new Intent(this, WebViewActivity.class); - webViewIntent.putExtra("title", getString(R.string.webview_uber_title)); - String[] couponList = new String[]{"https://dc.tt/oTLtXH2BHsD", "https://dc.tt/ozFJHDnfLky"}; - int index = (int) (Math.random() * 2); - webViewIntent.putExtra("url", couponList[index]); + webViewIntent.putExtra("title", getString(R.string.webview_alipay_title)); + String[] couponList = new String[]{"https://render.alipay.com/p/f/fd-j6lzqrgm/guiderofmklvtvw.html?shareId=2088422430692204&campStr=p1j%2BdzkZl018zOczaHT4Z5CLdPVCgrEXq89JsWOx1gdt05SIDMPg3PTxZbdPw9dL&sign=DEqbE64SUB0qjRQGtu%2F0BPXN9YsSXM2zqLHT1X2ufDs%3D&scene=offlinePaymentNewSns"}; startActivity(webViewIntent); } diff --git a/app/src/main/res/layout-v21/activity_preferences.xml b/app/src/main/res/layout-v21/activity_preferences.xml new file mode 100644 index 00000000..06d96f22 --- /dev/null +++ b/app/src/main/res/layout-v21/activity_preferences.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout-v21/activity_webview.xml b/app/src/main/res/layout-v21/activity_webview.xml new file mode 100644 index 00000000..e50a23a7 --- /dev/null +++ b/app/src/main/res/layout-v21/activity_webview.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7c651f6d..033743fa 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,14 +2,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity" android:background="#fff"> + android:background="#E46C62" android:contentDescription="@string/todo" /> + android:layout_alignBottom="@id/layout_header" android:contentDescription="@string/todo" /> + android:layout_marginBottom="8dp" android:baselineAligned="false"> + android:layout_margin="10dp" android:contentDescription="@string/todo" /> + android:background="@mipmap/ic_start" android:contentDescription="@string/todo" /> + android:src="@mipmap/ic_settings" android:contentDescription="@string/todo" /> + + android:id="@+id/layout_alipay" + android:layout_width="match_parent" + android:layout_height="72dp" + android:layout_above="@+id/linearLayout2" + android:layout_alignParentBottom="false" + android:layout_marginBottom="8dp" + android:layout_marginLeft="12dp" + android:layout_marginRight="12dp" + android:layout_marginTop="8dp" + android:background="#ffffff" + android:onClick="openUber" + android:orientation="horizontal"> + + android:id="@+id/icon_uber" + android:layout_width="52dp" + android:layout_height="52dp" + android:layout_gravity="center_vertical" + android:layout_marginBottom="2dp" + android:layout_marginEnd="10dp" + android:layout_marginStart="8dp" + android:contentDescription="@string/todo" + android:src="@mipmap/icon_alipay" /> + + + - - + android:layout_margin="7dp" + android:text="@string/alipay_ad_text" + android:textColor="#e46c62" + android:textStyle="bold" + android:gravity="center" /> + android:layout_marginStart="15dp" + android:layout_marginEnd="5dp" + android:layout_gravity="center_vertical" android:contentDescription="@string/todo" /> diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml index 99f65d30..8c470b0c 100644 --- a/app/src/main/res/layout/activity_webview.xml +++ b/app/src/main/res/layout/activity_webview.xml @@ -16,8 +16,8 @@ android:text="@string/app_name" android:gravity="left|center_vertical|center_horizontal" android:elegantTextHeight="false" android:textSize="18sp" - android:layout_toRightOf="@+id/webview_back" - android:textColor="#fff"/> + android:layout_toEndOf="@+id/webview_back" + android:textColor="#fff" tools:targetApi="lollipop"/> + android:layout_alignParentTop="false" android:layout_alignParentStart="true" + android:cropToPadding="false" android:padding="10dp" android:focusable="true" android:contentDescription="@string/todo" /> + android:src="@mipmap/ic_open_in_browser" android:layout_alignParentEnd="true" + android:layout_marginStart="8dp" android:padding="8dp" android:contentDescription="@string/todo" android:focusable="true" /> + android:paddingStart="16dp" + android:paddingEnd="?android:attr/scrollbarSize" android:baselineAligned="false"> + android:paddingStart="16dp" + android:paddingEnd="?android:attr/scrollbarSize" android:baselineAligned="false"> @@ -29,7 +29,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@android:id/title" - android:layout_alignLeft="@android:id/title" + android:layout_alignStart="@android:id/title" android:textColor="#999" android:textSize="14sp" android:maxLines="4" /> @@ -40,7 +40,7 @@ diff --git a/app/src/main/res/layout/preference_seekbar.xml b/app/src/main/res/layout/preference_seekbar.xml index b3d569ae..fe2f41aa 100644 --- a/app/src/main/res/layout/preference_seekbar.xml +++ b/app/src/main/res/layout/preference_seekbar.xml @@ -11,7 +11,7 @@ \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/icon_alipay.png b/app/src/main/res/mipmap-xxhdpi/icon_alipay.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0b10d4b6dc2433a2f5ea354989a6de8a918808 GIT binary patch literal 69662 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 9c8fecdf..d8f2e79f 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1,6 +1,6 @@ Lucky Money - v4.0 + v5.0 ∠( ᐛ 」∠)_ Instructions ∠( ᐛ 」∠)_\n\n ○ Turn on the Accessibility switch\n ○ Go back to WeChat\n ○ Wait for money comes in\n\n Please submit your feedback on GitHub Issues Page~\n https://github.com/geeeeeeeeek/WeChatLuckyMoney Preferences An error occurred. Please manually update from GitHub Release Page. (ฅ´ω`ฅ) @@ -17,8 +17,7 @@ ca-app-pub-8428619221469478/4163694548 Community Settings - Your first trip is free up to ¥12 - Get Free Ride Now + Get Luckymoney Now this app on GitHub to support us Star @@ -26,7 +25,7 @@ Click 「WeChat Lucky Money」  An error occurred. Please manually open System Settings > Accessibility > WeChat Lucky Money. (ฅ´ω`ฅ) Project Homepage on GitHub - Uber Free Trip + Get Luckymoney Downloading… Redirecting to download page… Download Uber by clicking \"普通下载\" @@ -54,4 +53,6 @@ open red packets.  seconds  and then  + 延迟0秒拆开红包 + TODO \ No newline at end of file diff --git a/app/src/main/res/values-w820dp/strings.xml b/app/src/main/res/values-w820dp/strings.xml new file mode 100644 index 00000000..e2b4e415 --- /dev/null +++ b/app/src/main/res/values-w820dp/strings.xml @@ -0,0 +1,5 @@ + + + 延迟0秒拆开红包 + TODO + \ 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 336a2d94..f6db6b74 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ 微信红包 - v4.0 + v5.0 ∠( ᐛ 」∠)_使用指南∠( ᐛ 」∠)_\n\n ○ 狠戳插件开关\n ○ 回到微信聊天\n ○ 坐等红包进账\n\n 遇到问题, 欢迎通过 GitHub Issue 反馈~\n https://github.com/geeeeeeeeek/WeChatLuckyMoney 偏好设置 遇到一些问题,请前往GitHub手动更新喵(ฅ´ω`ฅ) @@ -17,8 +17,7 @@ ca-app-pub-8428619221469478/4163694548 社区 设置 - 首次乘车可获得 ¥12 优惠 - 立即获得免费乘车机会 + 立即获得红包!人人可领!天天可领! 在 GitHub 上 本项目,支持应用开源 Star @@ -26,7 +25,7 @@ 点击「微信红包」 遇到一些问题,请手动打开系统设置>无障碍服务>微信红包(ฅ´ω`ฅ) GitHub 项目主页 - Uber 优惠乘车 + 支付宝红包 正在后台下载 正在前往下载页面 点击\"普通下载\"获取 Uber @@ -54,4 +53,6 @@ 拆开红包 然后 + 延迟0秒拆开红包 + TODO \ No newline at end of file diff --git a/build.gradle b/build.gradle index 33ebd9ac..7bf072c2 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,10 @@ buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' @@ -15,5 +19,6 @@ buildscript { allprojects { repositories { jcenter() + google() } } \ No newline at end of file From ae31eec0b9e0fba014e2197ca2977ffd6ea98106 Mon Sep 17 00:00:00 2001 From: ray Date: Thu, 5 Apr 2018 17:50:58 +0800 Subject: [PATCH 7/7] fix can't detected new redpacket --- .idea/misc.xml | 2 +- .../hongbao/services/HongbaoService.java | 74 ++++++++---------- app/src/main/res/mipmap-xxhdpi/ic_uber.jpg | Bin 57686 -> 0 bytes 3 files changed, 32 insertions(+), 44 deletions(-) delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_uber.jpg diff --git a/.idea/misc.xml b/.idea/misc.xml index 8ce21776..e53d66d2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,7 +27,7 @@ - + diff --git a/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java b/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java index f3ed42cd..0ef84fad 100644 --- a/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java +++ b/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java @@ -7,23 +7,22 @@ import android.content.ComponentName; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.graphics.Path; import android.graphics.Rect; import android.os.Bundle; import android.os.Parcelable; +import android.graphics.Path; import android.preference.PreferenceManager; -import android.util.DisplayMetrics; import android.util.Log; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; - -import java.util.List; -import java.util.Random; - +import android.util.DisplayMetrics; import xyz.monkeytong.hongbao.utils.HongbaoSignature; import xyz.monkeytong.hongbao.utils.PowerUtil; +import java.util.List; + public class HongbaoService extends AccessibilityService implements SharedPreferences.OnSharedPreferenceChangeListener { + private static final String TAG = "HongbaoService"; private static final String WECHAT_DETAILS_EN = "Details"; private static final String WECHAT_DETAILS_CH = "红包详情"; private static final String WECHAT_BETTER_LUCK_EN = "Better luck next time!"; @@ -32,7 +31,7 @@ public class HongbaoService extends AccessibilityService implements SharedPrefer private static final String WECHAT_VIEW_SELF_CH = "查看红包"; private static final String WECHAT_VIEW_OTHERS_CH = "领取红包"; private static final String WECHAT_NOTIFICATION_TIP = "[微信红包]"; - private static final String WECHAT_LUCKMONEY_RECEIVE_ACTIVITY = "LuckyMoneyReceiveUI"; + private static final String WECHAT_LUCKMONEY_RECEIVE_ACTIVITY = ".plugin.luckymoney.ui";//com.tencent.mm/.plugin.luckymoney.ui.En_fba4b94f com.tencent.mm/com.tencent.mm.plugin.luckymoney.ui.LuckyMoneyReceiveUI private static final String WECHAT_LUCKMONEY_DETAIL_ACTIVITY = "LuckyMoneyDetailUI"; private static final String WECHAT_LUCKMONEY_GENERAL_ACTIVITY = "LauncherUI"; private static final String WECHAT_LUCKMONEY_CHATTING_ACTIVITY = "ChattingUI"; @@ -57,18 +56,15 @@ public void onAccessibilityEvent(AccessibilityEvent event) { if (sharedPreferences == null) return; setCurrentActivityName(event); - Log.i("tone", "onAccessibilityEvent:检测到.. "); /* 检测通知消息 */ if (!mMutex) { - Log.i("tone", "onAccessibilityEvent:检测到-》通知 "); if (sharedPreferences.getBoolean("pref_watch_notification", false) && watchNotifications(event)) return; if (sharedPreferences.getBoolean("pref_watch_list", false) && watchList(event)) return; mListMutex = false; } if (!mChatMutex) { - Log.i("tone", "onAccessibilityEvent:检测到-》聊天 "); mChatMutex = true; if (sharedPreferences.getBoolean("pref_watch_chat", false)) watchChat(event); mChatMutex = false; @@ -84,26 +80,20 @@ private void watchChat(AccessibilityEvent event) { mUnpackNode = null; checkNodeInfo(event.getEventType()); - Log.i("tone", "watchChat: 查找控件1-" + mLuckyMoneyReceived + mLuckyMoneyPicked + mReceiveNode); - //Log.i("tone", "watchChat: 查找控件"); - if (mLuckyMoneyReceived && !mLuckyMoneyPicked && (mReceiveNode != null)) { + + /* 如果已经接收到红包并且还没有戳开 */ + Log.d(TAG, "watchChat mLuckyMoneyReceived:" + mLuckyMoneyReceived + " mLuckyMoneyPicked:" + mLuckyMoneyPicked + " mReceiveNode:" + mReceiveNode); + if (mLuckyMoneyReceived && (mReceiveNode != null)) { mMutex = true; - Log.i("tone", "watchChat: 准备戳开红包"); + mReceiveNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK); mLuckyMoneyReceived = false; mLuckyMoneyPicked = true; } - Log.i("tone", "watchChat: 查找控件2-" + mUnpackCount + mUnpackNode); /* 如果戳开但还未领取 */ - if (mUnpackCount == 1 && (mUnpackNode != null)) { - //int delayFlag = sharedPreferences.getInt("pref_open_delay", 0) * 1000; - int max = 500; - int min = 10; - //int delayFlag = (int)(Math.random() * 1000); - Random random = new Random(); - int delayFlag = random.nextInt(max) % (max - min + 1) + min; - Log.i("tone", "watchChat: 准备领取红包-" + delayFlag); - //Log.d("delay", "delay:" + delayFlag); + Log.d(TAG, "戳开红包!" + " mUnpackCount: " + mUnpackCount + " mUnpackNode: " + mUnpackNode); + if (mUnpackCount >= 1 && (mUnpackNode != null)) { + int delayFlag = sharedPreferences.getInt("pref_open_delay", 0) * 1000; new android.os.Handler().postDelayed( new Runnable() { public void run() { @@ -122,33 +112,33 @@ public void run() { private void openPacket() { DisplayMetrics metrics = getResources().getDisplayMetrics(); - float dpi = metrics.density; + float dpi = metrics.densityDpi; + Log.d(TAG, "openPacket!" + dpi); if (android.os.Build.VERSION.SDK_INT <= 23) { mUnpackNode.performAction(AccessibilityNodeInfo.ACTION_CLICK); - Log.i("tone", "watchChat: <=23"); } else { if (android.os.Build.VERSION.SDK_INT > 23) { - Log.i("tone", "watchChat: >23"); Path path = new Path(); - if (640 == dpi) { + if (640 == dpi) { //1440 path.moveTo(720, 1575); - } else { - path.moveTo(540, 1060); + } else if(320 == dpi){//720p + path.moveTo(355, 780); + }else if(480 == dpi){//1080p + path.moveTo(533, 1115); } GestureDescription.Builder builder = new GestureDescription.Builder(); - GestureDescription gestureDescription = builder.addStroke(new GestureDescription.StrokeDescription - (path, 450, 50)).build(); + GestureDescription gestureDescription = builder.addStroke(new GestureDescription.StrokeDescription(path, 450, 50)).build(); dispatchGesture(gestureDescription, new GestureResultCallback() { @Override public void onCompleted(GestureDescription gestureDescription) { - Log.i("tone", "onCompleted"); + Log.d(TAG, "onCompleted"); mMutex = false; super.onCompleted(gestureDescription); } @Override public void onCancelled(GestureDescription gestureDescription) { - Log.i("tone", "onCancelled"); + Log.d(TAG, "onCancelled"); mMutex = false; super.onCancelled(gestureDescription); } @@ -174,8 +164,6 @@ private void setCurrentActivityName(AccessibilityEvent event) { } catch (PackageManager.NameNotFoundException e) { currentActivityName = WECHAT_LUCKMONEY_GENERAL_ACTIVITY; } - - Log.i("tone", "setCurrentActivityName: " + currentActivityName); } private boolean watchList(AccessibilityEvent event) { @@ -263,8 +251,7 @@ private void checkNodeInfo(int eventType) { /* 聊天会话窗口,遍历节点匹配“领取红包”和"查看红包" */ AccessibilityNodeInfo node1 = (sharedPreferences.getBoolean("pref_watch_self", false)) ? - this.getTheLastNode(WECHAT_VIEW_OTHERS_CH, WECHAT_VIEW_SELF_CH) : this.getTheLastNode - (WECHAT_VIEW_OTHERS_CH); + this.getTheLastNode(WECHAT_VIEW_OTHERS_CH, WECHAT_VIEW_SELF_CH) : this.getTheLastNode(WECHAT_VIEW_OTHERS_CH); if (node1 != null && (currentActivityName.contains(WECHAT_LUCKMONEY_CHATTING_ACTIVITY) || currentActivityName.contains(WECHAT_LUCKMONEY_GENERAL_ACTIVITY))) { @@ -279,9 +266,9 @@ private void checkNodeInfo(int eventType) { /* 戳开红包,红包还没抢完,遍历节点匹配“拆红包” */ AccessibilityNodeInfo node2 = findOpenButton(this.rootNodeInfo); - - if (node2 != null && "android.widget.Button".equals(node2.getClassName()) && currentActivityName.contains - (WECHAT_LUCKMONEY_RECEIVE_ACTIVITY)) { + Log.d(TAG, "checkNodeInfo node2 " + node2); + if (node2 != null && "android.widget.Button".equals(node2.getClassName()) && currentActivityName.contains(WECHAT_LUCKMONEY_RECEIVE_ACTIVITY) + && (mUnpackNode == null || mUnpackNode != null && !mUnpackNode.equals(node2))) { mUnpackNode = node2; mUnpackCount += 1; return; @@ -291,7 +278,8 @@ private void checkNodeInfo(int eventType) { boolean hasNodes = this.hasOneOfThoseNodes( WECHAT_BETTER_LUCK_CH, WECHAT_DETAILS_CH, WECHAT_BETTER_LUCK_EN, WECHAT_DETAILS_EN, WECHAT_EXPIRES_CH); - if (mMutex && eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && hasNodes + Log.d(TAG, "checkNodeInfo hasNodes:" + hasNodes + " mMutex:"+ mMutex); + if ( eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && hasNodes && (currentActivityName.contains(WECHAT_LUCKMONEY_DETAIL_ACTIVITY) || currentActivityName.contains(WECHAT_LUCKMONEY_RECEIVE_ACTIVITY))) { mMutex = false; @@ -402,4 +390,4 @@ private String generateCommentString() { return wordsArray[(int) (Math.random() * wordsArray.length)]; } } -} +} \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_uber.jpg b/app/src/main/res/mipmap-xxhdpi/ic_uber.jpg deleted file mode 100644 index 0f7d25023967a53f54bdd9872e8fc27accb9cdec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57686 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 V^T>$j(fWC0#PewVJTl_>CIIlwl`;ST