import android.support.annotation.Nullable;
import android.text.TextUtils;
-import com.enqualcomm.support.utils.ICLogger;
-
/**
* 全局配置的内容提供者
* 保存数据keyValue的形式
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
int match = sUriMatcher.match(uri);
- ICLogger.d("match code == > " + match);
+ //ICLogger.d("match code == > " + match);
if (match == MATH_CODE_TABLE && values != null) {
String key = (String) values.get(ICDatabaseHelper.sKey);
- ICLogger.d("key == > " + key);
+ //ICLogger.d("key == > " + key);
SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase();
if (!TextUtils.isEmpty(key)) {
Cursor query = writableDatabase.query(ICDatabaseHelper.tSettings,
null, null, null);
Uri targetUri;
if (query != null && query.moveToNext()) {
- ICLogger.d("do update == > " + key);
+ //ICLogger.d("do update == > " + key);
writableDatabase.update(ICDatabaseHelper.tSettings,
values, ICDatabaseHelper.sKey + "=?",
new String[]{key});
targetUri = Uri.parse(SETTINGS + "/" + query.getInt(query.getColumnIndex(ICDatabaseHelper.sId)));
query.close();
} else {
- ICLogger.d("do insert == > " + key);
+ //ICLogger.d("do insert == > " + key);
//为了确保key唯一,没有在sql上加约束,所以先查询一下吧。如果有就走更新
long rowId = writableDatabase.insert(ICDatabaseHelper.tSettings,
null, values);
//设置下一个改变值的Alarm
//Alarm的前缀段是:500,后缀段是id组成alarm的requestCode
public void handleSilentFromDb() {
- //当前时间小时,分钟,当前星期
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- int hour = calendar.get(Calendar.HOUR_OF_DAY);
- int minute = calendar.get(Calendar.MINUTE);
- int week = calendar.get(Calendar.DAY_OF_WEEK);
- ICLogger.d("current hour ==> " + hour + " minute ==> " + minute + " week ==> " + week);
//遍历数据
Cursor query = mContext.getContentResolver().query(Uri.parse(ICForbiddenProvider.FORBIDDEN), null, null, null, null);
if (query != null) {
} else {
this.cancelSilentAlarmById(idValue, weekValue);
}
- //判断当前是否需要开启,设置config里的比状态即可
- if (hour >= startHour && hour <= endHour && minute >= startMinute && minute <= endMinute) {
+
+ //当前时间小时,分钟,当前星期
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ int weekIndex = calendar.get(Calendar.DAY_OF_WEEK);
+ ICLogger.d("weekIndex ==> " + weekIndex);
+ if (weekValue.contains(String.valueOf(weekIndex))) {
+ long currentTime = calendar.getTimeInMillis();
+ //开始时间
+ Calendar startCalendar = Calendar.getInstance();
+ startCalendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get
+ (Calendar.DAY_OF_MONTH), startHour, startMinute, 0);
+ long startMillis = startCalendar.getTimeInMillis();
+
+ //结束时间
+ Calendar endCalendar = Calendar.getInstance();
+ endCalendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get
+ (Calendar.DAY_OF_MONTH), endHour, endMinute, 0);
+ long endMillis = endCalendar.getTimeInMillis();
+
+ ICLogger.d("currentTime ==> " + currentTime
+ + " startMillis==> " + startMillis
+ + " endMillis==> " + endMillis);
+ //判断当前是否需要开启,设置config里的比状态即可
//修改Config和Settings
- updateSettingAsSilent(true);
- } else {
- updateSettingAsSilent(false);
+ //在时间段内,如果是OFF的话还是会false
+ if (currentTime >= startMillis && currentTime <= endMillis
+ && "ON".equals(statusValue)) {
+ updateSettingAsSilent(true);
+ } else {
+ updateSettingAsSilent(false);
+ }
}
} catch (Exception e) {
e.printStackTrace();
}
query.close();
}
+
}
public static final String SILENT_KEY = "is_force_to_silent";
*/
private void handleSettings(CMD_TYPE cmd, String data, Runtime mRuntime) {
ICLogger.d(cmd + " trigger setting --> " + data);
+ //设置数据入库
ContentResolver resolver = mRuntime.getContextProxy().getResolver();
ContentValues values = new ContentValues();
values.put(ICDatabaseHelper.sKey, cmdMap.get(cmd));
values.put(ICDatabaseHelper.sValue, data);
resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
- if (data.equals("1")) {
- Util.setSystemProperties("persist.sys.whitelist.enable", "true");
- } else {
- Util.setSystemProperties("persist.sys.whitelist.enable", "false");
+ if (cmd == CMD_TYPE.WLKEY) {
+ if (data.equals("1")) {
+ Util.setSystemProperties("persist.sys.whitelist.enable", "true");
+ } else {
+ Util.setSystemProperties("persist.sys.whitelist.enable", "false");
+ }
+ ICLogger.i("收到服务器指令:白名单" + (data.equals("1") ? "开" : "关"));
}
- ICLogger.i("收到服务器指令:白名单" + (data.equals("1") ? "开" : "关"));
}
/**