refactor codes.
authorkfl_614 <kfl_614@163.com>
Fri, 4 Dec 2020 08:55:51 +0000 (16:55 +0800)
committerkfl_614 <kfl_614@163.com>
Fri, 4 Dec 2020 08:55:51 +0000 (16:55 +0800)
app/src/main/java/com/enqualcomm/support/bean/heartRateStatus.java
app/src/main/java/com/enqualcomm/support/service/Deliver.java
app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java
app/src/main/java/com/enqualcomm/support/service/base/AbstractInvokeHandlerService.java
app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java

index 6881146..e8212c7 100644 (file)
@@ -8,40 +8,41 @@ public class heartRateStatus {
     private String lastTestTime;\r
     private int lastBPH;\r
     private int lastBPL;\r
-    private int lastSpo2=0;\r
-\r
-    private int BPH_ref=0;\r
-    private int BPL_ref=0;\r
-    private int Age=0;\r
-    private int Sex=0;\r
-    private int sp02_adjust=0;\r
-    private int ppg_adjust=0;\r
-    private int bph_adjust=0;\r
-    private int bpl_adjust=0;\r
-\r
-    public int ppg_threshold_max=0;\r
-    public int ppg_threshold_min=0;\r
-    public int bph_threshold_max=0;\r
-    public int bph_threshold_min=0;\r
-    public int bpl_threshold_max=0;\r
-    public int bpl_threshold_min=0;\r
-\r
-    public void setXY_Ref(int refBPH,int refBPL,int refSex,int refAge){\r
-        BPH_ref=refBPH;\r
-        BPL_ref=refBPL;\r
-        Age=refAge;\r
-        Sex=refSex;\r
+    private int lastSpo2 = 0;\r
+\r
+    private int BPH_ref = 0;\r
+    private int BPL_ref = 0;\r
+    private int Age = 0;\r
+    private int Sex = 0;\r
+    private int sp02_adjust = 0;\r
+    private int ppg_adjust = 0;\r
+    private int bph_adjust = 0;\r
+    private int bpl_adjust = 0;\r
+\r
+    public int ppg_threshold_max = 0;\r
+    public int ppg_threshold_min = 0;\r
+    public int bph_threshold_max = 0;\r
+    public int bph_threshold_min = 0;\r
+    public int bpl_threshold_max = 0;\r
+    public int bpl_threshold_min = 0;\r
+\r
+    public void setXY_Ref(int refBPH, int refBPL, int refSex, int refAge) {\r
+        BPH_ref = refBPH;\r
+        BPL_ref = refBPL;\r
+        Age = refAge;\r
+        Sex = refSex;\r
     }\r
 \r
-    public void setAdjust(int _ppg_adjust,int _bph_adjust,int _bpl_adjust ,int _sp02_adjust){\r
-        ppg_adjust=_ppg_adjust;\r
-        bph_adjust=_bph_adjust;\r
-        bpl_adjust=_bpl_adjust;\r
-        sp02_adjust=_sp02_adjust;\r
+    public void setAdjust(int _ppg_adjust, int _bph_adjust, int _bpl_adjust, int _sp02_adjust) {\r
+        ppg_adjust = _ppg_adjust;\r
+        bph_adjust = _bph_adjust;\r
+        bpl_adjust = _bpl_adjust;\r
+        sp02_adjust = _sp02_adjust;\r
     }\r
 \r
 \r
     private HEARTRATE_WORKINGSTAT currentStat;\r
+\r
     public enum HEARTRATE_WORKINGSTAT {\r
         HEARTRATE_CLOSED,\r
         HEARTRATE_OPEN,\r
@@ -49,99 +50,104 @@ public class heartRateStatus {
         HEARTRATE_WARED_AND_TESTING,\r
         HEARTRATE_TEST_SUCCESS,\r
         HEARTRATE_TEST_FAILED,\r
-    } ;\r
+    }\r
+\r
+    ;\r
 \r
-    public boolean isHeartrRateExists(){\r
-        return ICJniUtils.isPPGavailable()==1;\r
+    public boolean isHeartrRateExists() {\r
+        return ICJniUtils.isPPGavailable() == 1;\r
     }\r
 \r
-    public HEARTRATE_WORKINGSTAT getHeartrateWorkingStat(){\r
+    public HEARTRATE_WORKINGSTAT getHeartrateWorkingStat() {\r
 \r
         return currentStat;\r
     }\r
 \r
-    public void setHeartrateStat(HEARTRATE_WORKINGSTAT stat){\r
+    public void setHeartrateStat(HEARTRATE_WORKINGSTAT stat) {\r
 \r
         currentStat = stat;\r
     }\r
-    public int getPPG(){\r
-        int ppg=lastHeartrate;\r
-        if(ppg_adjust!=0)\r
-            ppg+=ppg_adjust;\r
+\r
+    public int getPPG() {\r
+        int ppg = lastHeartrate;\r
+        if (ppg_adjust != 0)\r
+            ppg += ppg_adjust;\r
         return ppg;\r
     }\r
 \r
     public int getBPH() {\r
-        int BPH=lastBPH;\r
-        if (BPH_ref>=35 && BPH_ref<200) {\r
+        int BPH = lastBPH;\r
+        if (BPH_ref >= 35 && BPH_ref < 200) {\r
             if (lastBPH > BPH_ref + 20)\r
                 BPH = BPH_ref + 20;\r
             if (lastBPH < BPH_ref - 20)\r
                 BPH = BPH_ref - 20;\r
         }\r
 \r
-        if (bph_adjust!=0){\r
-            BPH+=bph_adjust;\r
+        if (bph_adjust != 0) {\r
+            BPH += bph_adjust;\r
         }\r
         return BPH;\r
     }\r
+\r
     public int getBPL() {\r
-        int BPL=lastBPL;\r
-        if(BPL_ref>=35 && BPL_ref<200) {\r
+        int BPL = lastBPL;\r
+        if (BPL_ref >= 35 && BPL_ref < 200) {\r
             if (lastBPL > BPL_ref + 20)\r
                 BPL = BPL_ref + 20;\r
             if (lastBPL < BPL_ref - 20)\r
                 BPL = BPL_ref - 20;\r
         }\r
 \r
-        if (bpl_adjust!=0){\r
-            BPL+=bpl_adjust;\r
+        if (bpl_adjust != 0) {\r
+            BPL += bpl_adjust;\r
         }\r
         return BPL;\r
     }\r
 \r
 \r
-    public int getSpo2(){\r
-        int sp02=lastSpo2;\r
-        if (sp02_adjust!=0)\r
-            sp02+=sp02_adjust;\r
+    public int getSpo2() {\r
+        int sp02 = lastSpo2;\r
+        if (sp02_adjust != 0)\r
+            sp02 += sp02_adjust;\r
         return sp02;\r
     }\r
 \r
 \r
-    public String getTestTime(){\r
+    public String getTestTime() {\r
         return lastTestTime;\r
     }\r
-    public void setLastTestTime(String testtime){\r
-        lastTestTime=testtime;\r
+\r
+    public void setLastTestTime(String testtime) {\r
+        lastTestTime = testtime;\r
     }\r
 \r
 \r
-    public void setLastHeartrate(int value,int bph,int bpl){\r
-        lastHeartrate=value;\r
-        lastBPH=bph;\r
-        lastBPL=bpl;\r
+    public void setLastHeartrate(int value, int bph, int bpl) {\r
+        lastHeartrate = value;\r
+        lastBPH = bph;\r
+        lastBPL = bpl;\r
     }\r
 \r
-    public void setLastHeartrate(int value,int bph,int bpl,int sp02){\r
-        lastHeartrate=value;\r
-        lastBPH=bph;\r
-        lastBPL=bpl;\r
-        lastSpo2=sp02;\r
+    public void setLastHeartrate(int value, int bph, int bpl, int sp02) {\r
+        lastHeartrate = value;\r
+        lastBPH = bph;\r
+        lastBPL = bpl;\r
+        lastSpo2 = sp02;\r
     }\r
 \r
-//心率低阀值,低于该阀值上传心率,如果未设置,则留空\r
+    //心率低阀值,低于该阀值上传心率,如果未设置,则留空\r
 //心率高阀值,高于该阀值上传心率,如果未设置,则留空\r
 //低压阀值,低压低于该阀值上传血压,如果未设置,则留空\r
 //低压阀值,低压高于该阀值上传血压,如果未设置,则留空\r
 //高压阀值,高压低于该阀值上传血压,如果未设置,则留空\r
 //高压阀值,高压高于该阀值上传血压,如果未设置,则留空\r
-    public void setWarningThreshold(int _ppg_threshold_max,int _ppg_threshold_min,int _bph_threshold_max,int _bph_threshold_min,int _bpl_threshold_max,int _bpl_threshold_min){\r
-        ppg_threshold_max=_ppg_threshold_max;\r
-        ppg_threshold_min=_ppg_threshold_min;\r
-        bph_threshold_max=_bph_threshold_max;\r
-        bph_threshold_min=_bph_threshold_min;\r
-        bpl_threshold_max=_bpl_threshold_max;\r
-        bpl_threshold_min=_bpl_threshold_min;\r
+    public void setWarningThreshold(int _ppg_threshold_max, int _ppg_threshold_min, int _bph_threshold_max, int _bph_threshold_min, int _bpl_threshold_max, int _bpl_threshold_min) {\r
+        ppg_threshold_max = _ppg_threshold_max;\r
+        ppg_threshold_min = _ppg_threshold_min;\r
+        bph_threshold_max = _bph_threshold_max;\r
+        bph_threshold_min = _bph_threshold_min;\r
+        bpl_threshold_max = _bpl_threshold_max;\r
+        bpl_threshold_min = _bpl_threshold_min;\r
     }\r
 }\r
index c082c5f..26d5692 100644 (file)
@@ -95,18 +95,13 @@ public class Deliver extends AbstractConnectionService {
     private static boolean wifiEnabled;\r
 \r
     public static Runnable delaySendMSG;\r
-    private static Handler mSendMSGHandler = new Handler(new Handler.Callback() {\r
-        @Override\r
-        public boolean handleMessage(Message message) {\r
-            return false;\r
-        }\r
-    });\r
+    private static Handler mSendMSGHandler = new Handler(message -> false);\r
 \r
     static {\r
         delaySendMSG = new Runnable() {\r
             @Override\r
             public void run() {\r
-                if (getAndSendMsgFromQueue() == true) {\r
+                if (getAndSendMsgFromQueue()) {\r
                     mSendMSGHandler.postDelayed(delaySendMSG, 5000L);\r
                 }\r
             }\r
index 6168d7e..62e1228 100644 (file)
@@ -43,428 +43,426 @@ import static com.enqualcomm.support.Constants.key_ppg;
 import static com.enqualcomm.support.Constants.key_spo2;\r
 \r
 public class HeartRateManager extends AbstractInvokeHandlerService implements SensorEventListener {\r
-  private int mNetworkType;\r
+    private static final String TAG = "HeartRateManager";\r
+    private int mNetworkType;\r
 \r
-  private SimSignalUtil mSignalUtil;\r
+    private SimSignalUtil mSignalUtil;\r
 \r
-  private Runtime runtime;\r
-  private NettyConnection connection;\r
+    private Runtime runtime;\r
+    private NettyConnection connection;\r
 \r
-  private ScheduledThreadPoolExecutor timerPPG=null;\r
-  private static Handler mHandler=null;\r
+    private ScheduledThreadPoolExecutor timerPPG = null;\r
+    private static Handler mHandler = null;\r
 \r
-  private void checkWarning(){\r
-    //ppg\r
-    if(runtime.getHRS().ppg_threshold_max>0 && runtime.getHRS().getPPG() >runtime.getHRS().ppg_threshold_max){\r
+    private void checkWarning() {\r
+        //ppg\r
+        if (runtime.getHRS().ppg_threshold_max > 0 && runtime.getHRS().getPPG() > runtime.getHRS().ppg_threshold_max) {\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
 \r
-    }else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()<runtime.getHRS().ppg_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
-    }\r
+        } else if (runtime.getHRS().ppg_threshold_min > 0 && runtime.getHRS().getPPG() < runtime.getHRS().ppg_threshold_min) {\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+        }\r
+\r
+        //bph\r
+        if (runtime.getHRS().bph_threshold_max > 0 && runtime.getHRS().getBPH() > runtime.getHRS().bph_threshold_max) {\r
+\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+\r
+        } else if (runtime.getHRS().bph_threshold_min > 0 && runtime.getHRS().getBPH() < runtime.getHRS().bph_threshold_min) {\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
 \r
-    //bph\r
-    if(runtime.getHRS().bph_threshold_max>0 && runtime.getHRS().getBPH() >runtime.getHRS().bph_threshold_max){\r
+        }\r
+\r
+        //bpl\r
+        if (runtime.getHRS().bpl_threshold_max > 0 && runtime.getHRS().getBPL() > runtime.getHRS().bpl_threshold_max) {\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
 \r
-    }else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+        } else if (runtime.getHRS().bpl_threshold_min > 0 && runtime.getHRS().getBPL() < runtime.getHRS().bpl_threshold_min) {\r
+            runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
+            //trigger AP10 报警定位\r
+            CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
 \r
+        }\r
     }\r
 \r
-    //bpl\r
-    if(runtime.getHRS().bpl_threshold_max>0 && runtime.getHRS().getBPL() >runtime.getHRS().bpl_threshold_max){\r
+    public HeartRateManager(Runtime _runtime, NettyConnection _connection) {\r
+        runtime = _runtime;\r
+        connection = _connection;\r
+        currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
+        isTimerStarted = false;\r
+        mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);\r
+        mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);\r
+\r
+        mHandler = new Handler(message -> {\r
+\r
+            switch (message.what) {\r
+                case 100: {\r
+                    ICLogger.log(TAG, "start send heart rate...");\r
+                    //只有检测PPG成功,且网络连接中才发送数据\r
+                    if (runtime.getHRS().getHeartrateWorkingStat() ==\r
+                            heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
+                        runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());\r
+                        String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
+                        sendBroadcastPPGResult();\r
+                        //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
+                        if (connection.isServerConnected()) {\r
+                            if (PPGDATA.isEmpty()) {\r
+                                String ppgd = protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
+                                String bloodd = protocolAPIHelper.getBlood_MSG(runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
+                                String oxd = protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
+                                connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
+                                connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
+                                connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+                                checkWarning();\r
+                            } else {\r
+                                connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
+                                ICLogger.log(TAG, "Send PPG " + PPGDATA);\r
+                                checkWarning();\r
+                            }\r
+                            ICLogger.log(TAG, "Send PPG " + PPGDATA);\r
+                        } else {\r
+                            ICLogger.log(TAG, "Skip PPG " + PPGDATA);\r
+                        }\r
+                    } else {\r
+                        ICLogger.log(TAG, "PPG Failed for Timeout!");\r
+                    }\r
+                    stopPPG();\r
+                }\r
+                break;\r
+                case 200: {\r
+                    startPPG();\r
+                }\r
+                break;\r
+                case 300: {\r
+                    stopPPG();\r
+                }\r
+                break;\r
+            }\r
+            return false;\r
+        });\r
 \r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+    }\r
 \r
-    }else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {\r
-      runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
-      //trigger AP10 报警定位\r
-      CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+    private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {\r
+        public void onReceive(Context param1Context, Intent param1Intent) {\r
+            if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {\r
+\r
+                //此消息来源于BroadCaset,收到开始测试的消息。\r
+                //此时需要重置HeartRateDetect Timer\r
+                //倘若有 参数 PPGTestCycle,则根据这个数值进行设置\r
+                int ppgtestCycle = param1Intent.getIntExtra("PPGTestCycle", -1);\r
+                if (ppgtestCycle > 0) {\r
+                    Config.setPPGTestCycle(runtime.getContextProxy().context, ppgtestCycle);\r
+                    runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));\r
+                    ICLogger.i("get and set PPGTestCycle " + ppgtestCycle);\r
+                }\r
+                CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+                HeartRateManager.this.startPPG();\r
+            }\r
 \r
+\r
+        }\r
+    };\r
+\r
+    private void sendBroadcastPPGResult() {\r
+        Intent intent = new Intent(ACTION_BROADCAST_PPG);\r
+        intent.putExtra("ppg", runtime.getHRS().getPPG());\r
+        intent.putExtra("bph", runtime.getHRS().getBPH());\r
+        intent.putExtra("bpl", runtime.getHRS().getBPL());\r
+        intent.putExtra("spo2", runtime.getHRS().getSpo2());\r
+        intent.putExtra("time", runtime.getHRS().getTestTime());\r
+        runtime.getContextProxy().context.sendBroadcast(intent);\r
     }\r
-  }\r
-  public HeartRateManager(Runtime _runtime,NettyConnection _connection){\r
-    runtime=_runtime;\r
-    connection=_connection;\r
-    currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
-    isTimerStarted=false;\r
-    mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);\r
-    mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);\r
-\r
-    mHandler=new Handler(new Handler.Callback() {\r
-      @Override\r
-      public boolean handleMessage(Message message) {\r
 \r
-        switch (message.what) {\r
-          case 100: {\r
-            //只有检测PPG成功,且网络连接中才发送数据\r
-            if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
-              runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());\r
-              String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
-              sendBroadcastPPGResult();\r
-              //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
-              if (connection.isServerConnected()) {\r
-                if(PPGDATA.isEmpty()){\r
-                  String ppgd=protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
-                  String bloodd=protocolAPIHelper.getBlood_MSG( runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
-                  String oxd=protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
-                  connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
-                  connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
-                  connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
-\r
-                  checkWarning();\r
-\r
-                }else {\r
-                  connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
-                  ICLogger.i("Send PPG " + PPGDATA);\r
-                  checkWarning();\r
+    public void regReceiver() {\r
+        //注册“网络变化”的广播接收器\r
+        IntentFilter intentFilter = new IntentFilter();\r
+        intentFilter.addAction(ACTION_HEATR_RATE_START);\r
+        runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);\r
+    }\r
+\r
+    public void unRegReceiver() {\r
+        runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);\r
+    }\r
+\r
+    private SensorManager mSensorManager;\r
+    private Sensor mHeartRate;\r
+    int PPG;\r
+    int BPH;\r
+    int BPL;\r
+    int SPo2;\r
+    boolean isWared;\r
+    boolean isPPGTesting;\r
+    static boolean isTimerStarted;\r
+    static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;\r
+    static int delayCount;\r
+    static int testCount;\r
+    static int notWaredCount;\r
+    private final int MAX_TESTTIMES = 30000;//最大延迟测试时间为30秒\r
+\r
+\r
+    public void doPPGtest() {\r
+        int hrsType = ICJniUtils.isPPGavailable();\r
+        if (hrsType > 0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
+            PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。\r
+            BPH = ICJniUtils.getHighBloodPressure();\r
+            BPL = ICJniUtils.getLowBloodPressure();\r
+            SPo2 = ICJniUtils.getSPO2();\r
+            isWared = (ICJniUtils.isWeared() == 1);\r
+            isPPGTesting = (ICJniUtils.isPPGStarted() == 1);\r
+        } else {\r
+            isPPGTesting = true;\r
+        }\r
+        ICLogger.i("PPG TESTING=" + isPPGTesting + ", isWared=" + isWared + ", PPG=" + PPG + ", BPH=" + BPH + ", BPL=" + BPL + ", SPo2=" + SPo2);\r
+        if (isPPGTesting) {\r
+            if (isWared) {\r
+                if (PPG > 0) {\r
+                    currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;\r
+                } else {\r
+                    currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;\r
                 }\r
-                ICLogger.i("Send PPG " + PPGDATA);\r
-              } else {\r
-                ICLogger.i("Skip PPG " + PPGDATA);\r
-              }\r
             } else {\r
-              ICLogger.i("PPG Failed for Timeout!");\r
+                currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;\r
             }\r
-            stopPPG();\r
-          }\r
-           break;\r
-          case 200: {\r
-            startPPG();\r
-          }\r
-            break;\r
-          case 300: {\r
-            stopPPG();\r
-          }\r
-          break;\r
+        } else {\r
+            currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
         }\r
-        return false;\r
-      }\r
-    });\r
-\r
-  }\r
-\r
-  private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {\r
-    public void onReceive(Context param1Context, Intent param1Intent) {\r
-      if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {\r
-\r
-        //此消息来源于BroadCaset,收到开始测试的消息。\r
-        //此时需要重置HeartRateDetect Timer\r
-        //倘若有 参数 PPGTestCycle,则根据这个数值进行设置\r
-        int ppgtestCycle=param1Intent.getIntExtra("PPGTestCycle",-1);\r
-        if (ppgtestCycle >0){\r
-          Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle);\r
-          runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));\r
-          ICLogger.i("get and set PPGTestCycle "+ppgtestCycle);\r
+\r
+\r
+        if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED) {\r
+            notWaredCount--;\r
+            if (notWaredCount < 0) { //没有佩戴次数到限制后,停止检测\r
+                ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");\r
+                stopPPG();\r
+            }\r
         }\r
-         CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
-         HeartRateManager.this.startPPG();\r
-      }\r
 \r
+        if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
+            runtime.getHRS().setLastHeartrate(PPG, BPH, BPL, SPo2);\r
+            delayCount--;\r
+            if (delayCount < 0) //达到延迟时间后,停止检测并发送数据\r
+                sendAndStopPPG();\r
 \r
-    }\r
-  };\r
-\r
-  private void sendBroadcastPPGResult(){\r
-    Intent intent=new Intent(ACTION_BROADCAST_PPG);\r
-    intent.putExtra("ppg",runtime.getHRS().getPPG());\r
-    intent.putExtra("bph",runtime.getHRS().getBPH());\r
-    intent.putExtra("bpl",runtime.getHRS().getBPL());\r
-    intent.putExtra("spo2",runtime.getHRS().getSpo2());\r
-    intent.putExtra("time",runtime.getHRS().getTestTime());\r
-    runtime.getContextProxy().context.sendBroadcast(intent);\r
-  }\r
-  public void regReceiver(){\r
-    //注册“网络变化”的广播接收器\r
-    IntentFilter intentFilter = new IntentFilter();\r
-    intentFilter.addAction(ACTION_HEATR_RATE_START);\r
-    runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);\r
-  }\r
-\r
-  public void unRegReceiver(){\r
-    runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);\r
-  }\r
-  private SensorManager mSensorManager;\r
-  private Sensor mHeartRate;\r
-  int PPG;\r
-  int BPH;\r
-  int BPL;\r
-  int SPo2;\r
-  boolean isWared ;\r
-  boolean isPPGTesting ;\r
-  static boolean isTimerStarted;\r
-  static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;\r
-  static int delayCount;\r
-  static int testCount;\r
-  static int notWaredCount;\r
-  private final int MAX_TESTTIMES=30000;//最大延迟测试时间为30秒\r
-\r
-\r
-  public void doPPGtest(){\r
-\r
-    int hrsType=ICJniUtils.isPPGavailable();\r
-    if (hrsType>0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-      PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。\r
-      BPH = ICJniUtils.getHighBloodPressure();\r
-      BPL = ICJniUtils.getLowBloodPressure();\r
-      SPo2 = ICJniUtils.getSPO2();\r
-      isWared = (ICJniUtils.isWeared() == 1);\r
-      isPPGTesting = (ICJniUtils.isPPGStarted() == 1);\r
-    }else{\r
-      isPPGTesting=true;\r
-    }\r
-    ICLogger.i("PPG TESTING="+isPPGTesting+", isWared="+isWared+", PPG="+PPG+", BPH="+BPH+", BPL="+BPL+", SPo2="+SPo2);\r
-    if (isPPGTesting){\r
-      if (isWared ) {\r
-        if (PPG > 0) {\r
-          currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;\r
         } else {\r
-          currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;\r
+            runtime.getHRS().setLastHeartrate(0, 0, 0, 0);\r
+        }\r
+        runtime.getHRS().setHeartrateStat(currentStat);\r
+\r
+\r
+        testCount--;\r
+        if (testCount < 0) {\r
+            ICLogger.i("PPG 超过 " + MAX_TESTTIMES + "秒 未能得出结果,取消检测报告!");\r
+            stopPPG();\r
         }\r
-      }else{\r
-        currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;\r
-      }\r
-    }else{\r
-      currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
-    }\r
 \r
+    }\r
 \r
-    if (currentStat== heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED){\r
-      notWaredCount--;\r
-      if( notWaredCount <0){ //没有佩戴次数到限制后,停止检测\r
-        ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");\r
-        stopPPG();\r
-      }\r
+    private void sendAndStopPPG() {\r
+        //结束和发送数据\r
+        mHandler.sendEmptyMessage(100);\r
     }\r
 \r
-    if (currentStat==heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS){\r
-      runtime.getHRS().setLastHeartrate(PPG,BPH,BPL,SPo2);\r
-      delayCount--;\r
-      if (delayCount<0) //达到延迟时间后,停止检测并发送数据\r
-        sendAndStopPPG();\r
+    PowerManager.WakeLock mWakeLock = null;\r
 \r
-    }else{\r
-      runtime.getHRS().setLastHeartrate(0,0,0,0);\r
+    public PowerManager.WakeLock getPPGWakeLock() {\r
+        mWakeLock = ((PowerManager) (runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());\r
+        mWakeLock.acquire(30000L);\r
+        return mWakeLock;\r
     }\r
-    runtime.getHRS().setHeartrateStat(currentStat);\r
 \r
+    public void releaseWakeLock() {\r
+        if (mWakeLock != null && mWakeLock.isHeld()) {\r
+            mWakeLock.release();\r
+        }\r
+        mWakeLock = null;\r
+    }\r
 \r
+    public void startPPG() {\r
 \r
+        int hrsType = ICJniUtils.isPPGavailable();\r
+        if (hrsType > 0 && (isTimerStarted == false)) {\r
+            currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;\r
+            delayCount = 4;//检测成功后4秒发送数据\r
+            notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测\r
+            testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出\r
+            isTimerStarted = true;\r
+            getPPGWakeLock();\r
+            if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
 \r
-    testCount--;\r
-    if (testCount<0)\r
-    {\r
-      ICLogger.i("PPG 超过 "+MAX_TESTTIMES+"秒 未能得出结果,取消检测报告!");\r
-      stopPPG();\r
-    }\r
+                boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
+                ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);\r
 \r
-  }\r
-\r
-  private void sendAndStopPPG(){\r
-    //结束和发送数据\r
-    mHandler.sendEmptyMessage(100);\r
-  }\r
-  PowerManager.WakeLock mWakeLock=null;\r
-  public PowerManager.WakeLock getPPGWakeLock() {\r
-    mWakeLock = ((PowerManager)(runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());\r
-    mWakeLock.acquire(30000L);\r
-    return mWakeLock;\r
-  }\r
-\r
-  public void releaseWakeLock(){\r
-    if (mWakeLock!=null && mWakeLock.isHeld()){\r
-      mWakeLock.release();\r
-    }\r
-    mWakeLock=null;\r
-  }\r
-  public void startPPG(){\r
-\r
-    int hrsType=ICJniUtils.isPPGavailable();\r
-    if ( hrsType > 0  && (isTimerStarted == false) ) {\r
-      currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;\r
-      delayCount = 4;//检测成功后4秒发送数据\r
-      notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测\r
-      testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出\r
-      isTimerStarted = true;\r
-      getPPGWakeLock();\r
-      if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-\r
-        boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
-        ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);\r
-\r
-      } else {\r
-\r
-        ICJniUtils.enablePPG();\r
-        timerPPG = new ScheduledThreadPoolExecutor(10);\r
-        timerPPG.scheduleAtFixedRate(new Runnable() {\r
-          @Override\r
-          public void run() {\r
-            doPPGtest();\r
-          }\r
-        }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据\r
-\r
-      }\r
-    }\r
-  }\r
-\r
-  public void stopPPG(){\r
-    if( isTimerStarted )\r
-    {\r
-\r
-      int hrsType=ICJniUtils.isPPGavailable();\r
-      if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-        mSensorManager.unregisterListener(this);\r
-        ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66  closed");\r
-      }else {\r
-        timerPPG.shutdownNow();\r
-        timerPPG.purge();\r
-        ICJniUtils.disablePPG();\r
-      }\r
-      isTimerStarted=false;\r
+            } else {\r
+\r
+                ICJniUtils.enablePPG();\r
+                timerPPG = new ScheduledThreadPoolExecutor(10);\r
+                timerPPG.scheduleAtFixedRate(new Runnable() {\r
+                    @Override\r
+                    public void run() {\r
+                        doPPGtest();\r
+                    }\r
+                }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据\r
+\r
+            }\r
+        }\r
     }\r
 \r
-    releaseWakeLock();\r
-  }\r
+    public void stopPPG() {\r
+        if (isTimerStarted) {\r
 \r
-  private void callback(Messenger paramMessenger, int paramInt) {\r
-    if (paramMessenger != null)\r
-      try {\r
-        paramMessenger.send(Message.obtain(null, paramInt));\r
-        return;\r
-      } catch (Exception e) {\r
-        e.printStackTrace();\r
-      }\r
-  }\r
+            int hrsType = ICJniUtils.isPPGavailable();\r
+            if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
+                mSensorManager.unregisterListener(this);\r
+                ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66  closed");\r
+            } else {\r
+                timerPPG.shutdownNow();\r
+                timerPPG.purge();\r
+                ICJniUtils.disablePPG();\r
+            }\r
+            isTimerStarted = false;\r
+        }\r
 \r
+        releaseWakeLock();\r
+    }\r
+\r
+    private void callback(Messenger paramMessenger, int paramInt) {\r
+        if (paramMessenger != null)\r
+            try {\r
+                paramMessenger.send(Message.obtain(null, paramInt));\r
+                return;\r
+            } catch (Exception e) {\r
+                e.printStackTrace();\r
+            }\r
+    }\r
 \r
 \r
-  public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {}\r
+    public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {\r
+    }\r
 \r
-  public void onAttach(Connection paramConnection, Runtime paramRuntime) {\r
+    public void onAttach(Connection paramConnection, Runtime paramRuntime) {\r
 \r
 //    this.mSignalUtil = SimSignalUtil.getInstance((paramRuntime.getContextProxy()).context);\r
-    regReceiver();\r
-  }\r
+        regReceiver();\r
+    }\r
 \r
-  public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
-    unRegReceiver();\r
-  }\r
+    public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
+        unRegReceiver();\r
+    }\r
 \r
-  public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {\r
-    String str = paramIntent.getAction();\r
-    if (ACTION_HEATR_RATE_START.equals(str)) {\r
+    public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {\r
+        String str = paramIntent.getAction();\r
+        if (ACTION_HEATR_RATE_START.equals(str)) {\r
 //      this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context);\r
 //      str = paramIntent.getStringExtra("filepath");\r
 //      String str1 = paramIntent.getStringExtra("number");\r
-      StringBuilder stringBuilder = new StringBuilder();\r
-        stringBuilder.append("PPG Started on Action "+ACTION_HEATR_RATE_START);\r
+            StringBuilder stringBuilder = new StringBuilder();\r
+            stringBuilder.append("PPG Started on Action " + ACTION_HEATR_RATE_START);\r
 //        stringBuilder.append(str);\r
 //        stringBuilder.append("number == ");\r
 //        stringBuilder.append(str1);\r
-      ICLogger.i(stringBuilder.toString());\r
-      //do something\r
-      startPPG();\r
+            ICLogger.i(stringBuilder.toString());\r
+            //do something\r
+            startPPG();\r
+        }\r
+        return false;\r
     }\r
-    return false;\r
-  }\r
 \r
-public static void triggerPPGtest(){\r
-   if (mHandler !=null) mHandler.sendEmptyMessage(200);\r
-}\r
+    public static void triggerPPGtest() {\r
+        if (mHandler != null) mHandler.sendEmptyMessage(200);\r
+    }\r
 \r
 \r
+    public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {\r
 \r
-  public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {\r
 \r
+        int i = 1;\r
+        switch (message.what) {\r
+            case MSG_WHAT_PPG:\r
 \r
-    int i = 1;\r
-    switch (message.what) {\r
-      case MSG_WHAT_PPG:\r
+                //接收UI测试后的结果,直接发送到服务器。\r
+                Bundle bundle3 = message.getData();\r
+                String ppg = bundle3.getString(key_ppg);\r
+                String bph = bundle3.getString(key_bph);\r
+                String bpl = bundle3.getString(key_bpl);\r
+                String spo2 = bundle3.getString(key_spo2);\r
 \r
-        //接收UI测试后的结果,直接发送到服务器。\r
-        Bundle bundle3 = message.getData();\r
-        String  ppg = bundle3.getString(key_ppg);\r
-        String bph = bundle3.getString(key_bph);\r
-        String bpl = bundle3.getString(key_bpl);\r
-        String spo2 = bundle3.getString(key_spo2);\r
+                ICLogger.i("get MSG_WHAT_PPG ppg " + ppg + " , bph " + bph + " , bpl " + bpl + " , spo2 " + spo2);\r
+                if (ppg == null || bph == null || bpl == null || ppg.isEmpty() || bph.isEmpty() || bpl.isEmpty()) {\r
+                    ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");\r
+                    callback(message.replyTo, Constants.RESULT_ERROR);\r
 \r
-        ICLogger.i("get MSG_WHAT_PPG ppg "+ppg + " , bph "+bph + " , bpl "+bpl + " , spo2 "+spo2);\r
-        if (ppg == null || bph == null || bpl==null  ||ppg.isEmpty()||bph.isEmpty()||bpl.isEmpty()) {\r
-          ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");\r
-          callback(message.replyTo, Constants.RESULT_ERROR);\r
+                    return true;\r
+                }\r
+                if (spo2 == null || (spo2 != null && Integer.parseInt(spo2) <= 0)) {\r
+                    Random r = new Random();\r
+                    int randomint = r.nextInt(98 - 95) + 95;\r
+                    spo2 = String.valueOf(randomint);\r
+                }\r
+\r
+\r
+                if (((NettyConnection) connection).isServerConnected()) {\r
+                    String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
+                    if (PPGDATA.isEmpty()) {\r
+                        String ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
+                        String bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl));\r
+                        String oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
+                        connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
+                        connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
+                        connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+\r
+                    } else {\r
+                        connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
+                        ICLogger.i("Send PPG " + PPGDATA);\r
+                    }\r
+                } else {\r
+                    ICLogger.i("Skip PPG ");\r
+                }\r
+\r
+                callback(message.replyTo, Constants.RESULT_OK);\r
 \r
-          return true;\r
+            default:\r
+                break;\r
         }\r
-          if (spo2==null || (spo2!=null && Integer.parseInt(spo2 )<=0) ){\r
-            Random r = new Random();\r
-            int randomint = r.nextInt(98 - 95) + 95;\r
-            spo2=String.valueOf(randomint);\r
-          }\r
-\r
-\r
-            if (((NettyConnection) connection).isServerConnected()) {\r
-              String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
-              if(PPGDATA.isEmpty()){\r
-                String ppgd=protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
-                String bloodd=protocolAPIHelper.getBlood_MSG( Integer.parseInt(bph), Integer.parseInt(bpl));\r
-                String oxd=protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
-                connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
-                connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
-                connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
-\r
-              }else {\r
-                connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
-                ICLogger.i("Send PPG " + PPGDATA);\r
-              }\r
-            } else {\r
-              ICLogger.i("Skip PPG ");\r
-            }\r
 \r
-         callback(message.replyTo, Constants.RESULT_OK);\r
+        return true;\r
+    }\r
 \r
-      default:\r
-        break;\r
+    @Override\r
+    public void onSensorChanged(SensorEvent sensorEvent) {\r
+        float values[] = sensorEvent.values;\r
+        int length = values.length;\r
+        ICLogger.i("onSensorChanged() is called " + length\r
+                + " PPG = " + values[0]\r
+                + ", BPH = " + values[1]\r
+                + ", BPL = " + values[2]\r
+                + ", spo2 = " + values[3]\r
+                + " , Weared = " + values[4]\r
+        );\r
+        PPG = (int) values[0];//调用底层函数保证状态更新。\r
+        BPH = (int) values[1];\r
+        BPL = (int) values[2];\r
+        SPo2 = (int) values[3];\r
+        isWared = ((int) values[4] == 2);\r
+        isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);\r
+        doPPGtest();\r
+        /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
     }\r
 \r
-    return true;\r
-  }\r
-\r
-  @Override\r
-  public void onSensorChanged(SensorEvent sensorEvent) {\r
-    float values[]=sensorEvent.values;\r
-    int length = values.length;\r
-    ICLogger.i( "onSensorChanged() is called "+length\r
-            +" PPG = "+values[0]\r
-            +", BPH = "+values[1]\r
-            +", BPL = "+values[2]\r
-            +", spo2 = "+values[3]\r
-            +" , Weared = "+values[4]\r
-    );\r
-    PPG = (int)values[0];//调用底层函数保证状态更新。\r
-    BPH = (int)values[1];\r
-    BPL = (int)values[2];\r
-    SPo2 = (int)values[3];\r
-    isWared = ((int)values[4] == 2);\r
-    isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);\r
-    doPPGtest();\r
-    /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
-  }\r
-\r
-  @Override\r
-  public void onAccuracyChanged(Sensor sensor, int i) {\r
-    ICLogger.i("onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);\r
-  }\r
+    @Override\r
+    public void onAccuracyChanged(Sensor sensor, int i) {\r
+        ICLogger.i("onAccuracyChanged() is called " + sensor.getName() + " accuracy=" + i);\r
+    }\r
 }\r
 \r
index 0b2b8a4..d11d3f2 100644 (file)
@@ -31,7 +31,7 @@ public abstract class AbstractInvokeHandlerService implements InvokeHandlerServi
     if (!onUserRequest(paramIntent, paramConnection, paramRuntime) && this.nextService != null)\r
       this.nextService.processUserRequest(paramIntent, paramConnection, paramRuntime); \r
   }\r
-  \r
+\r
   public final void processUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) {\r
     if (!onUserRequest(paramMessage, paramConnection, paramRuntime) && this.nextService != null)\r
       this.nextService.processUserRequest(paramMessage, paramConnection, paramRuntime); \r
index 564a43e..79ce6b1 100644 (file)
@@ -24,166 +24,167 @@ import static com.enqualcomm.support.utils.RxSocket.SocketStatus.CONNECTED;
 import com.enqualcomm.support.bean.Runtime;\r
 \r
 public class NettyConnection implements Connection {\r
-  private static long realtime_old;\r
-  private static final String TAG = NettyConnection.class.getSimpleName();\r
-\r
-  ExecutorService executorService = Executors.newSingleThreadExecutor();\r
-\r
-  private protocolAPIHelper API=null;\r
-  private ConnectionListener listener=null;\r
-  \r
-  private int timeout = 60;\r
-  \r
-  public NettyConnection(ConnectionListener paramConnectionListener,Runtime runtime) {\r
-    this.listener = paramConnectionListener;\r
-\r
-    if (API == null) API=new protocolAPIHelper(NettyConnection.this,runtime );\r
-\r
-      initReadListener();\r
-      init_connection_listener();\r
-  }\r
-  \r
-  private void connectImpl(String host, int port) {\r
-     connectServer(host,port);\r
-  }\r
-  \r
-  public void close() {\r
+    private static long realtime_old;\r
+    private static final String TAG = NettyConnection.class.getSimpleName();\r
+\r
+    ExecutorService executorService = Executors.newSingleThreadExecutor();\r
+\r
+    private protocolAPIHelper API = null;\r
+    private ConnectionListener listener = null;\r
+\r
+    private int timeout = 60;\r
+\r
+    public NettyConnection(ConnectionListener paramConnectionListener, Runtime runtime) {\r
+        this.listener = paramConnectionListener;\r
+\r
+        if (API == null) API = new protocolAPIHelper(NettyConnection.this, runtime);\r
+\r
+        initReadListener();\r
+        init_connection_listener();\r
+    }\r
+\r
+    private void connectImpl(String host, int port) {\r
+        connectServer(host, port);\r
+    }\r
+\r
+    public void close() {\r
 //      listener =null;\r
 //      RxSocket.getInstance().setConnectionListener(null);\r
-      this.disconnect();\r
-  }\r
-  \r
-  public void connect(final String host, final int port) {\r
-    long l = SystemClock.elapsedRealtime();\r
-    if (host.isEmpty()||host ==null){\r
-        ICLogger.i("host name error "+host);\r
-        return ;\r
-    }\r
-    if (l - realtime_old < 3000L ) {\r
-        ICLogger.i("3秒内skip 重连!");\r
-        return;\r
+        this.disconnect();\r
     }\r
-    realtime_old = l;\r
-    ICLogger.i("connect1 "+host+":"+port);\r
+\r
+    public void connect(final String host, final int port) {\r
+        long l = SystemClock.elapsedRealtime();\r
+        if (host.isEmpty() || host == null) {\r
+            ICLogger.i("host name error " + host);\r
+            return;\r
+        }\r
+        if (l - realtime_old < 3000L) {\r
+            ICLogger.i("3秒内skip 重连!");\r
+            return;\r
+        }\r
+        realtime_old = l;\r
+        ICLogger.i("connect1 " + host + ":" + port);\r
 //    disconnect();\r
-    this.executorService.execute(new Runnable() {\r
-          public void run() {\r
-            NettyConnection.this.connectImpl(host, port);\r
-            ICLogger.i("connect2");\r
-          }\r
+        this.executorService.execute(new Runnable() {\r
+            public void run() {\r
+                NettyConnection.this.connectImpl(host, port);\r
+                ICLogger.i("connect2");\r
+            }\r
         });\r
-  }\r
-  \r
-  public void disconnect() {\r
-\r
-    disconnectServer();\r
-  }\r
-\r
+    }\r
 \r
-  private boolean  connectServer(String serverip,int serverport){\r
+    public void disconnect() {\r
 \r
-    //进行连接Socket:这里使用的是,在本地上开启了一个服务器。\r
+        disconnectServer();\r
+    }\r
 \r
-    RxSocket.getInstance().connectRx(serverip==null?"118.178.155.223":serverip,serverport)\r
-            .subscribe(\r
-                    aBoolean -> {\r
-                      log("RxSocket Connect "+aBoolean);\r
-                    },\r
-                    throwable -> {\r
-                      log("RxSocket Connect Error : "+throwable.getMessage());\r
-                    },\r
-                    () -> {\r
-                        log("RxSocket Connect main");\r
 \r
-                    }\r
-            );\r
-\r
-\r
-    return true;\r
-  }\r
-\r
-  public boolean disconnectServer(){\r
-\r
-      log("Call disconnectServer");\r
-    //断开连接\r
-    RxSocket.getInstance().disConnect()\r
-            .subscribe(\r
-                    aBoolean -> {\r
-                      log("RxSocket DisConnect "+aBoolean);\r
-                    },\r
-                    throwable -> {\r
-                      log("RxSocket DisConnect Error : "+throwable.getMessage());\r
-                    },\r
-                    () -> {\r
-                        log("RxSocket DisConnect main");\r
-                    }\r
-            );\r
+    private boolean connectServer(String serverip, int serverport) {\r
 \r
-    return true;\r
-  }\r
-  private void log(String msg) {\r
-    ICLogger.log(TAG,msg);\r
-  }\r
+        //进行连接Socket:这里使用的是,在本地上开启了一个服务器。\r
 \r
+        RxSocket.getInstance().connectRx(serverip == null ? "118.178.155.223" : serverip, serverport)\r
+                .subscribe(\r
+                        aBoolean -> {\r
+                            log("RxSocket Connect " + aBoolean);\r
+                        },\r
+                        throwable -> {\r
+                            log("RxSocket Connect Error : " + throwable.getMessage());\r
+                        },\r
+                        () -> {\r
+                            log("RxSocket Connect main");\r
 \r
-  public boolean isServerConnected(){\r
-    return (RxSocket.getInstance().getSocketStatus()== CONNECTED)?true:false;\r
-  }\r
+                        }\r
+                );\r
 \r
-  public boolean sendMsg(String  cmd) {\r
 \r
-    if( cmd==null || cmd.isEmpty())\r
-    {\r
-      return false;\r
+        return true;\r
     }\r
 \r
+    public boolean disconnectServer() {\r
 \r
-    if (!isServerConnected()){\r
-\r
-        log("skiped"+cmd);\r
-        if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," skiped " + cmd);\r
-        return false;\r
-    }else{\r
-        log("send  "+cmd);\r
-        if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sent " + cmd);\r
-        //向RxSocket写数据\r
-        //示例数据:IWAP00867155030001063#\r
-        byte[] test = cmd.getBytes();\r
-        ByteBuffer byteBuffer = ByteBuffer.wrap(test);\r
-        RxSocket.getInstance().write(byteBuffer)\r
+        log("Call disconnectServer");\r
+        //断开连接\r
+        RxSocket.getInstance().disConnect()\r
                 .subscribe(\r
                         aBoolean -> {\r
-                            log("RxSocket write " + aBoolean);\r
+                            log("RxSocket DisConnect " + aBoolean);\r
                         },\r
                         throwable -> {\r
-                            log("RxSocket write Error : " + throwable.getMessage());\r
+                            log("RxSocket DisConnect Error : " + throwable.getMessage());\r
                         },\r
                         () -> {\r
-                            log("RxSocket write main ");\r
+                            log("RxSocket DisConnect main");\r
                         }\r
                 );\r
 \r
+        return true;\r
+    }\r
+\r
+    private void log(String msg) {\r
+        ICLogger.log(TAG, msg);\r
+    }\r
+\r
 \r
+    public boolean isServerConnected() {\r
+        return (RxSocket.getInstance().getSocketStatus() == CONNECTED) ? true : false;\r
     }\r
 \r
-    return true;\r
-  }\r
-    public boolean sendMsg(byte[]  cmdArray) {\r
+    public boolean sendMsg(String cmd) {\r
 \r
-        if( cmdArray==null || cmdArray.length==0)\r
-        {\r
+        if (cmd == null || cmd.isEmpty()) {\r
             return false;\r
         }\r
 \r
 \r
-        if (!isServerConnected()){\r
+        if (!isServerConnected()) {\r
 \r
-            log("skipedBytes "+new String(cmdArray));\r
-            if (Config.LOG_TOFILE)ICLogger.logToFile("APILog"," skiped " + new String(cmdArray));\r
+            log("skiped" + cmd);\r
+            if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + cmd);\r
             return false;\r
-        }else{\r
-            log("sendBytes  "+new String(cmdArray));\r
-            if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sentBytes  " + new String(cmdArray));\r
+        } else {\r
+            log("send  " + cmd);\r
+            if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " sent " + cmd);\r
+            //向RxSocket写数据\r
+            //示例数据:IWAP00867155030001063#\r
+            byte[] test = cmd.getBytes();\r
+            ByteBuffer byteBuffer = ByteBuffer.wrap(test);\r
+            RxSocket.getInstance().write(byteBuffer)\r
+                    .subscribe(\r
+                            aBoolean -> {\r
+                                log("RxSocket write " + aBoolean);\r
+                            },\r
+                            throwable -> {\r
+                                log("RxSocket write Error : " + throwable.getMessage());\r
+                            },\r
+                            () -> {\r
+                                log("RxSocket write main ");\r
+                            }\r
+                    );\r
+\r
+\r
+        }\r
+\r
+        return true;\r
+    }\r
+\r
+    public boolean sendMsg(byte[] cmdArray) {\r
+\r
+        if (cmdArray == null || cmdArray.length == 0) {\r
+            return false;\r
+        }\r
+\r
+\r
+        if (!isServerConnected()) {\r
+\r
+            log("skipedBytes " + new String(cmdArray));\r
+            if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + new String(cmdArray));\r
+            return false;\r
+        } else {\r
+            log("sendBytes  " + new String(cmdArray));\r
+            if (Config.LOG_TOFILE)\r
+                ICLogger.logToFile("APILog", " sentBytes  " + new String(cmdArray));\r
             //向RxSocket写数据\r
             //示例数据:IWAP00867155030001063#\r
             ByteBuffer byteBuffer = ByteBuffer.wrap(cmdArray);\r
@@ -205,20 +206,23 @@ public class NettyConnection implements Connection {
 \r
         return true;\r
     }\r
-  public int getTimeout() { return this.timeout; }\r
 \r
+    public int getTimeout() {\r
+        return this.timeout;\r
+    }\r
 \r
-  public void DeliverCMDMessageToSystem(String cmd,String msg){\r
-      if (NettyConnection.this.listener!=null){\r
-          String[] msgArr=new String[]{cmd,msg};\r
-          StringMessage stringMessage=new StringMessage(msgArr);\r
-          stringMessage.refresh(msg);\r
-          NettyConnection.this.listener.onReceive(stringMessage );\r
-      }\r
-  }\r
 \r
-  private void initReadListener(){\r
-      //监听Socket的收包\r
+    public void DeliverCMDMessageToSystem(String cmd, String msg) {\r
+        if (NettyConnection.this.listener != null) {\r
+            String[] msgArr = new String[]{cmd, msg};\r
+            StringMessage stringMessage = new StringMessage(msgArr);\r
+            stringMessage.refresh(msg);\r
+            NettyConnection.this.listener.onReceive(stringMessage);\r
+        }\r
+    }\r
+\r
+    private void initReadListener() {\r
+        //监听Socket的收包\r
 //      RxSocket.getInstance().read()\r
 //              .subscribeOn(Schedulers.newThread())\r
 //              .observeOn(AndroidSchedulers.mainThread())\r
@@ -240,78 +244,81 @@ public class NettyConnection implements Connection {
 //                          log("get Msg ()");\r
 //                      }\r
 //              );\r
-      RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {\r
-          @Override\r
-          public void onRecvMsg(byte[] bytes) {\r
-\r
-              Message msg=new Message();\r
-              Bundle bdl=new Bundle();\r
-              bdl.putByteArray("RecvData",bytes);\r
-              msg.what=100;\r
-              msg.setData(bdl);\r
-              mHandler.sendMessage(msg);\r
-          }\r
-      });\r
-\r
-\r
-  }\r
-\r
-  private Handler mHandler=new Handler(new Handler.Callback() {\r
-      @Override\r
-      public boolean handleMessage(Message message) {\r
-\r
-          if (message.what == 100){\r
-             byte[] bytes=message.getData().getByteArray("RecvData");\r
-              String msg=  new String(bytes);\r
-\r
-              log("get Msg :"+msg+" (size) byteslen" + bytes.length +" strlen"+ msg.length());\r
-              API.parserCmd(bytes);\r
-\r
-          }\r
-          return false;\r
-      }\r
-  });\r
-\r
-  private void init_connection_listener(){\r
-\r
-      //监听Socket的连接状态\r
-      RxSocket.getInstance().socketStatusListener()\r
-              .subscribeOn(Schedulers.newThread())\r
-              .observeOn(AndroidSchedulers.mainThread())\r
-              .subscribe(socketStatus -> {\r
-                  log("socketStatusListener socketStatus:" + socketStatus.name());\r
-                  if (socketStatus.name().equals("CONNECTED")){\r
-                      if (NettyConnection.this.listener!=null){\r
-                          NettyConnection.this.listener.onConnectionOpen();\r
-                      }\r
-                  }else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {\r
-                      if (NettyConnection.this.listener!=null){\r
-                          NettyConnection.this.listener.onConnectionClose(socketStatus.name());\r
-                      }\r
-                      disconnectServer();\r
-                  }\r
-              });\r
-  }\r
-  public void open() {\r
-\r
-\r
-  }\r
-  \r
-  public void send(StringMessage paramStringMessage) {\r
-\r
-      sendMsg(paramStringMessage.isFromCache());\r
-      ICLogger.logToFile("APILog",paramStringMessage.isFromCache());\r
-      ICLogger.i(paramStringMessage.isFromCache());\r
-\r
-  }\r
-  \r
-  public boolean sendBlocking(StringMessage paramStringMessage) {\r
-    ICLogger.i(paramStringMessage.isFromCache());\r
-      sendMsg(paramStringMessage.isFromCache());\r
-    return true;\r
+        RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {\r
+            @Override\r
+            public void onRecvMsg(byte[] bytes) {\r
+\r
+                Message msg = new Message();\r
+                Bundle bdl = new Bundle();\r
+                bdl.putByteArray("RecvData", bytes);\r
+                msg.what = 100;\r
+                msg.setData(bdl);\r
+                mHandler.sendMessage(msg);\r
+            }\r
+        });\r
+\r
+\r
+    }\r
+\r
+    private Handler mHandler = new Handler(new Handler.Callback() {\r
+        @Override\r
+        public boolean handleMessage(Message message) {\r
+\r
+            if (message.what == 100) {\r
+                byte[] bytes = message.getData().getByteArray("RecvData");\r
+                String msg = new String(bytes);\r
+\r
+                log("get Msg :" + msg + " (size) byteslen" + bytes.length + " strlen" + msg.length());\r
+                API.parserCmd(bytes);\r
+\r
+            }\r
+            return false;\r
+        }\r
+    });\r
+\r
+    private void init_connection_listener() {\r
+\r
+        //监听Socket的连接状态\r
+        RxSocket.getInstance().socketStatusListener()\r
+                .subscribeOn(Schedulers.newThread())\r
+                .observeOn(AndroidSchedulers.mainThread())\r
+                .subscribe(socketStatus -> {\r
+                    log("socketStatusListener socketStatus:" + socketStatus.name());\r
+                    if (socketStatus.name().equals("CONNECTED")) {\r
+                        if (NettyConnection.this.listener != null) {\r
+                            NettyConnection.this.listener.onConnectionOpen();\r
+                        }\r
+                    } else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {\r
+                        if (NettyConnection.this.listener != null) {\r
+                            NettyConnection.this.listener.onConnectionClose(socketStatus.name());\r
+                        }\r
+                        disconnectServer();\r
+                    }\r
+                });\r
+    }\r
+\r
+    public void open() {\r
+\r
+\r
+    }\r
+\r
+    public void send(StringMessage paramStringMessage) {\r
+\r
+        sendMsg(paramStringMessage.isFromCache());\r
+        ICLogger.logToFile("APILog", paramStringMessage.isFromCache());\r
+        ICLogger.i(paramStringMessage.isFromCache());\r
+\r
+    }\r
+\r
+    public boolean sendBlocking(StringMessage paramStringMessage) {\r
+        ICLogger.i(paramStringMessage.isFromCache());\r
+        sendMsg(paramStringMessage.isFromCache());\r
+        return true;\r
+    }\r
+\r
+    public void setTimeout(int paramInt) {\r
+        this.timeout = paramInt;\r
     }\r
-  \r
-  public void setTimeout(int paramInt) { this.timeout = paramInt; }\r
 \r
 }\r
 \r
index fe6a39b..9fc3ac6 100644 (file)
@@ -67,372 +67,373 @@ import static com.enqualcomm.support.Constants.RESUME_ACTION;
 import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;\r
 \r
 \r
-\r
 public class ProcessReceiver extends BroadcastReceiver {\r
-  private static final int MICRO_CHAT = 2;\r
-  \r
-  private static int last_app_id;\r
-  \r
-  private static String last_message_name;\r
-  \r
-  private static CustomDialog mCustomDialog;\r
-  \r
-  private CustomNotification mCustomNotification;\r
-\r
-  private CustomDialog.Builder mDialog;\r
-\r
-  private CustomNotification.Builder mNotificationDialog;\r
-  \r
-  private NotificationManager mNotificationManager;\r
-  \r
-  private Vibrator vibrator;\r
-  \r
-  private float x1 = 0.0F;\r
-  \r
-  private float x2 = 0.0F;\r
-  \r
-  private float y1 = 0.0F;\r
-  \r
-  private float y2 = 0.0F;\r
-  \r
-  private void initMyDialog(final Context context, final Contact contact, int app_id,String msg) {\r
-    String var4 = contact==null?"SMS":contact.name;\r
-\r
-    if (this.mDialog == null) {\r
-      this.mDialog = new CustomDialog.Builder(context);\r
-    }\r
+    private static final int MICRO_CHAT = 2;\r
 \r
-    StringBuilder var5 = new StringBuilder();\r
-    var5.append("===mCustomDialog ")\r
-    .append(mCustomDialog)\r
-    .append(" , appid ").append(app_id);\r
+    private static int last_app_id;\r
 \r
-    ICLogger.i(var5.toString());\r
-    if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {\r
-      mCustomDialog.dismiss();\r
-    }\r
+    private static String last_message_name;\r
 \r
-    last_message_name = var4;\r
-    last_app_id = app_id;\r
-    CustomDialog.Builder tmpDialog;\r
-    if (app_id == 1) {\r
-      tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);\r
-      StringBuilder var6 = new StringBuilder();\r
-      var6.append(context.getString(R.string.voiceMessage));\r
-      var6.append("  ");\r
-      var6.append(var4);\r
-      var6.append(context.getString(R.string.voiceMessageEnd));\r
-      mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1x, int var2x) {\r
-          var1x.dismiss();\r
-          ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");\r
-          Intent var5 = new Intent("android.intent.action.MAIN");\r
-          var5.putExtra("ACTIVITY_TYPE", 2);\r
-          var5.putExtra("contact", contact);\r
-          var5.addCategory("android.intent.category.DEFAULT");\r
-          var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
-          var5.setComponent(var3);\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
-          try {\r
-            context.startActivity(var5);\r
-          } catch (Exception var4) {\r
-            var4.printStackTrace();\r
-          }\r
+    private static CustomDialog mCustomDialog;\r
 \r
+    private CustomNotification mCustomNotification;\r
+\r
+    private CustomDialog.Builder mDialog;\r
+\r
+    private CustomNotification.Builder mNotificationDialog;\r
+\r
+    private NotificationManager mNotificationManager;\r
+\r
+    private Vibrator vibrator;\r
+\r
+    private float x1 = 0.0F;\r
+\r
+    private float x2 = 0.0F;\r
+\r
+    private float y1 = 0.0F;\r
+\r
+    private float y2 = 0.0F;\r
+\r
+    private void initMyDialog(final Context context, final Contact contact, int app_id, String msg) {\r
+        String var4 = contact == null ? "SMS" : contact.name;\r
+\r
+        if (this.mDialog == null) {\r
+            this.mDialog = new CustomDialog.Builder(context);\r
         }\r
-      }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1, int var2) {\r
-          var1.dismiss();\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
-        }\r
-      }).create();\r
-      mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
-      mCustomDialog.show();\r
-    } else if (app_id == 2) {\r
-      tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);\r
-      StringBuilder var7 = new StringBuilder();\r
-      var7.append(context.getString(R.string.hht_call_start));\r
-      var7.append(var4);\r
-      var7.append(context.getString(R.string.hht_call_end));\r
-      mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1, int var2) {\r
-          var1.dismiss();\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
-        }\r
-      }).create();\r
-      mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
-      mCustomDialog.show();\r
-    }else if (app_id ==3){\r
-      tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);\r
-      StringBuilder var7 = new StringBuilder();\r
-      var7.append(context.getString(R.string.sms_notify));\r
-      mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1, int var2) {\r
-          var1.dismiss();\r
-          ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");\r
-          Intent var5 = new Intent("android.intent.action.MAIN");\r
-          var5.addCategory("android.intent.category.DEFAULT");\r
-          var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
-          var5.setComponent(var3);\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
-          try {\r
-            context.startActivity(var5);\r
-          } catch (Exception var4) {\r
-            var4.printStackTrace();\r
-          }\r
-        }\r
-      }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1, int var2) {\r
-          var1.dismiss();\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
+\r
+        StringBuilder var5 = new StringBuilder();\r
+        var5.append("===mCustomDialog ")\r
+                .append(mCustomDialog)\r
+                .append(" , appid ").append(app_id);\r
+\r
+        ICLogger.i(var5.toString());\r
+        if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {\r
+            mCustomDialog.dismiss();\r
         }\r
-      }).create();\r
-      mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
-      mCustomDialog.show();\r
-    }else if (app_id ==4) {\r
-      tmpDialog = this.mDialog.setTitle("WEB"+context.getString(R.string.sms_title)).setApp(1);\r
-      StringBuilder var7 = new StringBuilder();\r
-      var7.append(msg);\r
-      mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
-        public void onClick(DialogInterface var1, int var2) {\r
-          var1.dismiss();\r
-          VibrateUtil.getInstance(context).VibrateOn(false);\r
-          if(CoreService.getInstance()!=null) {\r
-            CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG());\r
-          }\r
+\r
+        last_message_name = var4;\r
+        last_app_id = app_id;\r
+        CustomDialog.Builder tmpDialog;\r
+        if (app_id == 1) {\r
+            tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);\r
+            StringBuilder var6 = new StringBuilder();\r
+            var6.append(context.getString(R.string.voiceMessage));\r
+            var6.append("  ");\r
+            var6.append(var4);\r
+            var6.append(context.getString(R.string.voiceMessageEnd));\r
+            mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1x, int var2x) {\r
+                    var1x.dismiss();\r
+                    ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");\r
+                    Intent var5 = new Intent("android.intent.action.MAIN");\r
+                    var5.putExtra("ACTIVITY_TYPE", 2);\r
+                    var5.putExtra("contact", contact);\r
+                    var5.addCategory("android.intent.category.DEFAULT");\r
+                    var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
+                    var5.setComponent(var3);\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                    try {\r
+                        context.startActivity(var5);\r
+                    } catch (Exception var4) {\r
+                        var4.printStackTrace();\r
+                    }\r
+\r
+                }\r
+            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                }\r
+            }).create();\r
+            mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+            mCustomDialog.show();\r
+        } else if (app_id == 2) {\r
+            tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);\r
+            StringBuilder var7 = new StringBuilder();\r
+            var7.append(context.getString(R.string.hht_call_start));\r
+            var7.append(var4);\r
+            var7.append(context.getString(R.string.hht_call_end));\r
+            mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                }\r
+            }).create();\r
+            mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+            mCustomDialog.show();\r
+        } else if (app_id == 3) {\r
+            tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);\r
+            StringBuilder var7 = new StringBuilder();\r
+            var7.append(context.getString(R.string.sms_notify));\r
+            mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");\r
+                    Intent var5 = new Intent("android.intent.action.MAIN");\r
+                    var5.addCategory("android.intent.category.DEFAULT");\r
+                    var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
+                    var5.setComponent(var3);\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                    try {\r
+                        context.startActivity(var5);\r
+                    } catch (Exception var4) {\r
+                        var4.printStackTrace();\r
+                    }\r
+                }\r
+            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                }\r
+            }).create();\r
+            mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+            mCustomDialog.show();\r
+        } else if (app_id == 4) {\r
+            tmpDialog = this.mDialog.setTitle("WEB" + context.getString(R.string.sms_title)).setApp(1);\r
+            StringBuilder var7 = new StringBuilder();\r
+            var7.append(msg);\r
+            mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                    if (CoreService.getInstance() != null) {\r
+                        CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG());\r
+                    }\r
+                }\r
+            }).create();\r
+            mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+            mCustomDialog.show();\r
+        } else if (app_id == 5) {\r
+            tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);\r
+            StringBuilder var7 = new StringBuilder();\r
+            var7.append(msg);\r
+            mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+                public void onClick(DialogInterface var1, int var2) {\r
+                    var1.dismiss();\r
+                    VibrateUtil.getInstance(context).VibrateOn(false);\r
+                    stopmediaplayer();\r
+                }\r
+            }).create();\r
+            mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+            mCustomDialog.show();\r
         }\r
-      }).create();\r
-      mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
-      mCustomDialog.show();\r
-    } else if (app_id ==5) {\r
-    tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);\r
-    StringBuilder var7 = new StringBuilder();\r
-    var7.append(msg);\r
-    mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
-      public void onClick(DialogInterface var1, int var2) {\r
-        var1.dismiss();\r
-        VibrateUtil.getInstance(context).VibrateOn(false);\r
-        stopmediaplayer();\r
-      }\r
-    }).create();\r
-    mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
-    mCustomDialog.show();\r
     }\r
-  }\r
-  private void playFindDevVoice(Context context){\r
 \r
-    AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");\r
+    private void playFindDevVoice(Context context) {\r
 \r
-  }\r
-  private void stopmediaplayer(){\r
-   AudioService.getInstance().stop();\r
-  }\r
-  private void playNotificationVoice(Context paramContext) {\r
-    AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");\r
-  }\r
+        AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");\r
 \r
-  private void playshutdownsound(Context paramContext) {\r
-    AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");\r
-  }\r
+    }\r
+\r
+    private void stopmediaplayer() {\r
+        AudioService.getInstance().stop();\r
+    }\r
+\r
+    private void playNotificationVoice(Context paramContext) {\r
+        AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");\r
+    }\r
+\r
+    private void playshutdownsound(Context paramContext) {\r
+        AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");\r
+    }\r
 \r
 \r
-  private void screenOn(Context paramContext) {\r
-    final PowerManager.WakeLock wakelock = ((PowerManager)paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
-    wakelock.acquire(5000);\r
+    private void screenOn(Context paramContext) {\r
+        final PowerManager.WakeLock wakelock = ((PowerManager) paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP | SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
+        wakelock.acquire(5000);\r
 //    Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
 //          public void call(Long param1Long) { wakelock.release(); }\r
 //        });\r
-  }\r
-\r
-  @Override\r
-  public void onReceive(Context paramContext, Intent paramIntent) {\r
-\r
-    boolean isSilence;\r
-    Contact contact;\r
-    String str = paramIntent.getAction();\r
-    StringBuilder stringBuilder = new StringBuilder();\r
-    stringBuilder.append("action==");\r
-    stringBuilder.append(str);\r
-    ICLogger.i(stringBuilder.toString());\r
-\r
-    if (CoreService.getInstance()==null)\r
-    {\r
-      ICLogger.i("CoreService is null skip deal with this message! "+str);\r
-      paramContext.startService(new Intent(paramContext,CoreService.class));// protocol service\r
-      return ;\r
     }\r
-    if (RESUME_ACTION.equals(str)) {\r
-      SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r
-      return;\r
-    }else if (ACTION_MESSAGE_SENT.equals(str)) {\r
-\r
-      String msgType=paramIntent.getStringExtra(KEY_MESSAGE_TYPE);\r
-      String msgFrom=paramIntent.getStringExtra(KEY_MESSAGE_FROM);\r
-      String msgUrl=paramIntent.getStringExtra(KEY_MESSAGE_URL);\r
-    ICLogger.i("receive msg to send type="+msgType+", msg from = "+msgFrom+", msgUrl"+msgUrl);\r
-    if (msgFrom==null) msgFrom="123";\r
-      /**\r
-       *        * 1 语音——       1.监听语音      *   2.SOS语音      *      3.扩展\r
-       *          * 2 图片——     1.签到图片      *   2.指令图片      *   3.设备图片      *   4.扩展\r
-       */\r
-      if (msgType.equals("voice"))\r
-      {\r
-        //创建voiceConent并添加到数据\r
-        final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,1,3);\r
-\r
-        // 把voiceContent拆解成1024的分包\r
-        Util.parseToVoicePacketSent(voiceContent);\r
-        //trigger 分包发送\r
-        if (CoreService.getInstance().getConnection()!=null)\r
-          CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
-      }else if (msgType.equals("pic")){\r
-        //创建voiceConent并添加到数据\r
-        final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,3);\r
-\r
-        // 把voiceContent拆解成1024的分包\r
-        Util.parseToVoicePacketSent(voiceContent);\r
-        //trigger 分包发送\r
-        if (CoreService.getInstance().getConnection()!=null)\r
-          CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
-      }\r
-    }else if (ACTION_SHUTDOWN.equals(str)) {\r
-\r
-      playshutdownsound(paramContext);\r
-\r
-      Util.shutdown();\r
-      return;\r
-    }else if (ACTION_PLAYTIME.equals(str)) {\r
-        LedUtil.setBlueLedOn(true);\r
-        new Handler().postDelayed(new Runnable() {\r
-            @Override\r
-            public void run() {\r
-                LedUtil.setBlueLedOn(false);\r
-            }\r
-        },2000L);\r
-        return;\r
-    }else if (ACTION_REMOTE_CAMERA.equals(str)) {\r
-      if (paramIntent.hasExtra("remote_number")){\r
-        //接收拍照命令,执行拍照\r
-        String str1 = paramIntent.getStringExtra("remote_number");\r
-        new Handler().post(new Runnable() {\r
-          @Override\r
-          public void run() {\r
-            (new CameraUtil(paramContext)).getPictur(str1);\r
-          }\r
-        });\r
-      }else{\r
-        //接收到拍照完毕命令,发送照片\r
-        String msgFrom=paramIntent.getStringExtra("number");\r
-        String msgUrl=paramIntent.getStringExtra("filepath");\r
-        ICLogger.i("receive taken photo to send "+msgUrl);\r
-        //创建voiceConent并添加到数据\r
-        final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,2);\r
-\r
-        // 把voiceContent拆解成1024的分包\r
-        Util.parseToVoicePacketSent(voiceContent);\r
-        //trigger 分包发送\r
-        if (CoreService.getInstance().getConnection()!=null)\r
-          CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
-\r
-      }\r
-\r
-\r
-      return;\r
-\r
-    }else  if (DIALOG_ACTION.equals(str)) {\r
-        if (paramIntent.hasExtra("contact")) {\r
-          contact = (Contact) paramIntent.getParcelableExtra("contact");\r
-          SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
-          isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
-          if (contact != null && !isSilence) {\r
-            if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
-              this.initMyDialog(paramContext, contact, 1,"");\r
-              this.playNotificationVoice(paramContext);\r
-              VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+\r
+    @Override\r
+    public void onReceive(Context paramContext, Intent paramIntent) {\r
+\r
+        boolean isSilence;\r
+        Contact contact;\r
+        String str = paramIntent.getAction();\r
+        StringBuilder stringBuilder = new StringBuilder();\r
+        stringBuilder.append("action==");\r
+        stringBuilder.append(str);\r
+        ICLogger.i(stringBuilder.toString());\r
+\r
+        if (CoreService.getInstance() == null) {\r
+            ICLogger.i("CoreService is null skip deal with this message! " + str);\r
+            paramContext.startService(new Intent(paramContext, CoreService.class));// protocol service\r
+            return;\r
+        }\r
+        if (RESUME_ACTION.equals(str)) {\r
+            SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r
+            return;\r
+        } else if (ACTION_MESSAGE_SENT.equals(str)) {\r
+\r
+            String msgType = paramIntent.getStringExtra(KEY_MESSAGE_TYPE);\r
+            String msgFrom = paramIntent.getStringExtra(KEY_MESSAGE_FROM);\r
+            String msgUrl = paramIntent.getStringExtra(KEY_MESSAGE_URL);\r
+            ICLogger.i("receive msg to send type=" + msgType + ", msg from = " + msgFrom + ", msgUrl" + msgUrl);\r
+            if (msgFrom == null) msgFrom = "123";\r
+            /**\r
+             *        * 1 语音—— 1.监听语音      *   2.SOS语音      *      3.扩展\r
+             *          * 2 图片——       1.签到图片      *   2.指令图片      *   3.设备图片      *   4.扩展\r
+             */\r
+            if (msgType.equals("voice")) {\r
+                //创建voiceConent并添加到数据\r
+                final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 1, 3);\r
+\r
+                // 把voiceContent拆解成1024的分包\r
+                Util.parseToVoicePacketSent(voiceContent);\r
+                //trigger 分包发送\r
+                if (CoreService.getInstance().getConnection() != null)\r
+                    CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+            } else if (msgType.equals("pic")) {\r
+                //创建voiceConent并添加到数据\r
+                final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 3);\r
+\r
+                // 把voiceContent拆解成1024的分包\r
+                Util.parseToVoicePacketSent(voiceContent);\r
+                //trigger 分包发送\r
+                if (CoreService.getInstance().getConnection() != null)\r
+                    CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
             }\r
+        } else if (ACTION_SHUTDOWN.equals(str)) {\r
+\r
+            playshutdownsound(paramContext);\r
+\r
+            Util.shutdown();\r
+            return;\r
+        } else if (ACTION_PLAYTIME.equals(str)) {\r
+            LedUtil.setBlueLedOn(true);\r
+            new Handler().postDelayed(new Runnable() {\r
+                @Override\r
+                public void run() {\r
+                    LedUtil.setBlueLedOn(false);\r
+                }\r
+            }, 2000L);\r
+            return;\r
+        } else if (ACTION_REMOTE_CAMERA.equals(str)) {\r
+            if (paramIntent.hasExtra("remote_number")) {\r
+                //接收拍照命令,执行拍照\r
+                String str1 = paramIntent.getStringExtra("remote_number");\r
+                new Handler().post(new Runnable() {\r
+                    @Override\r
+                    public void run() {\r
+                        (new CameraUtil(paramContext)).getPictur(str1);\r
+                    }\r
+                });\r
+            } else {\r
+                //接收到拍照完毕命令,发送照片\r
+                String msgFrom = paramIntent.getStringExtra("number");\r
+                String msgUrl = paramIntent.getStringExtra("filepath");\r
+                ICLogger.i("receive taken photo to send " + msgUrl);\r
+                //创建voiceConent并添加到数据\r
+                final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 2);\r
+\r
+                // 把voiceContent拆解成1024的分包\r
+                Util.parseToVoicePacketSent(voiceContent);\r
+                //trigger 分包发送\r
+                if (CoreService.getInstance().getConnection() != null)\r
+                    CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
 \r
-            this.screenOn(paramContext);\r
-          }\r
-        }else if (paramIntent.hasExtra("sms")) {\r
-          String sms = paramIntent.getStringExtra("sms");\r
-          SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
-          isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
-          if (sms != null && !isSilence) {\r
-            if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
-              this.initMyDialog(paramContext, null, 3,sms);\r
-              this.playNotificationVoice(paramContext);\r
-              VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
             }\r
 \r
-            this.screenOn(paramContext);\r
-          }\r
-        }else if (paramIntent.hasExtra("pushtxt")) {\r
-            String sms = paramIntent.getStringExtra("pushtxt");\r
-            SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
-            isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
-            if (sms != null && !isSilence) {\r
-                if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
-                    this.initMyDialog(paramContext, null, 4, sms);\r
-                    this.playNotificationVoice(paramContext);\r
-                    VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
-                }\r
 \r
-                this.screenOn(paramContext);\r
+            return;\r
+\r
+        } else if (DIALOG_ACTION.equals(str)) {\r
+            if (paramIntent.hasExtra("contact")) {\r
+                contact = (Contact) paramIntent.getParcelableExtra("contact");\r
+                SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+                isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+                if (contact != null && !isSilence) {\r
+                    if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+                        this.initMyDialog(paramContext, contact, 1, "");\r
+                        this.playNotificationVoice(paramContext);\r
+                        VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+                    }\r
+\r
+                    this.screenOn(paramContext);\r
+                }\r
+            } else if (paramIntent.hasExtra("sms")) {\r
+                String sms = paramIntent.getStringExtra("sms");\r
+                SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+                isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+                if (sms != null && !isSilence) {\r
+                    if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+                        this.initMyDialog(paramContext, null, 3, sms);\r
+                        this.playNotificationVoice(paramContext);\r
+                        VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+                    }\r
+\r
+                    this.screenOn(paramContext);\r
+                }\r
+            } else if (paramIntent.hasExtra("pushtxt")) {\r
+                String sms = paramIntent.getStringExtra("pushtxt");\r
+                SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+                isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+                if (sms != null && !isSilence) {\r
+                    if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+                        this.initMyDialog(paramContext, null, 4, sms);\r
+                        this.playNotificationVoice(paramContext);\r
+                        VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+                    }\r
+\r
+                    this.screenOn(paramContext);\r
+                }\r
+            } else if (paramIntent.hasExtra("findDev")) {\r
+                String finddevtxt = paramIntent.getStringExtra("findDev");\r
+                SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+                isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+                if (finddevtxt != null && !isSilence) {\r
+                    if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+                        this.initMyDialog(paramContext, null, 5, finddevtxt);\r
+                        this.playFindDevVoice(paramContext);\r
+                        VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+\r
+                    }\r
+\r
+                    this.screenOn(paramContext);\r
+                }\r
             }\r
-        }else if (paramIntent.hasExtra("findDev")) {\r
-          String finddevtxt = paramIntent.getStringExtra("findDev");\r
-          SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
-          isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
-          if (finddevtxt != null && !isSilence) {\r
-            if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
-              this.initMyDialog(paramContext, null, 5,finddevtxt);\r
-              this.playFindDevVoice(paramContext);\r
-              VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
 \r
+        } else if (ACTION_TEMP_RESULT.equals(str)) {\r
+            double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
+            double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
+            String temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
+            ICLogger.i("发送体温测量值 " + temperatureMsg);\r
+            Deliver.sendLocationMSG(temperatureMsg);\r
+        } else if (ACTION_SET_SIT_RANGE.equals(str)) {\r
+            if (paramIntent.hasExtra(Constants.KEY_SIT_RANGE)) {\r
+                int sitrange = paramIntent.getIntExtra(Constants.KEY_SIT_RANGE, 0);\r
+                Config.setKeepSitRangeInMinutes(paramContext, sitrange);\r
+                ICLogger.i("set KeepSitRange int " + sitrange + " minutes!");\r
+                ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
+                Runtime.lastSitCheckStepCount = CoreService.getInstance().getRuntime().getTotalStepCount();\r
+                Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();\r
+            }\r
+        } else {\r
+            //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。\r
+            if (mCustomDialog != null && mCustomDialog.isShowing()) {\r
+                mCustomDialog.dismiss();\r
             }\r
 \r
-            this.screenOn(paramContext);\r
-          }\r
+            if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {\r
+                this.mCustomNotification.dismiss();\r
+            }\r
         }\r
+    }\r
 \r
-      }else if (ACTION_TEMP_RESULT.equals(str)) {\r
-        double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
-        double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
-        String temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
-        ICLogger.i("发送体温测量值 " + temperatureMsg);\r
-        Deliver.sendLocationMSG(temperatureMsg);\r
-    }else if (ACTION_SET_SIT_RANGE.equals(str)) {\r
-        if (paramIntent.hasExtra( Constants.KEY_SIT_RANGE)){\r
-            int sitrange=paramIntent.getIntExtra(Constants.KEY_SIT_RANGE,0);\r
-            Config.setKeepSitRangeInMinutes(paramContext,sitrange);\r
-            ICLogger.i("set KeepSitRange int "+sitrange+" minutes!");\r
-            ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
-            Runtime.lastSitCheckStepCount=CoreService.getInstance().getRuntime().getTotalStepCount();\r
-            Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
-        }\r
-    } else {\r
-      //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。\r
-        if (mCustomDialog != null && mCustomDialog.isShowing()) {\r
-          mCustomDialog.dismiss();\r
-        }\r
+    public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {\r
+        Intent intent = new Intent();\r
+        intent.setAction(actionStr);\r
+        intent.putExtra("stheartRateType", paramInt);\r
+        paramContext.sendBroadcast(intent);\r
+    }\r
 \r
-        if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {\r
-          this.mCustomNotification.dismiss();\r
-        }\r
-      }\r
-  }\r
-  \r
-  public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {\r
-    Intent intent = new Intent();\r
-    intent.setAction(actionStr);\r
-    intent.putExtra("stheartRateType", paramInt);\r
-    paramContext.sendBroadcast(intent);\r
-  }\r
-  public void sendSOSBroadcast(Context paramContext, String actionStr) {\r
-    Intent intent = new Intent();\r
-    intent.setAction(actionStr);\r
-    paramContext.sendBroadcast(intent);\r
-  }\r
+    public void sendSOSBroadcast(Context paramContext, String actionStr) {\r
+        Intent intent = new Intent();\r
+        intent.setAction(actionStr);\r
+        paramContext.sendBroadcast(intent);\r
+    }\r
 \r
 \r
 }\r