Be more lenient when processing group headers
We are now only looking at the contracted header instead of all sorts of headers and if the current header is null, we don't look any further but consider it to be equal. Bug: 62378776 Test: add notification groups with multiple headers, observe correct icon / text behavior Change-Id: I0b83b91caaace30df3bdcba7225e93bd0e195484
This commit is contained in:
@@ -756,6 +756,19 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
|
||||
return getShowingLayout().getVisibleNotificationHeader();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the contracted notification header. This can be different from
|
||||
* {@link #getNotificationHeader()} and also {@link #getVisibleNotificationHeader()} and only
|
||||
* returns the contracted version.
|
||||
*/
|
||||
public NotificationHeaderView getContractedNotificationHeader() {
|
||||
if (mIsSummaryWithChildren) {
|
||||
return mChildrenContainer.getHeaderView();
|
||||
}
|
||||
return mPrivateLayout.getContractedNotificationHeader();
|
||||
}
|
||||
|
||||
public void setOnExpandClickListener(OnExpandClickListener onExpandClickListener) {
|
||||
mOnExpandClickListener = onExpandClickListener;
|
||||
}
|
||||
|
||||
@@ -1308,6 +1308,14 @@ public class NotificationContentView extends FrameLayout {
|
||||
return header;
|
||||
}
|
||||
|
||||
|
||||
public NotificationHeaderView getContractedNotificationHeader() {
|
||||
if (mContractedChild != null) {
|
||||
return mContractedWrapper.getNotificationHeader();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public NotificationHeaderView getVisibleNotificationHeader() {
|
||||
NotificationViewWrapper wrapper = getVisibleWrapper(mVisibleType);
|
||||
return wrapper == null ? null : wrapper.getNotificationHeader();
|
||||
|
||||
@@ -267,9 +267,10 @@ public class NotificationHeaderUtil {
|
||||
if (!mApply) {
|
||||
return;
|
||||
}
|
||||
NotificationHeaderView header = row.getNotificationHeader();
|
||||
NotificationHeaderView header = row.getContractedNotificationHeader();
|
||||
if (header == null) {
|
||||
mApply = false;
|
||||
// No header found. We still consider this to be the same to avoid weird flickering
|
||||
// when for example showing an undo notification
|
||||
return;
|
||||
}
|
||||
Object childData = mExtractor == null ? null : mExtractor.extractData(row);
|
||||
|
||||
Reference in New Issue
Block a user