AndroidAPS/app/src/main/java/info/nightscout/androidaps/receivers/ChargingStateReceiver.java

45 lines
1.4 KiB
Java
Raw Normal View History

package info.nightscout.androidaps.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.BatteryManager;
import info.nightscout.androidaps.events.EventChargingState;
2019-10-15 13:31:55 +02:00
import info.nightscout.androidaps.plugins.bus.RxBus;
public class ChargingStateReceiver extends BroadcastReceiver {
private static EventChargingState lastEvent;
@Override
public void onReceive(Context context, Intent intent) {
2018-04-29 22:49:43 +02:00
EventChargingState event = grabChargingState(context);
if (event != null)
2019-10-15 13:31:55 +02:00
RxBus.INSTANCE.send(event);
lastEvent = event;
}
2019-11-21 00:07:50 +01:00
public static EventChargingState grabChargingState(Context context) {
2018-04-29 22:49:43 +02:00
BatteryManager bm = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
2018-08-13 23:57:16 +02:00
if (bm == null)
return new EventChargingState(false);
2018-04-29 22:49:43 +02:00
int status = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_STATUS);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING
|| status == BatteryManager.BATTERY_STATUS_FULL;
EventChargingState event = new EventChargingState(isCharging);
return event;
}
static public boolean isCharging() {
2019-08-15 17:10:36 +02:00
return lastEvent != null && lastEvent.isCharging();
}
static public EventChargingState getLastEvent() {
return lastEvent;
}
}