Skip to content
This repository was archived by the owner on Jul 30, 2020. It is now read-only.

Commit dd8e17c

Browse files
Zhongyi TongZhongyi Tong
authored andcommitted
Merge pull request #117 from geeeeeeeeek/release/2.2
Release/2.2
2 parents b7bcccf + d709c38 commit dd8e17c

22 files changed

+472
-93
lines changed

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
# 更新日志
22

3-
**[v2.1 (2016.01.30)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.1)**
3+
**[v2.2 (2016.02.04)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.2)**
4+
5+
- 新增 延时拆开红包的可选项
6+
7+
8+
- 新增 跳转至浏览器打开的入口
9+
- 新增 接入腾讯Bugly
10+
- 新增 自动回复的可选项(实验中)
11+
12+
13+
- 优化 手动拆开的红包不返回
14+
15+
16+
- 优化 适配三星等坑爹机型 (感谢 [@firesunCN](https://github.com/firesunCN) 对这项修改的贡献)
17+
18+
19+
- 修复 拆开红包后的多次返回问题
20+
21+
22+
23+
**[v2.1 (2016.01.30)](https://github.com/geeeeeeeeek/WeChatLuckyMoney/releases/tag/v2.1.1)**
424

525
- 新增 屏蔽指定红包文字的可选项
626

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# 微信红包
22

3-
[![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)
4-
5-
[![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)
3+
[![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)
64

75
一个帮助你在微信抢红包时战无不胜的Android应用。自动检测并且拆开红包,速度超乎你的想象。
86

@@ -16,7 +14,7 @@
1614

1715
- **不仅快人一步,红包识别更加智能**
1816

19-
多种特征标识,聊天时不再重复点击红包。智能过滤红包关键字[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/97),避免落入“专属红包”、“抢到翻倍”的陷阱。
17+
多种特征标识,聊天时不再重复点击红包。智能过滤红包关键字[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/97),避免落入“专属红包”、“抢到翻倍”的陷阱。还可以设置延时抢红包和自动回复感谢语[[?]](https://github.com/geeeeeeeeek/WeChatLuckyMoney/issues/118)
2018

2119
- **紧跟微信更新,内置最新春节红包资讯**
2220

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99
minSdkVersion 16
1010
targetSdkVersion 22
1111
versionCode 2
12-
versionName "v2.1.1"
12+
versionName "v2.2"
1313
ndk {
1414
//设置支持的SO库架构
1515
abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'

app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,32 @@
44
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
55
<uses-permission android:name="android.permission.INTERNET"/>
66
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
7-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
7+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
88
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
99
<uses-permission android:name="android.permission.WAKE_LOCK"/>
10-
<uses-permission android:name="android.permission.READ_LOGS" />
11-
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
10+
<uses-permission android:name="android.permission.READ_LOGS"/>
11+
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
1212
<application
1313
android:allowBackup="true"
1414
android:icon="@mipmap/ic_launcher"
1515
android:label="@string/app_name">
1616
<activity
1717
android:name=".activities.MainActivity"
1818
android:label="@string/app_name"
19-
android:theme="@style/Base.Theme.AppCompat.Light">
19+
android:theme="@style/Base.Theme.AppCompat.Light"
20+
android:launchMode="singleTask">
2021
<intent-filter>
2122
<action android:name="android.intent.action.MAIN"/>
2223
<category android:name="android.intent.category.LAUNCHER"/>
2324
</intent-filter>
2425
</activity>
2526
<activity android:name=".activities.SettingsActivity"
26-
android:theme="@style/Base.Theme.AppCompat.Light">
27+
android:theme="@style/Base.Theme.AppCompat.Light"
28+
android:launchMode="standard">
2729
</activity>
2830
<activity android:name=".activities.WebViewActivity"
29-
android:theme="@style/Base.Theme.AppCompat.Light">
31+
android:theme="@style/Base.Theme.AppCompat.Light"
32+
android:launchMode="standard">
3033
</activity>
3134
<service
3235
android:name=".services.HongbaoService"

app/src/main/java/xyz/monkeytong/hongbao/activities/MainActivity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.content.Intent;
88
import android.os.Build;
99
import android.os.Bundle;
10+
import android.os.Parcelable;
1011
import android.preference.PreferenceManager;
1112
import android.provider.Settings;
1213
import android.view.View;
@@ -18,6 +19,7 @@
1819
import java.util.List;
1920

2021
import xyz.monkeytong.hongbao.R;
22+
import xyz.monkeytong.hongbao.fragments.GeneralSettingsFragment;
2123
import xyz.monkeytong.hongbao.utils.ConnectivityUtil;
2224
import xyz.monkeytong.hongbao.utils.UpdateTask;
2325

@@ -49,7 +51,7 @@ protected void onCreate(Bundle savedInstanceState) {
4951
}
5052

5153
private void explicitlyLoadPreferences() {
52-
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
54+
PreferenceManager.setDefaultValues(this, R.xml.general_preferences, false);
5355
}
5456

5557
/**
@@ -107,6 +109,8 @@ public void openGithubReleaseNotes(View view) {
107109

108110
public void openSettings(View view) {
109111
Intent settingsIntent = new Intent(this, SettingsActivity.class);
112+
settingsIntent.putExtra("title", "偏好设置");
113+
settingsIntent.putExtra("frag_id", "GeneralSettingsFragment");
110114
startActivity(settingsIntent);
111115
}
112116

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package xyz.monkeytong.hongbao.activities;
2+
3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
import android.preference.DialogPreference;
6+
import android.util.AttributeSet;
7+
import android.view.View;
8+
import android.widget.EditText;
9+
import android.widget.SeekBar;
10+
import android.widget.TextView;
11+
import org.w3c.dom.Text;
12+
import xyz.monkeytong.hongbao.R;
13+
14+
/**
15+
* Created by Zhongyi on 2/3/16.
16+
*/
17+
public class SeekBarPreference extends DialogPreference {
18+
private SeekBar seekBar;
19+
private TextView textView;
20+
private String hintText, prefKind;
21+
22+
public SeekBarPreference(Context context, AttributeSet attrs) {
23+
super(context, attrs);
24+
setDialogLayoutResource(R.layout.preference_seekbar);
25+
26+
for (int i = 0; i < attrs.getAttributeCount(); i++) {
27+
String attr = attrs.getAttributeName(i);
28+
if (attr.equalsIgnoreCase("pref_kind")) {
29+
prefKind = attrs.getAttributeValue(i);
30+
break;
31+
}
32+
}
33+
if (prefKind.equals("pref_open_delay")) {
34+
hintText = "拆开红包";
35+
} else if (prefKind.equals("pref_comment_delay")) {
36+
hintText = "发送回复(暂不支持延时)";
37+
}
38+
}
39+
40+
@Override
41+
protected void onBindDialogView(View view) {
42+
super.onBindDialogView(view);
43+
44+
SharedPreferences pref = getSharedPreferences();
45+
46+
int delay = pref.getInt(prefKind, 0);
47+
this.seekBar = (SeekBar) view.findViewById(R.id.delay_seekBar);
48+
this.seekBar.setProgress(delay);
49+
50+
if (prefKind.equals("pref_comment_delay")) {
51+
this.seekBar.setEnabled(false);
52+
}
53+
54+
this.textView = (TextView) view.findViewById(R.id.pref_seekbar_textview);
55+
if (delay == 0) {
56+
this.textView.setText("立即" + hintText);
57+
} else {
58+
this.textView.setText("延迟" + delay + "秒" + hintText);
59+
}
60+
61+
this.seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
62+
@Override
63+
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
64+
if (i == 0) {
65+
textView.setText("立即" + hintText);
66+
} else {
67+
textView.setText("延迟" + i + "秒" + hintText);
68+
}
69+
}
70+
71+
@Override
72+
public void onStartTrackingTouch(SeekBar seekBar) {
73+
74+
}
75+
76+
@Override
77+
public void onStopTrackingTouch(SeekBar seekBar) {
78+
79+
}
80+
});
81+
}
82+
83+
@Override
84+
protected void onDialogClosed(boolean positiveResult) {
85+
if (positiveResult) {
86+
SharedPreferences.Editor editor = getEditor();
87+
editor.putInt(prefKind, this.seekBar.getProgress());
88+
editor.commit();
89+
}
90+
super.onDialogClosed(positiveResult);
91+
}
92+
}

app/src/main/java/xyz/monkeytong/hongbao/activities/SettingsActivity.java

Lines changed: 36 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,71 @@
11
package xyz.monkeytong.hongbao.activities;
22

33
import android.annotation.TargetApi;
4+
import android.app.Activity;
5+
import android.app.Fragment;
6+
import android.app.FragmentManager;
7+
import android.app.FragmentTransaction;
48
import android.content.Intent;
59
import android.net.Uri;
610
import android.os.Build;
711
import android.os.Bundle;
12+
import android.os.Parcelable;
813
import android.preference.Preference;
914
import android.preference.PreferenceActivity;
1015
import android.preference.PreferenceManager;
1116
import android.provider.Settings;
17+
import android.support.v4.app.FragmentActivity;
1218
import android.view.View;
1319
import android.view.Window;
1420
import android.view.WindowManager;
21+
import android.widget.TextView;
22+
import org.w3c.dom.Text;
1523
import xyz.monkeytong.hongbao.R;
24+
import xyz.monkeytong.hongbao.fragments.CommentSettingsFragment;
25+
import xyz.monkeytong.hongbao.fragments.GeneralSettingsFragment;
1626
import xyz.monkeytong.hongbao.utils.UpdateTask;
1727

1828
/**
1929
* Created by Zhongyi on 1/19/16.
2030
* Settings page.
2131
*/
22-
public class SettingsActivity extends PreferenceActivity {
32+
public class SettingsActivity extends FragmentActivity {
2333
@Override
2434
protected void onCreate(Bundle savedInstanceState) {
2535
super.onCreate(savedInstanceState);
36+
setContentView(R.layout.activity_preferences);
2637

2738
loadUI();
28-
setPrefListeners();
39+
prepareSettings();
2940
}
3041

31-
private void setPrefListeners() {
32-
// Check for updates
33-
Preference updatePref = findPreference("pref_etc_check_update");
34-
updatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
35-
public boolean onPreferenceClick(Preference preference) {
36-
new UpdateTask(getApplicationContext(), true).update();
37-
return false;
38-
}
39-
});
40-
41-
// Open issue
42-
Preference issuePref = findPreference("pref_etc_issue");
43-
issuePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
44-
public boolean onPreferenceClick(Preference preference) {
45-
Intent webViewIntent = new Intent(SettingsActivity.this, WebViewActivity.class);
46-
webViewIntent.putExtra("title", "Github Issues");
47-
webViewIntent.putExtra("url", getString(R.string.url_github_issues));
48-
webViewIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
49-
startActivity(webViewIntent);
50-
return false;
51-
}
52-
});
53-
54-
Preference excludeWordsPref = findPreference("pref_watch_exclude_words");
55-
String summary = getResources().getString(R.string.pref_watch_exclude_words_summary);
56-
String value = PreferenceManager.getDefaultSharedPreferences(this).getString("pref_watch_exclude_words", "");
57-
if (value.length() > 0) excludeWordsPref.setSummary(summary + ":" + value);
58-
59-
excludeWordsPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
60-
@Override
61-
public boolean onPreferenceChange(Preference preference, Object o) {
62-
String summary = getResources().getString(R.string.pref_watch_exclude_words_summary);
63-
if (o != null && o.toString().length() > 0) preference.setSummary(summary + ":" + o.toString());
64-
return true;
65-
}
66-
});
42+
private void prepareSettings() {
43+
String title, fragId;
44+
Bundle bundle = getIntent().getExtras();
45+
if (bundle != null) {
46+
title = bundle.getString("title");
47+
fragId = bundle.getString("frag_id");
48+
} else {
49+
title = "偏好设置";
50+
fragId = "GeneralSettingsFragment";
51+
}
52+
53+
TextView textView = (TextView) findViewById(R.id.settings_bar);
54+
textView.setText(title);
55+
56+
FragmentManager fragmentManager = getFragmentManager();
57+
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
58+
59+
if ("GeneralSettingsFragment".equals(fragId)) {
60+
fragmentTransaction.replace(R.id.preferences_fragment, new GeneralSettingsFragment());
61+
} else if ("CommentSettingsFragment".equals(fragId)) {
62+
fragmentTransaction.replace(R.id.preferences_fragment, new CommentSettingsFragment());
63+
}
64+
fragmentTransaction.commit();
6765
}
6866

6967
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
7068
private void loadUI() {
71-
setContentView(R.layout.activity_preferences);
72-
addPreferencesFromResource(R.xml.preferences);
73-
7469
if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return;
7570

7671
Window window = this.getWindow();
@@ -80,7 +75,6 @@ private void loadUI() {
8075
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
8176

8277
window.setStatusBarColor(0xffd84e43);
83-
8478
}
8579

8680
@Override

app/src/main/java/xyz/monkeytong/hongbao/activities/WebViewActivity.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
*/
3030
public class WebViewActivity extends Activity {
3131
private WebView webView;
32+
private String webViewUrl, webViewTitle;
3233

3334
@Override
3435
protected void onCreate(Bundle savedInstanceState) {
@@ -38,8 +39,8 @@ protected void onCreate(Bundle savedInstanceState) {
3839

3940
Bundle bundle = getIntent().getExtras();
4041
if (bundle != null && !bundle.isEmpty()) {
41-
String webViewTitle = bundle.getString("title");
42-
String webViewUrl = bundle.getString("url");
42+
webViewTitle = bundle.getString("title");
43+
webViewUrl = bundle.getString("url");
4344

4445
TextView webViewBar = (TextView) findViewById(R.id.webview_bar);
4546
webViewBar.setText(webViewTitle);
@@ -105,4 +106,10 @@ public boolean onKeyDown(int keyCode, KeyEvent event) {
105106
}
106107
return super.onKeyDown(keyCode, event);
107108
}
109+
110+
public void openLink(View view) {
111+
Intent intent = new Intent(Intent.ACTION_VIEW,
112+
Uri.parse(this.webViewUrl));
113+
startActivity(intent);
114+
}
108115
}

0 commit comments

Comments
 (0)