优化socket Receive 函数,解决语音接收crash问题。
authorsnickersun <scy@incartech.cn>
Fri, 17 Jan 2020 12:54:53 +0000 (20:54 +0800)
committersnickersun <scy@incartech.cn>
Fri, 17 Jan 2020 12:54:53 +0000 (20:54 +0800)
去掉无用类。
增加voicePacket.java,用来接收语音分包数据。

14 files changed:
app/src/main/AndroidManifest.xml
app/src/main/java/com/ic/protocol/ICContentProvider.java
app/src/main/java/com/ic/protocol/adapter/protocolAPIHelper.java
app/src/main/java/com/ic/protocol/bean/PictureContent.java [deleted file]
app/src/main/java/com/ic/protocol/bean/VoiceContent.java
app/src/main/java/com/ic/protocol/bean/serverStatus.java [deleted file]
app/src/main/java/com/ic/protocol/bean/simStatus.java [deleted file]
app/src/main/java/com/ic/protocol/bean/stepCounter.java [deleted file]
app/src/main/java/com/ic/protocol/bean/voicePacket.java [new file with mode: 0644]
app/src/main/java/com/ic/protocol/service/SendChatMessage.java
app/src/main/java/com/ic/protocol/utils/NettyConnection.java
app/src/main/java/com/ic/protocol/utils/RxSocket.java
app/src/main/java/com/ic/protocol/utils/Util.java
app/version_code.properties

index 69406a1..6a5089d 100644 (file)
@@ -1,6 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     android:sharedUserId="android.uid.system"
+    android:persistent="true"
+    android:screenOrientation="portrait"
+    android:supportsRtl="true"
+    android:allowBackup="true"
     package="com.ic.protocol">
     <!--按用户发送消息-->
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
index e6265b4..69ffb4a 100644 (file)
@@ -10,7 +10,6 @@ import android.net.Uri;
 import android.support.annotation.NonNull;\r
 import android.support.annotation.Nullable;\r
 \r
-import java.util.logging.Logger;\r
 \r
 public class ICContentProvider extends ContentProvider {\r
   private static final int ALARM = 5;\r
@@ -22,8 +21,8 @@ public class ICContentProvider extends ContentProvider {
   private static final String ALARM_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.alarm";\r
   \r
   private static final String ALARM_TABLE_NAME = "ALARM";\r
-  \r
-  public static final Uri ALARM_URI;\r
+\r
+  public static final Uri ALARM_URI = Uri.parse("content://com.enqualcomm.support/alarm");\r
   \r
   private static final int ANTIOFF = 19;\r
   \r
@@ -34,8 +33,8 @@ public class ICContentProvider extends ContentProvider {
   private static final String ANTIOFF_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.antioff";\r
   \r
   private static final String ANTIOFF_TABLE_NAME = "ANTIOFF";\r
-  \r
-  public static final Uri ANTIOFF_URI;\r
+\r
+  public static final Uri ANTIOFF_URI = Uri.parse("content://com.enqualcomm.support/antioff");\r
   \r
   private static final int CONTACT = 1;\r
   \r
@@ -46,16 +45,16 @@ public class ICContentProvider extends ContentProvider {
   private static final String CONTACT_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.contact";\r
   \r
   private static final String CONTACT_TABLE_NAME = "CONTACT";\r
-  \r
-  public static final Uri CONTACT_URI;\r
+\r
+  public static final Uri CONTACT_URI =Uri.parse("content://com.enqualcomm.support/contact");\r
   \r
   private static final int DEVICESTATUS = 15;\r
   \r
   private static final String DEVICESTATUS_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.deviceStatus";\r
   \r
   private static final String DEVICESTATUS_TABLE_NAME = "DEVICESTATUS";\r
-  \r
-  public static final Uri DEVICESTATUS_URL;\r
+\r
+  public static final Uri DEVICESTATUS_URL = Uri.parse("content://com.enqualcomm.support/deviceStatus");\r
   \r
   private static final int DOWNLOADINFO = 16;\r
   \r
@@ -66,16 +65,16 @@ public class ICContentProvider extends ContentProvider {
   private static final String DOWNLOADINFO_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.downloadInfo";\r
   \r
   private static final String DOWNLOADINFO_TABLE_NAME = "DOWNLOADINFO";\r
-  \r
-  public static final Uri DOWNLOADINFO_URL;\r
+\r
+  public static final Uri DOWNLOADINFO_URL = Uri .parse("content://com.enqualcomm.support/downloadInfo");\r
   \r
   private static final int IKNOWLEDGE = 9;\r
   \r
   private static final String IKNOWLEDGE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.iKnowledge";\r
   \r
   private static final String IKNOWLEDGE_TABLE_NAME = "IKNOWLEDGE";\r
-  \r
-  public static final Uri IKNOWLEDGE_URL;\r
+\r
+  public static final Uri IKNOWLEDGE_URL = Uri.parse("content://com.enqualcomm.support/iKnowledge");\r
   \r
   private static final int MESSAGE = 3;\r
   \r
@@ -86,8 +85,8 @@ public class ICContentProvider extends ContentProvider {
   private static final String MESSAGE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.message";\r
   \r
   private static final String MESSAGE_TABLE_NAME = "MESSAGE";\r
-  \r
-  public static final Uri MESSAGE_URI;\r
+\r
+  public static final Uri MESSAGE_URI = Uri.parse("content://com.enqualcomm.support/message");\r
   \r
   private static final int NOTICE = 12;\r
   \r
@@ -98,8 +97,8 @@ public class ICContentProvider extends ContentProvider {
   private static final String NOTICE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.notice";\r
   \r
   private static final String NOTICE_TABLE_NAME = "NOTICE";\r
-  \r
-  public static final Uri NOTICE_URL;\r
+\r
+  public static final Uri NOTICE_URL = Uri.parse("content://com.enqualcomm.support/notice");\r
   \r
   private static final int SILENT = 7;\r
   \r
@@ -110,16 +109,16 @@ public class ICContentProvider extends ContentProvider {
   private static final String SILENT_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.silent";\r
   \r
   private static final String SILENT_TABLE_NAME = "SILENT";\r
-  \r
-  public static final Uri SILENT_URI;\r
+\r
+  public static final Uri SILENT_URI = Uri.parse("content://com.enqualcomm.support/silent");\r
   \r
   private static final int STHEART_RATE = 18;\r
   \r
   private static final String STHEART_RATE_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.stheartRate";\r
   \r
   private static final String STHEART_RATE_TABLE_NAME = "STHEART_RATE";\r
-  \r
-  public static final Uri STHEART_RATE_URL;\r
+\r
+  public static final Uri STHEART_RATE_URL = Uri.parse("content://com.enqualcomm.support/stheartRate");\r
   \r
   private static final int UNREADMSG = 21;\r
   \r
@@ -127,7 +126,7 @@ public class ICContentProvider extends ContentProvider {
   \r
   private static final String UNREADMSG_TABLE_NAME = "UNREADMSG";\r
   \r
-  public static final Uri UNREAD_MSG_URI = (ANTIOFF_URI = (STHEART_RATE_URL = (DOWNLOADINFO_URL = (DEVICESTATUS_URL = (WEATHER_URL = (NOTICE_URL = (URLDOWNLOADPIC_URL = (IKNOWLEDGE_URL = (SILENT_URI = (ALARM_URI = (MESSAGE_URI = (CONTACT_URI = Uri.parse("content://com.enqualcomm.support/contact")).parse("content://com.enqualcomm.support/message")).parse("content://com.enqualcomm.support/alarm")).parse("content://com.enqualcomm.support/silent")).parse("content://com.enqualcomm.support/iKnowledge")).parse("content://com.enqualcomm.support/urlDownloadPic")).parse("content://com.enqualcomm.support/notice")).parse("content://com.enqualcomm.support/weather")).parse("content://com.enqualcomm.support/deviceStatus")).parse("content://com.enqualcomm.support/downloadInfo")).parse("content://com.enqualcomm.support/stheartRate")).parse("content://com.enqualcomm.support/antioff")).parse("content://com.enqualcomm.support/unreadMsg");\r
+  public static final Uri UNREAD_MSG_URI = Uri.parse("content://com.enqualcomm.support/unreadMsg");\r
   \r
   private static final UriMatcher URI_MATCHER = new UriMatcher(-1);\r
   \r
@@ -140,41 +139,41 @@ public class ICContentProvider extends ContentProvider {
   private static final String URLDOWNLOADPIC_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.urlDownloadPic";\r
   \r
   private static final String URLDOWNLOADPIC_TABLE_NAME = "URLDOWNLOADPIC";\r
-  \r
-  public static final Uri URLDOWNLOADPIC_URL;\r
+\r
+  public static final Uri URLDOWNLOADPIC_URL = Uri .parse("content://com.enqualcomm.support/urlDownloadPic");\r
   \r
   private static final int WEATHER = 14;\r
   \r
   private static final String WEATHER_MIME = "vnd.android.cursor.dir/vnd.com.enqualcomm.support.weather";\r
   \r
   private static final String WEATHER_TABLE_NAME = "WEATHER";\r
-  \r
-  public static final Uri WEATHER_URL;\r
+\r
+  public static final Uri WEATHER_URL = Uri.parse("content://com.enqualcomm.support/weather");\r
   \r
   private SQLiteDatabase db;\r
   \r
   static  {\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "contact", 1);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "contact/#", 2);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "message", 3);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "message/#", 4);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "alarm", 5);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "alarm/#", 6);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "silent", 7);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "silent/#", 8);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "iKnowledge", 9);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic", 10);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic/#", 11);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "notice", 12);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "notice/#", 13);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "weather", 14);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "deviceStatus", 15);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo", 16);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo/#", 17);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "stheartRate", 18);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "antioff", 19);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "antioff/#", 20);\r
-    URI_MATCHER.addURI("com.enqualcomm.support", "unreadMsg", 21);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "contact", CONTACT);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "contact/#", CONTACT_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "message", MESSAGE);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "message/#", MESSAGE_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "alarm", ALARM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "alarm/#", ALARM_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "silent", SILENT);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "silent/#", SILENT_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "iKnowledge", IKNOWLEDGE);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic", URLDOWNLOADPIC);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "urlDownloadPic/#", URLDOWNLOADPIC_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "notice", NOTICE);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "notice/#", NOTICE_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "weather", WEATHER);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "deviceStatus", DEVICESTATUS);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo", DOWNLOADINFO);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "downloadInfo/#", DOWNLOADINFO_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "stheartRate", STHEART_RATE);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "antioff", ANTIOFF);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "antioff/#", ANTIOFF_ITEM);\r
+    URI_MATCHER.addURI("com.enqualcomm.support", "unreadMsg", UNREADMSG);\r
   }\r
   \r
   private int bulkInsertLocale(String paramString, ContentValues[] paramArrayOfContentValues) {\r
@@ -194,291 +193,291 @@ public class ICContentProvider extends ContentProvider {
   }\r
   \r
   public int bulkInsert(Uri paramUri, ContentValues[] paramArrayOfContentValues) {\r
-//    switch (URI_MATCHER.match(paramUri)) {\r
-//      default:\r
-//        return 0;\r
-//      case 21:\r
-//        i = bulkInsertLocale("UNREADMSG", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
-//        return i;\r
-//      case 19:\r
-//        i = bulkInsertLocale("ANTIOFF", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
-//        return i;\r
-//      case 18:\r
-//        i = bulkInsertLocale("STHEART_RATE", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
-//        return i;\r
-//      case 16:\r
-//        i = bulkInsertLocale("DOWNLOADINFO", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
-//        return i;\r
-//      case 15:\r
-//        i = bulkInsertLocale("DEVICESTATUS", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
-//        return i;\r
-//      case 14:\r
-//        i = bulkInsertLocale("WEATHER", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
-//        return i;\r
-//      case 12:\r
-//        i = bulkInsertLocale("NOTICE", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
-//        return i;\r
-//      case 10:\r
-//        i = bulkInsertLocale("URLDOWNLOADPIC", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
-//        return i;\r
-//      case 9:\r
-//        i = bulkInsertLocale("IKNOWLEDGE", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
-//        return i;\r
-//      case 7:\r
-//        i = bulkInsertLocale("SILENT", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
-//        return i;\r
-//      case 5:\r
-//        i = bulkInsertLocale("ALARM", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
-//        return i;\r
-//      case 3:\r
-//        i = bulkInsertLocale("MESSAGE", paramArrayOfContentValues);\r
-//        getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
-//        return i;\r
-//      case 1:\r
-//        break;\r
-//    }\r
-//    int i = bulkInsertLocale("CONTACT", paramArrayOfContentValues);\r
-//    getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
-//    return i;\r
-    return 0;\r
+    int i;\r
+    i=0;\r
+    switch (URI_MATCHER.match(paramUri)) {\r
+      case UNREADMSG:\r
+        i = bulkInsertLocale(UNREADMSG_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
+        break;\r
+      case ANTIOFF:\r
+        i = bulkInsertLocale(ANTIOFF_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
+        break;\r
+      case STHEART_RATE:\r
+        i = bulkInsertLocale(STHEART_RATE_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
+        break;\r
+      case DOWNLOADINFO:\r
+        i = bulkInsertLocale(DOWNLOADINFO_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
+        break;\r
+      case DEVICESTATUS:\r
+        i = bulkInsertLocale(DEVICESTATUS_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
+        break;\r
+      case WEATHER:\r
+        i = bulkInsertLocale(WEATHER_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
+        break;\r
+      case NOTICE:\r
+        i = bulkInsertLocale(NOTICE_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
+        break;\r
+      case URLDOWNLOADPIC:\r
+        i = bulkInsertLocale(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
+        break;\r
+      case IKNOWLEDGE:\r
+        i = bulkInsertLocale(IKNOWLEDGE_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
+        break;\r
+      case SILENT:\r
+        i = bulkInsertLocale(SILENT_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
+        break;\r
+      case ALARM:\r
+        i = bulkInsertLocale(ALARM_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
+        break;\r
+      case MESSAGE:\r
+        i = bulkInsertLocale(MESSAGE_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
+        break;\r
+      case CONTACT:\r
+        i = bulkInsertLocale(CONTACT_TABLE_NAME, paramArrayOfContentValues);\r
+        getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
+        break;\r
+      default:\r
+        break;\r
+    }\r
+      return i;\r
   }\r
   \r
   public int delete(Uri paramUri, String paramString, String[] paramArrayOfString) {\r
     long l;\r
     int i=0,j;\r
-//    StringBuilder stringBuilder;\r
-//    SQLiteDatabase sQLiteDatabase;\r
-//    switch (URI_MATCHER.match(paramUri)) {\r
-//      default:\r
-//        return 0;\r
-//      case 21:\r
-//        j = this.db.delete("UNREADMSG", paramString, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 20:\r
-//        l = ContentUris.parseId(paramUri);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("ANTIOFF", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 19:\r
-//        j = this.db.delete("ANTIOFF", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 18:\r
-//        j = this.db.delete("STHEART_RATE", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 17:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("DOWNLOADINFO", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 16:\r
-//        j = this.db.delete("DOWNLOADINFO", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 15:\r
-//        j = this.db.delete("DEVICESTATUS", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 14:\r
-//        j = this.db.delete("WEATHER", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 13:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("NOTICE", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 12:\r
-//        j = this.db.delete("NOTICE", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 11:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("URLDOWNLOADPIC", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 10:\r
-//        j = this.db.delete("URLDOWNLOADPIC", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 9:\r
-//        j = this.db.delete("IKNOWLEDGE", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 8:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("SILENT", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 7:\r
-//        j = this.db.delete("SILENT", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 6:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("ALARM", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 5:\r
-//        j = this.db.delete("ALARM", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 4:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("MESSAGE", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 3:\r
-//        j = this.db.delete("MESSAGE", stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 2:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.delete("CONTACT", stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 1:\r
-//        break;\r
-//    }\r
-//    int j = this.db.delete("CONTACT", stringBuilder, paramArrayOfString);\r
-//    int i = j;\r
-//    if (j != 0) {\r
-//      getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
-//      i = j;\r
-//    }\r
-    return i;\r
-  }\r
+    StringBuilder stringBuilder;\r
+    SQLiteDatabase sQLiteDatabase;\r
 \r
-  @Override\r
-  public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) {\r
-    return 0;\r
+    switch (URI_MATCHER.match(paramUri)) {\r
+      case UNREADMSG:\r
+        j = this.db.delete(UNREADMSG_TABLE_NAME, paramString, paramArrayOfString);\r
+\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
+        }\r
+        i = j;\r
+        break;\r
+      case ANTIOFF_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(ANTIOFF_TABLE_NAME, stringBuilder.toString(), null);\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
+        }\r
+        i = j;\r
+        break;\r
+      case ANTIOFF:\r
+\r
+        j = this.db.delete(ANTIOFF_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
+\r
+        }\r
+        break;\r
+      case STHEART_RATE:\r
+        j = this.db.delete(STHEART_RATE_TABLE_NAME, paramString, paramArrayOfString);\r
+\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
+\r
+        }\r
+        i = j;\r
+        break;\r
+      case DOWNLOADINFO_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(DOWNLOADINFO_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
+\r
+        }\r
+        break;\r
+      case DOWNLOADINFO:\r
+        j = this.db.delete(DOWNLOADINFO_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
+\r
+        }\r
+        break;\r
+      case DEVICESTATUS:\r
+        j = this.db.delete(DEVICESTATUS_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
+\r
+        }\r
+        break;\r
+      case WEATHER:\r
+        j = this.db.delete(WEATHER_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
+\r
+        }\r
+        break;\r
+      case NOTICE_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(NOTICE_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
+        }\r
+        break;\r
+      case NOTICE:\r
+        j = this.db.delete(NOTICE_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
+\r
+        }\r
+        break;\r
+      case URLDOWNLOADPIC_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(URLDOWNLOADPIC_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
+\r
+        }\r
+        break;\r
+      case URLDOWNLOADPIC:\r
+        j = this.db.delete(URLDOWNLOADPIC_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
+\r
+        }\r
+        break;\r
+      case IKNOWLEDGE:\r
+        j = this.db.delete(IKNOWLEDGE_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
+\r
+        }\r
+        break;\r
+      case SILENT_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(SILENT_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
+\r
+        }\r
+        break;\r
+      case SILENT:\r
+        j = this.db.delete(SILENT_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
+\r
+        }\r
+        break;\r
+      case ALARM_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(ALARM_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
+\r
+        }\r
+        break;\r
+      case ALARM:\r
+        j = this.db.delete(ALARM_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
+\r
+        }\r
+        break;\r
+      case 4:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(MESSAGE_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
+\r
+        }\r
+        break;\r
+      case MESSAGE:\r
+        j = this.db.delete(MESSAGE_TABLE_NAME, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
+\r
+        }\r
+        break;\r
+      case CONTACT_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.delete(CONTACT_TABLE_NAME, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
+\r
+        }\r
+        break;\r
+      case CONTACT:\r
+\r
+         j = this.db.delete(CONTACT_TABLE_NAME, paramString, paramArrayOfString);\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
+\r
+        }\r
+        i = j;\r
+        break;\r
+\r
+      default:\r
+        break;\r
+    }\r
+      return i;\r
   }\r
 \r
+\r
   public String getType(Uri paramUri) {\r
     StringBuilder stringBuilder = new StringBuilder();\r
     stringBuilder.append(paramUri);\r
@@ -486,110 +485,110 @@ public class ICContentProvider extends ContentProvider {
     stringBuilder.append(URI_MATCHER.match(paramUri));\r
 //    Logger.i(stringBuilder.toString());\r
     switch (URI_MATCHER.match(paramUri)) {\r
+      case UNREADMSG:\r
+        return UNREADMSG_MIME;\r
+      case ANTIOFF_ITEM:\r
+        return ANTIOFF_ITEM_MIME;\r
+      case ANTIOFF:\r
+        return ANTIOFF_MIME;\r
+      case STHEART_RATE:\r
+        return STHEART_RATE_MIME;\r
+      case DOWNLOADINFO_ITEM:\r
+        return DOWNLOADINFO_ITEM_MIME;\r
+      case DOWNLOADINFO:\r
+        return DOWNLOADINFO_MIME;\r
+      case DEVICESTATUS:\r
+        return DEVICESTATUS_MIME;\r
+      case WEATHER:\r
+        return WEATHER_MIME;\r
+      case NOTICE_ITEM:\r
+        return NOTICE_ITEM_MIME;\r
+      case NOTICE:\r
+        return NOTICE_MIME;\r
+      case URLDOWNLOADPIC_ITEM:\r
+        return URLDOWNLOADPIC_ITEM_MIME;\r
+      case URLDOWNLOADPIC:\r
+        return URLDOWNLOADPIC_MIME;\r
+      case IKNOWLEDGE:\r
+        return IKNOWLEDGE_MIME;\r
+      case SILENT_ITEM:\r
+        return SILENT_ITEM_MIME;\r
+      case SILENT:\r
+        return SILENT_MIME;\r
+      case ALARM_ITEM:\r
+        return ALARM_ITEM_MIME;\r
+      case ALARM:\r
+        return ALARM_MIME;\r
+      case MESSAGE_ITEM:\r
+        return MESSAGE_ITEM_MIME;\r
+      case MESSAGE:\r
+        return MESSAGE_MIME;\r
+      case CONTACT_ITEM:\r
+        return CONTACT_ITEM_MIME;\r
+      case CONTACT:\r
+        return CONTACT_MIME;\r
       default:\r
         return null;\r
-      case 21:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.unreadMsg";\r
-      case 20:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.antioff";\r
-      case 19:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.antioff";\r
-      case 18:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.stheartRate";\r
-      case 17:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.downloadInfo";\r
-      case 16:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.downloadInfo";\r
-      case 15:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.deviceStatus";\r
-      case 14:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.weather";\r
-      case 13:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.notice";\r
-      case 12:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.notice";\r
-      case 11:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.urlDownloadPic";\r
-      case 10:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.urlDownloadPic";\r
-      case 9:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.iKnowledge";\r
-      case 8:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.silent";\r
-      case 7:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.silent";\r
-      case 6:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.alarm";\r
-      case 5:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.alarm";\r
-      case 4:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.message";\r
-      case 3:\r
-        return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.message";\r
-      case 2:\r
-        return "vnd.android.cursor.item/vnd.com.enqualcomm.support.contact";\r
-      case 1:\r
-        break;\r
     } \r
-    return "vnd.android.cursor.dir/vnd.com.enqualcomm.support.contact";\r
+\r
   }\r
   \r
   public Uri insert(Uri paramUri, ContentValues paramContentValues) {\r
     switch (URI_MATCHER.match(paramUri)) {\r
       default:\r
         return null;\r
-      case 21:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("UNREADMSG", null, paramContentValues));\r
+      case UNREADMSG:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(UNREADMSG_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
         return paramUri;\r
-      case 19:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("ANTIOFF", null, paramContentValues));\r
+      case ANTIOFF:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(ANTIOFF_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
         return paramUri;\r
-      case 18:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("STHEART_RATE", null, paramContentValues));\r
+      case STHEART_RATE:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(STHEART_RATE_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
         return paramUri;\r
-      case 16:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("DOWNLOADINFO", null, paramContentValues));\r
+      case DOWNLOADINFO:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(DOWNLOADINFO_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
         return paramUri;\r
-      case 15:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("DEVICESTATUS", null, paramContentValues));\r
+      case DEVICESTATUS:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(DEVICESTATUS_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
         return paramUri;\r
-      case 14:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("WEATHER", null, paramContentValues));\r
+      case WEATHER:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(WEATHER_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
         return paramUri;\r
-      case 12:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("NOTICE", null, paramContentValues));\r
+      case NOTICE:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(NOTICE_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
         return paramUri;\r
-      case 10:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("URLDOWNLOADPIC", null, paramContentValues));\r
+      case URLDOWNLOADPIC:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(URLDOWNLOADPIC_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
         return paramUri;\r
-      case 9:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("IKNOWLEDGE", null, paramContentValues));\r
+      case IKNOWLEDGE:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(IKNOWLEDGE_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
         return paramUri;\r
-      case 7:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("SILENT", null, paramContentValues));\r
+      case SILENT:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(SILENT_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
         return paramUri;\r
-      case 5:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("ALARM", null, paramContentValues));\r
+      case ALARM:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(ALARM_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
         return paramUri;\r
-      case 3:\r
-        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("MESSAGE", null, paramContentValues));\r
+      case MESSAGE:\r
+        paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(MESSAGE_TABLE_NAME, null, paramContentValues));\r
         getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
         return paramUri;\r
-      case 1:\r
+      case CONTACT:\r
         break;\r
     } \r
-    paramUri = ContentUris.withAppendedId(paramUri, this.db.insert("CONTACT", null, paramContentValues));\r
+    paramUri = ContentUris.withAppendedId(paramUri, this.db.insert(CONTACT_TABLE_NAME, null, paramContentValues));\r
     getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
     return paramUri;\r
   }\r
@@ -601,321 +600,322 @@ public class ICContentProvider extends ContentProvider {
 \r
   @Nullable\r
   @Override\r
-  public Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) {\r
-    return null;\r
+  public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1, String[] paramArrayOfString2, String paramString2) {\r
+    long l;\r
+    StringBuilder stringBuilder;\r
+\r
+    SQLiteDatabase sQLiteDatabase;\r
+    sQLiteDatabase = this.db;\r
+    switch (URI_MATCHER.match(paramUri)) {\r
+      default:\r
+        return null;\r
+      case UNREADMSG:\r
+        return this.db.query(UNREADMSG_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case ANTIOFF_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(ANTIOFF_TABLE_NAME, paramArrayOfString1, paramString1.toString(), null, null, null, null);\r
+      case ANTIOFF:\r
+        return this.db.query(ANTIOFF_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case STHEART_RATE:\r
+        return this.db.query(STHEART_RATE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case DOWNLOADINFO_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(DOWNLOADINFO_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case DOWNLOADINFO:\r
+        return this.db.query(DOWNLOADINFO_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case DEVICESTATUS:\r
+        return this.db.query(DEVICESTATUS_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case WEATHER:\r
+        return this.db.query(WEATHER_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case NOTICE_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(NOTICE_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case NOTICE:\r
+        return this.db.query(NOTICE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case URLDOWNLOADPIC_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case URLDOWNLOADPIC:\r
+        return this.db.query(URLDOWNLOADPIC_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case IKNOWLEDGE:\r
+        return this.db.query(IKNOWLEDGE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case SILENT_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(SILENT_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case SILENT:\r
+        return this.db.query(SILENT_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case ALARM_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(ALARM_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case ALARM:\r
+        return this.db.query(ALARM_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case 4:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(MESSAGE_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case MESSAGE:\r
+        return this.db.query(MESSAGE_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
+      case 2:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        return sQLiteDatabase.query(CONTACT_TABLE_NAME, paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
+      case 1:\r
+        break;\r
+    }\r
+    return this.db.query(CONTACT_TABLE_NAME, paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
   }\r
+  @Override\r
+  public int update(Uri paramUri, ContentValues paramContentValues, String paramString, String[] paramArrayOfString) {\r
+    long l;\r
+    int i=0,j;\r
+    StringBuilder stringBuilder;\r
+    SQLiteDatabase sQLiteDatabase;\r
+    switch (URI_MATCHER.match(paramUri)) {\r
+\r
+      case UNREADMSG:\r
+        j = this.db.update(UNREADMSG_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case ANTIOFF_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(ANTIOFF_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case ANTIOFF:\r
+        j = this.db.update(ANTIOFF_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case STHEART_RATE:\r
+        j = this.db.update(STHEART_RATE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case DOWNLOADINFO_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(DOWNLOADINFO_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case DOWNLOADINFO:\r
+        j = this.db.update(DOWNLOADINFO_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case DEVICESTATUS:\r
+        j = this.db.update(DEVICESTATUS_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case WEATHER:\r
+        j = this.db.update(WEATHER_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case NOTICE_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(NOTICE_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case NOTICE:\r
+        j = this.db.update(NOTICE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case URLDOWNLOADPIC_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(URLDOWNLOADPIC_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case URLDOWNLOADPIC:\r
+        j = this.db.update(URLDOWNLOADPIC_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case IKNOWLEDGE:\r
+        j = this.db.update(IKNOWLEDGE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case SILENT_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(SILENT_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case SILENT:\r
+        j = this.db.update(SILENT_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case ALARM_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(ALARM_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case ALARM:\r
+        j = this.db.update(ALARM_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case MESSAGE_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(MESSAGE_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case MESSAGE:\r
+        j = this.db.update(MESSAGE_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case CONTACT_ITEM:\r
+        l = ContentUris.parseId(paramUri);\r
+        sQLiteDatabase = this.db;\r
+        stringBuilder = new StringBuilder();\r
+        stringBuilder.append("_id=");\r
+        stringBuilder.append(l);\r
+        j = sQLiteDatabase.update(CONTACT_TABLE_NAME, paramContentValues, stringBuilder.toString(), null);\r
+        i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
+          return j;\r
+        }\r
+        return i;\r
+      case CONTACT:\r
 \r
-//  public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1, String[] paramArrayOfString2, String paramString2) {\r
-//    long l;\r
-//    StringBuilder stringBuilder;\r
-//    SQLiteDatabase sQLiteDatabase;\r
-//    switch (URI_MATCHER.match(paramUri)) {\r
-//      default:\r
-//        return null;\r
-//      case 21:\r
-//        return this.db.query("UNREADMSG", paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);\r
-//      case 20:\r
-//        l = ContentUris.parseId(paramUri);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("ANTIOFF", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 19:\r
-//        return this.db.query("ANTIOFF", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 18:\r
-//        return this.db.query("STHEART_RATE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 17:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("DOWNLOADINFO", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 16:\r
-//        return this.db.query("DOWNLOADINFO", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 15:\r
-//        return this.db.query("DEVICESTATUS", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 14:\r
-//        return this.db.query("WEATHER", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 13:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("NOTICE", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 12:\r
-//        return this.db.query("NOTICE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 11:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("URLDOWNLOADPIC", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 10:\r
-//        return this.db.query("URLDOWNLOADPIC", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 9:\r
-//        return this.db.query("IKNOWLEDGE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 8:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("SILENT", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 7:\r
-//        return this.db.query("SILENT", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 6:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("ALARM", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 5:\r
-//        return this.db.query("ALARM", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 4:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("MESSAGE", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 3:\r
-//        return this.db.query("MESSAGE", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//      case 2:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        return sQLiteDatabase.query("CONTACT", paramArrayOfString1, stringBuilder.toString(), null, null, null, null);\r
-//      case 1:\r
-//        break;\r
-//    }\r
-//    return this.db.query("CONTACT", paramArrayOfString1, stringBuilder, paramArrayOfString2, null, null, paramString2);\r
-//  }\r
-  \r
-//  public int update(Uri paramUri, ContentValues paramContentValues, String paramString, String[] paramArrayOfString) {\r
-//    long l;\r
-//    StringBuilder stringBuilder;\r
-//    SQLiteDatabase sQLiteDatabase;\r
-//    switch (URI_MATCHER.match(paramUri)) {\r
-//      default:\r
-//        return 0;\r
-//      case 21:\r
-//        j = this.db.update("UNREADMSG", paramContentValues, paramString, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(UNREAD_MSG_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 20:\r
-//        l = ContentUris.parseId(paramUri);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("ANTIOFF", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 19:\r
-//        j = this.db.update("ANTIOFF", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ANTIOFF_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 18:\r
-//        j = this.db.update("STHEART_RATE", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(STHEART_RATE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 17:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("DOWNLOADINFO", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 16:\r
-//        j = this.db.update("DOWNLOADINFO", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DOWNLOADINFO_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 15:\r
-//        j = this.db.update("DEVICESTATUS", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(DEVICESTATUS_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 14:\r
-//        j = this.db.update("WEATHER", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(WEATHER_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 13:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("NOTICE", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 12:\r
-//        j = this.db.update("NOTICE", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(NOTICE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 11:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("URLDOWNLOADPIC", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 10:\r
-//        j = this.db.update("URLDOWNLOADPIC", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(URLDOWNLOADPIC_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 9:\r
-//        j = this.db.update("IKNOWLEDGE", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(IKNOWLEDGE_URL, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 8:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("SILENT", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 7:\r
-//        j = this.db.update("SILENT", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(SILENT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 6:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("ALARM", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 5:\r
-//        j = this.db.update("ALARM", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(ALARM_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 4:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("MESSAGE", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 3:\r
-//        j = this.db.update("MESSAGE", paramContentValues, stringBuilder, paramArrayOfString);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(MESSAGE_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 2:\r
-//        l = ContentUris.parseId(sQLiteDatabase);\r
-//        sQLiteDatabase = this.db;\r
-//        stringBuilder = new StringBuilder();\r
-//        stringBuilder.append("_id=");\r
-//        stringBuilder.append(l);\r
-//        j = sQLiteDatabase.update("CONTACT", paramContentValues, stringBuilder.toString(), null);\r
-//        i = j;\r
-//        if (j != 0) {\r
-//          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
-//          return j;\r
-//        }\r
-//        return i;\r
-//      case 1:\r
-//        break;\r
-//    }\r
-//    int j = this.db.update("CONTACT", paramContentValues, stringBuilder, paramArrayOfString);\r
-//    int i = j;\r
-//    if (j != 0) {\r
-//      getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
-//      i = j;\r
-//    }\r
-//    return i;\r
-//  }\r
+         j = this.db.update(CONTACT_TABLE_NAME, paramContentValues, paramString, paramArrayOfString);\r
+         i = j;\r
+        if (j != 0) {\r
+          getContext().getContentResolver().notifyChange(CONTACT_URI, null);\r
+          i = j;\r
+        }\r
+\r
+        break;\r
+      default:\r
+        break;\r
+    }\r
+    return i;\r
+  }\r
 }\r
 \r
 \r
index 9076835..3f9f04d 100644 (file)
@@ -1,15 +1,20 @@
 package com.ic.protocol.adapter;\r
 \r
+import android.content.Intent;\r
 import android.util.Log;\r
 \r
 import com.ic.protocol.Config;\r
 import com.ic.protocol.bean.ICLocation;\r
 import com.ic.protocol.bean.Runtime;\r
 import com.ic.protocol.bean.StringMessage;\r
+import com.ic.protocol.bean.voicePacket;\r
+import com.ic.protocol.service.protocolMainServer;\r
 import com.ic.protocol.utils.Connection;\r
 import com.ic.protocol.utils.Logger;\r
 import com.ic.protocol.utils.SharPreferenceUtil;\r
+import com.ic.protocol.utils.Util;\r
 \r
+import java.util.ArrayList;\r
 import java.util.HashMap;\r
 \r
 import static com.ic.protocol.LocationClient.LACATION_CYCLE;\r
@@ -183,12 +188,16 @@ public class protocolAPIHelper {
     字符串通过#号进行识别。\r
     每个字符串如果发现 #,却又没有Header,“IW”则会被丢弃\r
      */\r
-    public boolean parserCmd(String cmd_msgbuf) {\r
+    public boolean parserCmd(byte[] bytes) {\r
         boolean iscmdComplete = false;\r
         boolean ret = true;\r
         String last_inCompletecmd = "";\r
+        String cmd_msgbuf=new String(bytes);\r
+        log("bytes.size "+bytes.length);\r
+//        cmdbuf.append(cmd_msgbuf);\r
         cmdbuf.append(cmd_msgbuf);\r
-        /*\r
+        log("cmdbuf.size "+cmdbuf.length() +" "+cmdbuf.toString());\r
+    /*\r
         如果不是 #结尾,就认为 接收数据不全,置位。\r
          */\r
         if (cmdbuf.toString().endsWith(CMDEND)) {\r
@@ -196,7 +205,8 @@ public class protocolAPIHelper {
         }\r
         String[] cmdlist = cmd_msgbuf.split(CMDEND);\r
         int listlen = cmdlist.length;\r
-        /*\r
+        log("listlen "+listlen);\r
+         /*\r
         如果解析出来的cmdlist不是空,且数据不是完整cmd则保留 最后一条数据到last_inCompletecmd\r
          */\r
         if (cmdlist.length > 0 && iscmdComplete == false) {\r
@@ -210,12 +220,12 @@ public class protocolAPIHelper {
                     log("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key) + " ,  " + cmdlist[i]);\r
                     if (key == CMD_TYPE.BP28) {\r
                         //如果是BP28则 后面的数据是音频,需要保留\r
-                        if ((i + 1) < cmdlist.length) {\r
-                            //如果i+1 cmdlist确实在数组范围内,则可以进行数据处理\r
-                            if (cmdHandler!=null) cmdHandler.handleCmd(key, cmdlist[i] + "#" + cmdlist[i + 1]);\r
-                            i++;\r
+                        byte[] amrBuf;\r
+                        int amrLen = getBP28Amrlen(cmdlist[i] );\r
+                        if (bytes.length > amrLen) {\r
+                            if (cmdHandler != null)\r
+                                cmdHandler.handleCmd(key, cmdlist[i], bytes);\r
                         }\r
-\r
                     } else {\r
                         if (cmdHandler!=null) cmdHandler.handleCmd(key, cmdlist[i]);\r
                     }\r
@@ -226,7 +236,40 @@ public class protocolAPIHelper {
         cmdbuf = new StringBuffer().append(last_inCompletecmd);\r
         return ret;\r
     }\r
+    public int getBP28Amrlen(String cmd) {\r
+\r
+        String Name;\r
+        String appendIndex;\r
+        int packetCount;\r
+        int currentId;\r
+        int packetLen;\r
+\r
+\r
+        String[] msg=cmd.split(CMDSPLIT);\r
+        if (msg.length>=6){\r
+\r
+            Name=msg[1];\r
+            appendIndex=msg[2];\r
+            packetCount= Integer.valueOf(msg[3]);\r
+            currentId= Integer.valueOf(msg[4]);\r
+            packetLen= Integer.valueOf(msg[5]);\r
+\r
+            StringBuffer stringBuffer=new StringBuffer();\r
+            stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
+                    .append(",appendIndex = ").append(appendIndex)\r
+                    .append(",packetCount = ").append(packetCount)\r
+                    .append(",currentId = ").append(currentId)\r
+                    .append(",packetLen = ").append(packetLen);\r
 \r
+\r
+            log( stringBuffer.toString());\r
+            return packetLen;\r
+        }else{\r
+            log("getBP28AmrLen","format Error");\r
+\r
+        }\r
+        return -1;\r
+    }\r
     /*登录*/\r
     public static String AP00(Runtime ds) {\r
         //示例数据:IWAP00867155030001063#\r
@@ -241,6 +284,25 @@ public class protocolAPIHelper {
                 .append(ds.getTotalStepCount()).append(CMDSPLIT).append(0/*rolltime*/).append(CMDEND).toString();\r
     }\r
 \r
+    public static String AP10(Runtime ds){\r
+\r
+        /**\r
+         * IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502,\r
+         * 460,0,9520,3671,\r
+         * 00,zh-cn,00,\r
+         * 00为报警状态,00为无任何报警(01:SOS,02:低电,03:脱落报警,04:佩戴提醒,05/06:跌倒报警))\r
+         * zh-cn:设备语言\r
+         * 00:第一个0:是否需要回复地址信息,0:不回复,1回复.\r
+         * HOME|74-DE-2B-44-88-8C|97&HOME1|74-DE-2B-44-88-8C|97&HOME2|74-DE-2B-44-88-8C|97&HOME3|74-DE-2B-44-88-8C|97#\r
+         */\r
+        return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(ds.getShortDate())\r
+                .append(ds.getGPSData()).append(ds.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+                .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
+                .append(ds.getProtection()).append(ds.getWorkMode()).append(CMDSPLIT)\r
+                .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
+\r
+    }\r
+\r
     /*LBS+GPS混合定位*/\r
     public static String AP01(Runtime ds) {\r
         //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,\r
@@ -269,7 +331,8 @@ public class protocolAPIHelper {
     public interface CmdHandler\r
     {\r
 \r
-         boolean handleCmd(CMD_TYPE type, String cmd);\r
+        boolean handleCmd(CMD_TYPE type, String cmd);\r
+        boolean handleCmd(CMD_TYPE type, String cmd,byte[] bytes);\r
 \r
     }\r
 \r
@@ -350,7 +413,10 @@ public class protocolAPIHelper {
                         log("data len is too small!");\r
                     }\r
                 }\r
-            }\r
+            }//循环获取alarm数据结束\r
+\r
+            //do clean and set alarm things\r
+\r
         }\r
 //IWBP85,867155030002145,410385,1,0,#\r
 \r
@@ -530,20 +596,66 @@ public class protocolAPIHelper {
     public void handleBP03(String cmd){\r
         log("BP03心跳接收成功");\r
     }\r
+\r
+\r
     //处理 BP28 语音消息\r
-    public void handleBP28(String cmd) {\r
+    public void handleBP28(Connection connection,String cmd,byte[] bytes) {\r
         //log("handleBP28 msg"+cmd);\r
-        String[] msg=cmd.split(CMDSPLIT);\r
-        if (msg.length>=7){\r
-            log(msg[1]);\r
-            log(msg[2]);\r
-            log(msg[3]);\r
-            log(msg[4]);\r
-            log(msg[5]);\r
-            log(msg[6]);\r
-            \r
+/**\r
+ * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BP28 : 命令字符\r
+ * D3590D54:UNICODE编码,发送者名称\r
+ * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号\r
+ * 6:语音包分包总数\r
+ * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同\r
+ * 1024 :语音包长度\r
+ * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数\r
+ * 语音包上传规则:\r
+ * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。\r
+ * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。\r
+ * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\r
+ * 设备响应:     IWAP28,D3590D54,XXXX,6,1,1#\r
+ * D3590D54:UNICODE编码,发送者名称\r
+ * XXXX: 附加信息,原样返回\r
+ * 6:语音包分包总数\r
+ * 1:当前设备收到的是第几个包\r
+ * 1:表示设备接受数据成功,0表示设备接受数据失败\r
+ */\r
+        String Name;\r
+        String appendIndex;\r
+        int packetCount;\r
+        int currentId;\r
+        int packetLen;\r
+        byte[] packetData;\r
+\r
+        String[] msg= cmd.split(CMDSPLIT);\r
+        if (msg.length>=6){\r
+\r
+            Name=msg[1];\r
+            appendIndex=msg[2];\r
+            packetCount= Integer.valueOf(msg[3]);\r
+            currentId= Integer.valueOf(msg[4]);\r
+            packetLen= Integer.valueOf(msg[5]);\r
+            packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1);\r
+\r
+            StringBuffer stringBuffer=new StringBuffer();\r
+            stringBuffer.append("recv BP28 name = ").append(Name)\r
+                    .append(",appendIndex = ").append(appendIndex)\r
+                    .append(",packetCount = ").append(packetCount)\r
+                    .append(",currentId = ").append(currentId)\r
+                    .append(",packetLen = ").append(packetLen)\r
+                    .append(",packetDatalen = ").append(packetData.length);\r
+\r
+            log( stringBuffer.toString());\r
+            voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
+            connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1)));\r
+\r
         }else{\r
             log("handleBP28","format Error");\r
+//            connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0)));\r
+\r
         }\r
 \r
     }\r
diff --git a/app/src/main/java/com/ic/protocol/bean/PictureContent.java b/app/src/main/java/com/ic/protocol/bean/PictureContent.java
deleted file mode 100644 (file)
index c37797b..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ic.protocol.bean;\r
-\r
-\r
-import com.ic.protocol.utils.Util;\r
-\r
-import java.io.File;\r
-import java.util.ArrayList;\r
-\r
-public class PictureContent extends Content {\r
-  private PictureContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong) { super(2, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong); }\r
-  \r
-  public static PictureContent from(PictureContent paramPictureContent, byte[] paramArrayOfByte, File paramFile) {\r
-    byte b = paramArrayOfByte[0];\r
-    byte[] arrayOfByte = new byte[b];\r
-    System.arraycopy(paramArrayOfByte, 1, arrayOfByte, 0, b);\r
-    ArrayList arrayList = Util.split(arrayOfByte, (byte)59, 0);\r
-    StringBuilder stringBuilder1 = new StringBuilder();\r
-    stringBuilder1.append(new String((byte[])arrayList.get(1)));\r
-    stringBuilder1.append(new String((byte[])arrayList.get(2)));\r
-    String str2 = stringBuilder1.toString();\r
-    String str1 = new String((byte[])arrayList.get(4));\r
-    StringBuilder stringBuilder2 =new StringBuilder( new String((byte[])arrayList.get(5)));\r
-    if ("1".equals(stringBuilder2)) {\r
-      stringBuilder2 = new StringBuilder();\r
-      stringBuilder2.append(str1);\r
-      stringBuilder2.append(".png");\r
-      str1 = stringBuilder2.toString();\r
-    } else if ("2".equals(stringBuilder2)) {\r
-      stringBuilder2 = new StringBuilder();\r
-      stringBuilder2.append(str1);\r
-      stringBuilder2.append(".jpg");\r
-      str1 = stringBuilder2.toString();\r
-    } else {\r
-      stringBuilder2 = new StringBuilder();\r
-      stringBuilder2.append(str1);\r
-      stringBuilder2.append(".bmp");\r
-      str1 = stringBuilder2.toString();\r
-    } \r
-    int i = paramArrayOfByte.length - 1 - b;\r
-    paramPictureContent.content = Util.saveFile(paramArrayOfByte, paramArrayOfByte.length - i, i, paramFile, str1);\r
-    paramPictureContent.status = 2;\r
-    paramPictureContent.serverTime = str2;\r
-    return paramPictureContent;\r
-  }\r
-  \r
-  public static PictureContent placeHolderIn(int paramInt, String paramString1, String paramString2) { return new PictureContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis()); }\r
-  \r
-  public static PictureContent placeHolderOut(int paramInt, String paramString1, String paramString2) { return new PictureContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis()); }\r
-}\r
-\r
-\r
index 3d63f9b..7467fae 100644 (file)
@@ -6,7 +6,11 @@ import java.io.File;
 import java.util.ArrayList;\r
 \r
 public class VoiceContent extends Content {\r
-  private VoiceContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong) { super(1, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong); }\r
+  private VoiceContent(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3, String paramString3, String paramString4, long paramLong)\r
+  {\r
+    super(1, paramString1, paramString2, paramInt1, paramInt2, paramInt3, paramString3, paramString4, paramLong);\r
+\r
+  }\r
   \r
   public static VoiceContent from(VoiceContent paramVoiceContent, byte[] paramArrayOfByte, File paramFile) {\r
     byte b = paramArrayOfByte[0];\r
@@ -31,8 +35,12 @@ public class VoiceContent extends Content {
     return paramVoiceContent;\r
   }\r
   \r
-  public static VoiceContent placeHolderIn(int paramInt, String paramString1, String paramString2) { return new VoiceContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis()); }\r
+  public static VoiceContent placeHolderIn(int paramInt, String paramString1, String paramString2) {\r
+    return new VoiceContent(paramString2, null, 1, 1, paramInt, paramString1, null, System.currentTimeMillis());\r
+  }\r
   \r
-  public static VoiceContent placeHolderOut(int paramInt, String paramString1, String paramString2) { return new VoiceContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis()); }\r
+  public static VoiceContent placeHolderOut(int paramInt, String paramString1, String paramString2) {\r
+    return new VoiceContent(paramString2, null, 1, 2, paramInt, paramString1, null, System.currentTimeMillis());\r
+  }\r
 }\r
 \r
diff --git a/app/src/main/java/com/ic/protocol/bean/serverStatus.java b/app/src/main/java/com/ic/protocol/bean/serverStatus.java
deleted file mode 100644 (file)
index 9feb076..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.ic.protocol.bean;\r
-\r
-public class serverStatus {\r
-}\r
diff --git a/app/src/main/java/com/ic/protocol/bean/simStatus.java b/app/src/main/java/com/ic/protocol/bean/simStatus.java
deleted file mode 100644 (file)
index 8d5f971..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.ic.protocol.bean;\r
-\r
-public class simStatus {\r
-}\r
diff --git a/app/src/main/java/com/ic/protocol/bean/stepCounter.java b/app/src/main/java/com/ic/protocol/bean/stepCounter.java
deleted file mode 100644 (file)
index 990a921..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.ic.protocol.bean;\r
-\r
-public class stepCounter {\r
-}\r
diff --git a/app/src/main/java/com/ic/protocol/bean/voicePacket.java b/app/src/main/java/com/ic/protocol/bean/voicePacket.java
new file mode 100644 (file)
index 0000000..7036a96
--- /dev/null
@@ -0,0 +1,92 @@
+package com.ic.protocol.bean;\r
+\r
+import java.util.ArrayList;\r
+\r
+public class voicePacket {\r
+\r
+\r
+    private static voicePacket gvoicePacket=null;\r
+\r
+\r
+    public static voicePacket getInstance(){\r
+        if (gvoicePacket==null)\r
+            gvoicePacket=new voicePacket();\r
+        return gvoicePacket;\r
+    }\r
+    String Name=null;\r
+    String appendIndex=null;\r
+    int packetCount =0;\r
+    ArrayList<voicepacketItem> packetArray =new ArrayList<voicepacketItem>();\r
+    public class voicepacketItem{\r
+        int currentId;\r
+        int packetLen;\r
+        byte[] packetData;\r
+        voicepacketItem(int _currentId,     int _packetLen,  byte[] _packetData){\r
+            packetLen=_packetLen;\r
+            packetData=_packetData;\r
+            currentId=_currentId;\r
+        }\r
+    }\r
+    public boolean appendVoice(String _Name, String _appendIndex,int _packetCount,int _currentId, int _packetLen, byte[] _packetData){\r
+        boolean ret=false;\r
+        if (_Name==null|| _appendIndex==null || _Name.isEmpty() || _appendIndex.isEmpty() ){\r
+                return false;\r
+        }\r
+        if (packetArray.size()==0)\r
+        {\r
+            Name=_Name;\r
+            appendIndex=_appendIndex;\r
+            packetCount=_packetCount;\r
+        }\r
+        if (_packetCount==packetCount  &&  appendIndex.equals(_appendIndex) && Name.equals(_Name)  ){\r
+            boolean packetfound=false;\r
+            for ( voicepacketItem item: packetArray ) {\r
+                if (item.currentId == _currentId){\r
+                    packetfound=true;\r
+                }\r
+            }\r
+            if (packetfound)\r
+                return false;\r
+\r
+            packetArray.add(new voicepacketItem(_currentId,_packetLen,_packetData));\r
+\r
+        }\r
+\r
+        return ret;\r
+    }\r
+\r
+    public boolean isFinished(){\r
+        return  (packetCount!=0 && packetCount==packetArray.size());\r
+    }\r
+\r
+    public boolean isEmpty(){\r
+        return packetArray.size()==0;\r
+    }\r
+    @Override\r
+    public String toString(){\r
+        StringBuilder stringBuilder=new StringBuilder();\r
+        if (Name==null|| appendIndex==null || Name.isEmpty() || appendIndex.isEmpty() ){\r
+            return stringBuilder.toString();\r
+        }\r
+\r
+        stringBuilder.append("{ Name=").append(Name)\r
+                .append(", packetCount=").append(packetCount)\r
+                .append(", appendIndex=").append(appendIndex)\r
+        .append("[");\r
+        for (voicepacketItem item: packetArray ) {\r
+            stringBuilder.append("(").append(item.currentId)\r
+                    .append(",").append(item.packetLen).append("},");\r
+        }\r
+        stringBuilder.append("]}");\r
+\r
+        return stringBuilder.toString();\r
+    }\r
+\r
+\r
+    public void clearPacket(){\r
+        packetArray.clear();\r
+        packetCount=0;\r
+        Name=null;\r
+        appendIndex=null;\r
+    }\r
+}\r
index 94cef5b..c1b1e66 100644 (file)
@@ -1,29 +1,18 @@
 package com.ic.protocol.service;\r
 \r
-import android.content.ContentResolver;\r
-import android.content.ContentUris;\r
 import android.content.Context;\r
 import android.content.Intent;\r
-import android.database.Cursor;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
 import android.os.Message;\r
 import android.os.Messenger;\r
-import android.provider.MediaStore;\r
 \r
-import com.ic.protocol.bean.PictureContent;\r
 import com.ic.protocol.bean.Runtime;\r
 import com.ic.protocol.service.base.AbstractInvokeHandlerService;\r
 import com.ic.protocol.utils.Connection;\r
 import com.ic.protocol.utils.Logger;\r
 import com.ic.protocol.utils.SimSignalUtil;\r
 \r
-import java.io.File;\r
-\r
-import rx.Observable;\r
-import rx.Subscriber;\r
-import rx.schedulers.Schedulers;\r
-\r
 public class SendChatMessage extends AbstractInvokeHandlerService {\r
   private static final int LOCATION_TYPE = 7;\r
   \r
@@ -89,8 +78,8 @@ public class SendChatMessage extends AbstractInvokeHandlerService {
         stringBuilder.append("number == ");\r
         stringBuilder.append(str1);\r
         Logger.i(stringBuilder.toString());\r
-        final PictureContent pictureContent = PictureContent.placeHolderOut(1, str1, str);\r
-        final Uri uri = runtime.getDbHelper().insertOrUpdate(pictureContent, 0L);\r
+//        final PictureContent pictureContent = PictureContent.placeHolderOut(1, str1, str);\r
+//        final Uri uri = runtime.getDbHelper().insertOrUpdate(pictureContent, 0L);\r
 //        Observable.create(new SendFileMessage(API.H30(paramRuntime, str1, "2", new File(str)), paramRuntime)).subscribeOn(Schedulers.io()).subscribe(new Subscriber<String>() {\r
 //              public void onCompleted() {}\r
 //\r
@@ -148,7 +137,7 @@ public class SendChatMessage extends AbstractInvokeHandlerService {
           stringBuilder.append("number == ");\r
           stringBuilder.append(str2);\r
           Logger.i(stringBuilder.toString());\r
-          final PictureContent pictureContent = PictureContent.placeHolderOut(1, str2, str1);\r
+//          final PictureContent pictureContent = PictureContent.placeHolderOut(1, str2, str1);\r
 //          final Uri uri2 = paramRuntime.getDbHelper().insertOrUpdate(pictureContent, bundle3.getLong("id"));\r
 //          FileMessage fileMessage = API.H30(paramRuntime, str2, "0", new File(str1));\r
 //          messenger = paramMessage.replyTo;\r
index 7f8f2f5..c01f6e9 100644 (file)
@@ -1,6 +1,9 @@
 package com.ic.protocol.utils;\r
 \r
 import android.content.Intent;\r
+import android.os.Bundle;\r
+import android.os.Handler;\r
+import android.os.Message;\r
 import android.os.SystemClock;\r
 \r
 \r
@@ -9,6 +12,7 @@ import com.ic.protocol.adapter.protocolAPIHelper;
 import com.ic.protocol.bean.StringMessage;\r
 import com.ic.protocol.service.protocolMainServer;\r
 \r
+import java.io.UnsupportedEncodingException;\r
 import java.net.InetAddress;\r
 import java.net.InetSocketAddress;\r
 import java.nio.ByteBuffer;\r
@@ -42,7 +46,7 @@ public class NettyConnection implements Connection {
                 public boolean handleCmd(protocolAPIHelper.CMD_TYPE type, String cmd) {\r
 \r
                         boolean ret=true;\r
-                        Logger.i("handleCmd "+type.name() +" , cmd "+cmd);\r
+                        Logger.i("handleCmd "+type.name() + " strLen="+cmd.length());\r
                         FileOutputUtil.fileOutput(protocolMainServer.getInstance().getApplicationContext(),"APILog", " recv " + cmd);\r
                         switch (type){\r
                             case BP00:\r
@@ -59,14 +63,14 @@ public class NettyConnection implements Connection {
                                 Logger.i("服务器收到心跳AP03");\r
                                 DeliverCMDMessageToSystem("AP03",cmd);//通知下面线程状态变化\r
                                 break;\r
-                            case BP28:\r
-                                 API.handleBP28(cmd);\r
-                                Logger.i("服务器收到语音AP28");\r
-                                DeliverCMDMessageToSystem("AP28",cmd);//通知下面线程状态变化\r
-\r
-                                break;\r
+//                            case BP28:\r
+//                                 API.handleBP28(NettyConnection.this ,cmd);\r
+//                                Logger.i("服务器收到语音BP28");\r
+//                                DeliverCMDMessageToSystem("BP28",cmd);//通知下面线程状态变化\r
+//\r
+//                                break;\r
                             case BPTM:\r
-                                API.handleBP28(cmd);\r
+//                                API.handleBPTM(cmd);\r
                                 Logger.i("服务器收到校时命令APTM");\r
                                 DeliverCMDMessageToSystem("APTM",cmd);//通知下面线程状态变化\r
                                 break;\r
@@ -92,6 +96,22 @@ public class NettyConnection implements Connection {
                         return ret;\r
 \r
                 }\r
+\r
+                @Override\r
+                public boolean handleCmd(protocolAPIHelper.CMD_TYPE type, String cmd, byte[] bytes) {\r
+\r
+                    boolean ret=true;\r
+                    Logger.i("handleCmd "+type.name() + " "+cmd+" bytelen="+bytes.length );\r
+                    FileOutputUtil.fileOutput(protocolMainServer.getInstance().getApplicationContext(),"APILog", " recv " +new String(bytes));\r
+                    switch (type) {\r
+                        case BP28:\r
+                            API.handleBP28(NettyConnection.this,cmd, bytes);\r
+                            Logger.i("服务器收到语音BP28");\r
+                            DeliverCMDMessageToSystem("BP28", "");//通知下面线程状态变化\r
+\r
+                    }\r
+                    return ret;\r
+                }\r
             }\r
     );\r
 \r
@@ -238,32 +258,59 @@ public class NettyConnection implements Connection {
 \r
   private void initReadListener(){\r
       //监听Socket的收包\r
-      RxSocket.getInstance().read()\r
-              .subscribeOn(Schedulers.newThread())\r
-              .observeOn(AndroidSchedulers.mainThread())\r
-              .subscribe(\r
-                      bytes -> {\r
-                          //这里,应该去处理这个消息\r
-                          String msg=new String(bytes);\r
-                          log("get Msg :"+msg+" (size)" + bytes.length);\r
-\r
-                          API.parserCmd(msg);\r
-\r
-                      },\r
-                      throwable -> {\r
-                          log("get Msg throwable " +throwable);\r
-                          //出现错误恢复读取线程。\r
-                          NettyConnection.this.initReadListener();\r
-                      },\r
-                      ()->{\r
-                          log("get Msg ()");\r
-                      }\r
-              );\r
-\r
+//      RxSocket.getInstance().read()\r
+//              .subscribeOn(Schedulers.newThread())\r
+//              .observeOn(AndroidSchedulers.mainThread())\r
+//              .subscribe(\r
+//                      bytes -> {\r
+//                          //这里,应该去处理这个消息\r
+//                          String msg=new String(bytes);\r
+//                          log("get Msg :"+msg+" (size)" + bytes.length);\r
+//\r
+//                          API.parserCmd(msg,bytes);\r
+//\r
+//                      },\r
+//                      throwable -> {\r
+//                          log("get Msg throwable " +throwable);\r
+//                          //出现错误恢复读取线程。\r
+//                          NettyConnection.this.initReadListener();\r
+//                      },\r
+//                      ()->{\r
+//                          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
index 5e5ffbd..3ee0904 100644 (file)
@@ -74,6 +74,7 @@ public class RxSocket {
     private ReadThread readThread = null;
     private boolean isReadThreadAlive = true;
     private SocketReconnectCallback socketReconnectCallback = null;
+    private SocketReadCallback socketReadCallback=null;
 //    private SocketConnectionListener conectionListener = null;
 
     /*  方法
@@ -86,6 +87,9 @@ public class RxSocket {
         return connectStatus;
     }
 
+    public void setSocketReadCallback(SocketReadCallback callback){
+        socketReadCallback=callback;
+    }
 //    public void setConnectionListener(SocketConnectionListener callback){
 //        conectionListener=callback;
 //    }
@@ -359,6 +363,8 @@ public class RxSocket {
                                     for (int i = 0; i < length; i++) {
                                         bytes[i] = buf.get(i);
                                     }
+                                    if (socketReadCallback!=null)
+                                        socketReadCallback.onRecvMsg(bytes);
                                     readSubject.onNext(bytes);
                                 }
                             }
@@ -390,4 +396,8 @@ public class RxSocket {
         void onFail(String msg);
     }
 
+    public interface SocketReadCallback{
+        void onRecvMsg(byte[] bytes);
+    }
+
 }
index 2b3d951..d1c8ec0 100644 (file)
@@ -455,22 +455,22 @@ public class Util {
   }\r
   \r
   public static String saveFile(byte[] paramArrayOfByte, int paramInt1, int paramInt2, File paramFile, String paramString) {\r
-//    StringBuilder stringBuilder = new StringBuilder();\r
-//    stringBuilder.append(UUID.randomUUID().toString());\r
-//    stringBuilder.append("_");\r
-//    stringBuilder.append(paramString);\r
-//    paramString = stringBuilder.toString();\r
-//    paramFile = makeDir(paramFile, paramString);\r
-//    try {\r
-//      paramFile = new File(paramFile, paramString);\r
-//      BufferedSink bufferedSink = Okio.buffer(Okio.sink(paramFile));\r
-//      bufferedSink.write(paramArrayOfByte, paramInt1, paramInt2);\r
-//      bufferedSink.close();\r
-//      return paramFile.getAbsolutePath();\r
-//    } catch (IOException paramArrayOfByte) {\r
-//      paramArrayOfByte.printStackTrace();\r
-//      return null;\r
-//    }\r
+    StringBuilder stringBuilder = new StringBuilder();\r
+    stringBuilder.append(UUID.randomUUID().toString());\r
+    stringBuilder.append("_");\r
+    stringBuilder.append(paramString);\r
+    paramString = stringBuilder.toString();\r
+    paramFile = makeDir(paramFile, paramString);\r
+    try {\r
+      paramFile = new File(paramFile, paramString);\r
+      BufferedSink bufferedSink = Okio.buffer(Okio.sink(paramFile));\r
+      bufferedSink.write(paramArrayOfByte, paramInt1, paramInt2);\r
+      bufferedSink.close();\r
+      return paramFile.getAbsolutePath();\r
+    } catch (IOException e) {\r
+      e.printStackTrace();\r
+\r
+    }\r
     return null;\r
   }\r
   \r
@@ -503,53 +503,56 @@ public class Util {
   \r
   public static ArrayList<byte[]> split(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2) {\r
     ArrayList arrayList = new ArrayList();\r
-//    int k = paramArrayOfByte1.length;\r
-//    int m = paramArrayOfByte2.length;\r
-//    int i = 0;\r
-//    int j;\r
-//    for (j = 0; i < k; j = n) {\r
-//      int i1;\r
-//      int n;\r
-//      byte b = 0;\r
-//      while (true) {\r
-//        boolean bool = i + b;\r
-//        i1 = i;\r
-//        n = j;\r
-//        if (bool < k) {\r
-//          i1 = i;\r
-//          n = j;\r
-//          if (paramArrayOfByte1[bool] == paramArrayOfByte2[b]) {\r
-//            n = b + 1;\r
-//            b = n;\r
-//            if (n == m) {\r
-//              n = i - j;\r
-//              if (n != 0) {\r
-//                byte[] arrayOfByte = new byte[n];\r
-//                System.arraycopy(paramArrayOfByte1, j, arrayOfByte, 0, n);\r
-//                arrayList.add(arrayOfByte);\r
-//              }\r
-//              i += m;\r
-//              n = i;\r
-//              i1 = i - 1;\r
-//              break;\r
-//            }\r
-//            continue;\r
-//          }\r
-//        }\r
-//        break;\r
-//      }\r
-//      i = i1 + 1;\r
-//    }\r
-//    i = paramArrayOfByte1.length - j;\r
-//    if (i != 0) {\r
-//      paramArrayOfByte2 = new byte[i];\r
-//      System.arraycopy(paramArrayOfByte1, j, paramArrayOfByte2, 0, i);\r
-//      arrayList.add(paramArrayOfByte2);\r
-//    }\r
+    int k = paramArrayOfByte1.length;\r
+    int m = paramArrayOfByte2.length;\r
+    int i = 0;\r
+    int j;\r
+    int n;\r
+    for (j = 0; i < k; j = n) {\r
+\r
+      int i1;\r
+      byte b = 0;\r
+      while (true) {\r
+        int bool = i + b;\r
+        i1 = i;\r
+        n = j;\r
+        if (bool < k) {\r
+          i1 = i;\r
+          n = j;\r
+          if (paramArrayOfByte1[bool] == paramArrayOfByte2[b]) {\r
+            b = (byte)(b + 1);\r
+\r
+            if (n == m) {\r
+              n = i - j;\r
+              if (n != 0) {\r
+                byte[] arrayOfByte = new byte[n];\r
+                System.arraycopy(paramArrayOfByte1, j, arrayOfByte, 0, n);\r
+                arrayList.add(arrayOfByte);\r
+              }\r
+              i += m;\r
+              n = i;\r
+              i1 = i - 1;\r
+              break;\r
+            }\r
+            continue;\r
+          }\r
+        }\r
+        break;\r
+      }\r
+      i = i1 + 1;\r
+    }\r
+    i = paramArrayOfByte1.length - j;\r
+    if (i != 0) {\r
+      paramArrayOfByte2 = new byte[i];\r
+      System.arraycopy(paramArrayOfByte1, j, paramArrayOfByte2, 0, i);\r
+      arrayList.add(paramArrayOfByte2);\r
+    }\r
     return arrayList;\r
   }\r
   \r
-  public static byte[] subArray(byte[] paramArrayOfByte, int paramInt) { return subArray(paramArrayOfByte, paramInt, paramArrayOfByte.length); }\r
+  public static byte[] subArray(byte[] paramArrayOfByte, int paramInt) {\r
+    return subArray(paramArrayOfByte, paramInt, paramArrayOfByte.length);\r
+  }\r
   \r
   public static byte[] subArray(byte[] paramArrayOfByte, int paramInt1, int paramInt2) {\r
     paramInt2 -= paramInt1;\r
@@ -558,8 +561,12 @@ public class Util {
     return arrayOfByte;\r
   }\r
   \r
-  public static void turnOffWifiForSleep(Context paramContext, Runtime paramRuntime) { paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(false); }\r
+  public static void turnOffWifiForSleep(Context paramContext, Runtime paramRuntime) {\r
+    paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(false);\r
+  }\r
   \r
-  public static void turnOnWifiForConnect(Context paramContext, Runtime paramRuntime) { paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(true); }\r
+  public static void turnOnWifiForConnect(Context paramContext, Runtime paramRuntime) {\r
+    paramRuntime.getContextProxy().getWifiManager().setWifiEnabled(true);\r
+  }\r
 }\r
 \r
index 7e09d1a..9a7e295 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Jan 16 10:16:39 CST 2020\r
-VERSION_CODE=326\r
+#Thu Jan 16 18:40:41 CST 2020\r
+VERSION_CODE=327\r