am e7d60bfd: Merge change 27032 into eclair
Merge commit 'e7d60bfdff35ad8eace600d2a6cb81163c966bb0' into eclair-plus-aosp
* commit 'e7d60bfdff35ad8eace600d2a6cb81163c966bb0':
BatteryService: Specify low battery levels in resources.
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index cf0dfd7..907fd8f 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -126,4 +126,9 @@
<bool name="config_use_strict_phone_number_comparation">false</bool>
+ <!-- Display low battery warning when battery level dips to this value -->
+ <integer name="config_lowBatteryWarningLevel">15</integer>
+ <!-- Close low battery warning when battery level reaches this value -->
+ <integer name="config_lowBatteryCloseWarningLevel">20</integer>
+
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index eb15183..2a55d85 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1460,8 +1460,8 @@
<string name="battery_low_subtitle">The battery is getting low:</string>
<!-- A message that appears when the battery level is getting low in a dialog. This is appened to the subtitle of the low battery alert. -->
- <string name="battery_low_percent_format">less than <xliff:g id="number">%d%%</xliff:g>
- remaining.</string>
+ <string name="battery_low_percent_format"><xliff:g id="number">%d%%</xliff:g>
+ or less remaining.</string>
<!-- When the battery is low, this is the label of the button to go to the
power usage activity to find out what drained the battery. -->
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java
index 53edf31..bb36936 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/java/com/android/server/BatteryService.java
@@ -90,9 +90,6 @@
// This should probably be exposed in the API, though it's not critical
private static final int BATTERY_PLUGGED_NONE = 0;
- private static final int BATTERY_LEVEL_CLOSE_WARNING = 20;
- private static final int BATTERY_LEVEL_WARNING = 15;
-
private final Context mContext;
private final IBatteryStats mBatteryStats;
@@ -114,7 +111,10 @@
private int mLastBatteryVoltage;
private int mLastBatteryTemperature;
private boolean mLastBatteryLevelCritical;
-
+
+ private int mLowBatteryWarningLevel;
+ private int mLowBatteryCloseWarningLevel;
+
private int mPlugType;
private int mLastPlugType = -1; // Extra state so we can detect first run
@@ -127,6 +127,11 @@
mContext = context;
mBatteryStats = BatteryStatsService.getService();
+ mLowBatteryWarningLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel);
+ mLowBatteryCloseWarningLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryCloseWarningLevel);
+
mUEventObserver.startObserving("SUBSYSTEM=power_supply");
// set initial status
@@ -271,13 +276,15 @@
final boolean oldPlugged = mLastPlugType != BATTERY_PLUGGED_NONE;
/* The ACTION_BATTERY_LOW broadcast is sent in these situations:
- * - is just un-plugged (previously was plugged) and battery level is under WARNING, or
- * - is not plugged and battery level crosses the WARNING boundary (becomes < 15).
+ * - is just un-plugged (previously was plugged) and battery level is
+ * less than or equal to WARNING, or
+ * - is not plugged and battery level falls to WARNING boundary
+ * (becomes <= mLowBatteryWarningLevel).
*/
final boolean sendBatteryLow = !plugged
&& mBatteryStatus != BatteryManager.BATTERY_STATUS_UNKNOWN
- && mBatteryLevel < BATTERY_LEVEL_WARNING
- && (oldPlugged || mLastBatteryLevel >= BATTERY_LEVEL_WARNING);
+ && mBatteryLevel <= mLowBatteryWarningLevel
+ && (oldPlugged || mLastBatteryLevel > mLowBatteryWarningLevel);
sendIntent();
@@ -299,7 +306,7 @@
mSentLowBatteryBroadcast = true;
statusIntent.setAction(Intent.ACTION_BATTERY_LOW);
mContext.sendBroadcast(statusIntent);
- } else if (mSentLowBatteryBroadcast && mLastBatteryLevel >= BATTERY_LEVEL_CLOSE_WARNING) {
+ } else if (mSentLowBatteryBroadcast && mLastBatteryLevel >= mLowBatteryCloseWarningLevel) {
mSentLowBatteryBroadcast = false;
statusIntent.setAction(Intent.ACTION_BATTERY_OKAY);
mContext.sendBroadcast(statusIntent);
diff --git a/services/java/com/android/server/status/StatusBarPolicy.java b/services/java/com/android/server/status/StatusBarPolicy.java
index da64e54..6570bcd 100644
--- a/services/java/com/android/server/status/StatusBarPolicy.java
+++ b/services/java/com/android/server/status/StatusBarPolicy.java
@@ -670,11 +670,9 @@
private void showLowBatteryWarning() {
closeLastBatteryView();
- /* Show exact battery level.
- * Add 1 because the text says "less than X%".
- */
+ // Show exact battery level.
CharSequence levelText = mContext.getString(
- com.android.internal.R.string.battery_low_percent_format, mBatteryLevel + 1);
+ com.android.internal.R.string.battery_low_percent_format, mBatteryLevel);
if (mBatteryLevelTextView != null) {
mBatteryLevelTextView.setText(levelText);