useBattery function

UseBatteryState useBattery()

Tracks battery status using battery_plus(ref link). ref link

Implementation

UseBatteryState useBattery() {
  final state = useRef(const UseBatteryState(fetched: false));
  final battery = useMemoized(() => Battery());
  final batteryStateChanged = useStream(battery.onBatteryStateChanged);
  final batteryLevel = useFuture(battery.batteryLevel);
  final isInBatterySaveMode = useFuture(battery.isInBatterySaveMode);

  state.value = UseBatteryState(
    fetched: batteryStateChanged.hasData ||
        batteryLevel.hasData ||
        isInBatterySaveMode.hasData,
    batteryLevel: batteryLevel.data,
    isInBatterySaveMode: isInBatterySaveMode.data,
    batteryState: batteryStateChanged.data,
  );

  return state.value;
}