diff --git a/app/build.gradle b/app/build.gradle
index d41f8f6..7a78a98 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,9 +11,9 @@ android {
defaultConfig {
applicationId "me.drakeet.inmessage"
minSdkVersion 15
- targetSdkVersion 21
- versionCode 4
- versionName "1.0"
+ targetSdkVersion 22
+ versionCode 5
+ versionName "1.0.1"
}
sourceSets {
main {
diff --git a/app/src/main/java/me/drakeet/inmessage/MainActivity.java b/app/src/main/java/me/drakeet/inmessage/MainActivity.java
index a401b5b..2d84d2b 100755
--- a/app/src/main/java/me/drakeet/inmessage/MainActivity.java
+++ b/app/src/main/java/me/drakeet/inmessage/MainActivity.java
@@ -112,8 +112,10 @@ private void setAdapter() {
new OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
- if (mMessages.get(position).getIsMessage()) {
- showDetailSMS(mMessages.get(position));
+ if(!mIsRefreshing) {
+ if (mMessages.get(position).getIsMessage()) {
+ showDetailSMS(mMessages.get(position));
+ }
}
}
}
diff --git a/app/src/main/java/me/drakeet/inmessage/constant/StaticObjectInterface.java b/app/src/main/java/me/drakeet/inmessage/constant/StaticObjectInterface.java
index ea689fc..f43530c 100644
--- a/app/src/main/java/me/drakeet/inmessage/constant/StaticObjectInterface.java
+++ b/app/src/main/java/me/drakeet/inmessage/constant/StaticObjectInterface.java
@@ -5,6 +5,6 @@
*/
public interface StaticObjectInterface {
- String[] CPATCHAS_KEYWORD = {"激活码", "动态码", "校验码", "验证码"};
+ String[] CPATCHAS_KEYWORD = {"激活码", "动态码", "校验码", "验证码", "驗證碼", "激活碼", "動態碼", "校驗碼"};
String ACTION_CLICK = "me.drakeet.inmessage.intent.action.NotificationClick";
}
diff --git a/app/src/main/java/me/drakeet/inmessage/service/SMSBroadcastReceiver.java b/app/src/main/java/me/drakeet/inmessage/service/SMSBroadcastReceiver.java
index d4003f3..829e705 100755
--- a/app/src/main/java/me/drakeet/inmessage/service/SMSBroadcastReceiver.java
+++ b/app/src/main/java/me/drakeet/inmessage/service/SMSBroadcastReceiver.java
@@ -45,43 +45,43 @@ public void onReceive(Context context, Intent intent) {
}
this.abortBroadcast();
mHandler = new WeakHandler();
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Message smsMessage = new Message();
- smsMessage.setContent(content);
- smsMessage.setSender(sender);
- smsMessage.setDate(date);
- String company = StringUtils.getContentInBracket(content, sender);
- if (company != null) {
- smsMessage.setCompanyName(company);
- }
- smsMessage.setIsMessage(true);
- //格式化短信日期提示
- SimpleDateFormat sfd = new SimpleDateFormat("MM-dd hh:mm");
- String time = sfd.format(date);
- //获得短信的各项内容
- String date_mms = time;
- smsMessage.setReceiveDate(date_mms);
- smsMessage.setReadStatus(0);
- smsMessage.setFromSmsDB(1);
- String captchas = StringUtils.tryToGetCaptchas(content);
- if(!captchas.equals("")) {
- smsMessage.setCaptchas(captchas);
- }
- String resultContent = StringUtils.getResultText(smsMessage, false);
- if(resultContent != null) {
- smsMessage.setResultContent(resultContent);
- }
- if(!VersionUtils.IS_MORE_THAN_LOLLIPOP) {
- smsMessage.save();
- }
- BusProvider.getInstance().register(this);
- BusProvider.getInstance().post(new ReceiveMessageEvent(smsMessage));
- BusProvider.getInstance().unregister(this);
- //终止广播
- }
- }, 358
+ mHandler.postDelayed(
+ new Runnable() {
+ @Override
+ public void run() {
+ Message smsMessage = new Message();
+ smsMessage.setContent(content);
+ smsMessage.setSender(sender);
+ smsMessage.setDate(date);
+ String company = StringUtils.getContentInBracket(content, sender);
+ if (company != null) {
+ smsMessage.setCompanyName(company);
+ }
+ smsMessage.setIsMessage(true);
+ //格式化短信日期提示
+ SimpleDateFormat sfd = new SimpleDateFormat("MM-dd hh:mm");
+ //获得短信的各项内容
+ String date_mms = sfd.format(date);
+ smsMessage.setReceiveDate(date_mms);
+ smsMessage.setReadStatus(0);
+ smsMessage.setFromSmsDB(1);
+ String captchas = StringUtils.tryToGetCaptchas(content);
+ if (!captchas.equals("")) {
+ smsMessage.setCaptchas(captchas);
+ }
+ String resultContent = StringUtils.getResultText(smsMessage, false);
+ if (resultContent != null) {
+ smsMessage.setResultContent(resultContent);
+ }
+ if (!VersionUtils.IS_MORE_THAN_LOLLIPOP) {
+ smsMessage.save();
+ }
+ BusProvider.getInstance().register(this);
+ BusProvider.getInstance().post(new ReceiveMessageEvent(smsMessage));
+ BusProvider.getInstance().unregister(this);
+ //终止广播
+ }
+ }, 358
);
}
}
diff --git a/app/src/main/java/me/drakeet/inmessage/utils/StringUtils.java b/app/src/main/java/me/drakeet/inmessage/utils/StringUtils.java
index 720fd54..ced8b20 100755
--- a/app/src/main/java/me/drakeet/inmessage/utils/StringUtils.java
+++ b/app/src/main/java/me/drakeet/inmessage/utils/StringUtils.java
@@ -9,7 +9,7 @@
/**
* Created by Administrator on 2014/12/24 0024.
*/
-public class StringUtils implements StaticObjectInterface{
+public class StringUtils implements StaticObjectInterface {
private StringUtils() {
}
@@ -40,7 +40,7 @@ public static String getContentInBracket(String str, String address) {
Pattern pattern = Pattern.compile("\\【(.*?)\\】");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
- if(matcher.group(1) != null && matcher.group(1).length() < 10) {
+ if (matcher.group(1) != null && matcher.group(1).length() < 10) {
return analyseSpecialCompany(matcher.group(1), str, address);
}
@@ -48,7 +48,7 @@ public static String getContentInBracket(String str, String address) {
Pattern pattern1 = Pattern.compile("\\[(.*?)\\]");
Matcher matcher1 = pattern1.matcher(str);
while (matcher1.find()) {
- if(matcher1.group(1) != null && matcher1.group(1).length() < 10) {
+ if (matcher1.group(1) != null && matcher1.group(1).length() < 10) {
return analyseSpecialCompany(matcher1.group(1), str, address);
}
@@ -56,7 +56,7 @@ public static String getContentInBracket(String str, String address) {
Pattern pattern2 = Pattern.compile("\\((.*?)\\)");
Matcher matcher2 = pattern2.matcher(str);
while (matcher2.find()) {
- if(matcher2.group(1) != null && matcher2.group(1).length() < 10) {
+ if (matcher2.group(1) != null && matcher2.group(1).length() < 10) {
return analyseSpecialCompany(matcher2.group(1), str, address);
}
@@ -66,23 +66,22 @@ public static String getContentInBracket(String str, String address) {
private static String analyseSpecialCompany(String company, String content, String address) {
String companyName = company;
- if(company.equals("掌淘科技")) {
- int index = content.indexOf("的验证码");
- companyName = content.substring(0, index);
- companyName = companyName.replaceAll("【掌淘科技】", "").trim();
- }
- else {
- if(content.contains("贝壳单词的验证码")) {
+ if (company.equals("掌淘科技")) {
+ int index = content.indexOf("的验证码");
+ companyName = content.substring(0, index);
+ companyName = companyName.replaceAll("【掌淘科技】", "").trim();
+ } else {
+ if (content.contains("贝壳单词的验证码")) {
companyName = "贝壳单词";
}
}
- if(address.equals("10010")) {
+ if (address.equals("10010")) {
companyName = "中国联通";
}
- if(address.equals("10086")) {
+ if (address.equals("10086")) {
companyName = "中国移动";
}
- if(address.equals("10000")) {
+ if (address.equals("10000")) {
companyName = "中国电信";
}
return companyName;
@@ -99,39 +98,59 @@ public static String tryToGetCaptchas(String str) {
Matcher m = continuousNumberPattern.matcher(str);
while (m.find()) {
if (m.group().length() > 3 && m.group().length() < 8 && !m.group().contains(".")) {
- return m.group();
+ if(isNearToKeyWord(m.group(), str)) {
+ return m.group();
+ }
}
}
return "";
}
+ public static boolean isNearToKeyWord(String currentStr, String content) {
+ int startPosition = 0;
+ int endPosition = content.length() - 1;
+ if (content.indexOf(currentStr) > 10) {
+ startPosition = content.indexOf(currentStr) - 10;
+ }
+ if (content.indexOf(currentStr) + 10 < content.length() - 1) {
+ endPosition = content.indexOf(currentStr) + 10;
+ }
+ Boolean isNearToKeyWord = false;
+ for (int i = 0; i < CPATCHAS_KEYWORD.length; i++) {
+ if (content.substring(startPosition, endPosition).contains(CPATCHAS_KEYWORD[i])) {
+ isNearToKeyWord = true;
+ break;
+ }
+ }
+ return isNearToKeyWord;
+ }
+
public static boolean isCaptchasMessage(String content) {
- Boolean isCaptchasMessage = false;
- for(int i = 0;i < CPATCHAS_KEYWORD.length;i++) {
- if(content.contains(CPATCHAS_KEYWORD[i])) {
- isCaptchasMessage = true;
- break;
- }
- }
- return isCaptchasMessage;
+ Boolean isCaptchasMessage = false;
+ for (int i = 0; i < CPATCHAS_KEYWORD.length; i++) {
+ if (content.contains(CPATCHAS_KEYWORD[i])) {
+ isCaptchasMessage = true;
+ break;
+ }
+ }
+ return isCaptchasMessage;
}
/**
* 根据短信获取描述文字
+ *
* @return
*/
public static String getResultText(Message message, Boolean isNotificationText) {
String resultStr = "";
- if(message.getCompanyName() != null && !isNotificationText) {
+ if (message.getCompanyName() != null && !isNotificationText) {
resultStr += "来自" + message.getCompanyName() + "的验证码:";
- }
- else {
+ } else {
resultStr += "当前验证码为:";
}
- if(message.getCaptchas() != null) {
+ if (message.getCaptchas() != null) {
resultStr += message.getCaptchas();
- }
- else {
+ } else {
resultStr += "点击查看详情.";
}
return resultStr;
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index bddf7b5..2faa71d 100755
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -3,7 +3,7 @@
#00bcd4
@color/actionbar_background
- #ff2b4d90
+ #008196
#00778d
#ffffff
diff --git a/screenshots/s2.png b/screenshots/s2.png
index efa55a4..1638018 100755
Binary files a/screenshots/s2.png and b/screenshots/s2.png differ