add unread msg state listener.
authorTrillGates <williamtrillgates@gmail.com>
Mon, 19 Jul 2021 12:20:32 +0000 (20:20 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 19 Jul 2021 12:20:32 +0000 (20:20 +0800)
app/src/main/java/com/ic/launcher/presenter/MainPagePresenter.java
app/src/main/java/com/ic/launcher/presenter/StatusBarPresenter.java

index 168de45..a038dce 100644 (file)
@@ -252,7 +252,6 @@ public class MainPagePresenter extends BasePresenter {
         }
     }
 
-
     public static final String KEY_OXYGEN = "oxygen";
     public static final String KEY_HEART_RATE = "heart_rate";
     public static final String KEY_ENV_TEMP = "env_temperature";
@@ -275,5 +274,4 @@ public class MainPagePresenter extends BasePresenter {
         getValueByKey(KEY_HEART_RATE);
     }
 
-
 }
index f5ae7f2..1126f3a 100644 (file)
@@ -58,26 +58,24 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
         super(context);
         executorService = Executors.newSingleThreadExecutor();
         contentResolver = mContext.getContentResolver();
-        executorService.execute(() -> {
-            //监听各种状态
-            //需要初始化一次,然后进行监听
-            getWifiState();
-            getGpsState();
-            getBtState();
-            //需要监听的
-            getUnReadMsgState();
-            getAlarmState();
-            getWarningMsgReadState();
-            getSilentState();
-            checkIcTalkMsg();
-            checkHasMissCall();
-            getShakeState();
-            getPlaneMode();
-            checkAlarmState();
-            observerContentChange();
-        });
+        //监听各种状态
+        //需要初始化一次,然后进行监听
+        getWifiState();
+        getGpsState();
+        getBtState();
+        //需要监听的
+        getUnReadMsgState();
+        getWarningMsgReadState();
+        getSilentState();
+        checkIcTalkMsg();
+        checkHasMissCall();
+        getShakeState();
+        getPlaneMode();
+        checkAlarmState();
+        observerContentChange();
     }
 
+
     private void observerContentChange() {
         //监听闹钟状态
         contentResolver.registerContentObserver(Uri.parse(Constants.ALARMS), true,
@@ -90,7 +88,8 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
                     }
                 });
         //观察飞行模式
-        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".is_air_mode_enable"), true,
+        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".is_air_mode_enable"),
+                true,
                 new ContentObserver(null) {
                     @Override
                     public void onChange(boolean selfChange) {
@@ -98,7 +97,8 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
                         getPlaneMode();
                     }
                 });
-        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_silent"), true,
+        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_silent"),
+                true,
                 new ContentObserver(null) {
                     @Override
                     public void onChange(boolean selfChange) {
@@ -106,7 +106,8 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
                         getSilentState();
                     }
                 });
-        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_shake_mode"), true,
+        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".key_shake_mode"),
+                true,
                 new ContentObserver(null) {
                     @Override
                     public void onChange(boolean selfChange) {
@@ -121,6 +122,14 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
                         checkHasMissCall();
                     }
                 });
+        contentResolver.registerContentObserver(Uri.parse(SETTINGS + ".sms_unread"),
+                true,
+                new ContentObserver(null) {
+                    @Override
+                    public void onChange(boolean selfChange) {
+                        getUnReadMsgState();
+                    }
+                });
     }
 
     private void checkAlarmState() {
@@ -206,12 +215,22 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
         // warningReadState.postValue(true);
     }
 
-    private void getAlarmState() {
-        // alarmState.postValue(true);
-    }
-
     private void getUnReadMsgState() {
-        //  msgUnReadState.postValue(true);
+        executorService.execute(() -> {
+            Cursor query = contentResolver.query(Uri.parse(SETTINGS), new String[]{"s_value"}, "s_key=?",
+                    new String[]{"sms_unread"}, null);
+            if (query != null) {
+                if (query.moveToNext()) {
+                    String value = query.getString(0);
+                    if ("1".equals(value)) {
+                        msgUnReadState.postValue(Boolean.TRUE);
+                    } else {
+                        msgUnReadState.postValue(Boolean.FALSE);
+                    }
+                }
+                query.close();
+            }
+        });
     }
 
     private void getBtState() {
@@ -282,7 +301,7 @@ public class StatusBarPresenter extends StatusBarBasePresenter {
     }
 
 
-    private ContentObserver mGpsMonitor = new ContentObserver(null) {
+    private final ContentObserver mGpsMonitor = new ContentObserver(null) {
         @Override
         public void onChange(boolean selfChange) {
             super.onChange(selfChange);