Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b26afa3e authored by Selim Cinek's avatar Selim Cinek
Browse files

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
parent d43bc31e
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -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;
    }
+8 −0
Original line number Diff line number Diff line
@@ -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();
+3 −2
Original line number Diff line number Diff line
@@ -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);