am 580e9f72: Merge "Make battery shutdown temperature configurable" into jb-mr1-dev

* commit '580e9f72e09efc4645aa98753ad8e9806d428950':
  Make battery shutdown temperature configurable
This commit is contained in:
Brian Muramatsu
2012-09-04 22:50:55 -07:00
committed by Android Git Automerger
3 changed files with 14 additions and 5 deletions

View File

@@ -471,6 +471,9 @@
Also, the battery stats are flushed to disk when we hit this level. --> Also, the battery stats are flushed to disk when we hit this level. -->
<integer name="config_criticalBatteryWarningLevel">4</integer> <integer name="config_criticalBatteryWarningLevel">4</integer>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">680</integer>
<!-- Display low battery warning when battery level dips to this value --> <!-- Display low battery warning when battery level dips to this value -->
<!-- Display low battery warning when battery level dips to this value --> <!-- Display low battery warning when battery level dips to this value -->
<integer name="config_lowBatteryWarningLevel">15</integer> <integer name="config_lowBatteryWarningLevel">15</integer>

View File

@@ -1546,6 +1546,7 @@
<java-symbol type="integer" name="config_screenBrightnessSettingMaximum" /> <java-symbol type="integer" name="config_screenBrightnessSettingMaximum" />
<java-symbol type="integer" name="config_screenBrightnessSettingDefault" /> <java-symbol type="integer" name="config_screenBrightnessSettingDefault" />
<java-symbol type="integer" name="config_screenBrightnessDim" /> <java-symbol type="integer" name="config_screenBrightnessDim" />
<java-symbol type="integer" name="config_shutdownBatteryTemperature" />
<java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" /> <java-symbol type="integer" name="config_virtualKeyQuietTimeMillis" />
<java-symbol type="layout" name="am_compat_mode_dialog" /> <java-symbol type="layout" name="am_compat_mode_dialog" />
<java-symbol type="layout" name="launch_warning" /> <java-symbol type="layout" name="launch_warning" />

View File

@@ -116,6 +116,7 @@ public class BatteryService extends Binder {
private int mLowBatteryWarningLevel; private int mLowBatteryWarningLevel;
private int mLowBatteryCloseWarningLevel; private int mLowBatteryCloseWarningLevel;
private int mShutdownBatteryTemperature;
private int mPlugType; private int mPlugType;
private int mLastPlugType = -1; // Extra state so we can detect first run 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); com.android.internal.R.integer.config_lowBatteryWarningLevel);
mLowBatteryCloseWarningLevel = mContext.getResources().getInteger( mLowBatteryCloseWarningLevel = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryCloseWarningLevel); com.android.internal.R.integer.config_lowBatteryCloseWarningLevel);
mShutdownBatteryTemperature = mContext.getResources().getInteger(
com.android.internal.R.integer.config_shutdownBatteryTemperature);
mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply"); mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply");
@@ -228,9 +231,11 @@ public class BatteryService extends Binder {
} }
private final void shutdownIfOverTemp() { private final void shutdownIfOverTemp() {
// shut down gracefully if temperature is too high (> 68.0C) // 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. // wait until the system has booted before attempting to display the
if (mBatteryTemperature > 680 && ActivityManagerNative.isSystemReady()) { // shutdown dialog.
if (mBatteryTemperature > mShutdownBatteryTemperature
&& ActivityManagerNative.isSystemReady()) {
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN); Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false); intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -259,7 +264,7 @@ public class BatteryService extends Binder {
} else { } else {
mPlugType = BATTERY_PLUGGED_NONE; mPlugType = BATTERY_PLUGGED_NONE;
} }
// Let the battery stats keep track of the current level. // Let the battery stats keep track of the current level.
try { try {
mBatteryStats.setBatteryState(mBatteryStatus, mBatteryHealth, mBatteryStats.setBatteryState(mBatteryStatus, mBatteryHealth,
@@ -268,7 +273,7 @@ public class BatteryService extends Binder {
} catch (RemoteException e) { } catch (RemoteException e) {
// Should never happen. // Should never happen.
} }
shutdownIfNoPower(); shutdownIfNoPower();
shutdownIfOverTemp(); shutdownIfOverTemp();