summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-08-20 18:56:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-16 04:29:45 +0000
commit163676496b0ad0514932103b8644f9fcab7f58a5 (patch)
tree8f32c4da2e0f49d3f82ba59ce8558e019e843ad7 /packages
parentd88c24ef9f9dc4f076a35703df904a1a8ca597b2 (diff)
parent708f7721e910d2c1fe984d2b8a6bf10565a00a61 (diff)
downloadframeworks_base-163676496b0ad0514932103b8644f9fcab7f58a5.zip
frameworks_base-163676496b0ad0514932103b8644f9fcab7f58a5.tar.gz
frameworks_base-163676496b0ad0514932103b8644f9fcab7f58a5.tar.bz2
Merge "Remove battery color when in power save" into lmp-dev
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/res/values/arrays.xml2
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/BatteryMeterView.java31
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java3
4 files changed, 36 insertions, 2 deletions
diff --git a/packages/SystemUI/res/values/arrays.xml b/packages/SystemUI/res/values/arrays.xml
index 630a48d..6102aa6 100644
--- a/packages/SystemUI/res/values/arrays.xml
+++ b/packages/SystemUI/res/values/arrays.xml
@@ -25,7 +25,7 @@
<item>100</item>
</array>
<array name="batterymeter_color_values">
- <item>#FFFF3300</item>
+ <item>@*android:color/battery_saver_mode_color</item>
<item>#FFFFFFFF</item>
</array>
<array name="batterymeter_bolt_points">
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index b9ffdbb..5e2f784 100755
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -33,7 +33,10 @@ import android.provider.Settings;
import android.util.AttributeSet;
import android.view.View;
-public class BatteryMeterView extends View implements DemoMode {
+import com.android.systemui.statusbar.policy.BatteryController;
+
+public class BatteryMeterView extends View implements DemoMode,
+ BatteryController.BatteryStateChangeCallback {
public static final String TAG = BatteryMeterView.class.getSimpleName();
public static final String ACTION_LEVEL_TEST = "com.android.systemui.BATTERY_LEVEL_TEST";
@@ -68,6 +71,9 @@ public class BatteryMeterView extends View implements DemoMode {
private final Path mClipPath = new Path();
private final Path mTextPath = new Path();
+ private BatteryController mBatteryController;
+ private boolean mPowerSaveEnabled;
+
private class BatteryTracker extends BroadcastReceiver {
public static final int UNKNOWN_LEVEL = -1;
@@ -155,6 +161,7 @@ public class BatteryMeterView extends View implements DemoMode {
// preload the battery level
mTracker.onReceive(getContext(), sticky);
}
+ mBatteryController.addStateChangedCallback(this);
}
@Override
@@ -162,6 +169,7 @@ public class BatteryMeterView extends View implements DemoMode {
super.onDetachedFromWindow();
getContext().unregisterReceiver(mTracker);
+ mBatteryController.removeStateChangedCallback(this);
}
public BatteryMeterView(Context context) {
@@ -227,6 +235,22 @@ public class BatteryMeterView extends View implements DemoMode {
mBoltPoints = loadBoltPoints(res);
}
+ public void setBatteryController(BatteryController batteryController) {
+ mBatteryController = batteryController;
+ mPowerSaveEnabled = mBatteryController.isPowerSave();
+ }
+
+ @Override
+ public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
+ // TODO: Use this callback instead of own broadcast receiver.
+ }
+
+ @Override
+ public void onPowerSaveChanged() {
+ mPowerSaveEnabled = mBatteryController.isPowerSave();
+ invalidate();
+ }
+
private static float[] loadBoltPoints(Resources res) {
final int[] pts = res.getIntArray(R.array.batterymeter_bolt_points);
int maxX = 0, maxY = 0;
@@ -251,6 +275,11 @@ public class BatteryMeterView extends View implements DemoMode {
}
private int getColorForLevel(int percent) {
+
+ // If we are in power save mode, always use the normal color.
+ if (mPowerSaveEnabled) {
+ return mColors[mColors.length-1];
+ }
int thresh, color = 0;
for (int i=0; i<mColors.length; i+=2) {
thresh = mColors[i];
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
index 5e5c3aa..650a14f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -30,6 +30,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import com.android.systemui.BatteryMeterView;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
@@ -135,6 +136,7 @@ public class KeyguardStatusBarView extends RelativeLayout
public void setBatteryController(BatteryController batteryController) {
mBatteryController = batteryController;
+ ((BatteryMeterView) findViewById(R.id.battery)).setBatteryController(batteryController);
}
public void setUserInfoController(UserInfoController userInfoController) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index decf231..502c37d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -109,6 +109,7 @@ import android.widget.TextView;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.keyguard.KeyguardHostView.OnDismissAction;
import com.android.keyguard.ViewMediatorCallback;
+import com.android.systemui.BatteryMeterView;
import com.android.systemui.DemoMode;
import com.android.systemui.EventLogTags;
import com.android.systemui.R;
@@ -845,6 +846,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mUserInfoController.reloadUserInfo();
mHeader.setBatteryController(mBatteryController);
+ ((BatteryMeterView) mStatusBarView.findViewById(R.id.battery)).setBatteryController(
+ mBatteryController);
mKeyguardStatusBar.setBatteryController(mBatteryController);
mHeader.setNextAlarmController(mNextAlarmController);