From bfb1c758ce1a65ef554b07301d99a4e3127bd8e3 Mon Sep 17 00:00:00 2001 From: TrillGates Date: Fri, 6 Aug 2021 16:38:47 +0800 Subject: [PATCH] completed web msg reply. --- .../com/enqualcomm/support/CoreService.java | 9 ++-- .../com/enqualcomm/support/bean/Runtime.java | 2 +- .../support/service/WebMsgStateObserver.java | 11 ++--- .../com/enqualcomm/support/utils/Util.java | 3 +- .../com/ic/protocols/protocolAPIHelper.java | 4 +- .../java/com/ic/protocols/protocol_ic.java | 4 +- .../java/com/ic/protocols/protocol_jiai.java | 6 +-- .../java/com/ic/protocols/protocol_s123.java | 47 +++++-------------- .../ic/view/webmsgresponse/WebMsgView.java | 8 ++++ 9 files changed, 38 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index cceb8143..e3bbd220 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -51,7 +51,6 @@ import com.enqualcomm.support.service.ShutdownFlagObserver; import com.enqualcomm.support.service.SignFlagObserver; import com.enqualcomm.support.service.SilentManager; import com.enqualcomm.support.service.WeTalkMsgObserver; -import com.enqualcomm.support.service.WebMsgStateObserver; import com.enqualcomm.support.service.base.AbstractConnectionService; import com.enqualcomm.support.service.base.AbstractInvokeHandlerService; import com.enqualcomm.support.utils.APNUtil; @@ -1020,10 +1019,10 @@ public class CoreService extends Service { true, signFlagObserver); - WebMsgStateObserver webMsgStateObserver = new WebMsgStateObserver(mHandler, resolver); - resolver.registerContentObserver(Uri.parse(SETTINGS + ".web_msg_read_state_flag"), - true, - webMsgStateObserver); +// WebMsgStateObserver webMsgStateObserver = new WebMsgStateObserver(mHandler, resolver); +// resolver.registerContentObserver(Uri.parse(SETTINGS + ".web_msg_read_state_flag"), +// true, +// webMsgStateObserver); //启动结束设置标志位,让心率和体温检测可以正常执行。 server_starting = false; diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index a7434c00..014b0579 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -29,7 +29,7 @@ public class Runtime { public int temp_test_Cycle_Seconds = 60 * 60; - public static String PushtxtMsg_srv_index = ""; + public static String pushTxtMsgSrvIndex = ""; public int SignalStrength; //上一次成功心跳时间,供系统重连机制使用。 diff --git a/app/src/main/java/com/enqualcomm/support/service/WebMsgStateObserver.java b/app/src/main/java/com/enqualcomm/support/service/WebMsgStateObserver.java index 7377e5d9..00649d6b 100644 --- a/app/src/main/java/com/enqualcomm/support/service/WebMsgStateObserver.java +++ b/app/src/main/java/com/enqualcomm/support/service/WebMsgStateObserver.java @@ -5,7 +5,6 @@ import android.os.Handler; import com.enqualcomm.support.service.base.BaseSettingsObserver; import com.enqualcomm.support.utils.ICLogger; -import com.ic.protocols.protocolAPIHelper; public class WebMsgStateObserver extends BaseSettingsObserver { @@ -19,10 +18,10 @@ public class WebMsgStateObserver extends BaseSettingsObserver { @Override public void onChange(boolean selfChange) { ICLogger.d("on web msg setting change..."); - mHandler.post(() -> { - //查询出设置项 - String value = getSettingsValueByKey("web_msg_read_state_flag", ""); - protocolAPIHelper.responseWebSms(value); - }); +// mHandler.post(() -> { +// //查询出设置项 +// String value = getSettingsValueByKey("web_msg_read_state_flag", ""); +// protocolAPIHelper.responseWebSms(value); +// }); } } diff --git a/app/src/main/java/com/enqualcomm/support/utils/Util.java b/app/src/main/java/com/enqualcomm/support/utils/Util.java index 2d23b199..8aaa077c 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/Util.java +++ b/app/src/main/java/com/enqualcomm/support/utils/Util.java @@ -252,7 +252,8 @@ public class Util { //汉字 short s = (short) myBuffer[i]; String hexS = Integer.toHexString(s); - String unicode = "\\u" + hexS; +// String unicode = "\\u" + hexS; + String unicode = hexS; sb.append(unicode.toLowerCase()); } } diff --git a/app/src/main/java/com/ic/protocols/protocolAPIHelper.java b/app/src/main/java/com/ic/protocols/protocolAPIHelper.java index 797844cb..44c1fbd8 100644 --- a/app/src/main/java/com/ic/protocols/protocolAPIHelper.java +++ b/app/src/main/java/com/ic/protocols/protocolAPIHelper.java @@ -163,7 +163,7 @@ public class protocolAPIHelper { } } - public static void responseWebSms(String value) { + public static void updateWebMsgState(String value, String type) { switch (Config.protocol_no) { case Config.PROTOCOL_JIAI: break; @@ -178,7 +178,7 @@ public class protocolAPIHelper { case PROTOCOL_ANAN: break; case Config.PROTOCOL_S123: - protocols123_handler.responseWebSms(value); + protocols123_handler.updateWebMsgState(value, type); break; case Config.PROTOCOL_GATOR: break; diff --git a/app/src/main/java/com/ic/protocols/protocol_ic.java b/app/src/main/java/com/ic/protocols/protocol_ic.java index 0508618c..82b4bee5 100644 --- a/app/src/main/java/com/ic/protocols/protocol_ic.java +++ b/app/src/main/java/com/ic/protocols/protocol_ic.java @@ -1280,7 +1280,7 @@ public class protocol_ic { String cmdindex = cmdlist[2]; String txtmsg = cmdlist[3]; StringBuilder sb = new StringBuilder(); - Runtime.PushtxtMsg_srv_index = cmdindex;//给回复AP94用 + Runtime.pushTxtMsgSrvIndex = cmdindex;//给回复AP94用 sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg); if (Config.custom_name.equals("VitracK")) { @@ -2593,7 +2593,7 @@ public class protocol_ic { //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。 return genStringMessage(cmdMap.get(protocol_ic.CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_ic.CMD_TYPE.AP94)) - .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index) + .append(CMDSPLIT).append(Runtime.pushTxtMsgSrvIndex) .append(CMDSPLIT).append("1") .append(CMDEND).toString()); diff --git a/app/src/main/java/com/ic/protocols/protocol_jiai.java b/app/src/main/java/com/ic/protocols/protocol_jiai.java index 477246a0..ab09b1df 100644 --- a/app/src/main/java/com/ic/protocols/protocol_jiai.java +++ b/app/src/main/java/com/ic/protocols/protocol_jiai.java @@ -1670,14 +1670,14 @@ public class protocol_jiai { String vib_time = cmdlist[6]; ICLogger.i("收到服务器文本 " + txtmsg + " 序号 " + msg_index_no + " , 播放 " + play_time + " 次,震动 " + vib_time + " 次!"); StringBuilder sb = new StringBuilder(); - runtime.PushtxtMsg_srv_index = msg_index_no;//给回复AP94用 + runtime.pushTxtMsgSrvIndex = msg_index_no;//给回复AP94用 sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg); txtmsg = Util.decodeUnicode2Utf8(txtmsg); StringMessage msg = AP93(cmdindex); //设定当前工作模式及循环频率 connection.send(msg); - runtime.PushtxtMsg_srv_index = msg_index_no;//给回复AP94用 + runtime.pushTxtMsgSrvIndex = msg_index_no;//给回复AP94用 ICLogger.i("received Txt Msg " + txtmsg); if (!Config.noPushTxtReadReply) { Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString()); //保存未读文档 @@ -1710,7 +1710,7 @@ public class protocol_jiai { //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。 return genStringMessage(cmdMap.get(CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94)) - .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index) + .append(CMDSPLIT).append(Runtime.pushTxtMsgSrvIndex) .append(CMDSPLIT).append("1") .append(CMDEND).toString()); diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index 85f7ed33..cca697ff 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -174,26 +174,10 @@ public class protocol_s123 { .append(CMDEND).toString()); } - //确认文字已读或聊天快捷回复(上行协议号:AP94,响应:BP94) - public void responseWebSms(String value) { - //IWAP94,123456,1,XXXXXXXXXXXXXXXX - //以下这部分内容由UI给到数据库再给过来 - //123456,1,XXXXXXXXXXXXXXXX - String[] split = value.split(CMDSPLIT); - if (split.length == 3) { - //对数据进行编码 - genStringMessage(cmdMap.get(CMD_TYPE.AP94), - new StringBuilder() - .append(CMDHEADER) - .append(cmdMap.get(CMD_TYPE.AP94)) - .append(CMDSPLIT).append(split[0]) - .append(CMDSPLIT).append(split[1]) - .append(CMDSPLIT).append(Util.utf8ToUnicode(split[2])) - .append(CMDEND) - .toString()); - } else { - ICLogger.d("parse send msg error==> " + value); - } + public void updateWebMsgState(String value, String type) { + ICLogger.d("updateWebMsgState==> " + value + " type==> " + type); + StringMessage stringMessage = AP94(value, type); + mConnection.send(stringMessage); } public enum CMD_TYPE { @@ -1616,7 +1600,7 @@ public class protocol_s123 { if ("2".equals(type)) { //文本消息 StringBuilder sb = new StringBuilder(); - Runtime.PushtxtMsg_srv_index = cmdIndex;//给回复AP94用 + Runtime.pushTxtMsgSrvIndex = cmdIndex;//给回复AP94用 sb.append(cmdIndex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtMsg); if (Config.custom_name.equals("VitracK")) { @@ -2986,16 +2970,16 @@ public class protocol_s123 { * @param responseText * @return */ - public static StringMessage AP94(String responseText) { + public static StringMessage AP94(String responseText, String type) { if (TextUtils.isEmpty(responseText)) { responseText = ""; } //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。 - return genStringMessage(cmdMap.get(protocol_s123.CMD_TYPE.AP94), - new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_s123.CMD_TYPE.AP94)) - .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index) - .append(CMDSPLIT).append("1") - .append(CMDSPLIT).append(responseText) + return genStringMessage(cmdMap.get(CMD_TYPE.AP94), + new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94)) + .append(CMDSPLIT).append(Runtime.pushTxtMsgSrvIndex) + .append(CMDSPLIT).append(type) + .append(CMDSPLIT).append(Util.utf8ToUnicode(responseText)) .append(CMDEND).toString()); } @@ -3424,7 +3408,6 @@ public class protocol_s123 { break; case BP94: ICLogger.d("服务器收到文字确认/快捷回复"); - handleBP94(); break; case BP03: //心跳包 ICLogger.i("服务器收到心跳包AP03"); @@ -3825,14 +3808,6 @@ public class protocol_s123 { return ret; } - /** - * 修改库的状态,更新UI - */ - private void handleBP94() { - //UI收到以后,设置成none - updateSettingValue("web_msg_read_state_flag", "success"); - } - /** * 修改配置项的值为success,让UI展示Success */ diff --git a/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java b/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java index a5615239..279a33df 100644 --- a/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java +++ b/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java @@ -14,6 +14,7 @@ import com.enqualcomm.support.ICApplication; import com.enqualcomm.support.R; import com.enqualcomm.support.provider.ShootTextProvider; import com.enqualcomm.support.utils.ICLogger; +import com.ic.protocols.protocolAPIHelper; import java.util.ArrayList; import java.util.List; @@ -113,10 +114,12 @@ public class WebMsgView { } public void dismiss() { + windowManager.removeView(view); executorService.shutdown(); executorService = null; sInstance = null; contentResolver = null; + windowManager = null; } @@ -130,11 +133,16 @@ public class WebMsgView { public void onRead() { //回复消息 //显示结果 + protocolAPIHelper.updateWebMsgState("", "1"); + dismiss(); } @Override public void onReply(String replyText) { + ICLogger.d("reply text == > " + replyText); //回复消息 + protocolAPIHelper.updateWebMsgState(replyText, "2"); + dismiss(); } }); if (!TextUtils.isEmpty(currentText)) { -- 2.17.1