completed unbind friend.
authorTrillGates <williamtrillgates@gmail.com>
Mon, 12 Apr 2021 07:26:33 +0000 (15:26 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 12 Apr 2021 07:26:33 +0000 (15:26 +0800)
app/src/main/aidl/com/enqualcomm/support/IFZDCallback.aidl
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index f8bb2c1..619dd8a 100644 (file)
@@ -9,6 +9,6 @@ interface IFZDCallback {
     void onBRIdEmpty();
     void onRemoteReject(in String remoteUserId,in int type);
     void onFriendsMakeResult(in int result);
-    void onFriendsUnbindResult(in int result);
+    void onFriendsUnbindResult();
     void onFriendsListLoaded();
 }
\ No newline at end of file
index 7054029..85cb973 100644 (file)
@@ -1776,7 +1776,9 @@ public class CoreService extends Service {
 
         @Override
         public void unbindFriends(String remoteFriendId) {
+            StringMessage ppr = protocol_fzd.PPR(remoteFriendId);
             //解除朋友
+            Deliver.sendLocationMSG(ppr);
         }
 
         @Override
index bad4d9d..0cbfeb8 100644 (file)
@@ -393,6 +393,7 @@ public class protocol_fzd {
         SOSSMS,//SOS 短信报警开关
         LOWBAT,//低电短信报警开关
         VERNO,//版本查询
+        PPR,//解除好友关系
         CR,//定位指令
         POWEROFF,//关机指令
         REMOVE,//取下手环报警开关
@@ -441,6 +442,7 @@ public class protocol_fzd {
         cmdMap.put(CMD_TYPE.WLKEY, "WLKEY");
         cmdMap.put(CMD_TYPE.profile, "profile");
         cmdMap.put(CMD_TYPE.KEYBRD, "KEYBRD");
+        cmdMap.put(CMD_TYPE.PPR, "PPR");
         cmdMap.put(CMD_TYPE.FALLDOWN, "FALLDOWN");
         cmdMap.put(CMD_TYPE.SHAKE, "SHAKE");
         cmdMap.put(CMD_TYPE.RECORD, "RECORD");
@@ -1693,20 +1695,45 @@ public class protocol_fzd {
                 break;
             case VERNO:
                 ICLogger.d("收到服务器获取手表版本的指令...");
-                handleVERNO(mConnection, mRuntime);
+                handleVERNO(mConnection);
+                break;
+            case PPR:
+                //这个结果有可能是平台主动解除的
+                //也有可能是客户端自己解除的
+                handleFriendUnbindResult(mRuntime, data);
+                ICLogger.d("解除好友的指令..." + data);
                 break;
         }
         return ret;
 
     }
 
+    private void handleFriendUnbindResult(Runtime mRuntime, String data) {
+        //解除有结果了,然去拉取一下新的用户列表吧
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        if (fzdCallback == null) {
+            return;
+        }
+        try {
+            int i = fzdCallback.beginBroadcast();
+            while (i > 0) {
+                IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
+                broadcastItem.onFriendsUnbindResult();
+                i--;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            fzdCallback.finishBroadcast();
+        }
+    }
+
     /**
      * 处理服务器获取手表的版本指令
      *
      * @param mConnection
-     * @param mRuntime
      */
-    private void handleVERNO(Connection mConnection, Runtime mRuntime) {
+    private void handleVERNO(Connection mConnection) {
         //获取到系统版本
         String versionName = AppConfigUtil.getVersionName();
         StringMessage stringMessage = genFZDCMD(cmdMap.get(CMD_TYPE.VERNO), versionName);
@@ -2346,6 +2373,10 @@ public class protocol_fzd {
         return genFZDCMD(cmdMap.get(CMD_TYPE.TKQ));
     }
 
+    public static StringMessage PPR(String remoteId) {
+        return genFZDCMD(cmdMap.get(CMD_TYPE.TKQ), remoteId);
+    }
+
 
     /**
      * 拒绝与对方音视频通话