From 7e58b506194ab250a77e6d65a1a54ed77668134e Mon Sep 17 00:00:00 2001 From: pppscn <35696959@qq.com> Date: Sun, 23 Jan 2022 22:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E7=94=B5=E9=87=8F?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6=E6=8C=81?= =?UTF-8?q?=E7=BB=AD=E9=80=9A=E7=9F=A5=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idormy/sms/forwarder/SettingActivity.java | 33 ++++++++++--------- .../sms/forwarder/sender/SenderBarkMsg.java | 2 +- .../sms/forwarder/service/BatteryService.java | 12 +++++-- .../idormy/sms/forwarder/utils/Define.java | 1 + .../sms/forwarder/utils/SettingUtil.java | 8 +++++ app/src/main/res/layout/activity_setting.xml | 18 ++++++++++ app/src/main/res/values-en/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 58 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java index 14886e6e..85153f86 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java @@ -93,8 +93,7 @@ public class SettingActivity extends AppCompatActivity { //监听电池状态变化 switchBatteryReceiver(findViewById(R.id.switch_battery_receiver)); //电量预警 - editBatteryLevelAlarmMin(findViewById(R.id.et_battery_level_alarm_min)); - editBatteryLevelAlarmMax(findViewById(R.id.et_battery_level_alarm_max)); + editBatteryLevelAlarm(findViewById(R.id.et_battery_level_alarm_min), findViewById(R.id.et_battery_level_alarm_max), findViewById(R.id.cb_battery_level_alarm_once)); //开机启动 checkWithReboot(findViewById(R.id.switch_with_reboot)); @@ -298,11 +297,10 @@ public class SettingActivity extends AppCompatActivity { }); } - //设置低电量报警值下限 - private void editBatteryLevelAlarmMin(final EditText et_battery_level_alarm) { - et_battery_level_alarm.setText(String.valueOf(SettingUtil.getBatteryLevelAlarmMin())); - - et_battery_level_alarm.addTextChangedListener(new TextWatcher() { + //设置低电量报警 + private void editBatteryLevelAlarm(final EditText et_battery_level_alarm_min, final EditText et_battery_level_alarm_max, CheckBox cb_battery_level_alarm_once) { + et_battery_level_alarm_min.setText(String.valueOf(SettingUtil.getBatteryLevelAlarmMin())); + et_battery_level_alarm_min.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @@ -313,7 +311,7 @@ public class SettingActivity extends AppCompatActivity { @Override public void afterTextChanged(Editable s) { - String batteryLevel = et_battery_level_alarm.getText().toString().trim(); + String batteryLevel = et_battery_level_alarm_min.getText().toString().trim(); if (!batteryLevel.isEmpty()) { SettingUtil.setBatteryLevelAlarmMin(Integer.parseInt(batteryLevel)); } else { @@ -321,13 +319,9 @@ public class SettingActivity extends AppCompatActivity { } } }); - } - //设置低电量报警值上限 - private void editBatteryLevelAlarmMax(final EditText et_battery_level_alarm) { - et_battery_level_alarm.setText(String.valueOf(SettingUtil.getBatteryLevelAlarmMax())); - - et_battery_level_alarm.addTextChangedListener(new TextWatcher() { + et_battery_level_alarm_max.setText(String.valueOf(SettingUtil.getBatteryLevelAlarmMax())); + et_battery_level_alarm_max.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @@ -338,7 +332,7 @@ public class SettingActivity extends AppCompatActivity { @Override public void afterTextChanged(Editable s) { - String batteryLevel = et_battery_level_alarm.getText().toString().trim(); + String batteryLevel = et_battery_level_alarm_max.getText().toString().trim(); if (!batteryLevel.isEmpty()) { SettingUtil.setBatteryLevelAlarmMax(Integer.parseInt(batteryLevel)); } else { @@ -346,6 +340,15 @@ public class SettingActivity extends AppCompatActivity { } } }); + + cb_battery_level_alarm_once.setChecked(SettingUtil.getBatteryLevelAlarmOnce()); + cb_battery_level_alarm_once.setOnCheckedChangeListener((buttonView, isChecked) -> { + SettingUtil.switchBatteryLevelAlarmOnce(isChecked); + if (isChecked && 0 == SettingUtil.getBatteryLevelAlarmMin() && 0 == SettingUtil.getBatteryLevelAlarmMax()) { + Toast.makeText(context, "【注意】电量预警阈值上下限都是0,持续提醒不起作用", Toast.LENGTH_SHORT).show(); + SettingUtil.switchEnablePhone(false); + } + }); } //开机启动 diff --git a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java index 0167ff75..d200dcbb 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java +++ b/app/src/main/java/com/idormy/sms/forwarder/sender/SenderBarkMsg.java @@ -58,7 +58,7 @@ public class SenderBarkMsg extends SenderBaseMsg { OkHttpClient.Builder builder = new OkHttpClient.Builder(); //设置重试拦截器 - //if (retryInterceptor != null) builder.addInterceptor(retryInterceptor); + if (retryInterceptor != null) builder.addInterceptor(retryInterceptor); //设置读取超时时间 OkHttpClient client = builder .readTimeout(Define.REQUEST_TIMEOUT_SECONDS, TimeUnit.SECONDS) diff --git a/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java b/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java index 4c4af431..56885bab 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java +++ b/app/src/main/java/com/idormy/sms/forwarder/service/BatteryService.java @@ -109,11 +109,19 @@ public class BatteryService extends Service { int levelMin = SettingUtil.getBatteryLevelAlarmMin(); int levelMax = SettingUtil.getBatteryLevelAlarmMax(); - if (levelMin > 0 && levelPre > levelCur && levelCur <= levelMin) { //电量下降到下限 + if (SettingUtil.getBatteryLevelAlarmOnce() && levelMin > 0 && levelPre > levelCur && levelCur <= levelMin) { //电量下降到下限 + msg = "【电量预警】已低于电量预警下限,请及时充电!" + msg; + sendMessage(context, msg); + return; + } else if (SettingUtil.getBatteryLevelAlarmOnce() && levelMax > 0 && levelPre < levelCur && levelCur >= levelMax) { //电量上升到上限 + msg = "【电量预警】已高于电量预警上限,请拔掉充电器!" + msg; + sendMessage(context, msg); + return; + } else if (!SettingUtil.getBatteryLevelAlarmOnce() && levelMin > 0 && levelPre > levelCur && levelCur == levelMin) { //电量下降到下限 msg = "【电量预警】已到达电量预警下限,请及时充电!" + msg; sendMessage(context, msg); return; - } else if (levelMax > 0 && levelPre < levelCur && levelCur >= levelMax) { //电量上升到上限 + } else if (!SettingUtil.getBatteryLevelAlarmOnce() && levelMax > 0 && levelPre < levelCur && levelCur == levelMax) { //电量上升到上限 msg = "【电量预警】已到达电量预警上限,请拔掉充电器!" + msg; sendMessage(context, msg); return; diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java index 96b4bb98..b3f031cc 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java @@ -21,6 +21,7 @@ public class Define { public static final String SP_MSG_KEY_STRING_BATTERY_LEVEL_CURRENT = "tsms_msg_key_string_battery_level_current"; public static final String SP_MSG_KEY_STRING_BATTERY_LEVEL_ALARM = "tsms_msg_key_string_battery_level_alarm"; public static final String SP_MSG_KEY_STRING_BATTERY_LEVEL_MAX = "tsms_msg_key_string_battery_level_max"; + public static final String SP_MSG_KEY_STRING_BATTERY_LEVEL_ONCE = "tsms_msg_key_string_battery_level_once"; public static final String SP_MSG_KEY_STRING_RETRY_TIMES = "tsms_msg_key_retry_times"; public static final String SP_MSG_KEY_STRING_DELAY_TIME = "tsms_msg_key_delay_time"; public static final String SP_MSG_KEY_STRING_ENABLE_SMSHUB_API = "tsms_msg_key_string_enable_smshub_api"; diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java index 5bcc9577..96119dc9 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java @@ -154,6 +154,14 @@ public class SettingUtil { return sp_setting.getInt(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_MAX, 0); } + public static void switchBatteryLevelAlarmOnce(Boolean enable) { + sp_setting.edit().putBoolean(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ONCE, enable).apply(); + } + + public static boolean getBatteryLevelAlarmOnce() { + return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_ONCE, false); + } + public static void setBatteryLevelAlarmMax(int battery_level) { sp_setting.edit().putInt(Define.SP_MSG_KEY_STRING_BATTERY_LEVEL_MAX, battery_level).apply(); } diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index acffd33c..83b1425a 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -449,6 +449,7 @@ android:layout_height="wrap_content" android:layout_marginStart="20dp" android:text="@string/below" + android:textSize="12sp" android:textStyle="bold" /> + + Retry [Test Channel] Congratulations, the sending channel test is successful, please continue to add forwarding rules! SIM1_TestOperator_18888888888 + Keep reminding diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3486761f..3866f590 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -333,4 +333,5 @@ 重试 【测试通道】恭喜您,该发送通道测试成功,请继续添加转发规则! SIM1_测试运营商_18888888888 + 持续提醒