This commit is contained in:
2025-01-26 14:04:24 +08:00
parent 1564156e28
commit 5a11168f98

View File

@@ -845,6 +845,7 @@ class _BatteryWidgetState extends State<_BatteryWidget> {
late int _batteryLevel = 100; late int _batteryLevel = 100;
Timer? _timer; Timer? _timer;
bool _hasBattery = false; bool _hasBattery = false;
BatteryState state = BatteryState.unknown;
@override @override
void initState() { void initState() {
@@ -856,29 +857,23 @@ class _BatteryWidgetState extends State<_BatteryWidget> {
void _checkBatteryAvailability() async { void _checkBatteryAvailability() async {
try { try {
_batteryLevel = await _battery.batteryLevel; _batteryLevel = await _battery.batteryLevel;
if (_batteryLevel != -1) { state = await _battery.batteryState;
if (_batteryLevel > 0 && state != BatteryState.unknown) {
setState(() { setState(() {
_hasBattery = true; _hasBattery = true;
});
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { _timer = Timer.periodic(const Duration(seconds: 1), (timer) {
_battery.batteryLevel.then((level) => { _battery.batteryLevel.then((level) {
if (_batteryLevel != level) if (_batteryLevel != level) {
{
setState(() { setState(() {
_batteryLevel = level; _batteryLevel = level;
})
}
});
});
});
} else {
setState(() {
_hasBattery = false;
}); });
} }
} catch (e) {
setState(() {
_hasBattery = false;
}); });
});
}
} catch (_) {
// ignore
} }
} }
@@ -900,7 +895,9 @@ class _BatteryWidgetState extends State<_BatteryWidget> {
IconData batteryIcon; IconData batteryIcon;
Color batteryColor = context.colorScheme.onSurface; Color batteryColor = context.colorScheme.onSurface;
if (batteryLevel >= 96) { if (state == BatteryState.charging) {
batteryIcon = Icons.battery_charging_full;
} else if (batteryLevel >= 96) {
batteryIcon = Icons.battery_full_sharp; batteryIcon = Icons.battery_full_sharp;
} else if (batteryLevel >= 84) { } else if (batteryLevel >= 84) {
batteryIcon = Icons.battery_6_bar_sharp; batteryIcon = Icons.battery_6_bar_sharp;