解决过午夜步数不清零的问题,让逻辑更严谨,步数更新更及时。
authorsnickersun <scy@incartech.cn>
Fri, 27 Mar 2020 05:01:21 +0000 (13:01 +0800)
committersnickersun <scy@incartech.cn>
Fri, 27 Mar 2020 05:01:21 +0000 (13:01 +0800)
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/GSensorListener.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java

index cee6e30..e0aa917 100644 (file)
@@ -368,20 +368,37 @@ public class CoreService extends Service {
         return sendChatMessage;\r
     }\r
 \r
+    private void resetStepCount(){\r
+        if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();\r
+        ICJniUtils.resetStepCount();\r
+        SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, 0);\r
+        SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, 0);\r
+        ICLogger.i("Reset StepCount , "+ICJniUtils.getStepCount());\r
+        this.runtime.setSaveStepCount(0);\r
+        this.runtime.setTotalStepCount(0);\r
+    }\r
     private void loadStepCount() {\r
         int i = SharPreferenceUtil.getPrefInt(this, KEY_STEP_COUNT, 0);\r
         int j = SharPreferenceUtil.getPrefInt(this, KEY_SAVE_STEP_COUNT, 0);\r
         if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();\r
+        ICJniUtils.recoverStepCount();\r
         if (ICJniUtils.getStepCount()>i){\r
             i=ICJniUtils.getStepCount();\r
         }\r
         this.runtime.setSaveStepCount(j);\r
         this.runtime.setTotalStepCount(i);\r
     }\r
-\r
+    public void saveStepCount(){\r
+        int i = runtime.getTotalStepCount();\r
+        int j = runtime.getSaveStepCount();\r
+        SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, i);\r
+        SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, j);\r
+        ICJniUtils.saveStepCount();\r
+    }\r
     private void setCleanStepCountAlarm() {\r
         /*一天清零一次 计步*/\r
         AlarmHelper.setCleanStepCountAlarm(this, 23, 59, STEP_COUNT_ALARM_ACTION);\r
+//        AlarmHelper.setCleanStepCountAlarm(this, 12, 12, STEP_COUNT_ALARM_ACTION);\r
     }\r
 \r
     private void setSleepAlarm() {\r
@@ -706,30 +723,13 @@ public class CoreService extends Service {
                             if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", "HEART_ALARM alarmCycle  " );\r
                             return Service.START_STICKY;\r
                         }\r
-                    } else {\r
-//                        if (WEATHER_ALARM.equals(paramIntent.getAction())) {\r
-////                            this.mSendPairMessage.resetDownLoadConfig();\r
-////                            this.mSendPairMessage.startDownLoad(this.runtime, false);\r
-//                            return Service.START_STICKY;\r
-//                        }else if (ACTION_ALARM_ADD_DATAPOINTS.equals(paramIntent.getAction())) {\r
-//                            setUpLocationDataAlarm(28800000L);\r
-//                            if (this.upLoadDataPoints != null) {\r
-//                                this.upLoadDataPoints.uploadCurrentLocation();\r
-//                                return Service.START_STICKY;\r
-//                            }\r
-//                            ICLogger.i("upLoadDataPoints=null");\r
-//                            return Service.START_STICKY;\r
-//                        }else if (Constants.STWORKMODE_ALARM.equals(paramIntent.getAction())) {\r
-//                            if (this.startAlarmCount >= 5) {\r
-//                                alarmCycle = paramIntent.getIntExtra("location_cycle", 3);\r
-//                                setAlarm(alarmCycle);\r
-//                            }\r
-//                            stringBuilder1 = new StringBuilder();\r
-//                            stringBuilder1.append("STWORKMODE_ALARM  alarmCycle=");\r
-//                            stringBuilder1.append(alarmCycle);\r
-//                            if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", stringBuilder1.toString());\r
-//                            return Service.START_STICKY;\r
-//                        }else {\r
+                    } else   if (STEP_COUNT_ALARM_ACTION.equals(paramIntent.getAction())) {\r
+                        ICLogger.i("Reset Count At 23:59 ");\r
+                        resetStepCount();\r
+                        setCleanStepCountAlarm();\r
+\r
+                        return Service.START_STICKY;\r
+                    }else {\r
                             if (ACTION_HEATR_RATE_START.equals(paramIntent.getAction())) {\r
 \r
                                 //此处消息从timer来\r
@@ -950,12 +950,7 @@ public class CoreService extends Service {
 \r
 \r
 \r
-    public void saveStepCount(){\r
-        int i = runtime.getTotalStepCount();\r
-        int j = runtime.getSaveStepCount();\r
-        SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, i);\r
-        SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, j);\r
-    }\r
+\r
     @Override\r
     public void onDestroy() {\r
         super.onDestroy();\r
index 100a007..ba11304 100644 (file)
@@ -44,8 +44,16 @@ public class GSensorListener  {
   }\r
 \r
   public void updateStepCount(){\r
-    getStepCountOver=true;\r
-    mHandler.sendEmptyMessage(100);\r
+      if(getStepCountOver==false) {\r
+        getStepCountOver = true;\r
+        CURRENT_STEP = ICJniUtils.getStepCount();\r
+        StringBuilder stringBuilder1 = new StringBuilder();\r
+        stringBuilder1.append("CURRENT_STEP =");\r
+        stringBuilder1.append(CURRENT_STEP);\r
+        ICLogger.i(stringBuilder1.toString());\r
+        runtime.setTotalStepCount(CURRENT_STEP);\r
+        getStepCountOver = false;\r
+      }\r
   }\r
   public int getStepCount() {\r
     return this.CURRENT_STEP;\r
index 701a95d..857454c 100644 (file)
@@ -187,266 +187,6 @@ public class ProcessReceiver extends BroadcastReceiver {
           public void call(Long param1Long) { wakelock.release(); }\r
         });\r
   }\r
-  \r
-  public void initCustomNotification(final Context var1, final Contact var2, final String var3, int var4) {\r
-//    String var5 = var2.name;\r
-//    if (this.mNotificationDialog == null) {\r
-//      this.mNotificationDialog = new com.enqualcomm.support.utils.CustomNotification.Builder(var1);\r
-//    }\r
-//\r
-//    if (this.mCustomNotification != null && this.mCustomNotification.isShowing() && last_message_name != null && var5 != null && last_message_name.equals(var5) && var4 == last_app_id) {\r
-//      this.mCustomNotification.dismiss();\r
-//    }\r
-//\r
-//    last_message_name = var5;\r
-//    last_app_id = var4;\r
-//    final Handler var6 = new Handler();\r
-//    if (var2.category == 4) {\r
-//      var5 = var2.extra;\r
-//    } else {\r
-//      var5 = var2.number;\r
-//    }\r
-//\r
-//    Observable.create(new HandleWechatNotice(var4, var5, 1, var1)).subscribeOn(Schedulers.io()).subscribe(new Subscriber<NotificationParam>() {\r
-//      public void onCompleted() {\r
-//      }\r
-//\r
-//      public void onError(Throwable var1x) {\r
-//      }\r
-//\r
-//      public void onNext(NotificationParam var1x) {\r
-//        final int var2x = var1x.noReadmsgCount;\r
-//        StringBuilder var3x = new StringBuilder();\r
-//        var3x.append("msgCount=");\r
-//        var3x.append(var2x);\r
-//        ICLogger.i(var3x.toString());\r
-//        switch(var1x.category) {\r
-//          case 1:\r
-//            var6.post(new Runnable() {\r
-//              public void run() {\r
-//                String var1x;\r
-//                if (var3 != null) {\r
-//                  var1x = var3;\r
-//                } else {\r
-//                  var1x = var1.getString(2131624056);\r
-//                }\r
-//\r
-//                StringBuilder var2xx = new StringBuilder();\r
-//                var2xx.append("setContent=");\r
-//                var2xx.append(var1x);\r
-//                ICLogger.i(var2xx.toString());\r
-//                ProcessReceiver.this.mCustomNotification = ProcessReceiver.this.mNotificationDialog.setTitle(2131165274, 2131624055, 0).setMessage(var2.name, var2x).setContentMessage(var1x).setLayoutViewClick(new View.OnTouchListener() {\r
-//                  public boolean onTouch(View var1x, MotionEvent var2xx) {\r
-//                    switch(var2xx.getAction()) {\r
-//                      case 0:\r
-//                        ProcessReceiver.this.x1 = var2xx.getX();\r
-//                        ProcessReceiver.this.y1 = var2xx.getY();\r
-//                        break;\r
-//                      case 1:\r
-//                        ProcessReceiver.this.x2 = var2xx.getX();\r
-//                        ProcessReceiver.this.y2 = var2xx.getY();\r
-//                        if (ProcessReceiver.this.y1 - ProcessReceiver.this.y2 > 50.0F) {\r
-//                          ProcessReceiver.this.mCustomNotification.dismiss();\r
-//                        } else {\r
-//                          ICLogger.i("action up to do ");\r
-//                          ProcessReceiver.this.mCustomNotification.dismiss();\r
-//                          ComponentName var8 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");\r
-//                          Intent var6x = new Intent("android.intent.action.MAIN");\r
-//                          var6x.putExtra("ACTIVITY_TYPE", 2);\r
-//                          var6x.putExtra("contact", var2);\r
-//                          var6x.addCategory("android.intent.category.DEFAULT");\r
-//                          var6x.addFlags(268435456);\r
-//                          var6x.setComponent(var8);\r
-//\r
-//                          Exception var10000;\r
-//                          label47: {\r
-//                            String var7;\r
-//                            boolean var10001;\r
-//                            label36: {\r
-//                              try {\r
-//                                var1.startActivity(var6x);\r
-//                                if (var2.category == 4) {\r
-//                                  var7 = var2.extra;\r
-//                                  break label36;\r
-//                                }\r
-//                              } catch (Exception var5) {\r
-//                                var10000 = var5;\r
-//                                var10001 = false;\r
-//                                break label47;\r
-//                              }\r
-//\r
-//                              try {\r
-//                                var7 = var2.number;\r
-//                              } catch (Exception var4) {\r
-//                                var10000 = var4;\r
-//                                var10001 = false;\r
-//                                break label47;\r
-//                              }\r
-//                            }\r
-//\r
-//                            try {\r
-//                              HandleWechatNotice var10 = new HandleWechatNotice(1, var7, 3, var1);\r
-//                              Observable var11 = Observable.create(var10).subscribeOn(Schedulers.io());\r
-//                              Subscriber var12 = new Subscriber<NotificationParam>() {\r
-//                                public void onCompleted() {\r
-//                                }\r
-//\r
-//                                public void onError(Throwable var1x) {\r
-//                                }\r
-//\r
-//                                public void onNext(NotificationParam var1x) {\r
-//                                }\r
-//                              };\r
-//                              var11.subscribe(var12);\r
-//                              return true;\r
-//                            } catch (Exception var3x) {\r
-//                              var10000 = var3x;\r
-//                              var10001 = false;\r
-//                            }\r
-//                          }\r
-//\r
-//                          Exception var9 = var10000;\r
-//                          var9.printStackTrace();\r
-//                        }\r
-//                    }\r
-//\r
-//                    return true;\r
-//                  }\r
-//                }).create();\r
-//                ProcessReceiver.this.mCustomNotification.getWindow().setGravity(Gravity.TOP);\r
-//                ProcessReceiver.this.mCustomNotification.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);\r
-//                ProcessReceiver.this.mCustomNotification.show();\r
-//                (new Handler()).postDelayed(new Runnable() {\r
-//                  public void run() {\r
-//                    if (ProcessReceiver.this.mCustomNotification != null && ProcessReceiver.this.mCustomNotification.isShowing()) {\r
-//                      ProcessReceiver.this.mCustomNotification.dismiss();\r
-//                    }\r
-//\r
-//                  }\r
-//                }, 5000L);\r
-//              }\r
-//            });\r
-//            break;\r
-//          case 2:\r
-//            var6.post(new Runnable() {\r
-//              public void run() {\r
-//                String var1x;\r
-//                if (var3 != null) {\r
-//                  var1x = var3;\r
-//                } else {\r
-//                  StringBuilder var3x = new StringBuilder();\r
-//                  var3x.append(Integer.toString(var2x));\r
-//                  var3x.append(var1.getString(2131624053));\r
-//                  var1x = var3x.toString();\r
-//                }\r
-//\r
-//                StringBuilder var2xx = new StringBuilder();\r
-//                var2xx.append("setContent=");\r
-//                var2xx.append(var1x);\r
-//                ICLogger.i(var2xx.toString());\r
-//                ProcessReceiver.this.mCustomNotification = ProcessReceiver.this.mNotificationDialog.setTitle(2131165268, 2131624051, 0).setMessage(var2.name, 0).setContentMessage(var1x).setLayoutViewClick(new View.OnTouchListener() {\r
-//                  public boolean onTouch(View var1x, MotionEvent var2xx) {\r
-//                    switch(var2xx.getAction()) {\r
-//                      case 0:\r
-//                        ProcessReceiver.this.x1 = var2xx.getX();\r
-//                        ProcessReceiver.this.y1 = var2xx.getY();\r
-//                        break;\r
-//                      case 1:\r
-//                        ProcessReceiver.this.x2 = var2xx.getX();\r
-//                        ProcessReceiver.this.y2 = var2xx.getY();\r
-//                        if (ProcessReceiver.this.y1 - ProcessReceiver.this.y2 > 50.0F) {\r
-//                          ProcessReceiver.this.mCustomNotification.dismiss();\r
-//                        } else {\r
-//                          ICLogger.i("action up to do ");\r
-//                          ProcessReceiver.this.mCustomNotification.dismiss();\r
-//\r
-//                          Exception var10000;\r
-//                          label47: {\r
-//                            boolean var10001;\r
-//                            String var6x;\r
-//                            label36: {\r
-//                              try {\r
-//                                if (var2.category == 4) {\r
-//                                  var6x = var2.extra;\r
-//                                  break label36;\r
-//                                }\r
-//                              } catch (Exception var5) {\r
-//                                var10000 = var5;\r
-//                                var10001 = false;\r
-//                                break label47;\r
-//                              }\r
-//\r
-//                              try {\r
-//                                var6x = var2.number;\r
-//                              } catch (Exception var4) {\r
-//                                var10000 = var4;\r
-//                                var10001 = false;\r
-//                                break label47;\r
-//                              }\r
-//                            }\r
-//\r
-//                            try {\r
-//                              HandleWechatNotice var8 = new HandleWechatNotice(2, var6x, 3, var1);\r
-//                              Observable var9 = Observable.create(var8).subscribeOn(Schedulers.io());\r
-//                              Subscriber var10 = new Subscriber<NotificationParam>() {\r
-//                                public void onCompleted() {\r
-//                                }\r
-//\r
-//                                public void onError(Throwable var1x) {\r
-//                                }\r
-//\r
-//                                public void onNext(NotificationParam var1x) {\r
-//                                }\r
-//                              };\r
-//                              var9.subscribe(var10);\r
-//                              return true;\r
-//                            } catch (Exception var3x) {\r
-//                              var10000 = var3x;\r
-//                              var10001 = false;\r
-//                            }\r
-//                          }\r
-//\r
-//                          Exception var7 = var10000;\r
-//                          var7.printStackTrace();\r
-//                        }\r
-//                    }\r
-//\r
-//                    return true;\r
-//                  }\r
-//                }).create();\r
-//                ProcessReceiver.this.mCustomNotification.getWindow().setGravity(Gravity.TOP);\r
-//                ProcessReceiver.this.mCustomNotification.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);\r
-//                ProcessReceiver.this.mCustomNotification.show();\r
-//                (new Handler()).postDelayed(new Runnable() {\r
-//                  public void run() {\r
-//                    if (ProcessReceiver.this.mCustomNotification != null && ProcessReceiver.this.mCustomNotification.isShowing()) {\r
-//                      ProcessReceiver.this.mCustomNotification.dismiss();\r
-//                    }\r
-//\r
-//                  }\r
-//                }, 5000L);\r
-//              }\r
-//            });\r
-//        }\r
-//\r
-//      }\r
-//    });\r
-  }\r
-  \r
-  public void initNotification(Contact paramContact, Context var2) {\r
-//    String var3 = paramContact.name;\r
-//    Uri var6 = RingtoneManager.getDefaultUri(TYPE_NOTIFICATION);\r
-//    android.support.v4.app.NotificationCompat.Builder var4 = (new android.support.v7.app.NotificationCompat.Builder(var2)).setSmallIcon(R.drawable.microphone).setContentTitle(var2.getString(R.string.setting_title)).setWhen(System.currentTimeMillis()).setAutoCancel(true);\r
-//    StringBuilder var5 = new StringBuilder();\r
-//    var5.append(var2.getString(R.string.voiceMessage));\r
-//    var5.append("  ");\r
-//    var5.append(var3);\r
-//    var5.append(var2.getString(R.string.voiceMessageEnd));\r
-//    Notification var7 = var4.setContentText(var5.toString()).setTicker(var2.getString(R.string.ticker)).setSound(var6).build();\r
-//    this.mNotificationManager = (NotificationManager)var2.getSystemService(Context.NOTIFICATION_SERVICE);\r
-//    this.mNotificationManager.notify(1, var7);\r
-  }\r
-\r
 \r
   @Override\r
   public void onReceive(Context paramContext, Intent paramIntent) {\r
@@ -459,8 +199,10 @@ public class ProcessReceiver extends BroadcastReceiver {
     stringBuilder.append(str);\r
     ICLogger.i(stringBuilder.toString());\r
     if (STEP_COUNT_ALARM_ACTION.equals(str)) {\r
+      ICLogger.i("Reset Count At 23:59 ");\r
       ICJniUtils.resetStepCount();\r
       AlarmHelper.setCleanStepCountAlarm(paramContext, 23, 59, STEP_COUNT_ALARM_ACTION);\r
+\r
       return;\r
     }else  if (RESUME_ACTION.equals(str)) {\r
       SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r