release V491
authorsnickersun <scy@incartech.cn>
Tue, 11 Aug 2020 06:36:08 +0000 (14:36 +0800)
committersnickersun <scy@incartech.cn>
Tue, 11 Aug 2020 06:36:08 +0000 (14:36 +0800)
Ak项目
1、SleepScore计算错误
2、去掉默认0752 SOS
3、解决旧版软件升级后数据库结构错误问题
4、每周一清除一次SleepRecordData
5、日志改为只有2个备份文件

13 files changed:
app/release/ICSer_V491_2008111430_release.apk [moved from app/release/ICSer_V490_2008102058_release.apk with 79% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/ICContentProvider.java
app/src/main/java/com/enqualcomm/support/MySqlitOpenHelper.java
app/src/main/java/com/enqualcomm/support/bean/SleepInfo.java
app/src/main/java/com/enqualcomm/support/service/KeepAlive.java
app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java
app/src/main/java/com/enqualcomm/support/utils/DBHelper.java
app/src/main/java/com/enqualcomm/support/utils/ICLogger.java
app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java
app/src/main/java/com/ic/protocols/protocol_ic.java
app/version_code.properties

similarity index 79%
rename from app/release/ICSer_V490_2008102058_release.apk
rename to app/release/ICSer_V491_2008111430_release.apk
index fb3f458..a7bdfe9 100644 (file)
Binary files a/app/release/ICSer_V490_2008102058_release.apk and b/app/release/ICSer_V491_2008111430_release.apk differ
index d30c5b7..373dfe7 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":490,"versionName":"2008102058","enabled":true,"outputFile":"ICSer_V490_2008102058_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V490_2008102058_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":491,"versionName":"2008111430","enabled":true,"outputFile":"ICSer_V491_2008111430_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V491_2008111430_release.apk","properties":{}}]
\ No newline at end of file
index 86d809c..68837ef 100644 (file)
@@ -558,14 +558,14 @@ public class CoreService extends Service {
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
-                int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
-                ICLogger.i("=====Contact count "+contactcount);\r
-                if(contactcount==0){ //如果没有SOS\r
-                    ICLogger.i("=====add SOS 07522312120 ");\r
-                    ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
-                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
-                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
-                }\r
+//                int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
+//                ICLogger.i("=====Contact count "+contactcount);\r
+//                if(contactcount==0){ //如果没有SOS\r
+//                    ICLogger.i("=====add SOS 07522312120 ");\r
+//                    ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
+//                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
+//                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
+//                }\r
             }\r
         }else{\r
 \r
@@ -702,7 +702,13 @@ public class CoreService extends Service {
 \r
         //备份DB数据到sd cache目录,为调试方便\r
         Util.getDBFile();\r
+//        test(); //test function\r
+    }\r
 \r
+    private void test(){\r
+\r
+        ICLogger.i("周一清除所有睡眠数据Record");\r
+        runtime.getDbHelper().deleteSleepData();\r
     }\r
 \r
     public static void DevliverStringMessage(String cmd){\r
@@ -772,7 +778,10 @@ public class CoreService extends Service {
                     si.calculate_sleepInfo(runtime);\r
 \r
                     runtime.getDbHelper().updateSleepInfo(si);\r
-\r
+                    if (TimeUtil.getWeek().equals("周一")){\r
+                        ICLogger.i("周一清除所有睡眠数据Record");\r
+                        runtime.getDbHelper().deleteSleepData();\r
+                    }\r
                     Config.setSleepDate(this, sleepdate);\r
                     Config.setSleepScore(this, si.getScore());\r
                     Random r = new Random();\r
index d9eb873..7fff74d 100644 (file)
@@ -738,7 +738,6 @@ public class ICContentProvider extends ContentProvider {
     return true;\r
   }\r
 \r
-  @Nullable\r
   @Override\r
   public Cursor query(Uri paramUri, String[] columns, String paramString1, String[] paramArrayOfString2, String paramString2) {\r
     long l;\r
index 06895d3..d948d2c 100644 (file)
@@ -68,8 +68,55 @@ Pushtxt、message
   \r
   public void onUpgrade(SQLiteDatabase sqlite, int oldDBversion, int newDBversion) {\r
     if (oldDBversion <8) {\r
-      ICLogger.i("数据库升级了");\r
-      sqlite.execSQL("ALTER TABLE SLEEP_STATUS ADD COLUMN SLEEP_DATE");\r
+      ICLogger.i("数据库升级 to 8 ");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS MESSAGE");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS EVENT_MESSAGE");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS ANTIOFF");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_RECORDS");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_STATUS");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS SLEEP_STATUS");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS SIT");\r
+      sqlite.execSQL("DROP TABLE IF EXISTS ALARM_MSG_RECORDS");\r
+    /*\r
+系统对话消息表,包含微聊,系统推送文本,上传图片,上传语音等一系列消息。\r
+Pushtxt、message\r
+数据库 Message,记录所有message,包括类型(下发txt,chat msg, chat image),文件url或者文本内容。\r
+*/\r
+      sqlite.execSQL("CREATE TABLE MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,CONTENT TEXT ,PREVIEW TEXT ,STATUS INTEGER ,IN_OR_OUT INTEGER ,CONTACT_CATEGORY INTEGER ,CONTACT_NUMBER TEXT ,SERVER_TIME TEXT ,LOCAL_TIME INTEGER ,ICON TEXT)");\r
+      //sqlite.execSQL("CREATE TABLE MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT ,CATEGORY INTEGER ,CONTENT TEXT ,PREVIEW TEXT ,STATUS INTEGER ,IN_OR_OUT INTEGER ,CONTACT_CATEGORY INTEGER ,CONTACT_NUMBER TEXT ,SERVER_TIME TEXT ,LOCAL_TIME INTEGER ,ICON TEXT,FILETYPE INTEGER,DATATYPE INTEGER)");\r
+\r
+\r
+\r
+//日志表格,存储开机关机,低电报警等消息。。。\r
+      sqlite.execSQL("CREATE TABLE EVENT_MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT , EVENT_TYPE INTEGER, EVENT_NAME TEXT, TIME TEXT )");\r
+\r
+/*\r
+脱腕检测时段AntiOff\r
+本身需要时间段的,在时间段内才进行 脱腕检测。没有设置时间段的话,或者从0:00~23:59表示持续判断脱腕检测。\r
+2个数据库,时间段和当前状态记录(包括历史记录)。\r
+*/\r
+      sqlite.execSQL("CREATE TABLE ANTIOFF(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
+      // sqlite.execSQL("CREATE TABLE ANTIOFF_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT ,STATUS TEXT,CUR_SYS_STATUS TEXT)");\r
+\r
+/*\r
+睡眠\r
+根据时间段进行检测,时间段内,根据翻滚次数确认其睡眠类型。如深度睡眠或者浅睡。\r
+2个数据库翻滚次数记录,当每日睡眠情况统计计算,检测时间段记在settings里,就不放在数据库了。\r
+*/\r
+      /*每次打点的记录表*/\r
+      sqlite.execSQL("CREATE TABLE SLEEP_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,DATE TEXT, TIME TEXT ,ROLLTIMES INTEGER ,STATUS TEXT ,REM TEXT)");\r
+      /*计算后的分值,每天会在睡眠结束后计算Records获得*/\r
+      sqlite.execSQL("CREATE TABLE SLEEP_STATUS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,TIME TEXT , DEEP_SLEEP INTEGER , LIGHT_SLEEP INTEGER ,SCORE INTEGER )");\r
+\r
+/*久坐\r
+根据时间段进行检测,时间段内,根据计步变化确认其是否在坐着。\r
+1个数据库 久坐检测时间段,报警时长度要求,报警记录*/\r
+      sqlite.execSQL("CREATE TABLE SIT(_id INTEGER PRIMARY KEY AUTOINCREMENT ,START_TIME TEXT ,END_TIME TEXT ,WEEK TEXT ,INTERVAL INTEGER)");\r
+\r
+\r
+      /*所有报警的记录表,包括开关机事件*/\r
+      sqlite.execSQL("CREATE TABLE ALARM_MSG_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,DATE TEXT, TIME TEXT ,ALARM TEXT )");\r
+\r
     }\r
   }\r
 }\r
index 9475112..114e927 100644 (file)
@@ -91,27 +91,27 @@ public class SleepInfo {
                     turnovertime = (turnovertimesArray.get(i).stepCount - turnovertimesArray.get(i-1).stepCount);\r
                     String before=turnovertimesArray.get(i-1).date;\r
                     String after =turnovertimesArray.get(i).date;\r
-                    ICLogger.i("diffBetween2DateInMinutes before "+before+", after "+after);\r
+                    ICLogger.i("======diffBetween2DateInMinutes before "+before+", after "+after);\r
                     long minutes=TimeUtil.diffBetween2DateInMinutes(before,after);\r
                     if (minutes>0){\r
                         long avg_turnovertime= turnovertime/minutes; //平均每分钟翻滚次数\r
                         if (  avg_turnovertime<= DEEP_TURN_LEVEL) { //小于深度睡眠标准都属于深度睡眠\r
                             deepsleep_minutes += minutes;\r
-                            ICLogger.i("深度睡眠+="+ minutes);\r
+                            ICLogger.i("======深度睡眠+="+ minutes);\r
                         } else if (avg_turnovertime > DEEP_TURN_LEVEL && avg_turnovertime < LIGHT_TURN_LEVEL) { //深度睡眠和浅睡标准之间属于浅睡。\r
                             lightsleep_minutes += minutes;\r
-                            ICLogger.i("浅睡+="+minutes);\r
+                            ICLogger.i("======浅睡+="+minutes);\r
                         }else{\r
-                            ICLogger.i("未睡+="+minutes);\r
+                            ICLogger.i("======未睡+="+minutes);\r
                         }\r
                     }else{\r
                         //\r
-                        ICLogger.i("两条睡眠记录间隔小于1分钟,skip计算"); //此处可以有效解决0点 reset步数造成的计算问题。\r
+                        ICLogger.i("=====两条睡眠记录间隔小于1分钟,skip计算"); //此处可以有效解决0点 reset步数造成的计算问题。\r
                     }\r
 \r
                 }\r
             }\r
-            ICLogger.i("深睡 = "+deepsleep_minutes+" , 浅睡 = "+lightsleep_minutes);\r
+            ICLogger.i("======深睡 = "+deepsleep_minutes+" , 浅睡 = "+lightsleep_minutes);\r
             Score=(int)calculateScore(deepsleep_minutes,lightsleep_minutes,runtime);\r
 \r
         }\r
@@ -142,7 +142,8 @@ public class SleepInfo {
             if (sleeptime>0 && sleeptime <= 3*60) {\r
                 return (sleeptime/3);\r
             }else if (sleeptime >3*60 ){\r
-                long tmp1= 100*(deepsleep/sleeptime); //深度睡眠/睡眠时间  百分比\r
+                long tmp1= 100*deepsleep/sleeptime; //深度睡眠/睡眠时间  百分比\r
+                ICLogger.i("======深度睡眠/睡眠时间  百分比"+tmp1);\r
                 if (tmp1 >=0 && tmp1 < 20){\r
                      return 60+tmp1;\r
                 }else if (tmp1 >=21 && tmp1 < 25 ){\r
index 69b711c..f11fb3f 100644 (file)
@@ -264,7 +264,6 @@ public class KeepAlive extends AbstractConnectionService {
     Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
       public void call(Long param1Long) {\r
         connection.send(protocolAPIHelper.genStringMessage("login",protocolAPIHelper.getLoginMSG(paramRuntime)));\r
-\r
       }\r
     });\r
 \r
@@ -298,7 +297,6 @@ public class KeepAlive extends AbstractConnectionService {
       Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
           public void call(Long param1Long) {\r
               connection.send(protocolAPIHelper.genStringMessage("binding", protocolAPIHelper.getBindingMSG()));\r
-\r
           }\r
       });\r
     startResponseCheckTimer();\r
index 51046c2..059ea12 100644 (file)
@@ -91,12 +91,13 @@ public class BatteryUtil {
             mRuntime.setBatteryLow(true);\r
 \r
             if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow  less than 15%!");\r
-            send_batterylow_event_broadcast(param1Context,1);\r
-            play_waning_notify(param1Context);\r
-            mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
-            //trigger AP10 报警定位\r
-            connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));\r
-\r
+            if (mRuntime.isPowerConnected()==false) {\r
+              send_batterylow_event_broadcast(param1Context, 1);\r
+              play_waning_notify(param1Context);\r
+              mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
+              //trigger AP10 报警定位\r
+              connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
+            }\r
           } else {\r
             mRuntime.setBattery(String.format("%03d",batLevel));\r
             mRuntime.setHaveBatteryChange(true);\r
@@ -104,12 +105,16 @@ public class BatteryUtil {
 \r
             if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");\r
 \r
-            send_batterylow_event_broadcast(param1Context,1);\r
-            play_waning_notify(param1Context);\r
-            mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
-            //trigger AP10 报警定位\r
-            connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));\r
+            if (mRuntime.isPowerConnected()==false) {\r
+              send_batterylow_event_broadcast(param1Context, 1);\r
+\r
+              play_waning_notify(param1Context);\r
+              mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
+              //trigger AP10 报警定位\r
+              connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
 \r
+\r
+            }\r
           }\r
 \r
         }else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {\r
index 6565591..1dd6383 100644 (file)
@@ -990,7 +990,10 @@ public class DBHelper {
     }\r
     return 0;\r
   }\r
-\r
+    public int deleteSleepData(){\r
+      this.cr.delete(ICContentProvider.SLEEP_RECORDS_URI, (String)null, (String[])null);\r
+        return 0;\r
+    }\r
   public void insertEventMsg(String  dateyyyyMMddHHmmss,int event_type,String event_name){\r
     //日志表格,存储开机关机,低电报警等消息。。。\r
 //    sqlite.execSQL("CREATE TABLE EVENT_MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT , EVENT_TYPE INTEGER, EVENT_NAME TEXT, TIME TEXT )");\r
index d755ccb..bffab82 100644 (file)
@@ -197,7 +197,7 @@ public class ICLogger {
         return null;\r
       }\r
       rollingFileAppender.setName(name);\r
-      rollingFileAppender.setMaxBackupIndex(3);  //最多3个备份文件\r
+      rollingFileAppender.setMaxBackupIndex(2);  //最多3个备份文件\r
       rollingFileAppender.setMaximumFileSize(10*1024*1024); //10M 大小\r
       rollingFileAppender.setImmediateFlush(true);\r
 \r
index 66a2031..a8e8866 100644 (file)
@@ -63,7 +63,44 @@ public class TimeUtil {
 //    String str2 = df2.format(date1);\r
 \r
   }\r
-\r
+  /**\r
+   * 根据当前日期获得是星期几\r
+   *\r
+   * @return\r
+   */\r
+  public static String getWeek() {\r
+    String time =getSystemTime4();\r
+    String Week = "";\r
+    SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");\r
+    Calendar c = Calendar.getInstance();\r
+    try {\r
+      c.setTime(format.parse(time));\r
+    } catch (ParseException e) {\r
+      e.printStackTrace();\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 1) {\r
+      Week += "周天";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 2) {\r
+      Week += "周一";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 3) {\r
+      Week += "周二";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 4) {\r
+      Week += "周三";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 5) {\r
+      Week += "周四";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 6) {\r
+      Week += "周五";\r
+    }\r
+    if (c.get(Calendar.DAY_OF_WEEK) == 7) {\r
+      Week += "周六";\r
+    }\r
+    return Week;\r
+  }\r
   /* 返回 2位年2位月2位日, 如2019-12-30 返回 191230*/\r
   public static String getShortDate() {\r
     String DEFAULT_TIME_FORMAT = "yyMMdd";\r
index 3b9efc9..e6bceca 100644 (file)
@@ -731,23 +731,22 @@ public class protocol_ic {
             connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
 \r
             ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
-            if(Config.custom_branch_name.equals("AK")){\r
-\r
-                contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
-                if (!phNum1.isEmpty())\r
-                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum1));\r
-                if (!phNum2.isEmpty())\r
-                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum2));\r
-            }else {\r
+//            if(Config.custom_branch_name.equals("AK")){\r
+//\r
+//                contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
+//                if (!phNum1.isEmpty())\r
+//                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum1));\r
+//                if (!phNum2.isEmpty())\r
+//                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum2));\r
+//            }else {\r
                 if (!phNum1.isEmpty())\r
                     contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));\r
                 if (!phNum2.isEmpty())\r
                     contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));\r
                 if (!phNum3.isEmpty())\r
                     contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));\r
-            }\r
+//            }\r
             runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
-\r
         }else{\r
             ICLogger.i(" BP12 format error!");\r
         }\r
index 5b46e50..26c8317 100644 (file)
@@ -1,2 +1,2 @@
-#Mon Aug 10 20:58:05 CST 2020\r
-VERSION_CODE=490\r
+#Tue Aug 11 14:30:49 CST 2020\r
+VERSION_CODE=491\r