gator的视频通话添加状态准备okay的通知
authorTrillGates <williamtrillgates@gmail.com>
Mon, 18 Oct 2021 02:03:30 +0000 (10:03 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 18 Oct 2021 02:03:30 +0000 (10:03 +0800)
app/release/ICSer_V974_2110141506_release.apk [moved from app/release/ICSer_V973_2110121154_release.apk with 78% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_gator.java
app/src/main/java/com/ic/protocols/protocol_s123.java
app/version_code.properties

similarity index 78%
rename from app/release/ICSer_V973_2110121154_release.apk
rename to app/release/ICSer_V974_2110141506_release.apk
index 614dd8a..2731759 100644 (file)
Binary files a/app/release/ICSer_V973_2110121154_release.apk and b/app/release/ICSer_V974_2110141506_release.apk differ
index c93bc45..dbbb519 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":973,"versionName":"2110121154","enabled":true,"outputFile":"ICSer_V973_2110121154_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V973_2110121154_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":974,"versionName":"2110141506","enabled":true,"outputFile":"ICSer_V974_2110141506_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V974_2110141506_release.apk","properties":{}}]
\ No newline at end of file
index f94e77e..de29f0c 100644 (file)
@@ -204,11 +204,11 @@ public class Runtime {
     public int Cut_off_flag = 0;
 
 
-    public RemoteCallbackList<IFZDCallback> getFZDCallback() {
-        return fzdCallbackList;
+    public RemoteCallbackList<IFZDCallback> getVideoCallCallback() {
+        return videoCallCallbackList;
     }
 
-    private final RemoteCallbackList<IFZDCallback> fzdCallbackList = new RemoteCallbackList<>();
+    private final RemoteCallbackList<IFZDCallback> videoCallCallbackList = new RemoteCallbackList<>();
 
     /**
      * 这个通知远程UI更新的callback,主要是负责音视频通讯相关的功能
@@ -217,7 +217,7 @@ public class Runtime {
      * @param callback
      */
     public void setFZDRemoteCallback(IFZDCallback callback) {
-        fzdCallbackList.register(callback);
+        videoCallCallbackList.register(callback);
     }
 
     /**
@@ -227,7 +227,7 @@ public class Runtime {
      * @param callback
      */
     public void removeFZDRemoteCallback(IFZDCallback callback) {
-        fzdCallbackList.unregister(callback);
+        videoCallCallbackList.unregister(callback);
     }
 
     public IFZDWeatherCallback mFZDWeatherCallback = null;
index 4990e41..af39da3 100644 (file)
@@ -1205,7 +1205,7 @@ public class protocol_fzd {
 
     private void serverReady() {
         //收到服务器时间消息的时候认为服务器已经准备好了
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
             while (i > 0) {
@@ -1973,7 +1973,7 @@ public class protocol_fzd {
                                 contentValues);
             }
             //通知UI更新
-            RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+            RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
             if (fzdCallback == null) {
                 return;
             }
@@ -2042,7 +2042,7 @@ public class protocol_fzd {
             }
         }
         //处理结果
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         if (fzdCallback == null) {
             ICLogger.d("fzdCallback -- > null");
             return;
@@ -2063,7 +2063,7 @@ public class protocol_fzd {
 
     private void handleFriendUnbindResult(Runtime mRuntime) {
         //解除有结果了,然去拉取一下新的用户列表吧
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         if (fzdCallback == null) {
             return;
         }
@@ -2701,7 +2701,7 @@ public class protocol_fzd {
      * @param data
      */
     private void handleBRREG(Runtime runtime, String data) {
-        RemoteCallbackList<IFZDCallback> fzdCallback = runtime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = runtime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
             while (i > 0) {
@@ -2730,7 +2730,7 @@ public class protocol_fzd {
      * @param data
      */
     private void handleAGREG(Runtime runtime, String data) {
-        RemoteCallbackList<IFZDCallback> fzdCallback = runtime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = runtime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
             while (i > 0) {
@@ -2780,7 +2780,7 @@ public class protocol_fzd {
      * @param data
      */
     private void handleCallRequest(Connection mConnection, Runtime mRuntime, String data) {
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         String[] split = data.split(CMD_SPLIT);
         ICLogger.i("split.length = " + split.length);
         if (split.length == 3 || split.length == 4) {
@@ -2837,7 +2837,7 @@ public class protocol_fzd {
      * @param data
      */
     private void handleRTalk(Connection mConnection, Runtime mRuntime, String data) {
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         if (TextUtils.isEmpty(data)) {
             return;
         }
@@ -2932,7 +2932,7 @@ public class protocol_fzd {
         ICLogger.d("handlerTalkRequestResult == > " + data);
         //可以正常通话,可以不处理
         //如果不能正常通话,则要提示用户了
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
             while (i > 0) {
@@ -2963,7 +2963,7 @@ public class protocol_fzd {
         ICLogger.d("handlerAGTalkRequestResult == > " + data);
         //可以正常通话,可以不处理
         //如果不能正常通话,则要提示用户了
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
             while (i > 0) {
@@ -3038,7 +3038,7 @@ public class protocol_fzd {
             }
         }
         //不管有没有数据,都要通知UI。
-        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         ICLogger.d("onContractsLoaded...");
         int i = fzdCallback.beginBroadcast();
         try {
index cd4e51b..c1ba47a 100644 (file)
@@ -8,11 +8,13 @@ import android.net.Uri;
 import android.os.Environment;
 import android.os.Handler;
 import android.os.HandlerThread;
+import android.os.RemoteCallbackList;
 import android.text.TextUtils;
 import android.util.Log;
 
 import com.enqualcomm.support.Config;
 import com.enqualcomm.support.CoreService;
+import com.enqualcomm.support.IFZDCallback;
 import com.enqualcomm.support.bean.Alarm;
 import com.enqualcomm.support.bean.Contact;
 import com.enqualcomm.support.bean.Content;
@@ -1517,6 +1519,7 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
                 handleAP03(mRuntime, mConnection, cmd);
                 ICLogger.i("服务器收到登录包");
                 mConnection.DeliverCMDMessageToSystem("login", cmd);//通知下面线程状态变化
+                serverReady();
                 break;
             case AP04://查询终端版本消息
                 handleAP04(mRuntime, mConnection, cmd);
@@ -1587,9 +1590,7 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
                 break;
 
         }
-
         return ret;
-
     }
 
     /**
@@ -1606,7 +1607,8 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
     private void handleAP50(Runtime mRuntime, Connection mConnection, String cmd) {
         ICLogger.d("handleAP50 ==> " + cmd);
         String[] split = cmd.split(CMDSPLIT);
-        if (split.length == 4) {
+        //服务器下发AP50,频道创建的秒为单位的时间戳,亲情号,频道ID,加入频道所需的token凭证
+        if (split.length == 5) {
             //开启拨号UI
             Intent intent = new Intent();
             //在VideoCall里有个接收者,收到了消息会拉起视频通话
@@ -1614,14 +1616,32 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
             //调用声网SDK 加入频道的uid参数 手表端暂时固定为2
             intent.putExtra("targetId", split[1]);
             intent.putExtra("selfId", 2);
-            intent.putExtra("channel", split[2]);
-            intent.putExtra("token", split[3]);
+            intent.putExtra("channel", split[3]);
+            intent.putExtra("token", split[4]);
             mRuntime.getContextProxy().context.sendBroadcast(intent);
+            //TODO:回复服务器
+            ICLogger.d("send broadcast...to video call...");
         } else {
             ICLogger.d("parse cmd error == > " + split.length);
         }
     }
 
+    private void serverReady() {
+        //收到服务器时间消息的时候认为服务器已经准备好了
+        RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
+        int i = fzdCallback.beginBroadcast();
+        try {
+            while (i > 0) {
+                i--;
+                fzdCallback.getBroadcastItem(i).onServerReady();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            fzdCallback.finishBroadcast();
+        }
+    }
+
 
     public boolean handleCmd(CMD_TYPE type, String cmd, byte[] bytes) {
         //只有需要传递二进制数据的才需要这个函数,目前只有BP28需要
index ecdf5d2..a4d5b02 100644 (file)
@@ -4175,6 +4175,7 @@ public class protocol_s123 {
                 //更新数据库
                 updateSettingValue("is_dial_enable", value);
                 //1 : 表示设备可以拨号   0:表示设备不可拨号, 用于同步平台设置。
+                Util.setSystemProperties("persist.sys.phone.enable", value);
                 //返回结果
                 responseWithId(cmdMap.get(CMD_TYPE.APPH), id, value);
             } catch (Exception e) {
index fc67c9e..15066ef 100644 (file)
@@ -1,2 +1,2 @@
-#Tue Oct 12 11:54:18 CST 2021\r
-VERSION_CODE=973\r
+#Thu Oct 14 15:06:26 CST 2021\r
+VERSION_CODE=974\r