From f3c74f34999337b8eb77e1a5ed0287561b512c21 Mon Sep 17 00:00:00 2001 From: Brian Muramatsu Date: Fri, 31 Aug 2012 15:14:48 -0700 Subject: [PATCH] Make battery shutdown temperature configurable Bug 7079455 Change-Id: I448f21231bf0548ef975f99482576acb24a1a70e --- core/res/res/values/config.xml | 3 +++ core/res/res/values/public.xml | 1 + .../java/com/android/server/BatteryService.java | 15 ++++++++++----- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 86d03adea78fc..c9b1abe881244 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -471,6 +471,9 @@ Also, the battery stats are flushed to disk when we hit this level. --> 4 + + 680 + 15 diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 8e0eb155056fb..1e57b678a8ed4 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -1544,6 +1544,7 @@ + diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java index f0989e74dadb7..fe8529b0430f5 100644 --- a/services/java/com/android/server/BatteryService.java +++ b/services/java/com/android/server/BatteryService.java @@ -116,6 +116,7 @@ public class BatteryService extends Binder { private int mLowBatteryWarningLevel; private int mLowBatteryCloseWarningLevel; + private int mShutdownBatteryTemperature; private int mPlugType; private int mLastPlugType = -1; // Extra state so we can detect first run @@ -138,6 +139,8 @@ public class BatteryService extends Binder { com.android.internal.R.integer.config_lowBatteryWarningLevel); mLowBatteryCloseWarningLevel = mContext.getResources().getInteger( com.android.internal.R.integer.config_lowBatteryCloseWarningLevel); + mShutdownBatteryTemperature = mContext.getResources().getInteger( + com.android.internal.R.integer.config_shutdownBatteryTemperature); mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply"); @@ -228,9 +231,11 @@ public class BatteryService extends Binder { } private final void shutdownIfOverTemp() { - // shut down gracefully if temperature is too high (> 68.0C) - // wait until the system has booted before attempting to display the shutdown dialog. - if (mBatteryTemperature > 680 && ActivityManagerNative.isSystemReady()) { + // shut down gracefully if temperature is too high (> 68.0C by default) + // wait until the system has booted before attempting to display the + // shutdown dialog. + if (mBatteryTemperature > mShutdownBatteryTemperature + && ActivityManagerNative.isSystemReady()) { Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN); intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -259,7 +264,7 @@ public class BatteryService extends Binder { } else { mPlugType = BATTERY_PLUGGED_NONE; } - + // Let the battery stats keep track of the current level. try { mBatteryStats.setBatteryState(mBatteryStatus, mBatteryHealth, @@ -268,7 +273,7 @@ public class BatteryService extends Binder { } catch (RemoteException e) { // Should never happen. } - + shutdownIfNoPower(); shutdownIfOverTemp();