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
+ 持续提醒