From: snicker Date: Wed, 25 Mar 2020 17:15:30 +0000 (+0800) Subject: 修复仍然有时 设置不循环的闹铃不起效的问题。 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=72e128368df800bd0da14db86343d956d8aea3b2;p=icsupport.git 修复仍然有时 设置不循环的闹铃不起效的问题。 --- 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 97932b1f..a0a7928e 100644 --- a/app/src/main/java/com/enqualcomm/support/service/SilentManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/SilentManager.java @@ -33,14 +33,18 @@ import com.enqualcomm.support.utils.SharPreferenceUtil; import com.enqualcomm.support.utils.TimeUtil; import java.util.ArrayList; import java.util.Calendar; +import java.util.Date; import java.util.Iterator; import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK; import static android.telephony.TelephonyManager.CALL_STATE_RINGING; +import static com.enqualcomm.support.Constants.ACTION_CARE_ALARM; import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START; public class SilentManager extends AbstractInvokeHandlerService { private static final long ONE_WEEK = 604800000L; + private static final long ONE_DAY = 86400000L; + private ArrayList alarms; private boolean haveHandSilence; private boolean isCalling; @@ -164,7 +168,7 @@ public class SilentManager extends AbstractInvokeHandlerService { var6.append(var5); var2 = var6.toString(); Intent var7 = new Intent(this.mContext, CoreService.class); - var7.setAction("com.enqualcomm.support.ACTION_CARE_ALARM"); + var7.setAction(ACTION_CARE_ALARM); var7.setData(Uri.parse(var2)); return PendingIntent.getService(this.mContext, 0, var7, PendingIntent.FLAG_UPDATE_CURRENT); } @@ -298,16 +302,16 @@ public class SilentManager extends AbstractInvokeHandlerService { this.isStheartRateTime(var2); } - private boolean haveStartActivity(Context var1) { - int var2 = ((TelephonyManager)var1.getSystemService(Context.TELEPHONY_SERVICE)).getCallState(); - boolean var3; - if (CALL_STATE_RINGING != var2 && CALL_STATE_OFFHOOK != var2) { - var3 = true; + private boolean isIdle(Context context) { + int callstate = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState(); + boolean isidle; + if (CALL_STATE_RINGING != callstate && CALL_STATE_OFFHOOK != callstate) { + isidle = true; } else { - var3 = false; + isidle = false; } - return var3 && !this.mInSilent && !this.mRuntime.getBatteryLow(); + return isidle && !this.mInSilent && !this.mRuntime.getBatteryLow(); } private boolean isAntioffTime(boolean var1) { @@ -574,6 +578,8 @@ public class SilentManager extends AbstractInvokeHandlerService { if (tmpTimeInMillis <= currentTime) { tmpTimeInMillis += ONE_WEEK; } + Date date = new Date(tmpTimeInMillis); + ICLogger.i("set date "+date.toLocaleString()); PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, dayofweek); AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent); } @@ -582,8 +588,26 @@ public class SilentManager extends AbstractInvokeHandlerService { long tmpTimeInMillis; // int dayofweek = weeklist[i] - 47; // calendar.set(Calendar.DAY_OF_WEEK, dayofweek); - tmpTimeInMillis = calendar.getTimeInMillis(); - PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, 0); +// tmpTimeInMillis = calendar.getTimeInMillis(); + + Date date = new Date(System.currentTimeMillis()); + ICLogger.i("date "+date.toLocaleString()); + Calendar c = Calendar.getInstance(); + c.setTime(date); + int wek = c.get(Calendar.DAY_OF_WEEK); + calendar.set(Calendar.DAY_OF_WEEK, wek); + tmpTimeInMillis = calendar.getTimeInMillis(); + if (tmpTimeInMillis <= currentTime) { + tmpTimeInMillis += ONE_DAY; + } + date = new Date(tmpTimeInMillis); + c = Calendar.getInstance(); + c.setTime(date); + wek = c.get(Calendar.DAY_OF_WEEK); + + ICLogger.i("set date "+date.toLocaleString()); + + PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, wek); AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent); } @@ -673,36 +697,38 @@ public class SilentManager extends AbstractInvokeHandlerService { this.mContext.unregisterReceiver(this.mAlramReceiver); } + @Override public boolean onUserRequest(Intent var1, Connection var2, Runtime var3) { - String var11 = var1.getAction(); - if ("com.enqualcomm.support.ACTION_CARE_ALARM".equals(var11)) { - String var10 = var1.getDataString(); - var11 = TimeUtil.getSystemTime(); - var10.substring(6).split("\\."); - int var14 = Integer.parseInt(var10.substring(6).split("\\.")[1].substring(0, 2)); - int var5 = Integer.parseInt(var10.substring(6).split("\\.")[0].substring(2)); - String[] var12 = var11.split(";")[1].split(":"); - int var6 = Integer.parseInt(var12[0]); - int var7 = Integer.parseInt(var12[1]); - if (var5 != var6 || var14 != var7) { + String action = var1.getAction(); + if (ACTION_CARE_ALARM.equals(action)) { + String alarmTime = var1.getDataString(); //alarm:ST00.43,W,CON,闹铃,2 + String currentTime = TimeUtil.getSystemTime(); + alarmTime.substring(6).split("\\."); + int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2)); + int alarmTime_hour = Integer.parseInt(alarmTime.substring(6).split("\\.")[0].substring(2)); + String[] currentTimeArray = currentTime.split(";")[1].split(":"); + int currentTime_hour = Integer.parseInt(currentTimeArray[0]); + int currentTime_minutes = Integer.parseInt(currentTimeArray[1]); + ICLogger.i("alarm time["+alarmTime_hour+":"+alarmTime_minutes+"], current time["+currentTime_hour+":"+currentTime_minutes+"]"); + if (alarmTime_hour != currentTime_hour || alarmTime_minutes != currentTime_minutes) { return false; } - if (this.haveStartActivity(this.mContext)) { + if (this.isIdle(this.mContext)) { try { - Intent var13 = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(var10)); - var13.putExtra("closeAlarm", 0); - var13.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - this.mContext.startActivity(var13); + Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime)); + intent.putExtra("closeAlarm", 0); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + this.mContext.startActivity(intent); } catch (Exception var9) { var9.printStackTrace(); } } - } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(var11)) { - var11 = var1.getDataString(); - if (this.haveStartActivity(this.mContext)) { + } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(action)) { + String alarmTime = var1.getDataString(); + if (this.isIdle(this.mContext)) { try { - var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(var11)); + var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime)); var1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.mContext.startActivity(var1); } catch (Exception var8) { @@ -712,7 +738,7 @@ public class SilentManager extends AbstractInvokeHandlerService { } else { ICLogger.i("静默闹钟来了"); boolean var4; - if (!"com.eqc.heartrate.action.SILENT_START".equals(var11) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(var11)) { + if (!"com.eqc.heartrate.action.SILENT_START".equals(action) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(action)) { var4 = false; } else { var4 = true; @@ -724,12 +750,8 @@ public class SilentManager extends AbstractInvokeHandlerService { return false; } - public boolean onUserRequest(Message var1, Connection var2, Runtime var3) { - Messenger var4 = var1.replyTo; - if (var1.what == 1005) { - this.callback(var4, this.mInSilent); - } - + @Override + public boolean onUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) { return false; }