diff --git a/CHANGELOG.md b/CHANGELOG.md index 53552d6..7c9121f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ -#### 2020-12-18 V1.0.1 +#### 2020-12-21 V1.0.2 +- *.[新增]新增微信红包提醒 +- *.[改进]更全面的识别淘口令。 +- *.[改进]更全面的识别快递签收提醒。 + +#### 2020-12-18 V1.0.1 - *.[新增]支持通过wifi名称来判断是否在上班。 - *.[新增]增加游戏模式(尚未完成)。 - *.[改进]不连公司wifi的情况下,个性化购物和淘口令声音。 -#### 2020-11-28 V1.0 +#### 2020-11-28 V1.0 - 暂无。 \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7ad2f64..2903f54 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.itrycn.tellmenotice" minSdkVersion 23 targetSdkVersion 29 - versionCode 2 - versionName "1.0.1" + versionCode 3 + versionName "1.0.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -33,6 +33,10 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.1' + implementation 'com.jakewharton:butterknife:8.8.1' + implementation 'com.qmuiteam:qmui:2.0.0-alpha10' + def qmui_arch_version = '2.0.0-alpha10' + implementation "com.qmuiteam:arch:$qmui_arch_version" testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 13c3b87..e11e120 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,6 +18,7 @@ android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:name="com.itrycn.tellmenotice.MyApplication" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:usesCleartextTraffic="true" diff --git a/app/src/main/java/com/itrycn/tellmenotice/MainActivity.java b/app/src/main/java/com/itrycn/tellmenotice/MainActivity.java index db7eb43..7943483 100644 --- a/app/src/main/java/com/itrycn/tellmenotice/MainActivity.java +++ b/app/src/main/java/com/itrycn/tellmenotice/MainActivity.java @@ -1,25 +1,36 @@ package com.itrycn.tellmenotice; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.itrycn.ta.AccessibilityOperator; import com.itrycn.ta.OpenAccessibilitySettingHelper; +import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBar; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import java.util.Calendar; +import butterknife.BindView; +import butterknife.ButterKnife; + public class MainActivity extends AppCompatActivity { + QMUITopBarLayout mTopBar; ScreenListener screenlistener; /** * @@ -28,7 +39,16 @@ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // 沉浸式状态栏 + //QMUIStatusBarHelper.translucent(this); + //初始化状态栏 setContentView(R.layout.activity_main); + // 沉浸式状态栏 + QMUIStatusBarHelper.translucent(this); + //View root = LayoutInflater.from(this).inflate(R.layout.activity_main, null); + mTopBar =findViewById(R.id.topbar); + //ButterKnife.bind(this, root); + initTopBar(); if(!isNotificationListenersEnabled()) { gotoNotificationAccessSetting(MainActivity.this); @@ -78,6 +98,26 @@ public class MainActivity extends AppCompatActivity { } }); } + + private void initTopBar() { + mTopBar.setBackgroundColor(ContextCompat.getColor(this, R.color.app_color_theme_4)); + mTopBar.addRightImageButton(R.drawable.menu,R.id.menu).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //finish(); + overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right); + } + }); + + //mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() { + // @Override + // public void onClick(View v) { + // finish(); + // overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right); + // } + // }); + mTopBar.setTitle(R.string.app_name); + } @Override protected void onStart() { if(!AccessibilityOperator.getInstance().isServiceRunning()) diff --git a/app/src/main/java/com/itrycn/tellmenotice/MyApplication.java b/app/src/main/java/com/itrycn/tellmenotice/MyApplication.java new file mode 100644 index 0000000..7c5c257 --- /dev/null +++ b/app/src/main/java/com/itrycn/tellmenotice/MyApplication.java @@ -0,0 +1,14 @@ +package com.itrycn.tellmenotice; + +import android.app.Application; + +import com.qmuiteam.qmui.arch.QMUISwipeBackActivityManager; + +public class MyApplication extends Application { + @Override + public void onCreate() { + super.onCreate(); + //初始化QMUISwipeBackActivityManager,否则点击屏幕时就程序就会崩溃 + QMUISwipeBackActivityManager.init(this); + } +} diff --git a/app/src/main/java/com/itrycn/tellmenotice/NoticeService.java b/app/src/main/java/com/itrycn/tellmenotice/NoticeService.java index 3910ccf..c30fb36 100644 --- a/app/src/main/java/com/itrycn/tellmenotice/NoticeService.java +++ b/app/src/main/java/com/itrycn/tellmenotice/NoticeService.java @@ -76,6 +76,7 @@ public class NoticeService extends NotificationListenerService { MP3_Dingding= sp.load(this,R.raw.dingding,1); MP3_TaoCode= sp.load(this,R.raw.taocode,1); MP3_Buy0= sp.load(this,R.raw.buy0,1); + MP3_RedPacket= sp.load(this,R.raw.redpacket,1); //windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); //layoutParams = new WindowManager.LayoutParams(); //if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -100,6 +101,7 @@ public class NoticeService extends NotificationListenerService { sp.unload(MP3_Dingding); sp.unload(MP3_TaoCode); sp.unload(MP3_Buy0); + sp.unload(MP3_RedPacket); super.onDestroy(); } @Override @@ -117,6 +119,7 @@ public class NoticeService extends NotificationListenerService { int MP3_Dingding; int MP3_TaoCode; int MP3_Buy0; + int MP3_RedPacket; String Last_packageName=""; String Last_Title=""; String Last_Content=""; @@ -206,7 +209,7 @@ public class NoticeService extends NotificationListenerService { if(packageName.equals("com.tencent.mm")) //如果是微信 { //region 微信中有人提到自己 - String[] strArr = "鑫之风;大头;凤鑫;风鑫;封信;风兴;奉新;凤兴;阿香;凤新".split(";"); + String[] strArr = "鑫之风;大头;凤鑫;风鑫;封信;风兴;奉新;凤兴;阿香;凤新;鑫哥".split(";"); boolean haveInfo=false; for (int i = 0; i < strArr.length; ++i){ if(Content.contains(strArr[i])) @@ -252,7 +255,7 @@ public class NoticeService extends NotificationListenerService { //region 淘口令 if(!haveInfo) { - String[] strArr2 = "tb.cn;淘tao;/宝;".split(";"); + CharSequence[] strArr2 = "tb.cn;淘tao;/宝;t~bao;[右]tb[左]".split(";"); for (int i = 0; i < strArr2.length; ++i) { if (Content.contains(strArr2[i])) { if(!IsGameMode()) { @@ -269,6 +272,22 @@ public class NoticeService extends NotificationListenerService { } } //endregion + //region 微信红包 + if(!haveInfo) + { + if (Content.contains("[微信红包]")) { + if(!IsGameMode()) { + FloatView fv = new FloatView(this); + fv.showFloatingWindow(notice, Title, Content, Color.parseColor("#FF0000")); + } + int hour = c.get(Calendar.HOUR_OF_DAY); // 时 + if(getWifiName().indexOf("当游")<0) { + PlaySound(MP3_RedPacket, 0, false); + } + haveTip=true; + } + } + //endregion } else if(packageName.equals("com.xiaomi.smarthome")) //如果是米家app { @@ -307,7 +326,7 @@ public class NoticeService extends NotificationListenerService { else if(packageName.equals("com.android.mms")) //如果是短信 { //region 短信中提取快递获取信息 - String[] strArr = "保安室;快递室;派送成功;代收;".split(";"); + String[] strArr = "保安室;快递室;收发室;派送成功;代收;".split(";"); for (int i = 0; i < strArr.length; ++i){ if(Title.contains(strArr[i]) || Content.contains(strArr[i])) { diff --git a/app/src/main/res/drawable/menu.png b/app/src/main/res/drawable/menu.png new file mode 100644 index 0000000..f9b0b69 Binary files /dev/null and b/app/src/main/res/drawable/menu.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 22969f7..a0ce57c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,23 +1,23 @@ - + + android:layout_marginTop="95dp" + android:text="@string/app_state" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/raw/redpacket.mp3 b/app/src/main/res/raw/redpacket.mp3 new file mode 100644 index 0000000..b1cd9a1 Binary files /dev/null and b/app/src/main/res/raw/redpacket.mp3 differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f8c6127..32677c6 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,6 @@ #FF018786 #FF000000 #FFFFFFFF + #64AF1A + #9FD661 \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml new file mode 100644 index 0000000..c2b18cc --- /dev/null +++ b/app/src/main/res/values/ids.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 19c1847..acc06ab 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ -