Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +15 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.util.FloatProperty; import android.util.Log; import android.util.Property; import android.util.TypedValue; import android.view.View; import android.view.ViewDebug; import android.view.accessibility.AccessibilityEvent; import android.view.animation.Interpolator; Loading Loading @@ -142,6 +143,7 @@ public class StatusBarIconView extends AnimatedImageView { private float[] mMatrix; private ColorMatrixColorFilter mMatrixColorFilter; private boolean mIsInShelf; private Runnable mLayoutRunnable; public StatusBarIconView(Context context, String slot, StatusBarNotification sbn) { this(context, slot, sbn, false); Loading Loading @@ -822,6 +824,19 @@ public class StatusBarIconView extends AnimatedImageView { return mIsInShelf; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); if (mLayoutRunnable != null) { mLayoutRunnable.run(); mLayoutRunnable = null; } } public void executeOnLayout(Runnable runnable) { mLayoutRunnable = runnable; } public interface OnVisibilityChangedListener { void onVisibilityChanged(int newVisibility); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +16 −10 Original line number Diff line number Diff line Loading @@ -4,10 +4,8 @@ import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.Icon; import android.support.annotation.NonNull; import android.support.v4.util.ArrayMap; import android.support.v4.util.ArraySet; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; Loading Loading @@ -269,7 +267,16 @@ public class NotificationIconAreaController implements DarkReceiver { */ private void applyNotificationIconsTint() { for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { StatusBarIconView v = (StatusBarIconView) mNotificationIcons.getChildAt(i); final StatusBarIconView iv = (StatusBarIconView) mNotificationIcons.getChildAt(i); if (iv.getWidth() != 0) { updateTintForIcon(iv); } else { iv.executeOnLayout(() -> updateTintForIcon(iv)); } } } private void updateTintForIcon(StatusBarIconView v) { boolean isPreL = Boolean.TRUE.equals(v.getTag(R.id.icon_is_pre_L)); int color = StatusBarIconView.NO_COLOR; boolean colorize = !isPreL || NotificationUtils.isGrayscale(v, mNotificationColorUtil); Loading @@ -279,7 +286,6 @@ public class NotificationIconAreaController implements DarkReceiver { v.setStaticDrawableColor(color); v.setDecorColor(mIconTint); } } public void setDark(boolean dark) { mNotificationIcons.setDark(dark, false, 0); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +15 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.util.FloatProperty; import android.util.Log; import android.util.Property; import android.util.TypedValue; import android.view.View; import android.view.ViewDebug; import android.view.accessibility.AccessibilityEvent; import android.view.animation.Interpolator; Loading Loading @@ -142,6 +143,7 @@ public class StatusBarIconView extends AnimatedImageView { private float[] mMatrix; private ColorMatrixColorFilter mMatrixColorFilter; private boolean mIsInShelf; private Runnable mLayoutRunnable; public StatusBarIconView(Context context, String slot, StatusBarNotification sbn) { this(context, slot, sbn, false); Loading Loading @@ -822,6 +824,19 @@ public class StatusBarIconView extends AnimatedImageView { return mIsInShelf; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); if (mLayoutRunnable != null) { mLayoutRunnable.run(); mLayoutRunnable = null; } } public void executeOnLayout(Runnable runnable) { mLayoutRunnable = runnable; } public interface OnVisibilityChangedListener { void onVisibilityChanged(int newVisibility); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaController.java +16 −10 Original line number Diff line number Diff line Loading @@ -4,10 +4,8 @@ import android.content.Context; import android.content.res.Resources; import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.Icon; import android.support.annotation.NonNull; import android.support.v4.util.ArrayMap; import android.support.v4.util.ArraySet; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; Loading Loading @@ -269,7 +267,16 @@ public class NotificationIconAreaController implements DarkReceiver { */ private void applyNotificationIconsTint() { for (int i = 0; i < mNotificationIcons.getChildCount(); i++) { StatusBarIconView v = (StatusBarIconView) mNotificationIcons.getChildAt(i); final StatusBarIconView iv = (StatusBarIconView) mNotificationIcons.getChildAt(i); if (iv.getWidth() != 0) { updateTintForIcon(iv); } else { iv.executeOnLayout(() -> updateTintForIcon(iv)); } } } private void updateTintForIcon(StatusBarIconView v) { boolean isPreL = Boolean.TRUE.equals(v.getTag(R.id.icon_is_pre_L)); int color = StatusBarIconView.NO_COLOR; boolean colorize = !isPreL || NotificationUtils.isGrayscale(v, mNotificationColorUtil); Loading @@ -279,7 +286,6 @@ public class NotificationIconAreaController implements DarkReceiver { v.setStaticDrawableColor(color); v.setDecorColor(mIconTint); } } public void setDark(boolean dark) { mNotificationIcons.setDark(dark, false, 0); Loading