Merge "Fixed a bug where the icon of children could be colored" into nyc-dev

This commit is contained in:
TreeHugger Robot
2016-04-22 07:28:30 +00:00
committed by Android (Google) Code Review
9 changed files with 43 additions and 28 deletions

View File

@@ -1346,7 +1346,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
expandButton.setVisibility(VISIBLE); expandButton.setVisibility(VISIBLE);
mNotificationHeader.setOnClickListener(mExpandClickListener); mNotificationHeader.setOnClickListener(mExpandClickListener);
mNotificationHeaderWrapper = NotificationViewWrapper.wrap(getContext(), mNotificationHeaderWrapper = NotificationViewWrapper.wrap(getContext(),
mNotificationHeader); mNotificationHeader, this);
addView(mNotificationHeader, indexOfChild(mChildrenContainer) + 1); addView(mNotificationHeader, indexOfChild(mChildrenContainer) + 1);
mTranslateableViews.add(mNotificationHeader); mTranslateableViews.add(mNotificationHeader);
} else { } else {

View File

@@ -307,7 +307,8 @@ public class NotificationContentView extends FrameLayout {
addView(child); addView(child);
mContractedChild = child; mContractedChild = child;
mContractedChild.addOnLayoutChangeListener(mLayoutUpdater); mContractedChild.addOnLayoutChangeListener(mLayoutUpdater);
mContractedWrapper = NotificationViewWrapper.wrap(getContext(), child); mContractedWrapper = NotificationViewWrapper.wrap(getContext(), child,
mContainingNotification);
selectLayout(false /* animate */, true /* force */); selectLayout(false /* animate */, true /* force */);
mContractedWrapper.setDark(mDark, false /* animate */, 0 /* delay */); mContractedWrapper.setDark(mDark, false /* animate */, 0 /* delay */);
} }
@@ -321,7 +322,8 @@ public class NotificationContentView extends FrameLayout {
addView(child); addView(child);
mExpandedChild = child; mExpandedChild = child;
mExpandedChild.addOnLayoutChangeListener(mLayoutUpdater); mExpandedChild.addOnLayoutChangeListener(mLayoutUpdater);
mExpandedWrapper = NotificationViewWrapper.wrap(getContext(), child); mExpandedWrapper = NotificationViewWrapper.wrap(getContext(), child,
mContainingNotification);
selectLayout(false /* animate */, true /* force */); selectLayout(false /* animate */, true /* force */);
} }
@@ -334,7 +336,8 @@ public class NotificationContentView extends FrameLayout {
addView(child); addView(child);
mHeadsUpChild = child; mHeadsUpChild = child;
mHeadsUpChild.addOnLayoutChangeListener(mLayoutUpdater); mHeadsUpChild.addOnLayoutChangeListener(mLayoutUpdater);
mHeadsUpWrapper = NotificationViewWrapper.wrap(getContext(), child); mHeadsUpWrapper = NotificationViewWrapper.wrap(getContext(), child,
mContainingNotification);
selectLayout(false /* animate */, true /* force */); selectLayout(false /* animate */, true /* force */);
} }

View File

@@ -23,13 +23,16 @@ import android.os.Bundle;
import android.service.notification.StatusBarNotification; import android.service.notification.StatusBarNotification;
import android.view.View; import android.view.View;
import com.android.systemui.statusbar.ExpandableNotificationRow;
/** /**
* Wraps a notification containing a big picture template * Wraps a notification containing a big picture template
*/ */
public class NotificationBigPictureTemplateViewWrapper extends NotificationTemplateViewWrapper { public class NotificationBigPictureTemplateViewWrapper extends NotificationTemplateViewWrapper {
protected NotificationBigPictureTemplateViewWrapper(Context ctx, View view) { protected NotificationBigPictureTemplateViewWrapper(Context ctx, View view,
super(ctx, view); ExpandableNotificationRow row) {
super(ctx, view, row);
} }
@Override @Override

View File

@@ -21,6 +21,7 @@ import android.service.notification.StatusBarNotification;
import android.view.View; import android.view.View;
import com.android.internal.widget.ImageFloatingTextView; import com.android.internal.widget.ImageFloatingTextView;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.TransformableView; import com.android.systemui.statusbar.TransformableView;
/** /**
@@ -30,8 +31,9 @@ public class NotificationBigTextTemplateViewWrapper extends NotificationTemplate
private ImageFloatingTextView mBigtext; private ImageFloatingTextView mBigtext;
protected NotificationBigTextTemplateViewWrapper(Context ctx, View view) { protected NotificationBigTextTemplateViewWrapper(Context ctx, View view,
super(ctx, view); ExpandableNotificationRow row) {
super(ctx, view, row);
} }
private void resolveViews(StatusBarNotification notification) { private void resolveViews(StatusBarNotification notification) {

View File

@@ -30,6 +30,7 @@ import android.view.View;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.ViewInvertHelper; import com.android.systemui.ViewInvertHelper;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationPanelView;
/** /**
@@ -44,8 +45,8 @@ public class NotificationCustomViewWrapper extends NotificationViewWrapper {
private boolean mShouldInvertDark; private boolean mShouldInvertDark;
private boolean mShowingLegacyBackground; private boolean mShowingLegacyBackground;
protected NotificationCustomViewWrapper(View view) { protected NotificationCustomViewWrapper(View view, ExpandableNotificationRow row) {
super(view); super(view, row);
mInvertHelper = new ViewInvertHelper(view, NotificationPanelView.DOZE_ANIMATION_DURATION); mInvertHelper = new ViewInvertHelper(view, NotificationPanelView.DOZE_ANIMATION_DURATION);
} }

View File

@@ -36,6 +36,7 @@ import android.widget.ImageView;
import com.android.systemui.Interpolators; import com.android.systemui.Interpolators;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.ViewInvertHelper; import com.android.systemui.ViewInvertHelper;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.TransformableView; import com.android.systemui.statusbar.TransformableView;
import com.android.systemui.statusbar.ViewTransformationHelper; import com.android.systemui.statusbar.ViewTransformationHelper;
import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationPanelView;
@@ -61,8 +62,8 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper {
private ImageView mExpandButton; private ImageView mExpandButton;
private NotificationHeaderView mNotificationHeader; private NotificationHeaderView mNotificationHeader;
protected NotificationHeaderViewWrapper(Context ctx, View view) { protected NotificationHeaderViewWrapper(Context ctx, View view, ExpandableNotificationRow row) {
super(view); super(view, row);
mIconDarkAlpha = ctx.getResources().getInteger(R.integer.doze_small_icon_alpha); mIconDarkAlpha = ctx.getResources().getInteger(R.integer.doze_small_icon_alpha);
mInvertHelper = new ViewInvertHelper(ctx, NotificationPanelView.DOZE_ANIMATION_DURATION); mInvertHelper = new ViewInvertHelper(ctx, NotificationPanelView.DOZE_ANIMATION_DURATION);
mTransformationHelper = new ViewTransformationHelper(); mTransformationHelper = new ViewTransformationHelper();
@@ -156,7 +157,9 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper {
} else { } else {
mInvertHelper.update(dark); mInvertHelper.update(dark);
} }
if (mIcon != null) { if (mIcon != null && !mRow.isChildInGroup()) {
// We don't update the color for children views / their icon is invisible anyway.
// It also may lead to bugs where the icon isn't correctly greyed out.
boolean hadColorFilter = mNotificationHeader.getOriginalIconColor() boolean hadColorFilter = mNotificationHeader.getOriginalIconColor()
!= NotificationHeaderView.NO_COLOR; != NotificationHeaderView.NO_COLOR;
if (fade) { if (fade) {

View File

@@ -20,6 +20,7 @@ import android.content.Context;
import android.service.notification.StatusBarNotification; import android.service.notification.StatusBarNotification;
import android.view.View; import android.view.View;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.TransformableView; import com.android.systemui.statusbar.TransformableView;
/** /**
@@ -27,8 +28,9 @@ import com.android.systemui.statusbar.TransformableView;
*/ */
public class NotificationMediaTemplateViewWrapper extends NotificationTemplateViewWrapper { public class NotificationMediaTemplateViewWrapper extends NotificationTemplateViewWrapper {
protected NotificationMediaTemplateViewWrapper(Context ctx, View view) { protected NotificationMediaTemplateViewWrapper(Context ctx, View view,
super(ctx, view); ExpandableNotificationRow row) {
super(ctx, view, row);
} }
View mActions; View mActions;

View File

@@ -25,11 +25,10 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import com.android.systemui.Interpolators;
import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.TransformableView; import com.android.systemui.statusbar.TransformableView;
import com.android.systemui.statusbar.ViewTransformationHelper; import com.android.systemui.statusbar.ViewTransformationHelper;
import com.android.systemui.statusbar.stack.StackStateAnimator;
/** /**
* Wraps a notification view inflated from a template. * Wraps a notification view inflated from a template.
@@ -43,8 +42,8 @@ public class NotificationTemplateViewWrapper extends NotificationHeaderViewWrapp
private TextView mTitle; private TextView mTitle;
private TextView mText; private TextView mText;
protected NotificationTemplateViewWrapper(Context ctx, View view) { protected NotificationTemplateViewWrapper(Context ctx, View view, ExpandableNotificationRow row) {
super(ctx, view); super(ctx, view, row);
mTransformationHelper.setCustomTransformation( mTransformationHelper.setCustomTransformation(
new ViewTransformationHelper.CustomTransformation() { new ViewTransformationHelper.CustomTransformation() {
@Override @Override

View File

@@ -26,7 +26,7 @@ import android.view.View;
import com.android.systemui.Interpolators; import com.android.systemui.Interpolators;
import com.android.systemui.statusbar.CrossFadeHelper; import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.NotificationContentView; import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.TransformableView; import com.android.systemui.statusbar.TransformableView;
import com.android.systemui.statusbar.phone.NotificationPanelView; import com.android.systemui.statusbar.phone.NotificationPanelView;
@@ -38,28 +38,30 @@ public abstract class NotificationViewWrapper implements TransformableView {
protected final ColorMatrix mGrayscaleColorMatrix = new ColorMatrix(); protected final ColorMatrix mGrayscaleColorMatrix = new ColorMatrix();
protected final View mView; protected final View mView;
protected final ExpandableNotificationRow mRow;
protected boolean mDark; protected boolean mDark;
protected boolean mDarkInitialized = false; protected boolean mDarkInitialized = false;
public static NotificationViewWrapper wrap(Context ctx, View v) { public static NotificationViewWrapper wrap(Context ctx, View v, ExpandableNotificationRow row) {
if (v.getId() == com.android.internal.R.id.status_bar_latest_event_content) { if (v.getId() == com.android.internal.R.id.status_bar_latest_event_content) {
if ("bigPicture".equals(v.getTag())) { if ("bigPicture".equals(v.getTag())) {
return new NotificationBigPictureTemplateViewWrapper(ctx, v); return new NotificationBigPictureTemplateViewWrapper(ctx, v, row);
} else if ("bigText".equals(v.getTag())) { } else if ("bigText".equals(v.getTag())) {
return new NotificationBigTextTemplateViewWrapper(ctx, v); return new NotificationBigTextTemplateViewWrapper(ctx, v, row);
} else if ("media".equals(v.getTag()) || "bigMediaNarrow".equals(v.getTag())) { } else if ("media".equals(v.getTag()) || "bigMediaNarrow".equals(v.getTag())) {
return new NotificationMediaTemplateViewWrapper(ctx, v); return new NotificationMediaTemplateViewWrapper(ctx, v, row);
} }
return new NotificationTemplateViewWrapper(ctx, v); return new NotificationTemplateViewWrapper(ctx, v, row);
} else if (v instanceof NotificationHeaderView) { } else if (v instanceof NotificationHeaderView) {
return new NotificationHeaderViewWrapper(ctx, v); return new NotificationHeaderViewWrapper(ctx, v, row);
} else { } else {
return new NotificationCustomViewWrapper(v); return new NotificationCustomViewWrapper(v, row);
} }
} }
protected NotificationViewWrapper(View view) { protected NotificationViewWrapper(View view, ExpandableNotificationRow row) {
mView = view; mView = view;
mRow = row;
} }
/** /**