From: TrillGates Date: Mon, 23 Aug 2021 11:43:48 +0000 (+0800) Subject: fixed sms notification issues. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=6c62caad5c404c03e0c794265c6f2d2c66216af3;p=icsupport.git fixed sms notification issues. --- diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index e382133a..0af15fc1 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -849,7 +849,6 @@ public class CoreService extends Service { Config.enable_NTP_Server(this, !Config.disable_ntp_server); - //初始化温度测试相关参数 //runtime.temperature_adjustValue= TemperatureUtil.getTempAdjustValue(); Config.loadTemperatureSettings(runtime); diff --git a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java index 1292ace6..a62c2f81 100644 --- a/app/src/main/java/com/enqualcomm/support/ICSmsManager.java +++ b/app/src/main/java/com/enqualcomm/support/ICSmsManager.java @@ -128,10 +128,6 @@ public class ICSmsManager extends BroadcastReceiver { if (!handleSMS_CMD(from, message)) { //说明不是sms命令,提示短信接收。 if (!TextUtils.isEmpty(forceReadMsg)) { - WakeLockUtil.ScreenOnWakeLockTemperary(context); - ContextProxy.play_waning_notify(context); - VibrateUtil.getInstance(context).VibrateOnOnce(true); - Util.mSleep(2000); //add by TrillGates=======start //弹出提示窗口,如果是S123的话,就不弹出了 //因为S123有特定的短信提示,创建对应的notification即可 @@ -140,6 +136,7 @@ public class ICSmsManager extends BroadcastReceiver { //2.写入一个设置状态,Launcher顶部显示短信图标。如果短信打开,则会把此标记置成0 //表示已经读 if (Config.protocol_no == PROTOCOL_S123) { + //判断当前短信的状态 createNotification(from, "sms"); //修改设置项 updateMsgSettingsValue(); @@ -152,6 +149,9 @@ public class ICSmsManager extends BroadcastReceiver { list.add(message); instance.addData(list); } + WakeLockUtil.ScreenOnWakeLockTemperary(context); + ContextProxy.play_waning_notify(context); + VibrateUtil.getInstance(context).VibrateOnOnce(true); } else { //说明不是sms命令,提示短信接收。 ContextProxy.sendMsgBroadcast(context, message, 1); @@ -283,14 +283,13 @@ public class ICSmsManager extends BroadcastReceiver { while (msgit.hasNext()) { String message = (String) msgit.next(); ICLogger.i("reply message to " + phoneNumber + ", " + message); - if (phoneNumber != null && !phoneNumber.isEmpty()) { + if (!phoneNumber.isEmpty()) { smsManager.sendTextMessage(phoneNumber, (String) null, message, (PendingIntent) null, (PendingIntent) null); } } } private boolean isAdminNumber(String phoneNumb) { - return true; } diff --git a/app/src/main/java/com/enqualcomm/support/service/PhoneCallListener.java b/app/src/main/java/com/enqualcomm/support/service/PhoneCallListener.java index 5386eb57..917eb00f 100644 --- a/app/src/main/java/com/enqualcomm/support/service/PhoneCallListener.java +++ b/app/src/main/java/com/enqualcomm/support/service/PhoneCallListener.java @@ -42,9 +42,6 @@ public class PhoneCallListener extends PhoneStateListener { ICLogger.d("state == > " + state + " incomingNumber ==> " + incomingNumber); if (!TextUtils.isEmpty(incomingNumber)) { this.mLastPhoneNumber = incomingNumber; - } else { - ICLogger.d("incomeNumber is null..."); - return; } //挂断的时候,去查询一下是不是未接电话即可 if (state == CALL_STATE_IDLE) { @@ -80,6 +77,7 @@ public class PhoneCallListener extends PhoneStateListener { } c.close(); } + this.mLastPhoneNumber = null; } private void updateSettingsState() { @@ -91,6 +89,17 @@ public class PhoneCallListener extends PhoneStateListener { } private void createNotification(String phoneNum) { + //先查询是否有,如果已经有的话,就不创建了 + Cursor query = mContext.getContentResolver().query(Uri.parse(ICNotificationProvider.NOTIFICATIONS), + null, "category=? and type=? and title=?", + new String[]{"com.ic.phone", "missed_phone", phoneNum}, null); + if (query != null) { + if (query.moveToNext()) { + ICLogger.d("has one in there..."); + return; + } + query.close(); + } ICLogger.d("createNotification==> " + phoneNum); ContentValues contentValues = new ContentValues(); contentValues.put(ICDatabaseHelper.notification_category, "com.ic.phone"); 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 71df616a..48275756 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -58,11 +58,13 @@ import com.ic.s123.GenericWeatherInfo; import java.io.File; import java.io.FileOutputStream; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Locale; +import java.util.TimeZone; import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE; import static com.enqualcomm.support.Constants.DIALOG_ACTION; @@ -781,13 +783,20 @@ public class protocol_s123 { log("handleBP00", "Set Datetime " + msg[1]); log("handleBP00", "Set TimeZone " + msg[2]); try { - Date datetime = TimeUtil.parseDatetiime(msg[1]); + SimpleDateFormat df3 = new SimpleDateFormat("yyyyMMddHHmmss"); + df3.setTimeZone(TimeZone.getTimeZone("UTC")); + String timeStr = msg[1]; + ICLogger.d("timeStr == > " + timeStr); + Date datetime = df3.parse(timeStr); + ICLogger.d("datetime == > " + datetime); int timezone = Integer.parseInt(msg[2]); if (datetime != null) { ICLogger.i("===" + TimeUtil.getDefaultTimeZone()); - TimeUtil.setTimeZone(runtime.getContextProxy().context, timezone); + //TimeUtil.setTimeZone(runtime.getContextProxy().context, timezone); ICLogger.i("===" + TimeUtil.getDefaultTimeZone()); - TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, timezone, true); + TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, + //对时区不进行设置,用户通过语言模块进行设置 + timezone, false); ICLogger.i("===" + TimeUtil.getDefaultTimeZone()); } } catch (Exception e) {