From: TrillGates Date: Tue, 31 Aug 2021 09:19:48 +0000 (+0800) Subject: fixed web msg shoot text observer. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=4e2ff3dd5ab7c51c7f9fa6c2d03be9d83824a32c;p=icsupport.git fixed web msg shoot text observer. --- diff --git a/app/src/main/java/com/enqualcomm/support/Constants.java b/app/src/main/java/com/enqualcomm/support/Constants.java index 925c67cb..333cf5a4 100644 --- a/app/src/main/java/com/enqualcomm/support/Constants.java +++ b/app/src/main/java/com/enqualcomm/support/Constants.java @@ -20,6 +20,7 @@ public interface Constants { String ACTION_ALARM_CHECK_ANTI = "com.ic.Action.ALarm.CheckAnti"; String ACTION_ALARM_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE"; + String ACTION_ALARM_DELETE_ALARM= "com.ic.alarm.action.DELETE_ALARM"; String ACTION_ANTIOFF_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ANTIOFF_ALARM_CHANGE"; diff --git a/app/src/main/java/com/enqualcomm/support/bean/Alarm.java b/app/src/main/java/com/enqualcomm/support/bean/Alarm.java index 76e6b7fc..a03fa642 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Alarm.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Alarm.java @@ -48,25 +48,17 @@ public class Alarm { } } + @Override public String toString() { - StringBuilder var1 = new StringBuilder(); - var1.append("Alarm{time='"); - var1.append(this.time); - var1.append('\''); - var1.append(", week='"); - var1.append(this.week); - var1.append('\''); - var1.append(", ring='"); - var1.append(this.ring); - var1.append('\''); - var1.append(", status='"); - var1.append(this.status); - var1.append('\''); - var1.append(", name='"); - var1.append(this.name); - var1.append('\''); - var1.append('}'); - return var1.toString(); + return "Alarm{" + + "name='" + name + '\'' + + ", ring='" + ring + '\'' + + ", status='" + status + '\'' + + ", time='" + time + '\'' + + ", week='" + week + '\'' + + ", laterRing='" + laterRing + '\'' + + ", id='" + id + '\'' + + '}'; } } diff --git a/app/src/main/java/com/enqualcomm/support/service/SilentManager.java b/app/src/main/java/com/enqualcomm/support/service/SilentManager.java index 529f500c..2016138f 100644 --- a/app/src/main/java/com/enqualcomm/support/service/SilentManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/SilentManager.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.ContentObserver; +import android.database.Cursor; import android.media.AudioManager; import android.net.Uri; import android.os.Handler; @@ -14,6 +15,7 @@ import android.os.Message; import android.os.Messenger; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; +import android.text.TextUtils; import com.enqualcomm.support.Config; import com.enqualcomm.support.CoreService; @@ -24,6 +26,7 @@ import com.enqualcomm.support.bean.NoticeContent; import com.enqualcomm.support.bean.Runtime; import com.enqualcomm.support.bean.Silent; import com.enqualcomm.support.bean.StheartRate; +import com.enqualcomm.support.provider.ICAlarmProvider; import com.enqualcomm.support.provider.ICContentProvider; import com.enqualcomm.support.service.base.AbstractInvokeHandlerService; import com.enqualcomm.support.utils.AlarmHelper; @@ -46,9 +49,10 @@ import java.util.List; import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK; import static android.telephony.TelephonyManager.CALL_STATE_RINGING; import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE; +import static com.enqualcomm.support.Constants.ACTION_ALARM_DELETE_ALARM; import static com.enqualcomm.support.Constants.ACTION_ANTIOFF_ALARM_CHANGE; -import static com.enqualcomm.support.Constants.ACTION_IC_ALARM; import static com.enqualcomm.support.Constants.ACTION_CLOSE_UNREAD_MSG; +import static com.enqualcomm.support.Constants.ACTION_IC_ALARM; import static com.enqualcomm.support.Constants.ACTION_NOTICE_ALARM_CHANGE; import static com.enqualcomm.support.Constants.OTHER_ALARM_END; import static com.enqualcomm.support.Constants.OTHER_ALARM_START; @@ -61,7 +65,7 @@ public class SilentManager extends AbstractInvokeHandlerService { private boolean haveHandSilence; private boolean isCalling; AlarmManager mAlarmManager; - private SilentManager.AlramReceiver mAlarmReceiver; + private AlarmReceiver mAlarmReceiver; Connection mConnection; private static Handler mHandler; @@ -104,8 +108,9 @@ public class SilentManager extends AbstractInvokeHandlerService { private static SilentManager mSilentManger = null; public static SilentManager getInstance() { - if (mSilentManger == null) + if (mSilentManger == null) { mSilentManger = new SilentManager(); + } return mSilentManger; } @@ -202,31 +207,39 @@ public class SilentManager extends AbstractInvokeHandlerService { } - private void cancelAlarm(List var1) { - Iterator var2 = var1.iterator(); - - while (var2.hasNext()) { - Alarm alarmItem = (Alarm) var2.next(); - String time = alarmItem.time; - String week = alarmItem.week; - String ring = alarmItem.ring; - String name = alarmItem.name; - char[] result = week.toCharArray(); - int var7 = result.length; + public void cancelAlarm(List alarms) { + Iterator alarmsIterator = alarms.iterator(); - for (int var8 = 1; var8 < var7; ++var8) { - char var9 = result[var8]; - this.mAlarmManager.cancel(this.getPendingIntent(time, week, ring, name, var9 - 47, 0, false)); - } + while (alarmsIterator.hasNext()) { + Alarm alarmItem = (Alarm) alarmsIterator.next(); + doCancelAlarm(alarmItem); } } - private void cancelNoticeAlarm(ArrayList var1) { - Iterator var2 = var1.iterator(); + private void doCancelAlarm(Alarm alarmItem) { + String time = alarmItem.time; + String week = alarmItem.week; + String ring = alarmItem.ring; + String name = alarmItem.name; + ICLogger.d("alarmItem ==> " + alarmItem); + if (!TextUtils.isEmpty(week)) { + week = week.replace("W", ""); + } + char[] result = week.toCharArray(); + int length = result.length; + for (int i = 1; i < length; ++i) { + char weekItem = result[i]; + ICLogger.d("cancel alarm ==> " + alarmItem); + this.mAlarmManager.cancel(this.getPendingIntent(time, week, + ring, name, weekItem - 47, 0, false)); + } + } - while (var2.hasNext()) { - NoticeContent var3 = (NoticeContent) var2.next(); + private void cancelNoticeAlarm(ArrayList var1) { + Iterator noticesIterator = var1.iterator(); + while (noticesIterator.hasNext()) { + NoticeContent var3 = (NoticeContent) noticesIterator.next(); String var4 = var3.noticeTime; String var9 = var3.noticeName; String var5 = var3.noticeNumber; @@ -252,17 +265,18 @@ public class SilentManager extends AbstractInvokeHandlerService { String ring, String name, int dayOfWeek, long tmpTimeInMillis, boolean repeat) { - StringBuilder args = new StringBuilder("alarm:"); - args.append(time); - args.append(","); - args.append(week); - args.append(","); - args.append(ring); - args.append(","); - args.append(name); - args.append(","); - args.append(dayOfWeek); - week = args.toString(); + StringBuilder sb = new StringBuilder("alarm:"); + sb.append(time); + sb.append(","); + sb.append(week); + sb.append(","); + sb.append(ring); + sb.append(","); + sb.append(name); + sb.append(","); + sb.append(dayOfWeek); + week = sb.toString(); + ICLogger.d("alarm data == > " + week); Intent intent = new Intent(this.mContext, CoreService.class); intent.setAction(ACTION_IC_ALARM); intent.putExtra("IS_REPEAT", repeat); @@ -652,7 +666,7 @@ public class SilentManager extends AbstractInvokeHandlerService { } - private List queryAlarm() { + public List queryAlarm() { List alarmList = this.mDbHelper.queryAlarm(); if (!this.mInSilent) { if (this.alarms != null) { @@ -758,7 +772,6 @@ public class SilentManager extends AbstractInvokeHandlerService { private void setNewNoticeAlarm(ArrayList var1) { Iterator var19 = var1.iterator(); - while (var19.hasNext()) { NoticeContent var2 = (NoticeContent) var19.next(); String var3 = var2.noticeTime; @@ -814,24 +827,17 @@ public class SilentManager extends AbstractInvokeHandlerService { } else { var4 = "OFF"; } - var3.upDateorInsertDeviceStatus(var4); this.handSilence(this.mContext, this.mInSilent); - /* - this.stheartRateList = this.queryStheartRate(); - this.getStartAndEndStheartRateTime(); - this.mIsStheartRate = this.isStheartRateTime(false); - */ this.alarms = this.queryAlarm(); this.voiceNotice = this.queryNotice(); runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver); - this.mAlarmReceiver = new SilentManager.AlramReceiver(); - IntentFilter var5 = new IntentFilter(); - var5.addAction(ACTION_NOTICE_ALARM_CHANGE); - var5.addAction(ACTION_ALARM_ALARM_CHANGE); - // var5.addAction("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE"); - // var5.addAction("com.eqc.heartrate.action.RESULT"); - this.mContext.registerReceiver(this.mAlarmReceiver, var5); + this.mAlarmReceiver = new AlarmReceiver(); + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ACTION_NOTICE_ALARM_CHANGE); + intentFilter.addAction(ACTION_ALARM_ALARM_CHANGE); + intentFilter.addAction(ACTION_ALARM_DELETE_ALARM); + this.mContext.registerReceiver(this.mAlarmReceiver, intentFilter); runtime.getContextProxy().getTelephonyManager().listen(this.phoneStateListener, 32); } @@ -913,12 +919,12 @@ public class SilentManager extends AbstractInvokeHandlerService { return false; } - class AlramReceiver extends BroadcastReceiver { - AlramReceiver() { + class AlarmReceiver extends BroadcastReceiver { + AlarmReceiver() { } - public void onReceive(Context var1, Intent var2) { - String action = var2.getAction(); + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); StringBuilder var3 = new StringBuilder(); var3.append("action = "); var3.append(action); @@ -937,9 +943,9 @@ public class SilentManager extends AbstractInvokeHandlerService { SilentManager.this.getStartAndEndStheartRateTime(); SilentManager.this.isStheartRateTime(false); } else if ("com.eqc.heartrate.action.RESULT".equals(action)) { - String time = var2.getStringExtra("time"); - int var4 = var2.getIntExtra("value", 0); - int var5 = var2.getIntExtra("type", 0); + String time = intent.getStringExtra("time"); + int var4 = intent.getIntExtra("value", 0); + int var5 = intent.getIntExtra("type", 0); StringBuilder var7 = new StringBuilder(); var7.append("("); var7.append(time); @@ -948,12 +954,43 @@ public class SilentManager extends AbstractInvokeHandlerService { var7.append("@"); var7.append(var5); var7.append(")"); - time = var7.toString(); -// SilentManager.this.mConnection.send(API.H60(SilentManager.this.mRuntime, var6)); } else if (ACTION_ANTIOFF_ALARM_CHANGE.equals(action)) { SilentManager.this.sAntioffList = SilentManager.this.queryAntioff(); SilentManager.this.getStartAndEndSantioffTime(); SilentManager.this.mIsNeedAntioff = SilentManager.this.isAntioffTime(false); + } else if (ACTION_ALARM_DELETE_ALARM.equals(action)) { + //刪除闹钟 + //获取到闹钟的ID,然后进行删除 + String alarmId = intent.getStringExtra("alarmId"); + ICLogger.d("delete alarmId ==> " + alarmId); + //查询出来,然后进行删除 + Cursor query = context.getContentResolver().query(Uri.parse(ICAlarmProvider.ALARMS), + null, "_id=?", new String[]{alarmId}, null); + if (query != null) { + while (query.moveToNext()) { + Alarm item = new Alarm(); + String id = query.getString(0); + String time = query.getString(1); + String week = query.getString(2); + String ring = query.getString(3); + String status = query.getString(4); + String name = query.getString(5); + String notifyLager = query.getString(6); + item.id = id; + item.time = time; + item.week = week; + item.ring = ring; + item.status = status; + item.name = name; + item.laterRing = notifyLager; + ICLogger.d("alarm is == > " + item); + doCancelAlarm(item); + int delete = context.getContentResolver().delete(Uri.parse(ICAlarmProvider.ALARMS), + "_id=?", new String[]{alarmId}); + ICLogger.d("delete alarm ==|||=> " + delete); + } + query.close(); + } } } diff --git a/app/src/main/java/com/enqualcomm/support/utils/ICLogger.java b/app/src/main/java/com/enqualcomm/support/utils/ICLogger.java index 501c3470..581e0bd4 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/ICLogger.java +++ b/app/src/main/java/com/enqualcomm/support/utils/ICLogger.java @@ -36,30 +36,25 @@ public class ICLogger { private static String getFunctionName() { StackTraceElement[] currentStack = Thread.currentThread().getStackTrace(); - if (currentStack == null) { - return null; - } else { - int stackLen = currentStack.length; - - for (int i = 0; i < stackLen; ++i) { - StackTraceElement stackElement = currentStack[i]; - if (!stackElement.isNativeMethod() && !stackElement.getClassName().equals(Thread.class.getName()) && !stackElement.getClassName().equals(ICLogger.class.getName())) { - StringBuilder sb = new StringBuilder(); - sb.append("[ "); - sb.append(Thread.currentThread().getName()); - sb.append(": "); - sb.append(stackElement.getFileName()); - sb.append(":"); - sb.append(stackElement.getLineNumber()); - sb.append(" "); - sb.append(stackElement.getMethodName()); - sb.append(" ]"); - return sb.toString(); - } + int stackLen = currentStack.length; + for (int i = 0; i < stackLen; ++i) { + StackTraceElement stackElement = currentStack[i]; + if (!stackElement.isNativeMethod() && !stackElement.getClassName().equals(Thread.class.getName()) && !stackElement.getClassName().equals(ICLogger.class.getName())) { + StringBuilder sb = new StringBuilder(); + sb.append("[ "); + sb.append(Thread.currentThread().getName()); + sb.append(": "); + sb.append(stackElement.getFileName()); + sb.append(":"); + sb.append(stackElement.getLineNumber()); + sb.append(" "); + sb.append(stackElement.getMethodName()); + sb.append(" ]"); + return sb.toString(); } - - return null; } + + return null; } /** @@ -92,7 +87,6 @@ public class ICLogger { String filename = StorageUtils.getExternalStorageLogDir() + File.separator + "log.txt"; logConfigurator.setFileName(filename); // 日志存储路径,如果该路径没有会自动创建文件 logConfigurator.setRootLevel(Level.ALL); - logConfigurator.setLevel("log", Level.ALL); // logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");// 设置文件输出模式 logConfigurator.setFilePattern("%d %m%n ");// 设置文件输出模式 diff --git a/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java b/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java index cc03c305..3e9b9d60 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java @@ -50,7 +50,6 @@ public class VibrateUtil { if (vibrator != null) { patterOnce = new long[]{patter_item, 1000}; if (on) -// vibrator.vibrate(patter, 0);//一直循环 vibrator.vibrate(patterOnce, -1);//不循环 else vibrator.cancel(); 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 20bb1a9c..a6589373 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -19,6 +19,7 @@ import android.telephony.CellInfoLte; import android.telephony.CellInfoWcdma; import android.telephony.TelephonyManager; import android.text.TextUtils; +import android.util.Log; import com.enqualcomm.support.Config; import com.enqualcomm.support.Constants; @@ -42,6 +43,7 @@ import com.enqualcomm.support.provider.ShootTextProvider; import com.enqualcomm.support.provider.WebSmsProvider; import com.enqualcomm.support.service.Deliver; import com.enqualcomm.support.service.HeartRateManager; +import com.enqualcomm.support.service.SilentManager; import com.enqualcomm.support.utils.APNUtil; import com.enqualcomm.support.utils.CameraUtil; import com.enqualcomm.support.utils.Connection; @@ -184,7 +186,6 @@ public class protocol_s123 { mConnection.send(stringMessage); } - public enum CMD_TYPE { /*终端发起*/ AP00,//登录包 @@ -810,6 +811,7 @@ public class protocol_s123 { } public static StringMessage AP03(Runtime ds) { + ICLogger.d("创建心跳内容 ==> " + Log.getStackTraceString(new Throwable())); //IWAP03,06000908000102,5555,30,1200# //IWAP03,06000908000102,5555,30# //IW: 标识符 @@ -828,7 +830,6 @@ public class protocol_s123 { //30: 翻滚次数 //获取一下卡路里 ds.getContextProxy().context.sendBroadcast(new Intent("com.ic.action.GET_PED_COUNT")); - //TODO:可能要稍等一下 ContentResolver resolver = ds.getContextProxy().getResolver(); Cursor query = resolver.query(Uri.parse(ICGlobalSettingsProvider.SETTINGS), new String[]{"s_value"}, "s_key=?", new String[]{"sport_calorie_value"}, null); @@ -1427,11 +1428,8 @@ public class protocol_s123 { } }//循环获取alarm数据结束 runtime.getDbHelper().saveAlarm(alarmList); - - //do clean and set alarm things - } -//IWBP85,867155030002145,410385,1,0,# + //IWBP85,867155030002145,410385,1,0,# String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString(); String replycmd = cmd.replace(replacement, ""); @@ -3091,19 +3089,18 @@ public class protocol_s123 { * @param cmd */ public void handleBPBT(Connection connection, Runtime runtime, String cmd) { -/*** - * IWBPBT,353456789012345,080835,1# - * 说明:设置蓝牙扫描周期,单位时间分钟 - * IW:标识符 - * BPBT : 命令字符 - * 353456789012345:IMEI号,设备唯一ID - * 080835:指令流水号 - * 1: 扫描周期,对应单位为分钟 - * 设备响应: IWAPBT,080835, 1# - * 080835:指令流水号 - * 1: 剪断开关状态(实际上与下行的命令一致) - */ - + /*** + * IWBPBT,353456789012345,080835,1# + * 说明:设置蓝牙扫描周期,单位时间分钟 + * IW:标识符 + * BPBT : 命令字符 + * 353456789012345:IMEI号,设备唯一ID + * 080835:指令流水号 + * 1: 扫描周期,对应单位为分钟 + * 设备响应: IWAPBT,080835, 1# + * 080835:指令流水号 + * 1: 剪断开关状态(实际上与下行的命令一致) + */ log("BPBT " + cmd); String[] cmdlist = cmd.split(CMDSPLIT); if (cmdlist.length == 4) { @@ -4204,6 +4201,14 @@ public class protocol_s123 { String substring = cmd.substring(cmdLen); String[] alarmItemArray = substring.split("@"); ContentResolver resolver = mRuntime.getContextProxy().getResolver(); + //删除之前先取消已经设置的闹钟 + List alarmList = mRuntime.getDbHelper().queryIcAlarm(); + if (alarmList == null || alarmList.size() == 0) { + //如果没有的话就去另外一个获取 + alarmList = SilentManager.getInstance().queryAlarm(); + } + //取消掉上次的闹钟,再进行设置新的 + SilentManager.getInstance().cancelAlarm(alarmList); //闹钟下发,也是要清空闹钟的 resolver.delete(Uri.parse(ICAlarmProvider.ALARMS), null, null); for (String itemStr : alarmItemArray) { @@ -4229,7 +4234,13 @@ public class protocol_s123 { continue; } //添加到闹钟数据库中 - Alarm alarmItem = new Alarm("ST" + alarmTime.substring(0, 2) + "." + alarmTime.substring(2), + String hour = alarmTime.substring(0, 2); + String minute = alarmTime.substring(2); + if (TextUtils.isEmpty(hour) || TextUtils.isEmpty(minute)) { + ICLogger.d("date ERROR..."); + continue; + } + Alarm alarmItem = new Alarm("ST" + hour + "." + minute, "W" + weekItem, "CON", "1".equals(isOpen) ? "ON" : "OFF", alarmName); ICLogger.d("alarmItem == > " + alarmName); //入库 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 279a33df..2056bdab 100644 --- a/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java +++ b/app/src/main/java/com/ic/view/webmsgresponse/WebMsgView.java @@ -2,6 +2,7 @@ package com.ic.view.webmsgresponse; import android.content.ContentResolver; import android.content.Context; +import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; import android.support.v4.view.ViewPager; @@ -102,8 +103,19 @@ public class WebMsgView { //添加到Window里 initShootData(); windowManager.addView(view, layoutParams); + contentResolver.registerContentObserver(Uri.parse(ShootTextProvider.SHOOT_TEXT), + true, observer); } + private final ContentObserver observer = new ContentObserver(null) { + + @Override + public void onChange(boolean selfChange) { + initShootData(); + } + + }; + public void setShowMsg(String text) { this.currentText = text; //设置要显示的消息 @@ -114,6 +126,7 @@ public class WebMsgView { } public void dismiss() { + contentResolver.unregisterContentObserver(observer); windowManager.removeView(view); executorService.shutdown(); executorService = null;