diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_silent.png new file mode 100644 index 0000000000000..6872ec83017b5 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_silent.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_vibrate.png new file mode 100644 index 0000000000000..98520d36feeaa Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_ringer_vibrate.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_silent.png new file mode 100644 index 0000000000000..66b4741771b81 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_silent.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_vibrate.png new file mode 100644 index 0000000000000..f8abf256effe1 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_ringer_vibrate.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_silent.png new file mode 100644 index 0000000000000..629b5f8062cfc Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_silent.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_vibrate.png new file mode 100644 index 0000000000000..8e3e8b4bcb304 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_ringer_vibrate.png differ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index dbc55c843d2bf..39d56a42869ae 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -118,12 +118,7 @@ public class StatusBarIconView extends AnimatedImageView { mIcon = icon.clone(); setContentDescription(icon.contentDescription); if (!iconEquals) { - Drawable drawable = getIcon(icon); - if (drawable == null) { - Slog.w(TAG, "No icon for slot " + mSlot); - return false; - } - setImageDrawable(drawable); + if (!updateDrawable(false /* no clear */)) return false; } if (!levelEquals) { setImageLevel(icon.iconLevel); @@ -149,6 +144,23 @@ public class StatusBarIconView extends AnimatedImageView { return true; } + public void updateDrawable() { + updateDrawable(true /* with clear */); + } + + private boolean updateDrawable(boolean withClear) { + Drawable drawable = getIcon(mIcon); + if (drawable == null) { + Slog.w(TAG, "No icon for slot " + mSlot); + return false; + } + if (withClear) { + setImageDrawable(null); + } + setImageDrawable(drawable); + return true; + } + private Drawable getIcon(StatusBarIcon icon) { return getIcon(getContext(), icon); } 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 a5d782e2f87ad..3227a34b65c72 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -837,6 +837,16 @@ public class PhoneStatusBar extends BaseStatusBar { mWindowManager.addView(mIntruderAlertView, lp); } + public void refreshAllStatusBarIcons() { + final int count = mStatusIcons.getChildCount(); + for (int n = 0; n < count; n++) { + View child = mStatusIcons.getChildAt(n); + if (child instanceof StatusBarIconView) { + ((StatusBarIconView) child).updateDrawable(); + } + } + } + public void addIcon(String slot, int index, int viewIndex, StatusBarIcon icon) { if (SPEW) Slog.d(TAG, "addIcon slot=" + slot + " index=" + index + " viewIndex=" + viewIndex + " icon=" + icon); @@ -984,6 +994,8 @@ public class PhoneStatusBar extends BaseStatusBar { mNotificationButton.setImageDrawable(null); mNotificationButton.setImageResource(R.drawable.ic_notifications); } + + refreshAllStatusBarIcons(); } private void updateShowSearchHoldoff() {