import com.enqualcomm.support.utils.TimeUtil;\r
import java.util.ArrayList;\r
import java.util.Calendar;\r
+import java.util.Date;\r
import java.util.Iterator;\r
\r
import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK;\r
import static android.telephony.TelephonyManager.CALL_STATE_RINGING;\r
+import static com.enqualcomm.support.Constants.ACTION_CARE_ALARM;\r
import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;\r
\r
public class SilentManager extends AbstractInvokeHandlerService {\r
private static final long ONE_WEEK = 604800000L;\r
+ private static final long ONE_DAY = 86400000L;\r
+\r
private ArrayList<Alarm> alarms;\r
private boolean haveHandSilence;\r
private boolean isCalling;\r
var6.append(var5);\r
var2 = var6.toString();\r
Intent var7 = new Intent(this.mContext, CoreService.class);\r
- var7.setAction("com.enqualcomm.support.ACTION_CARE_ALARM");\r
+ var7.setAction(ACTION_CARE_ALARM);\r
var7.setData(Uri.parse(var2));\r
return PendingIntent.getService(this.mContext, 0, var7, PendingIntent.FLAG_UPDATE_CURRENT);\r
}\r
this.isStheartRateTime(var2);\r
}\r
\r
- private boolean haveStartActivity(Context var1) {\r
- int var2 = ((TelephonyManager)var1.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();\r
- boolean var3;\r
- if (CALL_STATE_RINGING != var2 && CALL_STATE_OFFHOOK != var2) {\r
- var3 = true;\r
+ private boolean isIdle(Context context) {\r
+ int callstate = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();\r
+ boolean isidle;\r
+ if (CALL_STATE_RINGING != callstate && CALL_STATE_OFFHOOK != callstate) {\r
+ isidle = true;\r
} else {\r
- var3 = false;\r
+ isidle = false;\r
}\r
\r
- return var3 && !this.mInSilent && !this.mRuntime.getBatteryLow();\r
+ return isidle && !this.mInSilent && !this.mRuntime.getBatteryLow();\r
}\r
\r
private boolean isAntioffTime(boolean var1) {\r
if (tmpTimeInMillis <= currentTime) {\r
tmpTimeInMillis += ONE_WEEK;\r
}\r
+ Date date = new Date(tmpTimeInMillis);\r
+ ICLogger.i("set date "+date.toLocaleString());\r
PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, dayofweek);\r
AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent);\r
}\r
long tmpTimeInMillis;\r
// int dayofweek = weeklist[i] - 47;\r
// calendar.set(Calendar.DAY_OF_WEEK, dayofweek);\r
- tmpTimeInMillis = calendar.getTimeInMillis();\r
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, 0);\r
+// tmpTimeInMillis = calendar.getTimeInMillis();\r
+\r
+ Date date = new Date(System.currentTimeMillis());\r
+ ICLogger.i("date "+date.toLocaleString());\r
+ Calendar c = Calendar.getInstance();\r
+ c.setTime(date);\r
+ int wek = c.get(Calendar.DAY_OF_WEEK);\r
+ calendar.set(Calendar.DAY_OF_WEEK, wek);\r
+ tmpTimeInMillis = calendar.getTimeInMillis();\r
+ if (tmpTimeInMillis <= currentTime) {\r
+ tmpTimeInMillis += ONE_DAY;\r
+ }\r
+ date = new Date(tmpTimeInMillis);\r
+ c = Calendar.getInstance();\r
+ c.setTime(date);\r
+ wek = c.get(Calendar.DAY_OF_WEEK);\r
+\r
+ ICLogger.i("set date "+date.toLocaleString());\r
+\r
+ PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, wek);\r
AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent);\r
}\r
\r
this.mContext.unregisterReceiver(this.mAlramReceiver);\r
}\r
\r
+ @Override\r
public boolean onUserRequest(Intent var1, Connection var2, Runtime var3) {\r
- String var11 = var1.getAction();\r
- if ("com.enqualcomm.support.ACTION_CARE_ALARM".equals(var11)) {\r
- String var10 = var1.getDataString();\r
- var11 = TimeUtil.getSystemTime();\r
- var10.substring(6).split("\\.");\r
- int var14 = Integer.parseInt(var10.substring(6).split("\\.")[1].substring(0, 2));\r
- int var5 = Integer.parseInt(var10.substring(6).split("\\.")[0].substring(2));\r
- String[] var12 = var11.split(";")[1].split(":");\r
- int var6 = Integer.parseInt(var12[0]);\r
- int var7 = Integer.parseInt(var12[1]);\r
- if (var5 != var6 || var14 != var7) {\r
+ String action = var1.getAction();\r
+ if (ACTION_CARE_ALARM.equals(action)) {\r
+ String alarmTime = var1.getDataString(); //alarm:ST00.43,W,CON,闹铃,2\r
+ String currentTime = TimeUtil.getSystemTime();\r
+ alarmTime.substring(6).split("\\.");\r
+ int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2));\r
+ int alarmTime_hour = Integer.parseInt(alarmTime.substring(6).split("\\.")[0].substring(2));\r
+ String[] currentTimeArray = currentTime.split(";")[1].split(":");\r
+ int currentTime_hour = Integer.parseInt(currentTimeArray[0]);\r
+ int currentTime_minutes = Integer.parseInt(currentTimeArray[1]);\r
+ ICLogger.i("alarm time["+alarmTime_hour+":"+alarmTime_minutes+"], current time["+currentTime_hour+":"+currentTime_minutes+"]");\r
+ if (alarmTime_hour != currentTime_hour || alarmTime_minutes != currentTime_minutes) {\r
return false;\r
}\r
\r
- if (this.haveStartActivity(this.mContext)) {\r
+ if (this.isIdle(this.mContext)) {\r
try {\r
- Intent var13 = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(var10));\r
- var13.putExtra("closeAlarm", 0);\r
- var13.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
- this.mContext.startActivity(var13);\r
+ Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime));\r
+ intent.putExtra("closeAlarm", 0);\r
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
+ this.mContext.startActivity(intent);\r
} catch (Exception var9) {\r
var9.printStackTrace();\r
}\r
}\r
- } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(var11)) {\r
- var11 = var1.getDataString();\r
- if (this.haveStartActivity(this.mContext)) {\r
+ } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(action)) {\r
+ String alarmTime = var1.getDataString();\r
+ if (this.isIdle(this.mContext)) {\r
try {\r
- var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(var11));\r
+ var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime));\r
var1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
this.mContext.startActivity(var1);\r
} catch (Exception var8) {\r
} else {\r
ICLogger.i("静默闹钟来了");\r
boolean var4;\r
- if (!"com.eqc.heartrate.action.SILENT_START".equals(var11) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(var11)) {\r
+ if (!"com.eqc.heartrate.action.SILENT_START".equals(action) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(action)) {\r
var4 = false;\r
} else {\r
var4 = true;\r
return false;\r
}\r
\r
- public boolean onUserRequest(Message var1, Connection var2, Runtime var3) {\r
- Messenger var4 = var1.replyTo;\r
- if (var1.what == 1005) {\r
- this.callback(var4, this.mInSilent);\r
- }\r
-\r
+ @Override\r
+ public boolean onUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) {\r
return false;\r
}\r
\r