diff --git a/CHANGELOG.md b/CHANGELOG.md
index 493d93f8..ee27d9f1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,26 @@
# 更新日志
-**[v2.1 (2016.01.30)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.1)**
+**[v2.2 (2016.02.04)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.2)**
+
+- 新增 延时拆开红包的可选项
+
+
+- 新增 跳转至浏览器打开的入口
+- 新增 接入腾讯Bugly
+- 新增 自动回复的可选项(实验中)
+
+
+- 优化 手动拆开的红包不返回
+
+
+- 优化 适配三星等坑爹机型 (感谢 [@firesunCN](https://github.com/firesunCN) 对这项修改的贡献)
+
+
+- 修复 拆开红包后的多次返回问题
+
+
+
+**[v2.1 (2016.01.30)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.1.1)**
- 新增 屏蔽指定红包文字的可选项
diff --git a/README.md b/README.md
index ed91a537..e2ee2d43 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,6 @@
# 微信红包
-[![forthebadge](http://forthebadge.com/images/badges/designed-in-ms-paint.svg)](http://forthebadge.com)[![forthebadge](http://forthebadge.com/images/badges/powered-by-electricity.svg)](http://forthebadge.com)
-
-[![Gitter](https://badges.gitter.im/geeeeeeeeek/WeChatLuckyMoney.svg)](https://gitter.im/geeeeeeeeek/WeChatLuckyMoney?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge) [![Build Status](https://travis-ci.org/geeeeeeeeek/WeChatLuckyMoney.svg?branch=stable)](https://travis-ci.org/geeeeeeeeek/WeChatLuckyMoney) [**README IN ENGLISH**](https://github.com/geeeeeeeeek/WeChatLuckyMoney/blob/stable/README_EN.md)
+[![Gitter](https://badges.gitter.im/geeeeeeeeek/WeChatLuckyMoney.svg)](https://gitter.im/geeeeeeeeek/WeChatLuckyMoney?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge) [![Build Status](https://travis-ci.org/geeeeeeeeek/WeChatLuckyMoney.svg?branch=stable)](https://travis-ci.org/geeeeeeeeek/WeChatLuckyMoney) [**ENGLISH**](https://github.com/geeeeeeeeek/WeChatLuckyMoney/blob/stable/README_EN.md)
一个帮助你在微信抢红包时战无不胜的Android应用。自动检测并且拆开红包,速度超乎你的想象。
@@ -16,7 +14,7 @@
- **不仅快人一步,红包识别更加智能**
- 多种特征标识,聊天时不再重复点击红包。智能过滤红包关键字[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/97),避免落入“专属红包”、“抢到翻倍”的陷阱。
+ 多种特征标识,聊天时不再重复点击红包。智能过滤红包关键字[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/97),避免落入“专属红包”、“抢到翻倍”的陷阱。还可以设置延时抢红包和自动回复感谢语[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/118)。
- **紧跟微信更新,内置最新春节红包资讯**
diff --git a/app/build.gradle b/app/build.gradle
index 9f4416f0..4fbebb5f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,7 +9,7 @@ android {
minSdkVersion 16
targetSdkVersion 22
versionCode 2
- versionName "v2.1.1"
+ versionName "v2.2"
ndk {
//设置支持的SO库架构
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 84a01ad1..846872ea 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,11 +4,11 @@
-
+
-
-
+
+
+ android:theme="@style/Base.Theme.AppCompat.Light"
+ android:launchMode="singleTask">
+ android:theme="@style/Base.Theme.AppCompat.Light"
+ android:launchMode="standard">
+ android:theme="@style/Base.Theme.AppCompat.Light"
+ android:launchMode="standard">
0) excludeWordsPref.setSummary(summary + ":" + value);
-
- excludeWordsPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object o) {
- String summary = getResources().getString(R.string.pref_watch_exclude_words_summary);
- if (o != null && o.toString().length() > 0) preference.setSummary(summary + ":" + o.toString());
- return true;
- }
- });
+ private void prepareSettings() {
+ String title, fragId;
+ Bundle bundle = getIntent().getExtras();
+ if (bundle != null) {
+ title = bundle.getString("title");
+ fragId = bundle.getString("frag_id");
+ } else {
+ title = "偏好设置";
+ fragId = "GeneralSettingsFragment";
+ }
+
+ TextView textView = (TextView) findViewById(R.id.settings_bar);
+ textView.setText(title);
+
+ FragmentManager fragmentManager = getFragmentManager();
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+
+ if ("GeneralSettingsFragment".equals(fragId)) {
+ fragmentTransaction.replace(R.id.preferences_fragment, new GeneralSettingsFragment());
+ } else if ("CommentSettingsFragment".equals(fragId)) {
+ fragmentTransaction.replace(R.id.preferences_fragment, new CommentSettingsFragment());
+ }
+ fragmentTransaction.commit();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void loadUI() {
- setContentView(R.layout.activity_preferences);
- addPreferencesFromResource(R.xml.preferences);
-
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return;
Window window = this.getWindow();
@@ -80,7 +75,6 @@ private void loadUI() {
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(0xffd84e43);
-
}
@Override
diff --git a/app/src/main/java/xyz/monkeytong/hongbao/activities/WebViewActivity.java b/app/src/main/java/xyz/monkeytong/hongbao/activities/WebViewActivity.java
index 8c1e4003..9d90c4a5 100644
--- a/app/src/main/java/xyz/monkeytong/hongbao/activities/WebViewActivity.java
+++ b/app/src/main/java/xyz/monkeytong/hongbao/activities/WebViewActivity.java
@@ -29,6 +29,7 @@
*/
public class WebViewActivity extends Activity {
private WebView webView;
+ private String webViewUrl, webViewTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -38,8 +39,8 @@ protected void onCreate(Bundle savedInstanceState) {
Bundle bundle = getIntent().getExtras();
if (bundle != null && !bundle.isEmpty()) {
- String webViewTitle = bundle.getString("title");
- String webViewUrl = bundle.getString("url");
+ webViewTitle = bundle.getString("title");
+ webViewUrl = bundle.getString("url");
TextView webViewBar = (TextView) findViewById(R.id.webview_bar);
webViewBar.setText(webViewTitle);
@@ -105,4 +106,10 @@ public boolean onKeyDown(int keyCode, KeyEvent event) {
}
return super.onKeyDown(keyCode, event);
}
+
+ public void openLink(View view) {
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(this.webViewUrl));
+ startActivity(intent);
+ }
}
diff --git a/app/src/main/java/xyz/monkeytong/hongbao/fragments/CommentSettingsFragment.java b/app/src/main/java/xyz/monkeytong/hongbao/fragments/CommentSettingsFragment.java
new file mode 100644
index 00000000..2e3488fd
--- /dev/null
+++ b/app/src/main/java/xyz/monkeytong/hongbao/fragments/CommentSettingsFragment.java
@@ -0,0 +1,47 @@
+package xyz.monkeytong.hongbao.fragments;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+import android.widget.Toast;
+import xyz.monkeytong.hongbao.R;
+
+/**
+ * Created by Zhongyi on 2/4/16.
+ */
+public class CommentSettingsFragment extends PreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.comment_preferences);
+ setPrefListeners();
+ }
+
+ private void setPrefListeners() {
+ Preference updatePref = findPreference("pref_comment_switch");
+ if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ updatePref.setEnabled(false);
+ }
+ Toast.makeText(getActivity(), "该功能尚处于实验中,只能自动填充感谢语,无法直接发送.", Toast.LENGTH_LONG).show();
+
+ Preference commentWordsPref = findPreference("pref_comment_words");
+ String summary = getResources().getString(R.string.pref_comment_words_summary);
+ String value = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("pref_comment_words", "");
+ if (value.length() > 0) commentWordsPref.setSummary(summary + ":" + value);
+
+ commentWordsPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object o) {
+ String summary = getResources().getString(R.string.pref_comment_words_summary);
+ if (o != null && o.toString().length() > 0) {
+ preference.setSummary(summary + ":" + o.toString());
+ } else {
+ preference.setSummary(summary);
+ }
+ return true;
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/xyz/monkeytong/hongbao/fragments/GeneralSettingsFragment.java b/app/src/main/java/xyz/monkeytong/hongbao/fragments/GeneralSettingsFragment.java
new file mode 100644
index 00000000..2e11b4dd
--- /dev/null
+++ b/app/src/main/java/xyz/monkeytong/hongbao/fragments/GeneralSettingsFragment.java
@@ -0,0 +1,64 @@
+package xyz.monkeytong.hongbao.fragments;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+import xyz.monkeytong.hongbao.R;
+import xyz.monkeytong.hongbao.activities.WebViewActivity;
+import xyz.monkeytong.hongbao.utils.UpdateTask;
+
+/**
+ * Created by Zhongyi on 2/4/16.
+ */
+public class GeneralSettingsFragment extends PreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.general_preferences);
+ setPrefListeners();
+ }
+
+ private void setPrefListeners() {
+ // Check for updates
+ Preference updatePref = findPreference("pref_etc_check_update");
+ updatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ public boolean onPreferenceClick(Preference preference) {
+ new UpdateTask(getActivity().getApplicationContext(), true).update();
+ return false;
+ }
+ });
+
+ // Open issue
+ Preference issuePref = findPreference("pref_etc_issue");
+ issuePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ public boolean onPreferenceClick(Preference preference) {
+ Intent webViewIntent = new Intent(getActivity(), WebViewActivity.class);
+ webViewIntent.putExtra("title", "Github Issues");
+ webViewIntent.putExtra("url", getString(R.string.url_github_issues));
+ webViewIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(webViewIntent);
+ return false;
+ }
+ });
+
+ Preference excludeWordsPref = findPreference("pref_watch_exclude_words");
+ String summary = getResources().getString(R.string.pref_watch_exclude_words_summary);
+ String value = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("pref_watch_exclude_words", "");
+ if (value.length() > 0) excludeWordsPref.setSummary(summary + ":" + value);
+
+ excludeWordsPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object o) {
+ String summary = getResources().getString(R.string.pref_watch_exclude_words_summary);
+ if (o != null && o.toString().length() > 0) {
+ preference.setSummary(summary + ":" + o.toString());
+ } else {
+ preference.setSummary(summary);
+ }
+ return true;
+ }
+ });
+ }
+}
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 9e4554d9..814759c6 100644
--- a/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java
+++ b/app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java
@@ -1,17 +1,22 @@
package xyz.monkeytong.hongbao.services;
import android.accessibilityservice.AccessibilityService;
+import android.app.Instrumentation;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Rect;
+import android.os.Bundle;
+import android.os.IBinder;
import android.os.Parcelable;
import android.preference.PreferenceManager;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
+import xyz.monkeytong.hongbao.activities.MainActivity;
import xyz.monkeytong.hongbao.utils.HongbaoSignature;
import xyz.monkeytong.hongbao.utils.PowerUtil;
@@ -33,7 +38,8 @@ public class HongbaoService extends AccessibilityService implements SharedPrefer
private String currentActivityName = WECHAT_LUCKMONEY_GENERAL_ACTIVITY;
private AccessibilityNodeInfo rootNodeInfo, mReceiveNode, mUnpackNode;
- private boolean mLuckyMoneyPicked, mLuckyMoneyReceived, mNeedUnpack;
+ private boolean mLuckyMoneyPicked, mLuckyMoneyReceived;
+ private int mUnpackCount = 0;
private boolean mMutex = false;
private HongbaoSignature signature = new HongbaoSignature();
@@ -41,7 +47,7 @@ public class HongbaoService extends AccessibilityService implements SharedPrefer
private SharedPreferences sharedPreferences;
/**
- * AccessibilityEvent的回调方法
+ * AccessibilityEvent
*
* @param event 事件
*/
@@ -74,16 +80,26 @@ private void watchChat(AccessibilityEvent event) {
if (mLuckyMoneyReceived && !mLuckyMoneyPicked && (mReceiveNode != null)) {
mMutex = true;
- AccessibilityNodeInfo cellNode = mReceiveNode;
- cellNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);
+ mReceiveNode.getParent().performAction(AccessibilityNodeInfo.ACTION_CLICK);
mLuckyMoneyReceived = false;
mLuckyMoneyPicked = true;
}
/* 如果戳开但还未领取 */
- if (mNeedUnpack && (mUnpackNode != null)) {
- AccessibilityNodeInfo cellNode = mUnpackNode;
- cellNode.performAction(AccessibilityNodeInfo.ACTION_CLICK);
- mNeedUnpack = false;
+ if (mUnpackCount == 1 && (mUnpackNode != null)) {
+ int delayFlag = sharedPreferences.getInt("pref_open_delay", 0) * 1000;
+ new android.os.Handler().postDelayed(
+ new Runnable() {
+ public void run() {
+ try {
+ mUnpackNode.performAction(AccessibilityNodeInfo.ACTION_CLICK);
+ } catch (Exception e) {
+ mMutex = false;
+ mLuckyMoneyPicked = false;
+ mUnpackCount = 0;
+ }
+ }
+ },
+ delayFlag);
}
}
@@ -106,11 +122,12 @@ private void setCurrentActivityName(AccessibilityEvent event) {
}
private boolean watchList(AccessibilityEvent event) {
+ AccessibilityNodeInfo eventSource = event.getSource();
// Not a message
- if (event.getEventType() != AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED || event.getSource() == null)
+ if (event.getEventType() != AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED || eventSource == null)
return false;
- List nodes = event.getSource().findAccessibilityNodeInfosByText(WECHAT_NOTIFICATION_TIP);
+ List nodes = eventSource.findAccessibilityNodeInfosByText(WECHAT_NOTIFICATION_TIP);
if (!nodes.isEmpty()) {
AccessibilityNodeInfo nodeToClick = nodes.get(0);
CharSequence contentDescription = nodeToClick.getContentDescription();
@@ -153,15 +170,15 @@ public void onInterrupt() {
}
/**
- * 递归查找拆红包按钮
+ * 红包 钮
*/
private AccessibilityNodeInfo findOpenButton(AccessibilityNodeInfo node) {
- if (node==null)
+ if (node == null)
return null;
//非layout元素
if (node.getChildCount() == 0) {
- if("android.widget.Button".equals(node.getClassName()))
+ if ("android.widget.Button".equals(node.getClassName()))
return node;
else
return null;
@@ -170,18 +187,23 @@ private AccessibilityNodeInfo findOpenButton(AccessibilityNodeInfo node) {
//layout元素,遍历找button
for (int i = 0; i < node.getChildCount(); i++) {
AccessibilityNodeInfo button = findOpenButton(node.getChild(i));
- if(button != null)
+ if (button != null)
return button;
}
return null;
}
/**
- * 检查节点信息
+ * 节 信
*/
private void checkNodeInfo(int eventType) {
if (this.rootNodeInfo == null) return;
+ if (signature.commentString != null) {
+ sendComment();
+ signature.commentString = null;
+ }
+
/* 聊天会话窗口,遍历节点匹配“领取红包”和"查看红包" */
AccessibilityNodeInfo node1 = (sharedPreferences.getBoolean("pref_watch_self", false)) ?
this.getTheLastNode(WECHAT_VIEW_OTHERS_CH, WECHAT_VIEW_SELF_CH) : this.getTheLastNode(WECHAT_VIEW_OTHERS_CH);
@@ -199,7 +221,7 @@ 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)) {
mUnpackNode = node2;
- mNeedUnpack = true;
+ mUnpackCount += 1;
return;
}
@@ -207,12 +229,31 @@ 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 (eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && hasNodes
+ if (mMutex && eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED && hasNodes
&& (currentActivityName.contains(WECHAT_LUCKMONEY_DETAIL_ACTIVITY)
|| currentActivityName.contains(WECHAT_LUCKMONEY_RECEIVE_ACTIVITY))) {
mMutex = false;
mLuckyMoneyPicked = false;
+ mUnpackCount = 0;
performGlobalAction(GLOBAL_ACTION_BACK);
+ signature.commentString = generateCommentString();
+ }
+ }
+
+ private void sendComment() {
+ try {
+ AccessibilityNodeInfo outNode =
+ getRootInActiveWindow().getChild(0).getChild(0);
+ AccessibilityNodeInfo nodeToInput = outNode.getChild(outNode.getChildCount() - 1).getChild(0).getChild(1);
+
+ if ("android.widget.EditText".equals(nodeToInput.getClassName())) {
+ Bundle arguments = new Bundle();
+ arguments.putCharSequence(AccessibilityNodeInfo
+ .ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, signature.commentString);
+ nodeToInput.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
+ }
+ } catch (Exception e) {
+ // Not support
}
}
@@ -244,6 +285,11 @@ private AccessibilityNodeInfo getTheLastNode(String... texts) {
if (bounds.bottom > bottom) {
bottom = bounds.bottom;
lastNode = node;
+ if (text.equals(WECHAT_VIEW_OTHERS_CH)) {
+ signature.others = true;
+ } else {
+ signature.others = false;
+ }
}
}
}
@@ -278,4 +324,21 @@ public void onDestroy() {
this.powerUtil.handleWakeLock(false);
super.onDestroy();
}
+
+ private String generateCommentString() {
+ if (!signature.others) return null;
+
+ Boolean needComment = sharedPreferences.getBoolean("pref_comment_switch", false);
+ if (!needComment) return null;
+
+ String[] wordsArray = sharedPreferences.getString("pref_comment_words", "").split(" +");
+ if (wordsArray.length == 0) return null;
+
+ Boolean atSender = sharedPreferences.getBoolean("pref_comment_at", false);
+ if (atSender) {
+ return "@" + signature.sender + " " + wordsArray[(int) (Math.random() * wordsArray.length)];
+ } else {
+ return wordsArray[(int) (Math.random() * wordsArray.length)];
+ }
+ }
}
diff --git a/app/src/main/java/xyz/monkeytong/hongbao/utils/HongbaoSignature.java b/app/src/main/java/xyz/monkeytong/hongbao/utils/HongbaoSignature.java
index 17e1f593..4d7e1889 100644
--- a/app/src/main/java/xyz/monkeytong/hongbao/utils/HongbaoSignature.java
+++ b/app/src/main/java/xyz/monkeytong/hongbao/utils/HongbaoSignature.java
@@ -7,7 +7,8 @@
* Created by Zhongyi on 1/21/16.
*/
public class HongbaoSignature {
- private String sender, content, time, contentDescription = "";
+ public String sender, content, time, contentDescription = "", commentString;
+ public boolean others;
public boolean generateSignature(AccessibilityNodeInfo node, String excludeWords) {
try {
@@ -78,7 +79,7 @@ private String[] getSenderContentDescriptionFromNode(AccessibilityNodeInfo node)
AccessibilityNodeInfo thisNode = node.getChild(i);
if ("android.widget.ImageView".equals(thisNode.getClassName())) {
CharSequence contentDescription = thisNode.getContentDescription();
- if (contentDescription != null) result[0] = contentDescription.toString();
+ if (contentDescription != null) result[0] = contentDescription.toString().replaceAll("头像$", "");
} else if ("android.widget.TextView".equals(thisNode.getClassName())) {
CharSequence thisNodeText = thisNode.getText();
if (thisNodeText != null) result[1] = thisNodeText.toString();
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index a30b38fb..ea3c9511 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -22,7 +22,7 @@
android:padding="10dp"
android:onClick="openNews"
android:layout_below="@+id/main_action_bar_placeholder"
- android:layout_alignLeft="@+id/textView" android:layout_marginLeft="6dp"/>
+ android:layout_alignLeft="@+id/textView" android:layout_marginLeft="6dp" android:layout_marginTop="6dp"/>
+ android:layout_marginRight="6dp" android:layout_marginTop="6dp"/>
-
-
-
+
diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml
index 9c9dbeac..cf7aafa3 100644
--- a/app/src/main/res/layout/activity_webview.xml
+++ b/app/src/main/res/layout/activity_webview.xml
@@ -16,17 +16,26 @@
android:text="@string/app_name" android:textColor="#fde1b5"
android:gravity="left|center_vertical|center_horizontal"
android:elegantTextHeight="false" android:textSize="20sp"
- android:layout_toRightOf="@+id/preference_back"
+ android:layout_toRightOf="@+id/webview_back"
/>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_open_in_browser.png b/app/src/main/res/mipmap-xxhdpi/ic_open_in_browser.png
new file mode 100644
index 00000000..368cb14f
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_open_in_browser.png differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 05cf36ff..63078218 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,6 @@
微信红包
+ 稳定版 v2.2
∠( ᐛ 」∠)_使用指南∠( ᐛ 」∠)_\n\n ○ 狠戳插件开关\n ○ 回到微信聊天\n ○ 坐等红包进账\n\n 遇到问题, 欢迎通过Github issue反馈~\n https://github.com/geeeeeeeeek/WeChatLuckyMoney
当前辅助服务状态:
设置抢红包辅助服务
@@ -12,5 +13,6 @@
关闭插件
开启插件
不拆开包含这些文字的红包(空格间隔)
+ 随机选择下列感谢语(空格间隔)
https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues
\ No newline at end of file
diff --git a/app/src/main/res/xml/comment_preferences.xml b/app/src/main/res/xml/comment_preferences.xml
new file mode 100644
index 00000000..6cc602c8
--- /dev/null
+++ b/app/src/main/res/xml/comment_preferences.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/general_preferences.xml
similarity index 63%
rename from app/src/main/res/xml/preferences.xml
rename to app/src/main/res/xml/general_preferences.xml
index 05a3bd2e..6ab0eef9 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/general_preferences.xml
@@ -10,7 +10,7 @@
android:key="pref_watch_notification"
android:title="监视系统通知"
android:summary="读取新消息通知中的红包提示并进入聊天页"
- android:defaultValue="false"
+ android:defaultValue="true"
android:layout="@layout/preference_checkbox"/>
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file