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;
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;
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;
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;
private boolean haveHandSilence;
private boolean isCalling;
AlarmManager mAlarmManager;
- private SilentManager.AlramReceiver mAlarmReceiver;
+ private AlarmReceiver mAlarmReceiver;
Connection mConnection;
private static Handler mHandler;
private static SilentManager mSilentManger = null;
public static SilentManager getInstance() {
- if (mSilentManger == null)
+ if (mSilentManger == null) {
mSilentManger = new SilentManager();
+ }
return mSilentManger;
}
}
- private void cancelAlarm(List<Alarm> 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<Alarm> 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<NoticeContent> 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<NoticeContent> 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;
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);
}
- private List<Alarm> queryAlarm() {
+ public List<Alarm> queryAlarm() {
List<Alarm> alarmList = this.mDbHelper.queryAlarm();
if (!this.mInSilent) {
if (this.alarms != null) {
private void setNewNoticeAlarm(ArrayList<NoticeContent> var1) {
Iterator var19 = var1.iterator();
-
while (var19.hasNext()) {
NoticeContent var2 = (NoticeContent) var19.next();
String var3 = var2.noticeTime;
} 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);
}
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);
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);
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();
+ }
}
}
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;
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;
mConnection.send(stringMessage);
}
-
public enum CMD_TYPE {
/*终端发起*/
AP00,//登录包
}
public static StringMessage AP03(Runtime ds) {
+ ICLogger.d("创建心跳内容 ==> " + Log.getStackTraceString(new Throwable()));
//IWAP03,06000908000102,5555,30,1200#
//IWAP03,06000908000102,5555,30#
//IW: 标识符
//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);
}
}//循环获取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, "");
* @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) {
String substring = cmd.substring(cmdLen);
String[] alarmItemArray = substring.split("@");
ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+ //删除之前先取消已经设置的闹钟
+ List<Alarm> 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) {
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);
//入库