add sos receive page.
authorTrillGates <williamtrillgates@gmail.com>
Mon, 6 Sep 2021 08:51:33 +0000 (16:51 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Mon, 6 Sep 2021 08:51:33 +0000 (16:51 +0800)
app/src/main/java/com/ic/protocolSrv/service/Deliver.java
app/src/main/java/com/ic/protocolSrv/utils/ProcessReceiver.java
app/src/main/java/com/ic/protocols/protocolAPIHelper.java
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/view/EventBlockView.java [new file with mode: 0644]
app/src/main/java/com/ic/view/SOSRecView.java
app/src/main/res/layout/sos_receive_layout.xml

index e1ef690..94c0b42 100644 (file)
@@ -39,6 +39,7 @@ import com.ic.protocolSrv.utils.TemperatureUtil;
 import com.ic.protocolSrv.utils.TimeUtil;
 import com.ic.protocolSrv.utils.Util;
 import com.ic.protocols.protocolAPIHelper;
+import com.ic.view.SOSRecView;
 
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.locks.Condition;
@@ -671,8 +672,8 @@ public class Deliver extends AbstractConnectionService {
             }, recordtime * 1000);
             return true;
         } else if ("sosReceive".equals(paramStringMessage.cmd())) {
-            //显示一个弹窗,然后只有按钮才可以退出
-            ICLogger.d("sosReceive ... show page...");
+            SOSRecView instance = SOSRecView.getInstance();
+            instance.showMsgDialog();
         }
         return false;
     }
index d30537f..e03a124 100644 (file)
@@ -23,7 +23,7 @@ import com.ic.protocolSrv.service.AudioService;
 import com.ic.protocolSrv.service.Deliver;
 import com.ic.protocolSrv.service.HeartRateManager;
 import com.ic.protocols.protocolAPIHelper;
-import com.ic.view.FindDeviceView;
+import com.ic.view.SOSRecView;
 import com.ic.view.webmsgresponse.WebMsgView;
 
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -402,10 +402,7 @@ public class ProcessReceiver extends BroadcastReceiver {
                 }
 
             }
-
-
             return;
-
         } else if (DIALOG_ACTION.equals(str)) {
             ICLogger.d("receive DIALOG_ACTION");
             if (paramIntent.hasExtra("contact")) {
@@ -464,23 +461,25 @@ public class ProcessReceiver extends BroadcastReceiver {
                         this.playNotificationVoice(paramContext);
                         VibrateUtil.getInstance(paramContext).vibrateOn(true);
                     }
-
                     this.screenOn(paramContext);
                 }
             } else if (paramIntent.hasExtra("findDev")) {
                 ICLogger.d("hasExtra(findDev)");
-                String findDevTxt = paramIntent.getStringExtra("findDev");
-                SharePreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
-                isSilence = SharePreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
-                ICLogger.d("isSilence ==> " + isSilence);
-                ICLogger.d("findDevTxt ==> " + findDevTxt);
-                if (findDevTxt != null && !isSilence) {
-                    //this.initMyDialog(paramContext, null, 5, findDevTxt, false);
-                    this.playFindDevVoice(paramContext);
-                    VibrateUtil.getInstance(paramContext).vibrateOn(true);
-                    this.screenOn(paramContext);
-                    FindDeviceView.getInstance().showMsgDialog();
-                }
+                SOSRecView instance = SOSRecView.getInstance();
+                instance.showMsgDialog();
+                this.screenOn(paramContext);
+//                String findDevTxt = paramIntent.getStringExtra("findDev");
+//                SharePreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+//                isSilence = SharePreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+//                ICLogger.d("isSilence ==> " + isSilence);
+//                ICLogger.d("findDevTxt ==> " + findDevTxt);
+//                if (findDevTxt != null && !isSilence) {
+//                    //this.initMyDialog(paramContext, null, 5, findDevTxt, false);
+//                    this.playFindDevVoice(paramContext);
+//                    VibrateUtil.getInstance(paramContext).vibrateOn(true);
+//                    this.screenOn(paramContext);
+//                    FindDeviceView.getInstance().showMsgDialog();
+//                }
             } else if (paramIntent.hasExtra("takephoto")) {
                 String takephoto = paramIntent.getStringExtra("takephoto");
                 SharePreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
@@ -489,11 +488,9 @@ public class ProcessReceiver extends BroadcastReceiver {
                     this.initMyDialog(paramContext, null, 6, takephoto, false);
                     this.playNotificationVoice(paramContext);
                     VibrateUtil.getInstance(paramContext).vibrateOn(true);
-
                     this.screenOn(paramContext);
                 }
             }
-
         } else if (ACTION_SET_SIT_RANGE.equals(str)) {
             if (paramIntent.hasExtra(Constants.KEY_SIT_RANGE)) {
                 int sitrange = paramIntent.getIntExtra(Constants.KEY_SIT_RANGE, 0);
index 3fcd1a8..90d7ad7 100644 (file)
@@ -57,10 +57,12 @@ public class protocolAPIHelper {
             protocolgator_handler = new protocol_gator(connect, runtime);
         }
     }
-    public void onDestroy(){
-        if(protocolanan_handler!=null)
+
+    public void onDestroy() {
+        if (protocolanan_handler != null)
             protocolanan_handler.unRegisterWearStateReceiver();
     }
+
     private static boolean is_protocol_not_Initialled() {
         return (protocolbeehome_handler == null || protocoljiai_handler == null
                 || protocolic_handler == null ||
@@ -546,7 +548,7 @@ public class protocolAPIHelper {
                 ret = protocol_ic.AP00(runtime);
                 break;
             case Config.PROTOCOL_FZD:
-                ret = protocol_fzd.LK();
+                ret = protocol_fzd.LK(runtime);
                 break;
             case Config.PROTOCOL_MQTT:
                 ret = protocol_mqtt.BREQ(runtime);
index 518a281..9fbe7af 100644 (file)
@@ -36,9 +36,9 @@ import com.ic.protocolSrv.bean.Silent;
 import com.ic.protocolSrv.bean.StringMessage;
 import com.ic.protocolSrv.provider.ICDatabaseHelper;
 import com.ic.protocolSrv.provider.ICFollowProvider;
+import com.ic.protocolSrv.provider.ICGlobalSettingsProvider;
 import com.ic.protocolSrv.provider.ICMembersProvider;
 import com.ic.protocolSrv.provider.WeTalkMessageProvider;
-import com.ic.protocolSrv.provider.ICGlobalSettingsProvider;
 import com.ic.protocolSrv.service.HeartRateManager;
 import com.ic.protocolSrv.utils.AlarmHelper;
 import com.ic.protocolSrv.utils.CameraUtil;
@@ -641,35 +641,17 @@ public class protocol_fzd {
                 ICLogger.d("not correct FZD cmd! ");
                 break;
             }
-
-//            if (cmdbuf.toString().split(CMD_COMPANY + CMD_HEADER_SPLIT).length > 1) {
-//                ICLogger.d("More than 1 cmd in buffer ! just log it");
-//            }
             String cmdname = protocol_fzd.isCmdStr(cmd_msgbuf);
             if (!cmdname.trim().isEmpty()) { //返回为非空,证明是可识别的FZD指令
                 for (protocol_fzd.CMD_TYPE key : protocol_fzd.cmdMap.keySet()) {
-
-//                     ICLogger.d("key " + protocol_fzd.cmdMap.get(key) + " " + cmdname + " cmdbuf " + cmd_msgbuf);
                     if (protocol_fzd.cmdMap.get(key).equals(cmdname)) { //如果是FZD命令,则进行处理,否则保留数据动
-
-//                    ICLogger.d("key is == > " + key);
-//                    if (key == CMD_TYPE.TK) {
-//                        handlerGroupChatVoiceContent(totalByte);
-//                    } else if (key == CMD_TYPE.TKOne) {
-//                        handlerOneChatVoiceContent(totalByte);
-//                    } else if (key == CMD_TYPE.TKIMG) {
-//                        handleImage(totalByte);
-//                    }
-//                    else
                         {
                             int cmdindexmid = cmd_msgbuf.indexOf(CMD_HEADER_SPLIT + cmdname);
                             String cmddata = cmd_msgbuf.substring(cmdindexmid + CMD_HEADER_SPLIT.length() + cmdname.length());
                             if (cmddata.startsWith(CMD_SPLIT)) cmddata = cmddata.substring(1);
-//                            ICLogger.d("handleCmd key " + key + " cmdname " + cmdname + " data " + cmddata);
                             handleCmd(key, cmdname, cmddata);
                         }
                         cmdbuf.delete(0, cmd_msgbuf.length() + 2);//处理后清空
-
                         break;
                     }
                 }
@@ -1007,7 +989,7 @@ public class protocol_fzd {
     }
 
     /*登录*/
-    public static StringMessage LK() {
+    public static StringMessage LK(Runtime runtime) {
         /*IC*YYYYYYYYYYYYYYY*LEN*LK*/
         return genFZDCMD(cmdMap.get(CMD_TYPE.LK));
     }
diff --git a/app/src/main/java/com/ic/view/EventBlockView.java b/app/src/main/java/com/ic/view/EventBlockView.java
new file mode 100644 (file)
index 0000000..eec62c7
--- /dev/null
@@ -0,0 +1,39 @@
+package com.ic.view;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
+import android.util.AttributeSet;
+import android.view.KeyEvent;
+
+public class EventBlockView extends ConstraintLayout {
+    private OnKeyListener mKeyListener;
+
+    public EventBlockView(Context context) {
+        super(context);
+    }
+
+    public EventBlockView(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public EventBlockView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    public void setOnKeyListener(OnKeyListener l) {
+        super.setOnKeyListener(l);
+        this.mKeyListener = l;
+    }
+
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        if (mKeyListener != null) {
+            return mKeyListener.onKey(this, event.getKeyCode(), event);
+        }
+        return super.dispatchKeyEvent(event);
+    }
+
+}
+
index e558fab..53f936b 100644 (file)
@@ -40,8 +40,15 @@ public class SOSRecView {
         layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
         layoutParams.packageName = context.getPackageName();
         layoutParams.gravity = Gravity.CENTER;
+        layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
         //加载布局
-        view = View.inflate(context, R.layout.find_device_layout, null);
+        view = View.inflate(context, R.layout.sos_receive_layout, null);
+        view.setOnKeyListener((v, keyCode, event) -> {
+            //判断到按键就退出
+            ICLogger.d("on key click..." + keyCode);
+            dismiss();
+            return true;
+        });
         windowManager.addView(view, layoutParams);
     }
 
index 0f26037..929762d 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.ic.view.EventBlockView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -16,4 +16,4 @@
         app:layout_constraintTop_toTopOf="parent" />
 
 
-</android.support.constraint.ConstraintLayout>
\ No newline at end of file
+</com.ic.view.EventBlockView>
\ No newline at end of file