Loading packages/SystemUI/res/values/colors.xml +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ <color name="notification_list_shadow_top">#80000000</color> <drawable name="recents_callout_line">#99ffffff</drawable> <drawable name="heads_up_notification_bg_pressed">#ff33B5E5</drawable> <color name="batterymeter_frame_color">#66FFFFFF</color><!-- 40% white --> <color name="batterymeter_frame_color">#4DFFFFFF</color><!-- 30% white --> <color name="batterymeter_charge_color">#FFFFFFFF</color> <color name="batterymeter_bolt_color">#FFFFFFFF</color> <color name="qs_batterymeter_frame_color">#FF404040</color> Loading packages/SystemUI/res/values/ids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,11 @@ <item type="id" name="notification_power"/> <item type="id" name="notification_screenshot"/> <item type="id" name="notification_hidden"/> <!-- Whether the icon is from a notification for which targetSdk < L --> <item type="id" name="icon_is_pre_L"/> <!-- For notification icons for which targetSdk < L, this caches whether the icon is grayscale --> <item type="id" name="icon_is_grayscale" /> </resources> packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +23 −2 Original line number Diff line number Diff line Loading @@ -23,8 +23,12 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.RectF; import android.graphics.Typeface; import android.os.BatteryManager; Loading Loading @@ -56,12 +60,13 @@ public class BatteryMeterView extends View implements DemoMode, private float mSubpixelSmoothingRight; private final Paint mFramePaint, mBatteryPaint, mWarningTextPaint, mTextPaint, mBoltPaint; private float mTextHeight, mWarningTextHeight; private int mIconTint = Color.WHITE; private int mHeight; private int mWidth; private String mWarningString; private final int mCriticalLevel; private final int mChargeColor; private int mChargeColor; private final float[] mBoltPoints; private final Path mBoltPath = new Path(); Loading Loading @@ -292,11 +297,27 @@ public class BatteryMeterView extends View implements DemoMode, for (int i=0; i<mColors.length; i+=2) { thresh = mColors[i]; color = mColors[i+1]; if (percent <= thresh) return color; if (percent <= thresh) { // Respect tinting for "normal" level if (i == mColors.length-2) { return mIconTint; } else { return color; } } } return color; } public void setIconTint(int tint) { mIconTint = tint; mFramePaint.setColorFilter(new PorterDuffColorFilter(tint, PorterDuff.Mode.SRC_ATOP)); mBoltPaint.setColor(tint); mChargeColor = tint; invalidate(); } @Override public void draw(Canvas c) { BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; Loading packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +1 −5 Original line number Diff line number Diff line Loading @@ -773,11 +773,7 @@ public abstract class BaseStatusBar extends SystemUI implements } if (entry.icon != null) { if (entry.targetSdk >= Build.VERSION_CODES.LOLLIPOP) { entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white)); } else { entry.icon.setColorFilter(null); } entry.icon.setTag(R.id.icon_is_pre_L, entry.targetSdk < Build.VERSION_CODES.LOLLIPOP); } } Loading packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +36 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.statusbar; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; import android.graphics.PorterDuff; import android.telephony.SubscriptionInfo; import android.util.AttributeSet; import android.util.Log; Loading Loading @@ -55,6 +58,7 @@ public class SignalClusterView private int mAirplaneContentDescription; private String mWifiDescription; private ArrayList<PhoneState> mPhoneStates = new ArrayList<PhoneState>(); private int mIconTint = Color.WHITE; ViewGroup mWifiGroup; ImageView mVpn, mWifi, mAirplane, mNoSims; Loading Loading @@ -121,6 +125,7 @@ public class SignalClusterView } apply(); applyIconTint(); } @Override Loading Loading @@ -187,6 +192,9 @@ public class SignalClusterView for (int i = 0; i < n; i++) { inflatePhoneState(subs.get(i).getSubscriptionId()); } if (isAttachedToWindow()) { applyIconTint(); } } private PhoneState getOrInflateState(int subId) { Loading Loading @@ -315,6 +323,29 @@ public class SignalClusterView setPaddingRelative(0, 0, anythingVisible ? mEndPadding : mEndPaddingNothingVisible, 0); } public void setIconTint(int tint) { boolean changed = tint != mIconTint; mIconTint = tint; if (changed && isAttachedToWindow()) { applyIconTint(); } } private void applyIconTint() { setTint(mVpn, mIconTint); setTint(mWifi, mIconTint); setTint(mNoSims, mIconTint); setTint(mAirplane, mIconTint); for (int i = 0; i < mPhoneStates.size(); i++) { mPhoneStates.get(i).setIconTint(mIconTint); } } private void setTint(ImageView v, int tint) { v.setImageTintMode(PorterDuff.Mode.SRC_ATOP); v.setImageTintList(ColorStateList.valueOf(tint)); } private class PhoneState { private final int mSubId; private boolean mMobileVisible = false; Loading Loading @@ -369,6 +400,11 @@ public class SignalClusterView event.getText().add(mMobileGroup.getContentDescription()); } } public void setIconTint(int tint) { setTint(mMobile, tint); setTint(mMobileType, tint); } } } Loading
packages/SystemUI/res/values/colors.xml +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ <color name="notification_list_shadow_top">#80000000</color> <drawable name="recents_callout_line">#99ffffff</drawable> <drawable name="heads_up_notification_bg_pressed">#ff33B5E5</drawable> <color name="batterymeter_frame_color">#66FFFFFF</color><!-- 40% white --> <color name="batterymeter_frame_color">#4DFFFFFF</color><!-- 30% white --> <color name="batterymeter_charge_color">#FFFFFFFF</color> <color name="batterymeter_bolt_color">#FFFFFFFF</color> <color name="qs_batterymeter_frame_color">#FF404040</color> Loading
packages/SystemUI/res/values/ids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -40,5 +40,11 @@ <item type="id" name="notification_power"/> <item type="id" name="notification_screenshot"/> <item type="id" name="notification_hidden"/> <!-- Whether the icon is from a notification for which targetSdk < L --> <item type="id" name="icon_is_pre_L"/> <!-- For notification icons for which targetSdk < L, this caches whether the icon is grayscale --> <item type="id" name="icon_is_grayscale" /> </resources>
packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +23 −2 Original line number Diff line number Diff line Loading @@ -23,8 +23,12 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.RectF; import android.graphics.Typeface; import android.os.BatteryManager; Loading Loading @@ -56,12 +60,13 @@ public class BatteryMeterView extends View implements DemoMode, private float mSubpixelSmoothingRight; private final Paint mFramePaint, mBatteryPaint, mWarningTextPaint, mTextPaint, mBoltPaint; private float mTextHeight, mWarningTextHeight; private int mIconTint = Color.WHITE; private int mHeight; private int mWidth; private String mWarningString; private final int mCriticalLevel; private final int mChargeColor; private int mChargeColor; private final float[] mBoltPoints; private final Path mBoltPath = new Path(); Loading Loading @@ -292,11 +297,27 @@ public class BatteryMeterView extends View implements DemoMode, for (int i=0; i<mColors.length; i+=2) { thresh = mColors[i]; color = mColors[i+1]; if (percent <= thresh) return color; if (percent <= thresh) { // Respect tinting for "normal" level if (i == mColors.length-2) { return mIconTint; } else { return color; } } } return color; } public void setIconTint(int tint) { mIconTint = tint; mFramePaint.setColorFilter(new PorterDuffColorFilter(tint, PorterDuff.Mode.SRC_ATOP)); mBoltPaint.setColor(tint); mChargeColor = tint; invalidate(); } @Override public void draw(Canvas c) { BatteryTracker tracker = mDemoMode ? mDemoTracker : mTracker; Loading
packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +1 −5 Original line number Diff line number Diff line Loading @@ -773,11 +773,7 @@ public abstract class BaseStatusBar extends SystemUI implements } if (entry.icon != null) { if (entry.targetSdk >= Build.VERSION_CODES.LOLLIPOP) { entry.icon.setColorFilter(mContext.getResources().getColor(android.R.color.white)); } else { entry.icon.setColorFilter(null); } entry.icon.setTag(R.id.icon_is_pre_L, entry.targetSdk < Build.VERSION_CODES.LOLLIPOP); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +36 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ package com.android.systemui.statusbar; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Color; import android.graphics.PorterDuff; import android.telephony.SubscriptionInfo; import android.util.AttributeSet; import android.util.Log; Loading Loading @@ -55,6 +58,7 @@ public class SignalClusterView private int mAirplaneContentDescription; private String mWifiDescription; private ArrayList<PhoneState> mPhoneStates = new ArrayList<PhoneState>(); private int mIconTint = Color.WHITE; ViewGroup mWifiGroup; ImageView mVpn, mWifi, mAirplane, mNoSims; Loading Loading @@ -121,6 +125,7 @@ public class SignalClusterView } apply(); applyIconTint(); } @Override Loading Loading @@ -187,6 +192,9 @@ public class SignalClusterView for (int i = 0; i < n; i++) { inflatePhoneState(subs.get(i).getSubscriptionId()); } if (isAttachedToWindow()) { applyIconTint(); } } private PhoneState getOrInflateState(int subId) { Loading Loading @@ -315,6 +323,29 @@ public class SignalClusterView setPaddingRelative(0, 0, anythingVisible ? mEndPadding : mEndPaddingNothingVisible, 0); } public void setIconTint(int tint) { boolean changed = tint != mIconTint; mIconTint = tint; if (changed && isAttachedToWindow()) { applyIconTint(); } } private void applyIconTint() { setTint(mVpn, mIconTint); setTint(mWifi, mIconTint); setTint(mNoSims, mIconTint); setTint(mAirplane, mIconTint); for (int i = 0; i < mPhoneStates.size(); i++) { mPhoneStates.get(i).setIconTint(mIconTint); } } private void setTint(ImageView v, int tint) { v.setImageTintMode(PorterDuff.Mode.SRC_ATOP); v.setImageTintList(ColorStateList.valueOf(tint)); } private class PhoneState { private final int mSubId; private boolean mMobileVisible = false; Loading Loading @@ -369,6 +400,11 @@ public class SignalClusterView event.getText().add(mMobileGroup.getContentDescription()); } } public void setIconTint(int tint) { setTint(mMobile, tint); setTint(mMobileType, tint); } } }