From: TrillGates Date: Mon, 12 Apr 2021 09:40:28 +0000 (+0800) Subject: completed friends list. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=5c4bf2403c1bfb7ac7f8c8b1988792216a3ffb04;p=protocol_srv.git completed friends list. --- diff --git a/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java b/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java index e10695d4..9d8cd84b 100644 --- a/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java +++ b/app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java @@ -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 + diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index bb31bb45..f35f94af 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -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] + *

+ * 处理,好友列表结果 + * + * @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 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); }