Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec959a7e authored by Imre Sunyi's avatar Imre Sunyi Committed by Android Git Automerger
Browse files

am 1429f465: am fd04143a: Shutdown when capacity is 0% and no charging or when battery is dead

Merge commit '1429f465'

* commit '1429f465':
  Shutdown when capacity is 0% and no charging or when battery is dead
parents 7dff1a72 1429f465
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -136,7 +136,13 @@ class BatteryService extends Binder {

    final boolean isPowered() {
        // assume we are powered if battery state is unknown so the "stay on while plugged in" option will work.
        return (mAcOnline || mUsbOnline || mBatteryStatus == BatteryManager.BATTERY_STATUS_UNKNOWN);
        // Do not look at the plug status to check if we are powered.
        // Charger can be plugged but not charging because of i.e. USB suspend,
        // battery temperature reasons etc. We are powered only if battery is
        // being charged. This function fill return false if charger is
        // connected and battery is reported full.
        return (mBatteryStatus == BatteryManager.BATTERY_STATUS_CHARGING ||
                mBatteryStatus == BatteryManager.BATTERY_STATUS_UNKNOWN);
    }

    final boolean isPowered(int plugTypeSet) {
@@ -148,11 +154,13 @@ class BatteryService extends Binder {
        if (plugTypeSet == 0) {
            return false;
        }

        // we are not powered when plug is connected and not charging
        int plugTypeBit = 0;
        if (mAcOnline) {
        if (mAcOnline && mBatteryStatus == BatteryManager.BATTERY_STATUS_CHARGING) {
            plugTypeBit |= BatteryManager.BATTERY_PLUGGED_AC;
        }
        if (mUsbOnline) {
        if (mUsbOnline && mBatteryStatus == BatteryManager.BATTERY_STATUS_CHARGING) {
            plugTypeBit |= BatteryManager.BATTERY_PLUGGED_USB;
        }
        return (plugTypeSet & plugTypeBit) != 0;
@@ -183,7 +191,11 @@ class BatteryService extends Binder {
    private final void shutdownIfNoPower() {
        // shut down gracefully if our battery is critically low and we are not powered.
        // wait until the system has booted before attempting to display the shutdown dialog.
        if (mBatteryLevel == 0 && !isPowered() && ActivityManagerNative.isSystemReady()) {
        // Also shutdown if battery is reported to be 'dead' independent of
        // battery level and power supply.
        if (((mBatteryLevel == 0 && !isPowered()) ||
             mBatteryHealth == BatteryManager.BATTERY_HEALTH_DEAD) &&
            ActivityManagerNative.isSystemReady()) {
            Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
            intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);