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

Commit 7f426dca authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Automerger Merge Worker
Browse files

Merge "Add child sensitivity change listener to NotificationStackScrollLayout"...

Merge "Add child sensitivity change listener to NotificationStackScrollLayout" into udc-dev am: 37018415

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22223569



Change-Id: I68c418c9a7e60dfff648dd7d36e10b78fb9d473a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 52e61741 37018415
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRowController;
import com.android.systemui.statusbar.notification.row.NotificationGuts;
import com.android.systemui.statusbar.notification.stack.PriorityBucket;
import com.android.systemui.util.ListenerSet;

import java.util.ArrayList;
import java.util.List;
@@ -163,7 +164,8 @@ public final class NotificationEntry extends ListEntry {
    private boolean hasSentReply;

    private boolean mSensitive = true;
    private List<OnSensitivityChangedListener> mOnSensitivityChangedListeners = new ArrayList<>();
    private ListenerSet<OnSensitivityChangedListener> mOnSensitivityChangedListeners =
            new ListenerSet<>();

    private boolean mAutoHeadsUp;
    private boolean mPulseSupressed;
@@ -932,8 +934,9 @@ public final class NotificationEntry extends ListEntry {
        getRow().setSensitive(sensitive, deviceSensitive);
        if (sensitive != mSensitive) {
            mSensitive = sensitive;
            for (int i = 0; i < mOnSensitivityChangedListeners.size(); i++) {
                mOnSensitivityChangedListeners.get(i).onSensitivityChanged(this);
            for (NotificationEntry.OnSensitivityChangedListener listener :
                    mOnSensitivityChangedListeners) {
                listener.onSensitivityChanged(this);
            }
        }
    }
@@ -944,7 +947,7 @@ public final class NotificationEntry extends ListEntry {

    /** Add a listener to be notified when the entry's sensitivity changes. */
    public void addOnSensitivityChangedListener(OnSensitivityChangedListener listener) {
        mOnSensitivityChangedListeners.add(listener);
        mOnSensitivityChangedListeners.addIfAbsent(listener);
    }

    /** Remove a listener that was registered above. */
+22 −0
Original line number Diff line number Diff line
@@ -200,6 +200,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    private final boolean mDebugRemoveAnimation;
    private final boolean mSimplifiedAppearFraction;
    private final boolean mUseRoundnessSourceTypes;
    private final boolean mSensitiveRevealAnimEndabled;
    private boolean mAnimatedInsets;

    private int mContentHeight;
@@ -580,6 +581,18 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
                }
            };

    private final NotificationEntry.OnSensitivityChangedListener
            mOnChildSensitivityChangedListener =
            new NotificationEntry.OnSensitivityChangedListener() {
                @Override
                public void onSensitivityChanged(NotificationEntry entry) {
                    if (mAnimationsEnabled) {
                        mHideSensitiveNeedsAnimation = true;
                        requestChildrenUpdate();
                    }
                }
            };

    private Consumer<Integer> mScrollListener;
    private final ScrollAdapter mScrollAdapter = new ScrollAdapter() {
        @Override
@@ -611,6 +624,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        mDebugRemoveAnimation = featureFlags.isEnabled(Flags.NSSL_DEBUG_REMOVE_ANIMATION);
        mSimplifiedAppearFraction = featureFlags.isEnabled(Flags.SIMPLIFIED_APPEAR_FRACTION);
        mUseRoundnessSourceTypes = featureFlags.isEnabled(Flags.USE_ROUNDNESS_SOURCETYPES);
        mSensitiveRevealAnimEndabled = featureFlags.isEnabled(Flags.SENSITIVE_REVEAL_ANIM);
        setAnimatedInsetsEnabled(featureFlags.isEnabled(Flags.ANIMATED_NOTIFICATION_SHADE_INSETS));
        mSectionsManager = Dependency.get(NotificationSectionsManager.class);
        mScreenOffAnimationController =
@@ -2860,6 +2874,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
            return;
        }
        child.setOnHeightChangedListener(null);
        if (child instanceof ExpandableNotificationRow && mSensitiveRevealAnimEndabled) {
            NotificationEntry entry = ((ExpandableNotificationRow) child).getEntry();
            entry.removeOnSensitivityChangedListener(mOnChildSensitivityChangedListener);
        }
        updateScrollStateForRemovedChild(child);
        boolean animationGenerated = container != null && generateRemoveAnimation(child);
        if (animationGenerated) {
@@ -3121,6 +3139,10 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
    private void onViewAddedInternal(ExpandableView child) {
        updateHideSensitiveForChild(child);
        child.setOnHeightChangedListener(mOnChildHeightChangedListener);
        if (child instanceof ExpandableNotificationRow && mSensitiveRevealAnimEndabled) {
            NotificationEntry entry = ((ExpandableNotificationRow) child).getEntry();
            entry.addOnSensitivityChangedListener(mOnChildSensitivityChangedListener);
        }
        generateAddAnimation(child, false /* fromMoreCard */);
        updateAnimationState(child);
        updateChronometerForChild(child);