From: TrillGates Date: Tue, 14 Sep 2021 06:58:04 +0000 (+0800) Subject: completed silent time config. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=45f4b3c96a02affd0306db466722be91dac0f4bc;p=icsupport.git completed silent time config. --- diff --git a/app/src/main/java/com/enqualcomm/support/MainActivity.java b/app/src/main/java/com/enqualcomm/support/MainActivity.java index 332328de..8dfb3228 100644 --- a/app/src/main/java/com/enqualcomm/support/MainActivity.java +++ b/app/src/main/java/com/enqualcomm/support/MainActivity.java @@ -86,7 +86,6 @@ public class MainActivity extends Activity { // tesetSharedKey(); - // SimSignalUtil.send_at_to_onoff_simcard(CoreService.getInstance().runtime)); // tbtnblood.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { diff --git a/app/src/main/java/com/enqualcomm/support/provider/ICGlobalSettingsProvider.java b/app/src/main/java/com/enqualcomm/support/provider/ICGlobalSettingsProvider.java index 436e561e..477dab69 100644 --- a/app/src/main/java/com/enqualcomm/support/provider/ICGlobalSettingsProvider.java +++ b/app/src/main/java/com/enqualcomm/support/provider/ICGlobalSettingsProvider.java @@ -10,8 +10,6 @@ import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; -import com.enqualcomm.support.utils.ICLogger; - /** * 全局配置的内容提供者 * 保存数据keyValue的形式 @@ -67,10 +65,10 @@ public class ICGlobalSettingsProvider extends ContentProvider { @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, @@ -78,14 +76,14 @@ public class ICGlobalSettingsProvider extends ContentProvider { 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); 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 a5d76213..05276f9e 100644 --- a/app/src/main/java/com/enqualcomm/support/service/SilentManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/SilentManager.java @@ -477,13 +477,6 @@ public class SilentManager extends AbstractInvokeHandlerService { //设置下一个改变值的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) { @@ -543,12 +536,38 @@ public class SilentManager extends AbstractInvokeHandlerService { } 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(); @@ -556,6 +575,7 @@ public class SilentManager extends AbstractInvokeHandlerService { } query.close(); } + } public static final String SILENT_KEY = "is_force_to_silent"; diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 1cddb37a..105ac10c 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -2336,17 +2336,20 @@ public class protocol_fzd { */ 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") ? "开" : "关")); } /**