From 396df6713c2d2eb12dd1bf021f3d5638c2d1cbf5 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Tue, 25 Feb 2025 20:19:54 +0800 Subject: [PATCH 01/32] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=A8=A1=E5=9D=97=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=94=B5=E8=AF=9D=E5=8F=B7=E7=A0=81=E6=98=AF=E5=90=A6=E6=98=AF?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E7=9A=84=E6=A3=80=E6=B5=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mymessagemanager/build.properties | 4 +- mymessagemanager/src/main/AndroidManifest.xml | 4 +- .../activitys/MainActivity.java | 7 ++- .../receivers/SMSRecevier.java | 45 +++++++++++-------- .../unittest/SMSRecevier_Test.java | 45 +++++++++++++++++++ .../unittest/UnitTestActivity.java | 33 ++++++++++++++ .../mymessagemanager/utils/PhoneUtil.java | 22 +++++++++ .../utils/SMSReceiveRuleUtil.java | 6 +-- .../src/main/res/layout/activity_unittest.xml | 44 ++++++++++++++++++ .../src/main/res/menu/toolbar_main.xml | 3 ++ .../src/main/res/values-zh/strings.xml | 1 + .../src/main/res/values/strings.xml | 1 + 12 files changed, 189 insertions(+), 26 deletions(-) create mode 100644 mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/SMSRecevier_Test.java create mode 100644 mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/UnitTestActivity.java create mode 100644 mymessagemanager/src/main/res/layout/activity_unittest.xml diff --git a/mymessagemanager/build.properties b/mymessagemanager/build.properties index 2414519..2964b78 100644 --- a/mymessagemanager/build.properties +++ b/mymessagemanager/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Feb 25 10:52:41 GMT 2025 +#Tue Feb 25 12:17:54 GMT 2025 stageCount=14 libraryProject= baseVersion=4.1 publishVersion=4.1.13 -buildCount=5 +buildCount=14 baseBetaVersion=4.1.14 diff --git a/mymessagemanager/src/main/AndroidManifest.xml b/mymessagemanager/src/main/AndroidManifest.xml index c1e89fa..90f6448 100644 --- a/mymessagemanager/src/main/AndroidManifest.xml +++ b/mymessagemanager/src/main/AndroidManifest.xml @@ -226,6 +226,8 @@ + + - + \ No newline at end of file diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/activitys/MainActivity.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/activitys/MainActivity.java index a2bdbd8..26eb1dc 100644 --- a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/activitys/MainActivity.java +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/activitys/MainActivity.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import cc.winboll.studio.libaes.utils.AESThemeUtil; import cc.winboll.studio.libaes.views.ASupportToolbar; import androidx.appcompat.widget.Toolbar; +import cc.winboll.studio.mymessagemanager.unittest.UnitTestActivity; public class MainActivity extends BaseActivity { @@ -313,7 +314,11 @@ public class MainActivity extends BaseActivity { Intent i = new Intent(MainActivity.this, AppSettingsActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(i); - } else if (nItemId == R.id.app_crashtest) { + } else if (nItemId == R.id.app_unittest) { + Intent i = new Intent(MainActivity.this, UnitTestActivity.class); + i.setFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT | Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(i); + } else if (nItemId == R.id.app_crashtest) { for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) { getString(i); } diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/receivers/SMSRecevier.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/receivers/SMSRecevier.java index b5255c2..ae53231 100644 --- a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/receivers/SMSRecevier.java +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/receivers/SMSRecevier.java @@ -15,6 +15,7 @@ import cc.winboll.studio.mymessagemanager.utils.SMSRecycleUtil; import cc.winboll.studio.mymessagemanager.utils.SMSUtil; import cc.winboll.studio.mymessagemanager.utils.TTSPlayRuleUtil; import cc.winboll.studio.mymessagemanager.utils.RegexPPiUtils; +import cc.winboll.studio.shared.log.LogUtils; public class SMSRecevier extends BroadcastReceiver { @@ -39,25 +40,11 @@ public class SMSRecevier extends BroadcastReceiver { //LogUtils.d(TAG, "ACTION_SMS_RECEIVED"); String szSmsBody = SMSUtil.getSmsBody(intent); String szSmsAddress = SMSUtil.getSmsAddress(intent); - PhoneUtil phoneUtil = new PhoneUtil(context); - boolean isPhoneInContacts = phoneUtil.isPhoneInContacts(szSmsAddress); AppConfigUtil configUtil = AppConfigUtil.getInstance(context); - boolean isOnlyReceiveContacts = configUtil.mAppConfigBean.isEnableOnlyReceiveContacts(); boolean isEnableTTS = configUtil.mAppConfigBean.isEnableTTS(); boolean isEnableTTSAnalyzeMode = configUtil.mAppConfigBean.isEnableTTSRuleMode(); - boolean isInSMSAcceptRule = SMSReceiveRuleUtil.getInstance(context, false).checkIsSMSAcceptInRule(context, szSmsBody); - //LogUtils.d(TAG, "isInSMSAcceptRule is : " + Boolean.toString(isInSMSAcceptRule)); - if (!isPhoneInContacts) { - GlobalApplication.showApplicationMessage(" The phone number " + szSmsAddress + " is not in contacts."); - if (isOnlyReceiveContacts) { - GlobalApplication.showApplicationMessage("Close the \"Only Receive Contacts\" switch will be receive The " + szSmsAddress + "'s message in future."); - } - } - - if ((!isOnlyReceiveContacts) - || isPhoneInContacts - || isInSMSAcceptRule) { + if (checkIsSMSOK(context, szSmsBody, szSmsAddress)) { int nResultId = SMSUtil.saveReceiveSms(context, szSmsAddress, szSmsBody, "0", System.currentTimeMillis(), "inbox"); if (nResultId >= 0) { NotificationUtil nu = new NotificationUtil(); @@ -81,12 +68,32 @@ public class SMSRecevier extends BroadcastReceiver { SMSRecycleUtil.addSMSRecycleItem(context, bean); } } - - - } - + // + // 检查短信是否在接收设定规则内 + // + public static boolean checkIsSMSOK(Context context, String szSmsBody, String szSmsAddress) { + PhoneUtil phoneUtil = new PhoneUtil(context); + boolean isPhoneInContacts = phoneUtil.isPhoneInContacts(szSmsAddress); + LogUtils.d(TAG, String.format("isPhoneInContacts %s", isPhoneInContacts)); + + boolean isPhoneByDigit = phoneUtil.isPhoneByDigit(szSmsAddress); + LogUtils.d(TAG, String.format("isPhoneByDigit %s", isPhoneByDigit)); + + AppConfigUtil configUtil = AppConfigUtil.getInstance(context); + boolean isOnlyReceiveContacts = configUtil.mAppConfigBean.isEnableOnlyReceiveContacts(); + LogUtils.d(TAG, String.format("isOnlyReceiveContacts %s", isOnlyReceiveContacts)); + + boolean isInSMSAcceptRule = SMSReceiveRuleUtil.getInstance(context, false).checkIsSMSAcceptInRule(context, szSmsBody); + LogUtils.d(TAG, String.format("isInSMSAcceptRule %s", isInSMSAcceptRule)); + + if (isPhoneByDigit + && (!isOnlyReceiveContacts || isPhoneInContacts || isInSMSAcceptRule)) { + return true; + } + return false; + } } diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/SMSRecevier_Test.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/SMSRecevier_Test.java new file mode 100644 index 0000000..57a8b8a --- /dev/null +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/SMSRecevier_Test.java @@ -0,0 +1,45 @@ +package cc.winboll.studio.mymessagemanager.unittest; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/02/25 19:02:15 + * @Describe SMSRecevier 测试类 + */ +import cc.winboll.studio.mymessagemanager.utils.SMSReceiveRuleUtil; +import android.content.Context; +import cc.winboll.studio.shared.log.LogUtils; +import cc.winboll.studio.mymessagemanager.receivers.SMSRecevier; + +public class SMSRecevier_Test { + + public static final String TAG = "SMSRecevier_Test"; + + public static void main(Context context) { + String szSmsBody = "无影无迹"; + String szSmsAddress = "无名小辈"; + test1(context, szSmsBody, szSmsAddress); + + szSmsBody = "无影无迹"; + szSmsAddress = "1?0"; + test1(context, szSmsBody, szSmsAddress); + + szSmsBody = "无影无迹"; + szSmsAddress = "10000"; + test1(context, szSmsBody, szSmsAddress); + + szSmsBody = "【UC】无影无迹"; + szSmsAddress = "无名小辈"; + test1(context, szSmsBody, szSmsAddress); + + szSmsBody = "【UC】无影无迹"; + szSmsAddress = "10000"; + test1(context, szSmsBody, szSmsAddress); + + } + + public static void test1(Context context, String szSmsBody, String szSmsAddress) { + + boolean isSMSOK = SMSRecevier.checkIsSMSOK(context, szSmsBody, szSmsAddress); + LogUtils.d(TAG, String.format("szSmsBody : %s\nszSmsAddress : %s\nisSMSOK : %s", szSmsBody, szSmsAddress, isSMSOK)); + } +} diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/UnitTestActivity.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/UnitTestActivity.java new file mode 100644 index 0000000..fb32133 --- /dev/null +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/unittest/UnitTestActivity.java @@ -0,0 +1,33 @@ +package cc.winboll.studio.mymessagemanager.unittest; + +/** + * @Author ZhanGSKen@AliYun.Com + * @Date 2025/02/25 19:00:10 + * @Describe 应用单元测试窗口 + */ +import cc.winboll.studio.mymessagemanager.unittest.*; +import android.app.Activity; +import android.os.Bundle; +import cc.winboll.studio.mymessagemanager.R; +import android.view.View; +import cc.winboll.studio.shared.log.LogView; + +public class UnitTestActivity extends Activity { + + public static final String TAG = "UnitTestActivity"; + + LogView mLogView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_unittest); + + mLogView = findViewById(R.id.logview); + mLogView.start(); + } + + public void onMain(View view) { + SMSRecevier_Test.main(this); + } +} diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/PhoneUtil.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/PhoneUtil.java index 7001c12..197daad 100644 --- a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/PhoneUtil.java +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/PhoneUtil.java @@ -15,6 +15,9 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.regex.Pattern; +import java.util.regex.Matcher; +import cc.winboll.studio.shared.log.LogUtils; public class PhoneUtil { @@ -67,4 +70,23 @@ public class PhoneUtil { return false; } + // + // 检验电话号码是否是数字 + // + public static boolean isPhoneByDigit(String szPhone) { + if(!RegexPPiUtils.isPPiOK(szPhone)) { + return false; + } + //String text = "这里是一些任意的文本内容"; + String regex = "\\d+"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(szPhone); + LogUtils.d(TAG, String.format("matcher.matches() : %s", matcher.matches())); + /*if (matcher.matches()) { + System.out.println("文本满足该正则表达式模式"); + } else { + System.out.println("文本不满足该正则表达式模式"); + }*/ + return matcher.matches(); + } } diff --git a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/SMSReceiveRuleUtil.java b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/SMSReceiveRuleUtil.java index 1c8949b..bd3be9f 100644 --- a/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/SMSReceiveRuleUtil.java +++ b/mymessagemanager/src/main/java/cc/winboll/studio/mymessagemanager/utils/SMSReceiveRuleUtil.java @@ -194,9 +194,9 @@ public class SMSReceiveRuleUtil { public ArrayList loadConfigData() { ArrayList list = new ArrayList(); SMSAcceptRuleBean.loadBeanList(mContext, list, SMSAcceptRuleBean.class); - for (int i = 0; i < list.size(); i++) { - LogUtils.d(TAG, "loadConfigData isEnable : " + Boolean.toString(list.get(i).isEnable())); - } +// for (int i = 0; i < list.size(); i++) { +// LogUtils.d(TAG, "loadConfigData isEnable : " + Boolean.toString(list.get(i).isEnable())); +// } mDataList.clear(); mDataList.addAll(list); return mDataList; diff --git a/mymessagemanager/src/main/res/layout/activity_unittest.xml b/mymessagemanager/src/main/res/layout/activity_unittest.xml new file mode 100644 index 0000000..66c1835 --- /dev/null +++ b/mymessagemanager/src/main/res/layout/activity_unittest.xml @@ -0,0 +1,44 @@ + + + + + + + + + +