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.MainApp;
import info.nightscout.androidaps.events.EventChargingState;
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)
MainApp.bus().post(event);
lastEvent = event;
}
2018-04-29 22:49:43 +02:00
public EventChargingState grabChargingState(Context context) {
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() {
return lastEvent != null && lastEvent.isCharging;
}
static public EventChargingState getLastEvent() {
return lastEvent;
}
}