调整当前电量初始化时的默认值。处理bean类序列化问题,未调试。
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#Created by .winboll/winboll_app_build.gradle
|
||||
#Tue Dec 16 20:17:03 HKT 2025
|
||||
#Tue Dec 16 13:12:57 GMT 2025
|
||||
stageCount=9
|
||||
libraryProject=
|
||||
baseVersion=15.14
|
||||
publishVersion=15.14.8
|
||||
buildCount=0
|
||||
buildCount=4
|
||||
baseBetaVersion=15.14.9
|
||||
|
||||
@@ -297,7 +297,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
if (mViewHolder == null || mAppConfigUtils == null) return;
|
||||
|
||||
int nChargeReminderValue = mAppConfigUtils.getChargeReminderValue();
|
||||
int nUsegeReminderValue = mAppConfigUtils.getUsegeReminderValue();
|
||||
int nUsegeReminderValue = mAppConfigUtils.getUsageReminderValue();
|
||||
int nCurrentValue = mAppConfigUtils.getCurrentValue();
|
||||
|
||||
if (mViewHolder.llLeftSeekBar != null && mViewHolder.llRightSeekBar != null && mDrawableFrame != null) {
|
||||
@@ -327,7 +327,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
mViewHolder.chargeReminderSeekBar.setProgress(nChargeReminderValue);
|
||||
}
|
||||
if (mViewHolder.cbIsEnableChargeReminder != null) {
|
||||
mViewHolder.cbIsEnableChargeReminder.setChecked(mAppConfigUtils.getIsEnableChargeReminder());
|
||||
mViewHolder.cbIsEnableChargeReminder.setChecked(mAppConfigUtils.isEnableChargeReminder());
|
||||
}
|
||||
|
||||
if (mViewHolder.tvUsegeReminderValue != null) {
|
||||
@@ -338,7 +338,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
mViewHolder.usegeReminderSeekBar.setProgress(nUsegeReminderValue);
|
||||
}
|
||||
if (mViewHolder.cbIsEnableUsegeReminder != null) {
|
||||
mViewHolder.cbIsEnableUsegeReminder.setChecked(mAppConfigUtils.getIsEnableUsegeReminder());
|
||||
mViewHolder.cbIsEnableUsegeReminder.setChecked(mAppConfigUtils.isEnableUsageReminder());
|
||||
}
|
||||
|
||||
if (mViewHolder.tvCurrentValue != null) {
|
||||
@@ -368,7 +368,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
mViewHolder.cbIsEnableChargeReminder.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mAppConfigUtils.setIsEnableChargeReminder(mViewHolder.cbIsEnableChargeReminder.isChecked());
|
||||
mAppConfigUtils.setEnableChargeReminder(mViewHolder.cbIsEnableChargeReminder.isChecked());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -380,7 +380,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
mViewHolder.cbIsEnableUsegeReminder.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mAppConfigUtils.setIsEnableUsegeReminder(mViewHolder.cbIsEnableUsegeReminder.isChecked());
|
||||
mAppConfigUtils.setEnableUsageReminder(mViewHolder.cbIsEnableUsegeReminder.isChecked());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -589,7 +589,7 @@ public class MainActivity extends WinBoLLActivity {
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
if (mAppConfigUtils == null || mViewHolder == null || mViewHolder.tvUsegeReminderValue == null) return;
|
||||
int nUsegeReminderValue = ((VerticalSeekBar) seekBar)._mnProgress;
|
||||
mAppConfigUtils.setUsegeReminderValue(nUsegeReminderValue);
|
||||
mAppConfigUtils.setUsageReminderValue(nUsegeReminderValue);
|
||||
mViewHolder.tvUsegeReminderValue.setText(String.valueOf(nUsegeReminderValue) + "%");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,95 +1,115 @@
|
||||
package cc.winboll.studio.powerbell.models;
|
||||
|
||||
/**
|
||||
* @Author ZhanGSKen<zhangsken@qq.com>
|
||||
* @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&豆包大模型<zhangsken@qq.com>
|
||||
* @Date 2024/04/29 17:24:53
|
||||
* @Describe 应用运行参数类(电池提醒配置、电量状态等)
|
||||
*/
|
||||
public class AppConfigBean extends BaseBean implements Serializable {
|
||||
// ====================== 核心修复:序列化版本号(固定不变,解决崩溃) ======================
|
||||
private static final long serialVersionUID = -2588138142254163296L; // 直接用崩溃日志中的流版本号
|
||||
|
||||
transient public static final String TAG = "AppConfigBean";
|
||||
// ====================== 常量定义(默认值抽离,统一管理) ======================
|
||||
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; // 默认满电
|
||||
|
||||
boolean isEnableUsegeReminder = false;
|
||||
int usegeReminderValue = 45;
|
||||
boolean isEnableChargeReminder = false;
|
||||
int chargeReminderValue = 100;
|
||||
// 铃声提醒间隔时间。.
|
||||
int reminderIntervalTime = 5000;
|
||||
// 电池是否正在充电。
|
||||
boolean isCharging = false;
|
||||
// 电池当前电量。.
|
||||
int currentValue = -1;
|
||||
// ====================== 成员变量(规范命名+访问控制,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;
|
||||
|
||||
// ====================== 构造方法(简化逻辑,与默认值保持一致) ======================
|
||||
public AppConfigBean() {
|
||||
setChargeReminderValue(100);
|
||||
setIsEnableChargeReminder(false);
|
||||
setUsegeReminderValue(10);
|
||||
setIsEnableUsegeReminder(false);
|
||||
setReminderIntervalTime(5000);
|
||||
// 直接复用常量默认值,无需重复赋值(构造方法逻辑极简)
|
||||
}
|
||||
|
||||
public void setReminderIntervalTime(int reminderIntervalTime) {
|
||||
this.reminderIntervalTime = reminderIntervalTime;
|
||||
// ====================== Getter/Setter(规范命名+参数校验,避免非法值) ======================
|
||||
public boolean isEnableUsageReminder() {
|
||||
return isEnableUsageReminder;
|
||||
}
|
||||
|
||||
public int getReminderIntervalTime() {
|
||||
return reminderIntervalTime;
|
||||
public void setEnableUsageReminder(boolean enableUsageReminder) {
|
||||
isEnableUsageReminder = enableUsageReminder;
|
||||
}
|
||||
|
||||
public void setIsCharging(boolean isCharging) {
|
||||
this.isCharging = isCharging;
|
||||
public int getUsageReminderValue() {
|
||||
return usageReminderValue;
|
||||
}
|
||||
|
||||
public boolean isCharging() {
|
||||
return isCharging;
|
||||
}
|
||||
|
||||
public void setCurrentValue(int currentValue) {
|
||||
this.currentValue = currentValue;
|
||||
}
|
||||
|
||||
public int getCurrentValue() {
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
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 void setUsageReminderValue(int usageReminderValue) {
|
||||
// 校验:电量阈值限制在0-100之间,避免非法值导致业务异常
|
||||
this.usageReminderValue = Math.min(Math.max(usageReminderValue, 0), 100);
|
||||
}
|
||||
|
||||
public boolean isEnableChargeReminder() {
|
||||
return isEnableChargeReminder;
|
||||
}
|
||||
|
||||
public void setChargeReminderValue(int chargeReminderValue) {
|
||||
this.chargeReminderValue = chargeReminderValue;
|
||||
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 int getReminderIntervalTime() {
|
||||
return reminderIntervalTime;
|
||||
}
|
||||
|
||||
public void setReminderIntervalTime(int reminderIntervalTime) {
|
||||
// 校验:间隔时间不小于1秒(1000ms),避免过短触发频繁提醒
|
||||
this.reminderIntervalTime = Math.max(reminderIntervalTime, 1000);
|
||||
}
|
||||
|
||||
// 瞬时状态字段:仅保留Get/Set,无序列化影响
|
||||
public boolean isCharging() {
|
||||
return isCharging;
|
||||
}
|
||||
|
||||
public void setCharging(boolean charging) {
|
||||
isCharging = charging;
|
||||
}
|
||||
|
||||
public int getCurrentValue() {
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
public void setCurrentValue(int currentValue) {
|
||||
// 校验:当前电量限制在0-100之间
|
||||
this.currentValue = Math.min(Math.max(currentValue, 0), 100);
|
||||
}
|
||||
|
||||
// ====================== 父类方法重写(补全JSON序列化逻辑,兼容所有配置字段) ======================
|
||||
@Override
|
||||
public String getName() {
|
||||
return AppConfigBean.class.getName();
|
||||
@@ -98,11 +118,12 @@ public class AppConfigBean extends BaseBean implements Serializable {
|
||||
@Override
|
||||
public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
|
||||
super.writeThisToJsonWriter(jsonWriter);
|
||||
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());
|
||||
// 仅序列化「配置类字段」,瞬时状态(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()); // 补全之前遗漏的间隔时间序列化
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,20 +132,29 @@ public class AppConfigBean extends BaseBean implements Serializable {
|
||||
jsonReader.beginObject();
|
||||
while (jsonReader.hasNext()) {
|
||||
String name = jsonReader.nextName();
|
||||
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();
|
||||
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;
|
||||
}
|
||||
}
|
||||
// 结束 JSON 对象
|
||||
jsonReader.endObject();
|
||||
return bean;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public class ControlCenterServiceReceiver extends BroadcastReceiver {
|
||||
appConfigUtils.loadAppConfigBean();
|
||||
AppConfigBean appConfigBean = appConfigUtils.mAppConfigBean;
|
||||
appConfigBean.setCurrentValue(nTheQuantityOfElectricity);
|
||||
appConfigBean.setIsCharging(isCharging);
|
||||
appConfigBean.setCharging(isCharging);
|
||||
mwrService.get().startRemindThread(appConfigBean);
|
||||
|
||||
// 保存电池报告
|
||||
|
||||
@@ -35,7 +35,7 @@ public class GlobalApplicationReceiver extends BroadcastReceiver {
|
||||
// 先设置好新电池状态标志
|
||||
boolean isCharging = BatteryUtils.isCharging(intent);
|
||||
if (_mIsCharging != isCharging) {
|
||||
mAppConfigUtils.setIsCharging(isCharging);
|
||||
mAppConfigUtils.setCharging(isCharging);
|
||||
}
|
||||
int nTheQuantityOfElectricity = BatteryUtils.getTheQuantityOfElectricity(intent);
|
||||
if (_mnTheQuantityOfElectricityOld != nTheQuantityOfElectricity) {
|
||||
|
||||
@@ -132,9 +132,9 @@ public class ControlCenterService extends Service {
|
||||
|
||||
String getValuesString() {
|
||||
String szReturn = "Usege: ";
|
||||
szReturn += mAppConfigUtils.getIsEnableUsegeReminder() ? Integer.toString(mAppConfigUtils.getUsegeReminderValue()) : "?";
|
||||
szReturn += mAppConfigUtils.isEnableUsageReminder() ? Integer.toString(mAppConfigUtils.getUsageReminderValue()) : "?";
|
||||
szReturn += "% Charge: ";
|
||||
szReturn += mAppConfigUtils.getIsEnableChargeReminder() ? Integer.toString(mAppConfigUtils.getChargeReminderValue()) : "?";
|
||||
szReturn += mAppConfigUtils.isEnableChargeReminder() ? Integer.toString(mAppConfigUtils.getChargeReminderValue()) : "?";
|
||||
szReturn += "%\nCurrent: " + Integer.toString(mAppConfigUtils.getCurrentValue()) + "%";
|
||||
return szReturn;
|
||||
}
|
||||
@@ -185,9 +185,9 @@ public class ControlCenterService extends Service {
|
||||
} else {
|
||||
// 提醒进程正在进行中就更新状态后退出
|
||||
mRemindThread.setChargeReminderValue(appConfigBean.getChargeReminderValue());
|
||||
mRemindThread.setUsegeReminderValue(appConfigBean.getUsegeReminderValue());
|
||||
mRemindThread.setUsegeReminderValue(appConfigBean.getUsageReminderValue());
|
||||
mRemindThread.setIsEnableChargeReminder(appConfigBean.isEnableChargeReminder());
|
||||
mRemindThread.setIsEnableUsegeReminder(appConfigBean.isEnableUsegeReminder());
|
||||
mRemindThread.setIsEnableUsegeReminder(appConfigBean.isEnableUsageReminder());
|
||||
mRemindThread.setSleepTime(appConfigBean.getReminderIntervalTime());
|
||||
mRemindThread.setIsCharging(appConfigBean.isCharging());
|
||||
mRemindThread.setQuantityOfElectricity(appConfigBean.getCurrentValue());
|
||||
@@ -196,12 +196,12 @@ public class ControlCenterService extends Service {
|
||||
}
|
||||
}
|
||||
mRemindThread.setChargeReminderValue(appConfigBean.getChargeReminderValue());
|
||||
mRemindThread.setUsegeReminderValue(appConfigBean.getUsegeReminderValue());
|
||||
mRemindThread.setUsegeReminderValue(appConfigBean.getUsageReminderValue());
|
||||
mRemindThread.setSleepTime(appConfigBean.getReminderIntervalTime());
|
||||
mRemindThread.setIsCharging(appConfigBean.isCharging());
|
||||
mRemindThread.setQuantityOfElectricity(appConfigBean.getCurrentValue());
|
||||
mRemindThread.setIsEnableChargeReminder(appConfigBean.isEnableChargeReminder());
|
||||
mRemindThread.setIsEnableUsegeReminder(appConfigBean.isEnableUsegeReminder());
|
||||
mRemindThread.setIsEnableUsegeReminder(appConfigBean.isEnableUsageReminder());
|
||||
mRemindThread.start();
|
||||
//LogUtils.d(TAG, "mRemindThread.start()");
|
||||
}
|
||||
|
||||
@@ -93,22 +93,22 @@ public class AppConfigUtils {
|
||||
return bean.isEnableService();
|
||||
}
|
||||
|
||||
public void setIsEnableChargeReminder(boolean isEnableChargeReminder) {
|
||||
mAppConfigBean.setIsEnableChargeReminder(isEnableChargeReminder);
|
||||
public void setEnableChargeReminder(boolean isEnableChargeReminder) {
|
||||
mAppConfigBean.setEnableChargeReminder(isEnableChargeReminder);
|
||||
saveConfigData(MainActivity._mMainActivity);
|
||||
}
|
||||
|
||||
public boolean getIsEnableChargeReminder() {
|
||||
public boolean isEnableChargeReminder() {
|
||||
return mAppConfigBean.isEnableChargeReminder();
|
||||
}
|
||||
|
||||
public void setIsEnableUsegeReminder(boolean isEnableUsegeReminder) {
|
||||
mAppConfigBean.setIsEnableUsegeReminder(isEnableUsegeReminder);
|
||||
public void setEnableUsageReminder(boolean isEnableUsegeReminder) {
|
||||
mAppConfigBean.setEnableUsageReminder(isEnableUsegeReminder);
|
||||
saveConfigData(MainActivity._mMainActivity);
|
||||
}
|
||||
|
||||
public boolean getIsEnableUsegeReminder() {
|
||||
return mAppConfigBean.isEnableUsegeReminder();
|
||||
public boolean isEnableUsageReminder() {
|
||||
return mAppConfigBean.isEnableUsageReminder();
|
||||
}
|
||||
|
||||
public void setChargeReminderValue(int value) {
|
||||
@@ -120,17 +120,17 @@ public class AppConfigUtils {
|
||||
return mAppConfigBean.getChargeReminderValue();
|
||||
}
|
||||
|
||||
public void setUsegeReminderValue(int value) {
|
||||
mAppConfigBean.setUsegeReminderValue(value);
|
||||
public void setUsageReminderValue(int value) {
|
||||
mAppConfigBean.setUsageReminderValue(value);
|
||||
saveConfigData(MainActivity._mMainActivity);
|
||||
}
|
||||
|
||||
public int getUsegeReminderValue() {
|
||||
return mAppConfigBean.getUsegeReminderValue();
|
||||
public int getUsageReminderValue() {
|
||||
return mAppConfigBean.getUsageReminderValue();
|
||||
}
|
||||
|
||||
public void setIsCharging(boolean isCharging) {
|
||||
mAppConfigBean.setIsCharging(isCharging);
|
||||
public void setCharging(boolean isCharging) {
|
||||
mAppConfigBean.setCharging(isCharging);
|
||||
}
|
||||
|
||||
public boolean isCharging() {
|
||||
@@ -162,9 +162,9 @@ public class AppConfigUtils {
|
||||
bean = new AppConfigBean();
|
||||
AppConfigBean.saveBean(mContext, mAppConfigBean);
|
||||
}
|
||||
mAppConfigBean.setIsEnableUsegeReminder(bean.isEnableUsegeReminder());
|
||||
mAppConfigBean.setUsegeReminderValue(bean.getUsegeReminderValue());
|
||||
mAppConfigBean.setIsEnableChargeReminder(bean.isEnableChargeReminder());
|
||||
mAppConfigBean.setEnableUsageReminder(bean.isEnableUsageReminder());
|
||||
mAppConfigBean.setUsageReminderValue(bean.getUsageReminderValue());
|
||||
mAppConfigBean.setEnableChargeReminder(bean.isEnableChargeReminder());
|
||||
mAppConfigBean.setChargeReminderValue(bean.getChargeReminderValue());
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ public class BatteryDrawable extends Drawable {
|
||||
// 电量颜色画笔
|
||||
final Paint mPaint;
|
||||
// 电量值
|
||||
int mnValue = 1;
|
||||
int mnValue = 100;
|
||||
|
||||
// @int color : 电量颜色
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user