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

Commit 5ecd2b8e authored by Gus Prevas's avatar Gus Prevas
Browse files

Moves snapViewIfNeeded() call to listener on NSSL.

This change removes the logic from NotificationEntryManager which snaps
an updated notification's view back into place and replaces it with a
NotificationEntryListener defined by the NotificationStackScrollLayout.
This allows us to remove a method from the NotificationListContainer
interface and gets us halfway to breaking the dependency from
NotificationEntryManager on NotificationListContainer.

Test: atest SystemUITests, manual
Change-Id: I744ece3fa660454d9725aa553ffebcfe8846a303
parent fb89efb4
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -463,12 +463,6 @@ public class NotificationEntryManager implements

        updateNotifications();

        if (!notification.isClearable()) {
            // The user may have performed a dismiss action on the notification, since it's
            // not clearable we should snap it back.
            mListContainer.snapViewIfNeeded(entry);
        }

        if (DEBUG) {
            // Is this for you?
            boolean isForCurrentUser = Dependency.get(KeyguardEnvironment.class)
+1 −9
Original line number Diff line number Diff line
@@ -16,8 +16,7 @@

package com.android.systemui.statusbar.notification.stack;

import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator
        .ExpandAnimationParameters;
import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator.ExpandAnimationParameters;

import android.view.View;
import android.view.ViewGroup;
@@ -112,13 +111,6 @@ public interface NotificationListContainer extends ExpandableView.OnHeightChange
     */
    void setMaxDisplayedNotifications(int maxNotifications);

    /**
     * Handle snapping a non-dismissable row back if the user tried to dismiss it.
     *
     * @param entry the entry whose row needs to snap back
     */
    void snapViewIfNeeded(NotificationData.Entry entry);

    /**
     * Get the view parent for a notification entry. For example, NotificationStackScrollLayout.
     *
+13 −2
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ import com.android.systemui.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.notification.FakeShadowView;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.notification.ShadeViewRefactor;
@@ -517,6 +518,17 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
                mLowPriorityBeforeSpeedBump = "1".equals(newValue);
            }
        }, LOW_PRIORITY);

        mEntryManager.addNotificationEntryListener(new NotificationEntryListener() {
            @Override
            public void onEntryUpdated(NotificationData.Entry entry) {
                if (!entry.notification.isClearable()) {
                    // The user may have performed a dismiss action on the notification, since it's
                    // not clearable we should snap it back.
                    snapViewIfNeeded(entry);
                }
            }
        });
    }

    @Override
@@ -1538,9 +1550,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
                true /* isDismissAll */);
    }

    @Override
    @ShadeViewRefactor(RefactorComponent.STATE_RESOLVER)
    public void snapViewIfNeeded(NotificationData.Entry entry) {
    private void snapViewIfNeeded(NotificationData.Entry entry) {
        ExpandableNotificationRow child = entry.getRow();
        boolean animate = mIsExpanded || isPinnedHeadsUp(child);
        // If the child is showing the notification menu snap to that
+0 −3
Original line number Diff line number Diff line
@@ -263,9 +263,6 @@ public class NotificationViewHierarchyManagerTest extends SysuiTestCase {
        @Override
        public void setMaxDisplayedNotifications(int maxNotifications) {}

        @Override
        public void snapViewIfNeeded(Entry entry) {}

        @Override
        public ViewGroup getViewParentForNotification(NotificationData.Entry entry) {
            return null;