add contact for s123 protocol
authorTrillGates <williamtrillgates@gmail.com>
Fri, 16 Jul 2021 02:43:08 +0000 (10:43 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Fri, 16 Jul 2021 02:43:08 +0000 (10:43 +0800)
app/src/main/java/com/enqualcomm/support/utils/GetContact.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_s123.java

index e7c5984..d877b1d 100644 (file)
@@ -22,7 +22,10 @@ public class GetContact implements Observable.OnSubscribe<Contact> {
         Contact contact1 = null;\r
         Contact contact2 = null;\r
         if (cursor != null) {\r
-            for (contact1 = contact2; cursor.moveToNext(); contact1 = new Contact(cursor.getInt(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5)));\r
+            for (contact1 = contact2; cursor.moveToNext();\r
+                 contact1 = new Contact(cursor.getInt(1), cursor.getString(2),\r
+                         cursor.getString(3), cursor.getString(4),\r
+                         cursor.getString(5)));\r
             cursor.close();\r
         }\r
         contact2 = contact1;\r
index 43b124a..3c9cfcf 100644 (file)
@@ -1462,8 +1462,8 @@ public class protocol_fzd {
         boolean isPared = listLen % 2 == 0;
         if (isPared) {
             ArrayList<Contact> contactArray = new ArrayList<>();
-            ContentValues contentValues = new ContentValues();
             ContentResolver resolver = runtime.getContextProxy().getResolver();
+            //添加之前先删除白名单的内容
             resolver.delete(Uri.parse(ICMembersProvider.MEMBERS), "type=?", new String[]{
                     ICDatabaseHelper.MemberType.WHITE_LIST + ""
             });
@@ -1472,18 +1472,19 @@ public class protocol_fzd {
                 String name = Util.decodeUnicode2Utf8(list[i + 1]);
                 ICLogger.i(i / 2 + " 姓名 " + name + ", 电话 " + phoneNum);
                 contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phoneNum));
+                ContentValues contentValues = new ContentValues();
                 contentValues.put(ICDatabaseHelper.fType, ICDatabaseHelper.MemberType.WHITE_LIST);
                 contentValues.put(ICDatabaseHelper.fPhoneNum, phoneNum);
                 contentValues.put(ICDatabaseHelper.fID, phoneNum);
                 contentValues.put(ICDatabaseHelper.fUserName, name);
                 contentValues.put(ICDatabaseHelper.fCreateTime, System.currentTimeMillis());
                 contentValues.put(ICDatabaseHelper.fUpdateTime, System.currentTimeMillis());
-                //保存到新的数据库中,为了防止问题,先兼容原来的库
-                //后面所有地方都切换到新库了,才删除上面的代码
-                // TODO:需要修改白名单拦截的地方.
+                //TODO:保存到fzd的联系人列表,类型为白名单
                 resolver.insert(Uri.parse(ICMembersProvider.MEMBERS), contentValues);
             }
-            //TODO:保存到fzd的联系人列表,类型为白名单
+            //保存到新的数据库中,为了防止问题,先兼容原来的库
+            //后面所有地方都切换到新库了,才删除上面的代码
+            // TODO:需要修改白名单拦截的地方.
             runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false);
         } else {
             ICLogger.i("没有电话本!执行清除操作!");
@@ -2620,7 +2621,7 @@ public class protocol_fzd {
     private void handleCallRequest(Connection mConnection, Runtime mRuntime, String data) {
         RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
         String[] split = data.split(CMD_SPLIT);
-        ICLogger.i("split.length = "+split.length);
+        ICLogger.i("split.length = " + split.length);
         if (split.length == 3 || split.length == 4) {
             needResponseCalling = true;
             //1、准备数据:对方的id,来电类型
@@ -2628,7 +2629,7 @@ public class protocol_fzd {
             String sessionId = split[1];
             String type = split[2];
             String token = "";
-            if(split.length == 4){
+            if (split.length == 4) {
                 token = split[3];
             }
             ICLogger.d("remote id is == > " + remoteId);
@@ -2653,7 +2654,7 @@ public class protocol_fzd {
                 while (i > 0) {
                     i--;
                     IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
-                    broadcastItem.onCalling(remoteId,sessionId,type,token);
+                    broadcastItem.onCalling(remoteId, sessionId, type, token);
                 }
             } catch (Exception e) {
                 e.printStackTrace();
@@ -2792,6 +2793,7 @@ public class protocol_fzd {
      * 声网 当向对方发起通话请求的时候,结果会从此方法回来。
      * <p>
      * 0 表示可正常通话,-1 表示余额不足,不能通话,1 表示对方不在线或未登陆成功
+     *
      * @param mConnection
      * @param mRuntime
      * @param data
@@ -2811,8 +2813,8 @@ public class protocol_fzd {
                     String token = str[1];
                     String roomName = str[2];
                     ICLogger.i("0 表示可正常通话,-1 表示余额不足,不能通话,1 表示对方不在线或未登陆成功 === > " + data);
-                    ICLogger.i("result = "+result+", token = "+token+", roomName = "+roomName);
-                    fzdCallback.getBroadcastItem(i).onAGCallRequestResult(result,token,roomName);
+                    ICLogger.i("result = " + result + ", token = " + token + ", roomName = " + roomName);
+                    fzdCallback.getBroadcastItem(i).onAGCallRequestResult(result, token, roomName);
                 }
             }
         } catch (Exception e) {
index 902a4d2..6047119 100644 (file)
@@ -26,6 +26,7 @@ import com.enqualcomm.support.bean.voicePacket;
 import com.enqualcomm.support.provider.ICAlarmProvider;
 import com.enqualcomm.support.provider.ICDatabaseHelper;
 import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
+import com.enqualcomm.support.provider.ICMembersProvider;
 import com.enqualcomm.support.service.HeartRateManager;
 import com.enqualcomm.support.utils.CameraUtil;
 import com.enqualcomm.support.utils.Connection;
@@ -880,19 +881,19 @@ public class protocol_s123 {
     //设置通讯录,白名单(10个)
     public void handleBP14(Connection connection, String cmd, Runtime runtime) {
 //        IWBP14,867155030001063,357444,9b44529b|13554820016,,,,,,,,,
-/**
- * IWBP14,353456789012345,080835,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx,
- * D3590D54|135xxxxxxxxxx#
- */
+        /**
+         * IWBP14,353456789012345,080835,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx,
+         * D3590D54|135xxxxxxxxxx#
+         */
         String[] cmdlist = cmd.split(CMDSPLIT);
         String[] phnums = new String[]{"", "", "", "", "", "", "", "", "", ""};
         StringBuffer sb = new StringBuffer().append("recv phone Numbs ");
@@ -940,6 +941,11 @@ public class protocol_s123 {
                 ICLogger.i("=====add hotline 96885 ");
                 contactArray.add(new Contact(Contact.CATEGORY_CALL, runtime.getContextProxy().context.getResources().getString(R.string.hotline), "96885"));
             }
+            ContentResolver resolver = runtime.getContextProxy().getResolver();
+            //添加之前先删除白名单的内容
+            resolver.delete(Uri.parse(ICMembersProvider.MEMBERS), "type=?", new String[]{
+                    ICDatabaseHelper.MemberType.WHITE_LIST + ""
+            });
             for (int i = 0; i < phnums.length; i++) {
                 String[] tmp = phnums[i].split("\\|");
                 if (tmp.length == 2) {
@@ -947,9 +953,17 @@ public class protocol_s123 {
                     String phonem = tmp[1];
                     ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length + " , name=" + name + ",-" + phonem);
                     contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phonem));
+                    ContentValues contentValues = new ContentValues();
+                    contentValues.put(ICDatabaseHelper.fType, ICDatabaseHelper.MemberType.WHITE_LIST);
+                    contentValues.put(ICDatabaseHelper.fPhoneNum, phonem);
+                    contentValues.put(ICDatabaseHelper.fID, phonem);
+                    contentValues.put(ICDatabaseHelper.fUserName, name);
+                    contentValues.put(ICDatabaseHelper.fCreateTime, System.currentTimeMillis());
+                    contentValues.put(ICDatabaseHelper.fUpdateTime, System.currentTimeMillis());
+                    //TODO:保存到fzd的联系人列表,类型为白名单
+                    resolver.insert(Uri.parse(ICMembersProvider.MEMBERS), contentValues);
                 } else {
                     ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length);
-
                 }
             }
 //            contactArray.add(new Contact(Contact.CATEGORY_GROUP,"All","666"));
@@ -958,6 +972,7 @@ public class protocol_s123 {
 //            contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666"));
 
             runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false);
+            //加一份到IC的库中
 
         } else {
             ICLogger.i(" BP14 format error!");