import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
+import android.content.ContentValues;
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 com.enqualcomm.support.bean.Alarm;
import com.enqualcomm.support.bean.Antioff;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
-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.provider.ICDatabaseHelper;
import com.enqualcomm.support.provider.ICForbiddenProvider;
+import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;
import com.enqualcomm.support.utils.AlarmHelper;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.DBHelper;
import com.enqualcomm.support.utils.ICAudioManager;
import com.enqualcomm.support.utils.ICLogger;
-import com.enqualcomm.support.utils.MissedCallContentObserver;
-import com.enqualcomm.support.utils.SharePreferenceUtil;
import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
import com.enqualcomm.support.utils.VibrateUtil;
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;
+
public class SilentManager extends AbstractInvokeHandlerService {
- private static final long ONE_WEEK = 604800000L;
- private static final long ONE_DAY = 86400000L;
AlarmManager mAlarmManager;
private AlarmReceiver mAlarmReceiver;
Connection mConnection;
mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper());
}
- ContentObserver mContentObserver = new ContentObserver(mHandler) {
- public void onChange(boolean var1) {
- ICLogger.i("静默有变化");
- SilentManager.this.silentList = SilentManager.this.querySilent();
- SilentManager.this.getSilentListStartAndEndTime();
- SilentManager.this.handleSilent(mRuntime, true);
- }
- };
private Context mContext;
private DBHelper mDbHelper;
private boolean mInSilent;
- private String mInterval;
- private boolean mIsNeedAntioff;
- private boolean mIsStheartRate;
- private MissedCallContentObserver mMissedCallContentObserver;
Runtime mRuntime;
- private int mStheartRateInterval;
- private int mTodayWeek;
- private boolean mValue_isSilence;
-
public static final int PRECISE_CALL_STATE_NOT_VALID = -1;
public static final int PRECISE_CALL_STATE_IDLE = 0; //空闲
public static final int PRECISE_CALL_STATE_ACTIVE = 1; //正在通话
}
};
- private ArrayList<Antioff> sAntioffList;
+ private ArrayList<Antioff> sAntiOffList;
private ArrayList<Silent> silentList;
- private ArrayList<StheartRate> stheartRateList;
- private ArrayList<NoticeContent> voiceNotice;
public SilentManager() {
}
}
}
- 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 var6 = var3.noticeID;
- String var7 = var3.noticeCategory;
- String var8 = var3.noticeFrequency;
- String var10 = var3.noticeContent;
- this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10, false));
- }
- }
-
private PendingIntent getPendingIntent(String args, boolean repeat) {
Intent intent = new Intent(this.mContext, CoreService.class);
intent.setAction(ACTION_IC_ALARM);
}
- private PendingIntent getPendingIntent(String var1, String var2,
- String var3, String var4, String var5, String var6, String var7
- , boolean isRepeat) {
- StringBuilder var8 = new StringBuilder("notice:");
- var8.append(var1);
- var8.append(",");
- var8.append(var2);
- var8.append(",");
- var8.append(var3);
- var8.append(",");
- var8.append(var4);
- var8.append(",");
- var8.append(var5);
- var8.append(",");
- var8.append(var6);
- var8.append(",");
- var8.append(var7);
- var1 = var8.toString();
- Intent intent = new Intent(this.mContext, CoreService.class);
- intent.putExtra("IS_REPEAT", isRepeat);
- intent.setAction("com.enqualcomm.support.ACTION_NOTICE_ALARM");
- intent.setData(Uri.parse(var1));
- return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- }
-
- private void getSilentListStartAndEndTime() {
- Calendar calendar = Calendar.getInstance();
- this.mTodayWeek = calendar.get(Calendar.DAY_OF_WEEK);
-
- Silent silent;
- Iterator it = this.silentList.iterator();
- while (it.hasNext()) {
- silent = (Silent) it.next();
- calendar.set(Calendar.SECOND, 0);
- int hour = Integer.parseInt(silent.start.substring(2, 4));
- int minutes = Integer.parseInt(silent.start.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, hour);
- calendar.set(Calendar.MINUTE, minutes);
- silent.startTimeMillis = calendar.getTimeInMillis();
- hour = Integer.parseInt(silent.end.substring(2, 4));
- minutes = Integer.parseInt(silent.end.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, hour);
- calendar.set(Calendar.MINUTE, minutes);
- silent.endTimeMillis = calendar.getTimeInMillis();
- }
-
- }
-
- private void getStartAndEndSantioffTime() {
+ private void getStartAndEndAntiOffTime() {
Calendar var1 = Calendar.getInstance();
- this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
-
Antioff var3;
- for (Iterator var2 = this.sAntioffList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
+ for (Iterator var2 = this.sAntiOffList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
var3 = (Antioff) var2.next();
var1.set(Calendar.SECOND, 0);
int var4 = Integer.parseInt(var3.start.substring(2, 4));
}
- private void getStartAndEndStheartRateTime() {
- Calendar var1 = Calendar.getInstance();
- this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
-
- StheartRate var3;
- for (Iterator var2 = this.stheartRateList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
- var3 = (StheartRate) var2.next();
- var1.set(Calendar.SECOND, 0);
- int var4 = Integer.parseInt(var3.start.substring(2, 4));
- int var5 = Integer.parseInt(var3.start.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- var3.startTimeMillis = var1.getTimeInMillis();
- var4 = Integer.parseInt(var3.end.substring(2, 4));
- var5 = Integer.parseInt(var3.end.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- }
-
- }
-
public static void setSilentConfig(Context context, boolean silent) {
-
if (silent) {
VibrateUtil.setVibPattern(0);
ICAudioManager.setMasterVolume(context, 0);
Util.SetRingMode(context, AudioManager.RINGER_MODE_SILENT, false);
} else {
- int mastervolume = Config.getMasterVolume(context);
- ICAudioManager.setMasterVolume(context, mastervolume);
+ int masterVolume = Config.getMasterVolume(context);
+ ICAudioManager.setMasterVolume(context, masterVolume);
int duration = Config.getDurationOfVibration(context);
VibrateUtil.setVibPattern(duration * 1000);
Util.SetRingMode(context, AudioManager.MODE_NORMAL, true);
}
-
-
}
- private void handSilence(Context var1, boolean var2) {
- this.mValue_isSilence = var2;
- }
-
- private void handleSilent(Runtime runtime, boolean silent) {
- int dayofweek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
- //if (dayofweek != this.mTodayWeek && (dayofweek != 1 || this.mTodayWeek != 8)) {
- if (dayofweek != this.mTodayWeek) {
- //mToday != 当天,更新一下 设置
- this.getSilentListStartAndEndTime();
- this.queryNotice();
- }
-
- boolean isSilent = this.isSilentTime();
- StringBuilder var5 = new StringBuilder();
- var5.append("inSilent=");
- var5.append(isSilent);
- ICLogger.i(var5.toString());
- if (!this.mInSilent && isSilent) {
- this.onSilentStateChange(true);
- this.handSilence(this.mContext, true);
- this.mDbHelper.upDateStatus("ON");
- } else if (this.mInSilent && !isSilent) {
- this.onSilentStateChange(false);
- this.mDbHelper.upDateStatus("OFF");
- this.handSilence(this.mContext, false);
- }
-
- this.mInSilent = isSilent;
- // this.getStartAndEndStheartRateTime();
- // this.isStheartRateTime(var2);
+ private void handleSilent() {
+ this.mInSilent = this.isSilentTime();
}
public boolean isIdle(Context context) {
return isIdle && !this.mInSilent && !this.mRuntime.getBatteryLow();
}
- private boolean isAntioffTime(boolean var1) {
- long var2 = System.currentTimeMillis();
- ArrayList var4 = this.sAntioffList;
- int var5 = this.mTodayWeek;
- var1 = true;
- if (var5 == 1) {
- this.mTodayWeek += 7;
- }
-
- Iterator var12 = var4.iterator();
-
- while (true) {
- if (!var12.hasNext()) {
- var1 = false;
- break;
- }
-
- Antioff var6 = (Antioff) var12.next();
- String var7 = var6.week;
- StringBuilder var8 = new StringBuilder();
- var8.append(this.mTodayWeek - 1);
- var8.append("");
- if (var7.contains(var8.toString())) {
- long var9 = var6.startTimeMillis - var2;
- int var11;
- if (var9 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var9 > 0L) {
- var11 = Integer.parseInt(var6.start.substring(2, 4));
- var5 = Integer.parseInt(var6.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_START);
- var8 = new StringBuilder();
- var8.append("设置起始时间=hour");
- var8.append(var11);
- var8.append("minute+");
- var8.append(var5);
- ICLogger.i(var8.toString());
- }
-
- var9 = var6.endTimeMillis - var2;
- if (var9 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var9 > 0L) {
- var11 = Integer.parseInt(var6.end.substring(2, 4));
- var5 = Integer.parseInt(var6.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_END);
- var8 = new StringBuilder();
- var8.append("设置结束时间=hour");
- var8.append(var11);
- var8.append("minute+");
- var8.append(var5);
- ICLogger.i(var8.toString());
- }
-
- if (var6.startTimeMillis <= var2 && var6.endTimeMillis > var2) {
- break;
- }
- }
- }
-
- this.mRuntime.setNeedAntioff(var1);
- return var1;
- }
-
private boolean isSilentTime() {
- long currenttime = System.currentTimeMillis();
- ArrayList slist = this.silentList;
- int todayWeek = this.mTodayWeek;
- boolean isSilent = false; //默认不在silent时间段
-// if (todayWeek == 1) {
-// this.mTodayWeek += 7;
-// }
-
- Iterator it = slist.iterator();
-
- while (true) {
- if (!it.hasNext()) {
- isSilent = false;
- break;
- }
-
- Silent silent = (Silent) it.next();
- String week = silent.week;
- StringBuilder sb = new StringBuilder();
-// sb.append(this.mTodayWeek - 1);
- sb.append(this.mTodayWeek);
- sb.append("");
- if (week.contains(sb.toString())) {
- long var9 = silent.startTimeMillis - currenttime;
- int hour, minutes;
- StringBuilder sblog;
- ICLogger.i("startTimeMillis - currenttime " + var9);
- if (var9 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var9 > 0L) {
- hour = Integer.parseInt(silent.start.substring(2, 4));
- minutes = Integer.parseInt(silent.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_START);
- sblog = new StringBuilder();
- sblog.append("设置起始时间=hour");
- sblog.append(hour);
- sblog.append("minute+");
- sblog.append(minutes);
- ICLogger.i(sblog.toString());
- }
-
- var9 = silent.endTimeMillis - currenttime;
- ICLogger.i("endTimeMillis - currenttime " + var9);
- if (var9 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var9 > 0L) {
- hour = Integer.parseInt(silent.end.substring(2, 4));
- minutes = Integer.parseInt(silent.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_END);
- sblog = new StringBuilder();
- sblog.append("设置结束时间=hour");
- sblog.append(hour);
- sblog.append("minute+");
- sblog.append(minutes);
- ICLogger.i(sblog.toString());
- }
-
- //刚好在silent时段,则直接退出
- if (silent.startTimeMillis <= currenttime && silent.endTimeMillis > currenttime) {
- isSilent = true;
- break;
- }
- } else {
- ICLogger.i(sb + " not in [" + week + "] silent is false");
- }
- }
-
- return isSilent;
- }
-
- private boolean isStheartRateTime(boolean var1) {
- long var2 = System.currentTimeMillis();
- ArrayList var4 = this.stheartRateList;
- if (this.mTodayWeek == 1) {
- this.mTodayWeek += 7;
- }
-
- Iterator var12 = var4.iterator();
-
- while (true) {
- if (var12.hasNext()) {
- StheartRate var5 = (StheartRate) var12.next();
- String var6 = var5.week;
- StringBuilder var7 = new StringBuilder();
- var7.append(this.mTodayWeek - 1);
- var7.append("");
- if (!var6.contains(var7.toString())) {
- continue;
- }
- long var8 = var5.startTimeMillis - var2;
- int var10;
- int var11;
- if (var8 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var8 > 0L) {
- var10 = Integer.parseInt(var5.start.substring(2, 4));
- var11 = Integer.parseInt(var5.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START");
- }
- var8 = var5.endTimeMillis - var2;
- if (var8 < (long) (mRuntime.getHeartBeatCycle() * 60 * 1000) && var8 > 0L) {
- var10 = Integer.parseInt(var5.end.substring(2, 4));
- var11 = Integer.parseInt(var5.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END");
- }
- if (var5.startTimeMillis > var2 || var5.endTimeMillis <= var2) {
- continue;
- }
- this.mInterval = var5.interval;
- if (!var1) {
-// AlarmHelper.setRealTimeAlarm(this.mContext, Integer.parseInt(this.mInterval), ACTION_HEATR_RATE_START);
-// this.mRuntime.getContextProxy().sendStheartRateBroadcast(ACTION_HEATR_RATE_START, 0);
+ //从数据库中读取
+ Cursor query = mContext.getContentResolver().query(Uri.parse(ICGlobalSettingsProvider.SETTINGS),
+ new String[]{"s_value"}, "s_key=?", new String[]{SILENT_KEY}, null);
+ if (query != null) {
+ if (query.moveToNext()) {
+ String string = query.getString(0);
+ ICLogger.d("is silent now ===> " + string);
+ if ("1".equals(string)) {
+ return true;
}
-
- var1 = true;
- break;
- }
-
- var1 = false;
- break;
- }
-
- return var1;
- }
-
- private void onSilentStateChange(boolean var1) {
- SharePreferenceUtil.setPrefBoolean(mContext, "KEY_ISSILENCE", var1);
- setSilentConfig(mContext, var1);
- //TODO:静音模式按W100的去实现
- //http://icfota.snicker.com.cn:8888/www/index.php?m=doc&f=view&docID=11
- if (this.voiceNotice != null) {
- if (var1) {
- this.cancelNoticeAlarm(this.voiceNotice);
- } else {
- this.setNewNoticeAlarm(this.voiceNotice);
}
+ query.close();
}
-
+ return false;
}
public static void cancelAlarm(Context context, String action, int id) {
return this.mDbHelper.queryAntioff(true);
}
- private ArrayList<NoticeContent> queryNotice() {
- String var1 = TimeUtil.getSystemTime4();
- ArrayList var2 = this.mDbHelper.queryNotice(var1);
- if (!this.mInSilent) {
- if (this.voiceNotice != null) {
- this.cancelNoticeAlarm(this.voiceNotice);
- }
-
- this.setNewNoticeAlarm(var2);
- }
-
- return var2;
- }
private ArrayList<Silent> querySilent() {
return this.mDbHelper.querySilence(true);
}
- private ArrayList<StheartRate> queryStheartRate() {
- return this.mDbHelper.queryStheartRate(true);
- }
-
private void setNewAlarm(List<Alarm> alarmArrayList) {
for (Alarm alarm : alarmArrayList) {
Log.d("setNewAlarm======", "alarm == > " + alarm);
Integer.parseInt(idStr),
Integer.parseInt(itemWeek),
alarm.name,
- 1);
+ 1, AlarmManagerUtil.ALARM_ACTION);
}
} else {
//单次
hour,
minute,
Integer.parseInt(alarm.id),
- 0, alarm.name, 1
+ 0, alarm.name, 1, AlarmManagerUtil.ALARM_ACTION
);
}
}
}
- private void setNewNoticeAlarm(ArrayList<NoticeContent> var1) {
- Iterator var19 = var1.iterator();
- while (var19.hasNext()) {
- NoticeContent var2 = (NoticeContent) var19.next();
- String var3 = var2.noticeTime;
- String var4 = var2.noticeName;
- String var5 = var2.noticeNumber;
- String var6 = var2.noticeID;
- String var7 = var2.noticeCategory;
- String var8 = var2.noticeFrequency;
- String var9 = var2.noticeContent;
- Calendar var10 = Calendar.getInstance();
- long var11 = System.currentTimeMillis();
- var10.set(Calendar.SECOND, 0);
- if (var3 != null) {
- String var13 = var3.substring(0, 4);
- String var20 = var3.substring(4, 6);
- String var14 = var3.substring(6, 8);
- String var15 = var3.substring(8, 10);
- String var16 = var3.substring(10, 12);
- var10.set(Calendar.YEAR, Integer.parseInt(var13));
- var10.set(Calendar.MONTH, Integer.parseInt(var20) - 1);
- var10.set(Calendar.DATE, Integer.parseInt(var14));
- var10.set(Calendar.HOUR_OF_DAY, Integer.parseInt(var15));
- var10.set(Calendar.MINUTE, Integer.parseInt(var16));
- long targetTime = var10.getTimeInMillis();
- if (targetTime >= var11) {
- PendingIntent targetIntent = this.getPendingIntent(var3, var4, var5,
- var6, var7, var8, var9, true);
- AlarmHelper.setAlarm(this.mAlarmManager, targetTime, targetIntent);
- }
- }
- }
-
- }
-
public void onAlarmClock(Connection var1, Runtime runtime) {
//每个心跳检查静默消息状态
- this.handleSilent(runtime, true);
+ this.handleSilent();
}
public void onAttach(Connection var1, Runtime runtime) {
this.mContext = runtime.getContextProxy().context;
this.mAlarmManager = (AlarmManager) this.mContext.getSystemService(Context.ALARM_SERVICE);
this.mDbHelper = runtime.getDbHelper();
- this.silentList = this.querySilent();
- this.getSilentListStartAndEndTime();
this.mInSilent = this.isSilentTime();
- DBHelper var3 = this.mDbHelper;
- String var4;
- if (this.mInSilent) {
- var4 = "ON";
- } else {
- var4 = "OFF";
- }
- var3.upDateorInsertDeviceStatus(var4);
- this.handSilence(this.mContext, this.mInSilent);
- this.voiceNotice = this.queryNotice();
- runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver);
this.mAlarmReceiver = new AlarmReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION_NOTICE_ALARM_CHANGE);
}
public void onDetach(Connection var1, Runtime var2) {
- var2.getContextProxy().context.getContentResolver().unregisterContentObserver(this.mContentObserver);
this.mContext.unregisterReceiver(this.mAlarmReceiver);
}
var3.append(action);
ICLogger.i(var3.toString());
if (ACTION_NOTICE_ALARM_CHANGE.equals(action)) {
- SilentManager.this.voiceNotice = SilentManager.this.queryNotice();
+ //SilentManager.this.voiceNotice = SilentManager.this.queryNotice();
} else if (ACTION_ALARM_ALARM_CHANGE.equals(action)) {
//这是英卡的闹钟库
updateIcAlarm();
- } else if ("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE".equals(action)) {
- SilentManager.this.stheartRateList = SilentManager.this.queryStheartRate();
- SilentManager.this.getStartAndEndStheartRateTime();
- SilentManager.this.isStheartRateTime(false);
- } else if ("com.eqc.heartrate.action.RESULT".equals(action)) {
- 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(var4);
- var7.append("@");
- var7.append(var5);
- var7.append(")");
} else if (ACTION_ANTIOFF_ALARM_CHANGE.equals(action)) {
- SilentManager.this.sAntioffList = SilentManager.this.queryAntiOff();
- SilentManager.this.getStartAndEndSantioffTime();
- SilentManager.this.mIsNeedAntioff = SilentManager.this.isAntioffTime(false);
+ SilentManager.this.sAntiOffList = SilentManager.this.queryAntiOff();
+ SilentManager.this.getStartAndEndAntiOffTime();
} else if (ACTION_ALARM_DELETE_ALARM.equals(action)) {
//刪除闹钟
//获取到闹钟的ID,然后进行删除
if (chars.length > 0) {
for (char aChar : chars) {
ICLogger.d("aChar==> " + aChar);
+ //开始时间
//设置N个,ID为:前缀+id+星期
- String targetAlarm = SILENT_ALARM_REQUEST_CODE_START_PREFIX + idValue + aChar;
- int alarmId = Integer.parseInt(targetAlarm);
- ICLogger.d("alarmId ==> " + alarmId);
- //AlarmManagerUtil.setAlarm(mContext, 2, );
+ String targetStartAlarm = SILENT_ALARM_REQUEST_CODE_START_PREFIX + idValue + aChar;
+ int alarmStartId = Integer.parseInt(targetStartAlarm);
+ ICLogger.d("alarmStartId ==> " + alarmStartId);
+ AlarmManagerUtil.setAlarm(mContext, 2,
+ startHour, startMinute, alarmStartId,
+ Integer.parseInt(aChar + ""),
+ "上课禁用开始" + startValue,
+ 2, AlarmManagerUtil.ALARM_SILENT_ACTION);
+ //结束时间
+ String targetEndAlarm = SILENT_ALARM_REQUEST_CODE_END_PREFIX + idValue + aChar;
+ int alarmEndId = Integer.parseInt(targetEndAlarm);
+ ICLogger.d("alarmEndId ==> " + alarmEndId);
+ AlarmManagerUtil.setAlarm(mContext, 2,
+ endHour, endMinute, alarmEndId,
+ Integer.parseInt(aChar + ""),
+ "上课禁用结束" + endValue,
+ 2, AlarmManagerUtil.ALARM_SILENT_ACTION);
}
} else {
//单次
+ //没有单次的
}
//AlarmManagerUtil.setAlarm();
} else {
+ char[] chars = weekValue.toCharArray();
//关闭时间的Alarm
-
+ for (char aChar : chars) {
+ ICLogger.d("aChar==> " + aChar);
+ String targetStartAlarm = SILENT_ALARM_REQUEST_CODE_START_PREFIX + idValue + aChar;
+ int alarmStartId = Integer.parseInt(targetStartAlarm);
+ ICLogger.d("alarmStartId ==> " + alarmStartId);
+ AlarmManagerUtil.cancelAlarm(mContext, AlarmManagerUtil.ALARM_SILENT_ACTION, alarmStartId);
+ //
+ String targetEndAlarm = SILENT_ALARM_REQUEST_CODE_END_PREFIX + idValue + aChar;
+ int alarmEndId = Integer.parseInt(targetEndAlarm);
+ ICLogger.d("alarmEndId ==> " + alarmEndId);
+ AlarmManagerUtil.cancelAlarm(mContext, AlarmManagerUtil.ALARM_SILENT_ACTION, alarmEndId);
+ }
+ }
+ //判断当前是否需要开启,设置config里的比状态即可
+ if (hour >= startHour && hour <= endHour && minute >= startMinute && minute <= endMinute) {
+ //修改Config和Settings
+ updateSettingAsSilent(true);
+ } else {
+ updateSettingAsSilent(false);
}
} catch (Exception e) {
e.printStackTrace();
}
- //如果关的,那么就取消alarm
- //对比数据
- //设置Alarm
}
query.close();
}
}
+ public static final String SILENT_KEY = "is_force_to_silent";
+
+ private void updateSettingAsSilent(boolean isSilent) {
+ mHandler.post(() -> {
+ ICLogger.d("isSilent ==> " + isSilent);
+ ContentValues contentValues = new ContentValues();
+ //注意有一个字段是is_silent,那个是静音模式,跟这个是不一样的
+ //这个禁用的,叫做is_force_to_silent
+ contentValues.put("s_key", SILENT_KEY);
+ contentValues.put("s_value", isSilent ? "1" : "0");
+ //更新到数据库里
+ mContext.getContentResolver().insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS),
+ contentValues);
+ //更新一下当前的状态
+ handleSilent();
+ });
+ }
+
//开始Alarm的前缀段
private final int SILENT_ALARM_REQUEST_CODE_START_PREFIX = 500;
//结束Alarm的前缀段
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
-import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.Content;
import com.enqualcomm.support.bean.DeviceStatus;
-import com.enqualcomm.support.bean.NoticeContent;
-import com.enqualcomm.support.bean.NotificationParam;
import com.enqualcomm.support.bean.Silent;
import com.enqualcomm.support.bean.SleepInfo;
import com.enqualcomm.support.bean.SleepRecord;
-import com.enqualcomm.support.bean.StheartRate;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.Weather;
import com.enqualcomm.support.provider.ICAlarmProvider;
import java.util.Iterator;
import java.util.List;
-import static com.enqualcomm.support.Constants.ACTION_ANTIOFF_ALARM_CHANGE;
import static com.enqualcomm.support.bean.Contact.CATEGORY_ADMIN;
import static com.enqualcomm.support.bean.Contact.CATEGORY_CALL;
import static com.enqualcomm.support.bean.Contact.CATEGORY_CARE;
resolver.delete(ICContentProvider.CONTACT_URI, where, null);
}
- private Uri insertDownLoadInfo(String var1, int var2, int var3, String var4) {
- ContentValues var5 = new ContentValues();
- var5.put("IMSI", var1);
- var5.put("TIME", var4);
- var5.put("NUMBER", var2);
- var5.put("TOTAL_NUMBER", var3);
- return this.cr.insert(ICContentProvider.DOWNLOADINFO_URL, var5);
- }
-
private void saveContactsImpl(ArrayList<Contact> contactArray,
boolean admin, boolean care,
boolean call, boolean partner,
}
}
- public void deleteMessage(Uri var1) {
- this.cr.delete(var1, (String) null, (String[]) null);
- }
-
public String deleteContactId(ContentResolver contentResolver, String name) {
String ContactId = null;
Uri uri = ContactsContract.RawContacts.CONTENT_URI;
return this.cr.insert(ICContentProvider.MESSAGE_URI, var2);
}
- public Uri insertOrUpdate(Content var1) {
- StringBuilder sb = new StringBuilder("CATEGORY=");
- sb.append(var1.category);
- sb.append(" and CONTENT='");
- sb.append(var1.content);
- sb.append("' and CONTACT_NUMBER='");
- sb.append(var1.contactNumber);
- sb.append("' and CONTACT_CATEGORY=");
- sb.append(var1.contactCategory);
- String where = sb.toString();
- Cursor cursor = this.cr.query(ICContentProvider.MESSAGE_URI, new String[]{"_id"}, where, (String[]) null, (String) null);
- long id;
- if (cursor != null) {
- if (cursor.moveToNext()) {
- id = cursor.getLong(0);
- } else {
- id = -1L;
- }
-
- cursor.close();
- } else {
- id = -1L;
- }
-
- if (id != -1L) {
- Uri var6 = ContentUris.withAppendedId(ICContentProvider.MESSAGE_URI, id);
- ContentValues var5 = new ContentValues();
- var5.put("STATUS", var1.status);
- var5.put("CONTENT", var1.content);
- this.cr.update(var6, var5, (String) null, (String[]) null);
- return var6;
- } else {
- return this.insertMessage(var1);
- }
- }
public Uri insertOrUpdate(Content content, long id) {
label21:
}
}
- public Uri insertOrUpdateDownLoadInfo(String var1, int var2, int var3, String var4) {
- StringBuilder var7 = new StringBuilder("IMSI=");
- var7.append(var1);
- String var9 = var7.toString();
- Cursor var10 = this.cr.query(ICContentProvider.DOWNLOADINFO_URL, new String[]{"_id"}, var9, (String[]) null, (String) null);
- long var5;
- if (var10 != null) {
- if (var10.moveToNext()) {
- var5 = var10.getLong(0);
- } else {
- var5 = -1L;
- }
-
- var10.close();
- } else {
- var5 = -1L;
- }
-
- if (var5 != -1L) {
- Uri var11 = ContentUris.withAppendedId(ICContentProvider.DOWNLOADINFO_URL, var5);
- ContentValues var8 = new ContentValues();
- var8.put("IMSI", var1);
- var8.put("TIME", var4);
- var8.put("NUMBER", var2);
- var8.put("TOTAL_NUMBER", var3);
- this.cr.update(var11, var8, (String) null, (String[]) null);
- return var11;
- } else {
- ICLogger.i("插入");
- return this.insertDownLoadInfo(var1, var2, var3, var4);
- }
- }
-
- public void insertOrUpdateUnreadMsg(NotificationParam var1) {
- StringBuilder var4 = new StringBuilder("id=");
- var4.append(var1.id);
- String var8 = var4.toString();
- Cursor var9 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, var8, (String[]) null, (String) null);
- boolean var2 = false;
- boolean var3 = false;
- if (var9 != null) {
- while (true) {
- var2 = var3;
- if (var9.moveToNext()) {
- int var7 = var9.getInt(0);
- if (var7 != var1.category) {
- continue;
- }
-
- Uri var5 = ContentUris.withAppendedId(ICContentProvider.UNREAD_MSG_URI, (long) var7);
- ContentValues var6 = new ContentValues();
- var6.put("category", var1.category);
- var6.put("id", var1.id);
- var6.put("count", var1.noReadmsgCount);
- var6.put("recvtime", var1.lastRevTime);
- this.cr.update(var5, var6, (String) null, (String[]) null);
- var2 = true;
- }
-
- var9.close();
- break;
- }
- }
-
- if (!var2) {
- ContentValues var10 = new ContentValues();
- var10.put("category", var1.category);
- var10.put("id", var1.id);
- var10.put("count", var1.noReadmsgCount);
- var10.put("recvtime", var1.lastRevTime);
- this.cr.insert(ICContentProvider.UNREAD_MSG_URI, var10);
- }
-
- }
-
- public void insertTest(ArrayList<Contact> var1) {
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var4 = new ContentValues[var3];
-
- for (int var2 = 0; var2 < var3; ++var2) {
- Contact var5 = (Contact) var1.get(var2);
- ContentValues var6 = new ContentValues();
- var4[var2] = var6;
- var6.put("CATEGORY", var5.category);
- var6.put("NAME", var5.name);
- var6.put("NUMBER", var5.number);
- var6.put("ICON", var5.icon_index);
- var6.put("EXTRA", var5.extra);
- }
-
- this.cr.bulkInsert(ICContentProvider.CONTACT_URI, var4);
- }
-
- }
public List<Alarm> queryIcAlarm() {
ArrayList<Alarm> alarms = new ArrayList<>();
return var6;
}
- public Contact queryContactIconInfo(String var1) {
- String var2 = var1;
- Cursor var4 = this.cr.query(ICContentProvider.CONTACT_URI, (String[]) null, "NUMBER=?", new String[]{var1}, "CATEGORY ASC");
- Contact var5 = null;
- Contact var3 = null;
- if (var4 != null) {
- var5 = var3;
- if (var4.moveToNext()) {
- var5 = new Contact(var4.getInt(1), var4.getString(2), var4.getString(3), var4.getString(4), var4.getString(5));
- }
-
- var4.close();
- }
-
- var3 = var5;
- if (var5 == null) {
- String var7 = var2;
- if (var2.contains("@")) {
- var7 = var2.substring(2);
- }
-
- Cursor var6 = this.context.getContentResolver().query(ICContentProvider.CONTACT_URI, (String[]) null, "EXTRA=?", new String[]{var7}, "CATEGORY ASC");
- var3 = var5;
- if (var6 != null) {
- if (var6.moveToNext()) {
- var5 = new Contact(var6.getInt(1), var6.getString(2), var6.getString(3), var6.getString(4), var6.getString(5));
- }
-
- var4.close();
- var3 = var5;
- }
- }
-
- return var3;
- }
-
- public ArrayList<NoticeContent> queryNotice(String var1) {
- ArrayList noticelist = new ArrayList();
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.NOTICE_URL;
- StringBuilder var5 = new StringBuilder();
- var5.append("TIME like '");
- var5.append(var1);
- var5.append("%'");
- Cursor cr_notice = var3.query(var4, (String[]) null, var5.toString(), (String[]) null, (String) null);
- if (cr_notice != null) {
- while (true) {
- if (!cr_notice.moveToNext()) {
- cr_notice.close();
- break;
- }
-
- noticelist.add(new NoticeContent(cr_notice.getString(1),
- cr_notice.getString(2),
- cr_notice.getString(3),
- cr_notice.getString(4),
- cr_notice.getString(5),
- cr_notice.getString(6),
- cr_notice.getString(7)));
- }
- }
-
- return noticelist;
- }
-
public ArrayList<Silent> querySilence(boolean var1) {
ContentResolver var3 = this.cr;
Uri var4 = ICContentProvider.SILENT_URI;
return var6;
}
- public ArrayList<StheartRate> queryStheartRate(boolean var1) {
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.STHEART_RATE_URL;
- String var2;
- if (var1) {
- var2 = "STATUS='ON'";
- } else {
- var2 = null;
- }
-
- Cursor var5 = var3.query(var4, (String[]) null, var2, (String[]) null, (String) null);
- ArrayList var6 = new ArrayList();
- if (var5 != null) {
- while (var5.moveToNext()) {
- var6.add(new StheartRate(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
- }
-
- var5.close();
- }
-
- return var6;
- }
-
- public NotificationParam queryUnreadMsg(String id, int value) {
-
- Cursor cursor = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, new StringBuilder("id=").append(id).toString(), (String[]) null, (String) null);
- NotificationParam ret = null;
-
- if (cursor != null) {
- while (true) {
- if (cursor.moveToNext()) {
- if (cursor.getInt(0) != value) {
- continue;
- }
- ret = new NotificationParam(value, cursor.getString(1), cursor.getInt(2), cursor.getLong(3));
- }
-
- cursor.close();
- break;
- }
- }
-
- return ret;
- }
-
- public ArrayList<NotificationParam> queryUnreadMsg() {
- ArrayList var1 = new ArrayList();
- Cursor var2 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, (String[]) null, (String) null, (String[]) null, (String) null);
- if (var2 != null) {
- while (true) {
- if (!var2.moveToNext()) {
- var2.close();
- break;
- }
-
- var1.add(new NotificationParam(var2.getInt(0), var2.getString(1), var2.getInt(2), Long.valueOf(var2.getLong(3))));
- }
- }
-
- return var1;
- }
-
- public void resetDatabase() {
- this.cr.delete(ICContentProvider.NOTICE_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.URLDOWNLOADPIC_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.DEVICESTATUS_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.DOWNLOADINFO_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.IKNOWLEDGE_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.WEATHER_URL, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.ALARM_URI, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.CONTACT_URI, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.MESSAGE_URI, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.SILENT_URI, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.ANTIOFF_URI, (String) null, (String[]) null);
- this.cr.delete(ICContentProvider.UNREAD_MSG_URI, (String) null, (String[]) null);
- }
-
-
- public void saveAntioff(ArrayList<Antioff> paramArrayList) {
- String str;
- Cursor cursor = this.cr.query(ICContentProvider.ANTIOFF_URI, null, null, null, null);
- if (cursor != null) {
- for (str = null; cursor.moveToNext(); str = cursor.getString(5)) ;
- cursor.close();
- } else {
- str = null;
- }
- this.cr.delete(ICContentProvider.ANTIOFF_URI, null, null);
- int i = paramArrayList.size();
- if (i != 0) {
- ContentValues[] arrayOfContentValues = new ContentValues[i];
- for (byte b = 0; b < i; b++) {
- Antioff antioff = paramArrayList.get(b);
- ContentValues contentValues = new ContentValues();
- arrayOfContentValues[b] = contentValues;
- contentValues.put("START_TIME", antioff.start);
- contentValues.put("END_TIME", antioff.end);
- contentValues.put("WEEK", antioff.week);
- contentValues.put("STATUS", antioff.status);
- contentValues.put("CUR_SYS_STATUS", str);
- }
- this.cr.bulkInsert(ICContentProvider.ANTIOFF_URI, arrayOfContentValues);
- }
- this.context.sendBroadcast(new Intent(ACTION_ANTIOFF_ALARM_CHANGE));
- }
-
public void saveContacts(final ArrayList<Contact> contactArray, boolean admin, boolean care, boolean call,
boolean partner, boolean video, boolean sos) {
try {
}
}
- public void saveNoticeContent(ArrayList<NoticeContent> var1) {
- this.cr.delete(ICContentProvider.NOTICE_URL, (String) null, (String[]) null);
- if (var1 != null) {
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var4 = new ContentValues[var3];
-
- for (int var2 = 0; var2 < var3; ++var2) {
- NoticeContent var5 = (NoticeContent) var1.get(var2);
- ContentValues var6 = new ContentValues();
- var4[var2] = var6;
- var6.put("TIME", var5.noticeTime);
- var6.put("NAME", var5.noticeName);
- var6.put("NUMBER", var5.noticeNumber);
- var6.put("ID", var5.noticeID);
- var6.put("CATEGORY", var5.noticeCategory);
- var6.put("FREQUENCY", var5.noticeFrequency);
- var6.put("CONTENT", var5.noticeContent);
- }
-
- this.cr.bulkInsert(ICContentProvider.NOTICE_URL, var4);
- }
- }
-
- this.context.sendBroadcast(new Intent("com.enqualcomm.support.ACTION_NOTICE_ALARM_CHANGE"));
- }
-
public void saveSilent(ArrayList<Silent> sList) {
Cursor cursor = this.cr.query(ICContentProvider.SILENT_URI,
(String[]) null, (String) null, (String[]) null, (String) null);
}
- public void saveStheartRateList(ArrayList<StheartRate> var1) {
- StringBuilder var4 = new StringBuilder();
- var4.append("stheartRateListSize=");
- var4.append(var1.size());
- var4.append("stheartRateList=");
- var4.append(var1.toString());
- ICLogger.i(var4.toString());
- this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String) null, (String[]) null);
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var7 = new ContentValues[var3];
-
- for (int var2 = 0; var2 < var3; ++var2) {
- StheartRate var5 = (StheartRate) var1.get(var2);
- ContentValues var6 = new ContentValues();
- var7[var2] = var6;
- var6.put("START_TIME", var5.start);
- var6.put("END_TIME", var5.end);
- var6.put("WEEK", var5.week);
- var6.put("STATUS", var5.status);
- var6.put("INTERVAL", var5.interval);
- }
-
- this.cr.bulkInsert(ICContentProvider.STHEART_RATE_URL, var7);
- }
-
- this.context.sendBroadcast(new Intent("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE"));
- }
-
public void saveUrlDownloadPic(String var1) {
String[] var8 = var1.split(",");
this.cr.update(ICContentProvider.DEVICESTATUS_URL, var2, (String) null, (String[]) null);
}
- public void upDateorInsertDeviceStatus(String var1) {
- Cursor var2 = this.cr.query(ICContentProvider.DEVICESTATUS_URL, (String[]) null, (String) null, (String[]) null, (String) null);
- ContentValues var3 = new ContentValues();
- var3.put("IS_SILENCE", var1);
- if (var2 != null) {
- if (var2.getCount() == 0) {
- this.cr.insert(ICContentProvider.DEVICESTATUS_URL, var3);
- return;
- }
- this.cr.update(ICContentProvider.DEVICESTATUS_URL, var3, (String) null, (String[]) null);
- }
-
- }
-
-
public void updateMessage(Content var1, Uri var2) {
ContentValues var3 = new ContentValues();
var3.put("CATEGORY", var1.category);