吴鹏:这样改,应该是改动最小了。单组闹铃的开关(1,0),扩展一个标记2表示开启的单次闹铃,不按星期循环。
authorTrillGates <williamtrillgates@gmail.com>
Thu, 18 Nov 2021 03:02:43 +0000 (11:02 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Thu, 18 Nov 2021 03:02:43 +0000 (11:02 +0800)
app/src/main/java/com/enqualcomm/support/service/SilentManager.java
app/src/main/java/com/ic/protocols/protocol_s123.java

index 284c36b..9161ac9 100644 (file)
@@ -301,7 +301,8 @@ public class SilentManager extends AbstractInvokeHandlerService {
     private void setNewAlarm(List<Alarm> alarmArrayList) {
         for (Alarm alarm : alarmArrayList) {
             Log.d("setNewAlarm======", "alarm == > " + alarm);
-            if ("ON".equals(alarm.status)) {
+            ICLogger.d("status ==> " + alarm.status);
+            if ("ON".equals(alarm.status) || "ONCE".equals(alarm.status)) {
                 alarm.time = alarm.time.replace(":", "");
                 int hour = Integer.parseInt(alarm.time.substring(2, 4));
                 int minute = Integer.parseInt(alarm.time.substring(5, 7));
@@ -319,6 +320,10 @@ public class SilentManager extends AbstractInvokeHandlerService {
                         ICLogger.d("idStr ==> " + idStr);
                         //Id==> 闹钟ID+星期
                         int flag = itemWeek.equals("0") ? 0 : 2;
+                        if ("ONCE".equals(alarm.status)) {
+                            flag = 0;
+                        }
+                        ICLogger.d("flag ==> " + flag + " name ==> " + alarm.name);
                         AlarmManagerUtil.setAlarm(mContext, flag,
                                 hour,
                                 minute,
index 3ab480c..6de6bec 100644 (file)
@@ -1372,6 +1372,7 @@ public class protocol_s123 {
 
     }
 
+
     //设置闹钟
     public void handleBP85(String cmd, Connection connection, Runtime runtime) {
         //        IWBP85,867155030001063,155312,1,1,0235,12,1,1
@@ -4334,7 +4335,8 @@ public class protocol_s123 {
     }
 
     /**
-     * 闹钟数据
+     * 吴鹏原话:这样改,应该是改动最小了。
+     * 单组闹铃的开关(1,0),扩展一个标记2表示开启的单次闹铃,不按星期循环。
      *
      * @param mRuntime
      * @param cmd
@@ -4394,7 +4396,7 @@ public class protocol_s123 {
                 //第三个是循环星期
                 String weekItem = itemDetail[2];
                 ICLogger.d("weekItem == > " + weekItem);
-                //第四个是开关
+                //第四个是开关,有可能是 2,如果是2的话,那么就是单次响铃
                 String isOpen = itemDetail[3];
                 ICLogger.d("isOpen == > " + isOpen);
                 //如果是全部关闭,那么所有的闹钟都会为0
@@ -4411,8 +4413,16 @@ public class protocol_s123 {
                     ICLogger.d("date ERROR...");
                     continue;
                 }
+                String status = "ON";
+                if ("0".equals(isOpen)) {
+                    status = "OFF";
+                } else if ("1".equals(isOpen)) {
+                    status = "ON";
+                } else if ("2".equals(isOpen)) {
+                    status = "ONCE";
+                }
                 Alarm alarmItem = new Alarm("ST" + hour + "." + minute,
-                        "W" + weekItem, "CON", "1".equals(isOpen) ? "ON" : "OFF", alarmName);
+                        "W" + weekItem, "CON", status, alarmName);
                 ICLogger.d("alarmItem == > " + alarmName);
                 //入库
                 ICLogger.d(" alarmItem.name==> " + alarmItem.name);