Merge "Shutdown device gracefully when net discharging"
This commit is contained in:
@@ -356,10 +356,27 @@ public final class BatteryService extends SystemService {
|
||||
&& (oldPlugged || mLastBatteryLevel > mLowBatteryWarningLevel);
|
||||
}
|
||||
|
||||
private boolean shouldShutdownLocked() {
|
||||
if (mHealthInfo.batteryLevel > 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Battery-less devices should not shutdown.
|
||||
if (!mHealthInfo.batteryPresent) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If battery state is not CHARGING, shutdown.
|
||||
// - If battery present and state == unknown, this is an unexpected error state.
|
||||
// - If level <= 0 and state == full, this is also an unexpected state
|
||||
// - All other states (NOT_CHARGING, DISCHARGING) means it is not charging.
|
||||
return mHealthInfo.batteryStatus != BatteryManager.BATTERY_STATUS_CHARGING;
|
||||
}
|
||||
|
||||
private void shutdownIfNoPowerLocked() {
|
||||
// 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 (mHealthInfo.batteryLevel == 0 && !isPoweredLocked(BatteryManager.BATTERY_PLUGGED_ANY)) {
|
||||
if (shouldShutdownLocked()) {
|
||||
mHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Reference in New Issue
Block a user