From 405b914f02bb61ed312b2b4eaa4ef86f013da80e Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Wed, 17 Dec 2025 04:37:34 +0800 Subject: [PATCH] 20251217_043730_107 --- powerbell/build.properties | 4 +- .../powerbell/models/AppConfigBean.java | 176 ++++++++---------- .../ControlCenterServiceReceiver.java | 11 +- .../powerbell/views/BatteryDrawable.java | 2 +- 4 files changed, 85 insertions(+), 108 deletions(-) diff --git a/powerbell/build.properties b/powerbell/build.properties index e2ad5b9..a4754ed 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Dec 16 13:12:57 GMT 2025 +#Tue Dec 16 20:29:08 GMT 2025 stageCount=9 libraryProject= baseVersion=15.14 publishVersion=15.14.8 -buildCount=4 +buildCount=8 baseBetaVersion=15.14.9 diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/models/AppConfigBean.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/models/AppConfigBean.java index 60eb13e..a6becc3 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/models/AppConfigBean.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/models/AppConfigBean.java @@ -1,115 +1,95 @@ package cc.winboll.studio.powerbell.models; +/** + * @Author ZhanGSKen + * @Date 2024/04/29 17:24:53 + * @Describe 应用运行参数类 + */ import android.util.JsonReader; import android.util.JsonWriter; import cc.winboll.studio.libappbase.BaseBean; import java.io.IOException; import java.io.Serializable; -/** - * @Author ZhanGSKen&豆包大模型 - * @Date 2024/04/29 17:24:53 - * @Describe 应用运行参数类(电池提醒配置、电量状态等) - */ public class AppConfigBean extends BaseBean implements Serializable { - // ====================== 核心修复:序列化版本号(固定不变,解决崩溃) ====================== - private static final long serialVersionUID = -2588138142254163296L; // 直接用崩溃日志中的流版本号 - // ====================== 常量定义(默认值抽离,统一管理) ====================== - public static final String TAG = "AppConfigBean"; - // 默认配置常量(避免魔法值,后续修改更便捷) - private static final boolean DEFAULT_ENABLE_USAGE_REMINDER = false; - private static final int DEFAULT_USAGE_REMINDER_VALUE = 10; // 低电量提醒阈值(默认10%) - private static final boolean DEFAULT_ENABLE_CHARGE_REMINDER = false; - private static final int DEFAULT_CHARGE_REMINDER_VALUE = 100; // 满电提醒阈值(默认100%) - private static final int DEFAULT_REMINDER_INTERVAL_TIME = 5000; // 提醒间隔(默认5秒) - private static final boolean DEFAULT_IS_CHARGING = false; // 默认未充电 - private static final int DEFAULT_CURRENT_VALUE = 100; // 默认满电 + transient public static final String TAG = "AppConfigBean"; - // ====================== 成员变量(规范命名+访问控制,transient排除无需序列化字段) ====================== - // 低电量提醒开关 - private boolean isEnableUsageReminder = DEFAULT_ENABLE_USAGE_REMINDER; - // 低电量提醒阈值(百分比) - private int usageReminderValue = DEFAULT_USAGE_REMINDER_VALUE; - // 满电提醒开关 - private boolean isEnableChargeReminder = DEFAULT_ENABLE_CHARGE_REMINDER; - // 满电提醒阈值(百分比) - private int chargeReminderValue = DEFAULT_CHARGE_REMINDER_VALUE; - // 铃声提醒间隔时间(毫秒) - private int reminderIntervalTime = DEFAULT_REMINDER_INTERVAL_TIME; - // 电池充电状态(瞬时状态,无需序列化,加transient) - private transient boolean isCharging = DEFAULT_IS_CHARGING; - // 当前电池电量(瞬时状态,无需序列化,加transient) - private transient int currentValue = DEFAULT_CURRENT_VALUE; + boolean isEnableUsegeReminder = false; + int usegeReminderValue = 45; + boolean isEnableChargeReminder = false; + int chargeReminderValue = 100; + // 铃声提醒间隔时间。. + int reminderIntervalTime = 5000; + // 电池是否正在充电。 + boolean isCharging = false; + // 电池当前电量。. + int currentValue = -1; - // ====================== 构造方法(简化逻辑,与默认值保持一致) ====================== public AppConfigBean() { - // 直接复用常量默认值,无需重复赋值(构造方法逻辑极简) + setChargeReminderValue(100); + setIsEnableChargeReminder(false); + setUsegeReminderValue(10); + setIsEnableUsegeReminder(false); + setReminderIntervalTime(5000); } - // ====================== Getter/Setter(规范命名+参数校验,避免非法值) ====================== - public boolean isEnableUsageReminder() { - return isEnableUsageReminder; - } - - public void setEnableUsageReminder(boolean enableUsageReminder) { - isEnableUsageReminder = enableUsageReminder; - } - - public int getUsageReminderValue() { - return usageReminderValue; - } - - public void setUsageReminderValue(int usageReminderValue) { - // 校验:电量阈值限制在0-100之间,避免非法值导致业务异常 - this.usageReminderValue = Math.min(Math.max(usageReminderValue, 0), 100); - } - - public boolean isEnableChargeReminder() { - return isEnableChargeReminder; - } - - public void setEnableChargeReminder(boolean enableChargeReminder) { - isEnableChargeReminder = enableChargeReminder; - } - - public int getChargeReminderValue() { - return chargeReminderValue; - } - - public void setChargeReminderValue(int chargeReminderValue) { - // 校验:电量阈值限制在0-100之间 - this.chargeReminderValue = Math.min(Math.max(chargeReminderValue, 0), 100); + public void setReminderIntervalTime(int reminderIntervalTime) { + this.reminderIntervalTime = reminderIntervalTime; } public int getReminderIntervalTime() { return reminderIntervalTime; } - public void setReminderIntervalTime(int reminderIntervalTime) { - // 校验:间隔时间不小于1秒(1000ms),避免过短触发频繁提醒 - this.reminderIntervalTime = Math.max(reminderIntervalTime, 1000); + public void setIsCharging(boolean isCharging) { + this.isCharging = isCharging; } - // 瞬时状态字段:仅保留Get/Set,无序列化影响 public boolean isCharging() { return isCharging; } - public void setCharging(boolean charging) { - isCharging = charging; + public void setCurrentValue(int currentValue) { + this.currentValue = currentValue; } public int getCurrentValue() { return currentValue; } - public void setCurrentValue(int currentValue) { - // 校验:当前电量限制在0-100之间 - this.currentValue = Math.min(Math.max(currentValue, 0), 100); + public void setIsEnableUsegeReminder(boolean isEnableUsegeReminder) { + this.isEnableUsegeReminder = isEnableUsegeReminder; + } + + public boolean isEnableUsegeReminder() { + return isEnableUsegeReminder; + } + + public void setUsegeReminderValue(int usegeReminderValue) { + this.usegeReminderValue = usegeReminderValue; + } + + public int getUsegeReminderValue() { + return usegeReminderValue; + } + + public void setIsEnableChargeReminder(boolean isEnableChargeReminder) { + this.isEnableChargeReminder = isEnableChargeReminder; + } + + public boolean isEnableChargeReminder() { + return isEnableChargeReminder; + } + + public void setChargeReminderValue(int chargeReminderValue) { + this.chargeReminderValue = chargeReminderValue; + } + + public int getChargeReminderValue() { + return chargeReminderValue; } - // ====================== 父类方法重写(补全JSON序列化逻辑,兼容所有配置字段) ====================== @Override public String getName() { return AppConfigBean.class.getName(); @@ -118,12 +98,11 @@ public class AppConfigBean extends BaseBean implements Serializable { @Override public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException { super.writeThisToJsonWriter(jsonWriter); - // 仅序列化「配置类字段」,瞬时状态(isCharging/currentValue)不序列化 - jsonWriter.name("isEnableUsageReminder").value(isEnableUsageReminder()); - jsonWriter.name("usageReminderValue").value(getUsageReminderValue()); - jsonWriter.name("isEnableChargeReminder").value(isEnableChargeReminder()); - jsonWriter.name("chargeReminderValue").value(getChargeReminderValue()); - jsonWriter.name("reminderIntervalTime").value(getReminderIntervalTime()); // 补全之前遗漏的间隔时间序列化 + AppConfigBean bean = this; + jsonWriter.name("isEnableUsegeReminder").value(bean.isEnableUsegeReminder()); + jsonWriter.name("usegeReminderValue").value(bean.getUsegeReminderValue()); + jsonWriter.name("isEnableChargeReminder").value(bean.isEnableChargeReminder()); + jsonWriter.name("chargeReminderValue").value(bean.getChargeReminderValue()); } @Override @@ -132,29 +111,20 @@ public class AppConfigBean extends BaseBean implements Serializable { jsonReader.beginObject(); while (jsonReader.hasNext()) { String name = jsonReader.nextName(); - switch (name) { - case "isEnableUsageReminder": - bean.setEnableUsageReminder(jsonReader.nextBoolean()); - break; - case "usageReminderValue": - bean.setUsageReminderValue(jsonReader.nextInt()); - break; - case "isEnableChargeReminder": - bean.setEnableChargeReminder(jsonReader.nextBoolean()); - break; - case "chargeReminderValue": - bean.setChargeReminderValue(jsonReader.nextInt()); - break; - case "reminderIntervalTime": - bean.setReminderIntervalTime(jsonReader.nextInt()); // 补全间隔时间反序列化 - break; - default: - jsonReader.skipValue(); // 未知字段跳过,避免解析崩溃 - break; + if (name.equals("isEnableUsegeReminder")) { + bean.setIsEnableUsegeReminder(jsonReader.nextBoolean()); + } else if (name.equals("usegeReminderValue")) { + bean.setUsegeReminderValue(jsonReader.nextInt()); + } else if (name.equals("isEnableChargeReminder")) { + bean.setIsEnableChargeReminder(jsonReader.nextBoolean()); + } else if (name.equals("chargeReminderValue")) { + bean.setChargeReminderValue(jsonReader.nextInt()); + } else { + jsonReader.skipValue(); } } + // 结束 JSON 对象 jsonReader.endObject(); return bean; } } - diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java index 421d26d..5221b13 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java @@ -67,8 +67,15 @@ public class ControlCenterServiceReceiver extends BroadcastReceiver { LogUtils.d(TAG, "ACTION_START_REMINDTHREAD"); //AppConfigUtils appConfigUtils = AppConfigUtils.getInstance(context); //appConfigUtils.loadAppConfigBean(); - AppConfigBean appConfigBean = (AppConfigBean)intent.getSerializableExtra("appConfigBean"); - mwrService.get().startRemindThread(appConfigBean); + try { + AppConfigBean appConfigBean = intent.getParcelableExtra("appConfigBean"); + if (appConfigBean != null) { + mwrService.get().startRemindThread(appConfigBean); + } + } catch (Exception e) { + LogUtils.e("ControlReceiver", "parse Parcelable config failed", e); + } + } } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/views/BatteryDrawable.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/views/BatteryDrawable.java index 722925c..a7bad9f 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/views/BatteryDrawable.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/views/BatteryDrawable.java @@ -14,7 +14,7 @@ public class BatteryDrawable extends Drawable { // 电量颜色画笔 final Paint mPaint; // 电量值 - int mnValue = 100; + int mnValue = -1; // @int color : 电量颜色 //