completed friends list.
authorTrillGates <williamtrillgates@gmail.com>
Mon, 12 Apr 2021 09:40:28 +0000 (17:40 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 12 Apr 2021 09:40:28 +0000 (17:40 +0800)
app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index e10695d..9d8cd84 100644 (file)
@@ -23,10 +23,17 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
     public static final String fID = "_id";
     public static final String fUserName = "user_name";
     public static final String fPhoneNum = "phone_num";
+    //type类型表示朋友,还是联系人,联系人指的是手机,朋友指的是手表
+    public static final String fType = "type";
     public static final String fCreateTime = "create_time";
     public static final String fUpdateTime = "update_time";
 
 
+    public interface MemberType {
+        int FRIEND = 1;
+        int CONTACT = 2;
+    }
+
     public interface MessageType {
         int VOICE = 1;
         int TEXT = 2;
@@ -90,7 +97,7 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
 
     @Override
     public void onCreate(SQLiteDatabase db) {
-        //创建数据库
+        //创建联系人数据库
         String createMembers = "create table " +
                 tMembers +
                 " (" +
@@ -100,6 +107,8 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
                 " text, " +
                 fPhoneNum +
                 " text, " +
+                fType +
+                " integer, " +
                 fCreateTime +
                 " date, " +
                 fUpdateTime +
index bb31bb4..f35f94a 100644 (file)
@@ -1729,11 +1729,58 @@ public class protocol_fzd {
                 ICLogger.d("收到交友的结果指令.");
                 handlePP(mRuntime, data);
                 break;
+            case PPQ:
+                ICLogger.d("收到好友列表...");
+                handlerPPQ(data, mRuntime);
+                break;
         }
         return ret;
 
     }
 
+    /**
+     * 平台回复: [XT*YYYYYYYYYYYYYYY*LEN*PPQ,ID1,昵称 1,手机号 1,ID2,昵称 2,手机号 2]
+     * 实例: [XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E0,555,8800000016, 5F204E1,556]
+     * 5F204E09--->张三,是使用 unicode 编码 如 果 手 机 号 为 空 ,
+     * 则为[XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E09,,8800000016, 5F204E1,556]
+     * 如果手机号昵称都为空 ,
+     * 则为[XT*8800000015*000A*e476005866e8a2a6407502b4,,,e476005866e8a2a6407502b5, 5F204E1,556]
+     * <p>
+     * 处理,好友列表结果
+     *
+     * @param data
+     * @param mRuntime
+     * @param mConnection
+     */
+    private void handlerPPQ(String data, Runtime mRuntime) {
+        //解析数据,三个为一组
+        String[] split = data.split(CMDSPLIT);
+        if (split.length % 3 == 0) {
+            //1,2,3,4,5,6,7
+            for (int i = 0; i < split.length - 2; i += 3) {
+                String id = split[0];
+                String friendName = Util.decodeUnicode2Utf8(split[1]);
+                String phoneNum = split[2];
+                ICLogger.d("id == > " + id);
+                ICLogger.d("friendName == > " + friendName);
+                ICLogger.d("phoneNum == > " + phoneNum);
+                ContentValues contentValues = new ContentValues();
+                contentValues.put(FZDDatabaseHelper.fID, id);
+                contentValues.put(FZDDatabaseHelper.fUserName, friendName);
+                contentValues.put(FZDDatabaseHelper.fPhoneNum, phoneNum);
+                contentValues.put(FZDDatabaseHelper.fType, FZDDatabaseHelper.MemberType.FRIEND);
+                contentValues.put(FZDDatabaseHelper.fCreateTime, System.currentTimeMillis());
+                contentValues.put(FZDDatabaseHelper.fUpdateTime, System.currentTimeMillis());
+                //结果有了,保存到内容提供者里头去.
+                mRuntime.getContextProxy().getResolver()
+                        .insert(Uri.parse(FZDMembersProvider.MEMBERS), contentValues);
+            }
+        } else {
+            //数据长度不对
+            ICLogger.d("data format error..split.length==> " + split.length);
+        }
+    }
+
     /**
      * 平台回复: 情况一:交友成功 [XT*8800000015*LEN*PP*ID,昵称,手机号]
      * 实例: [XT*8800000015*000A*8800000015, 5F204E0,555]
@@ -1774,14 +1821,13 @@ public class protocol_fzd {
         }
         //处理结果
         RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        if (fzdCallback == null) {
+            ICLogger.d("fzdCallback -- > null");
+            return;
+        }
         try {
-            if (fzdCallback == null) {
-                ICLogger.d("fzdCallback -- > null");
-                return;
-            }
             int i = fzdCallback.beginBroadcast();
             while (i > 0) {
-                //TODO:
                 IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
                 broadcastItem.onFriendsMakeResult(result);
                 i--;
@@ -2555,11 +2601,12 @@ public class protocol_fzd {
                 resolver.delete(Uri.parse(FZDMembersProvider.MEMBERS), null, null);
                 for (int i = 0; i < split.length; i += 3) {
                     ContentValues contentValues = new ContentValues();
-                    contentValues.put("_id", Integer.parseInt(split[i]));
-                    contentValues.put("user_name", split[i + 1]);
-                    contentValues.put("phone_num", split[i + 2]);
-                    contentValues.put("create_time", System.currentTimeMillis());
-                    contentValues.put("update_time", System.currentTimeMillis());
+                    contentValues.put(FZDDatabaseHelper.fID, Integer.parseInt(split[i]));
+                    contentValues.put(FZDDatabaseHelper.fUserName, split[i + 1]);
+                    contentValues.put(FZDDatabaseHelper.fPhoneNum, split[i + 2]);
+                    contentValues.put(FZDDatabaseHelper.fType, FZDDatabaseHelper.MemberType.CONTACT);
+                    contentValues.put(FZDDatabaseHelper.fCreateTime, System.currentTimeMillis());
+                    contentValues.put(FZDDatabaseHelper.fUpdateTime, System.currentTimeMillis());
                     //结果有了,保存到内容提供者里头去.
                     resolver.insert(Uri.parse(FZDMembersProvider.MEMBERS), contentValues);
                 }