OSDN Git Service

Update dark mode on notifications when content is updated
authorJorim Jaggi <jjaggi@google.com>
Wed, 26 Nov 2014 22:07:13 +0000 (23:07 +0100)
committerJorim Jaggi <jjaggi@google.com>
Wed, 26 Nov 2014 22:18:57 +0000 (23:18 +0100)
When a notification was updated and we were currently in doze mode,
the views were updated but not all the color filters to make it dark
on it, so we ended up with a colored notification in doze mode.

Bug: 18537470
Change-Id: Ifde70d744a4e04e4c0d13684f3c0088f279f2d78

packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
packages/SystemUI/src/com/android/systemui/statusbar/NotificationCustomViewWrapper.java
packages/SystemUI/src/com/android/systemui/statusbar/NotificationMediaViewWrapper.java
packages/SystemUI/src/com/android/systemui/statusbar/NotificationTemplateViewWrapper.java

index 27da6fd..0faad21 100644 (file)
@@ -244,6 +244,9 @@ public class NotificationContentView extends FrameLayout {
 
     public void notifyContentUpdated() {
         selectLayout(false /* animate */, true /* force */);
+        if (mContractedChild != null) {
+            mContractedWrapper.setDark(mDark, false /* animate */, 0 /* delay */);
+        }
     }
 
     public boolean isContentExpandable() {
index 045be3e..0702d7e 100644 (file)
@@ -27,7 +27,6 @@ import com.android.systemui.statusbar.phone.NotificationPanelView;
 public class NotificationCustomViewWrapper extends NotificationViewWrapper {
 
     private final ViewInvertHelper mInvertHelper;
-    private boolean mDark;
 
     protected NotificationCustomViewWrapper(View view) {
         super(view);
@@ -36,13 +35,10 @@ public class NotificationCustomViewWrapper extends NotificationViewWrapper {
 
     @Override
     public void setDark(boolean dark, boolean fade, long delay) {
-        if (mDark != dark) {
-            mDark = dark;
-            if (fade) {
-                mInvertHelper.fade(dark, delay);
-            } else {
-                mInvertHelper.update(dark);
-            }
+        if (fade) {
+            mInvertHelper.fade(dark, delay);
+        } else {
+            mInvertHelper.update(dark);
         }
     }
 }
index 8f63a79..953c373 100644 (file)
@@ -24,19 +24,14 @@ import android.view.View;
  */
 public class NotificationMediaViewWrapper extends NotificationTemplateViewWrapper {
 
-    private boolean mDark;
-
     protected NotificationMediaViewWrapper(Context ctx, View view) {
         super(ctx, view);
     }
 
     @Override
     public void setDark(boolean dark, boolean fade, long delay) {
-        if (mDark != dark) {
-            mDark = dark;
 
-            // Only update the large icon, because the rest is already inverted.
-            setPictureGrayscale(dark, fade, delay);
-        }
+        // Only update the large icon, because the rest is already inverted.
+        setPictureGrayscale(dark, fade, delay);
     }
 }
index 8dc14b0..5b6e1cd 100644 (file)
@@ -51,8 +51,6 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper {
     private final int mIconBackgroundDarkColor;
     private final Interpolator mLinearOutSlowInInterpolator;
 
-    private boolean mDark;
-
     protected NotificationTemplateViewWrapper(Context ctx, View view) {
         super(view);
         mIconDarkAlpha = ctx.getResources().getInteger(R.integer.doze_small_icon_alpha);
@@ -95,26 +93,23 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper {
 
     @Override
     public void setDark(boolean dark, boolean fade, long delay) {
-        if (mDark != dark) {
-            mDark = dark;
-            if (mInvertHelper != null) {
-                if (fade) {
-                    mInvertHelper.fade(dark, delay);
-                } else {
-                    mInvertHelper.update(dark);
-                }
+        if (mInvertHelper != null) {
+            if (fade) {
+                mInvertHelper.fade(dark, delay);
+            } else {
+                mInvertHelper.update(dark);
             }
-            if (mIcon != null) {
-                if (fade) {
-                    fadeIconColorFilter(mIcon, dark, delay);
-                    fadeIconAlpha(mIcon, dark, delay);
-                } else {
-                    updateIconColorFilter(mIcon, dark);
-                    updateIconAlpha(mIcon, dark);
-                }
+        }
+        if (mIcon != null) {
+            if (fade) {
+                fadeIconColorFilter(mIcon, dark, delay);
+                fadeIconAlpha(mIcon, dark, delay);
+            } else {
+                updateIconColorFilter(mIcon, dark);
+                updateIconAlpha(mIcon, dark);
             }
-            setPictureGrayscale(dark, fade, delay);
         }
+        setPictureGrayscale(dark, fade, delay);
     }
 
     protected void setPictureGrayscale(boolean grayscale, boolean fade, long delay) {