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

Commit 36037c8e authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Automerger Merge Worker
Browse files

Merge "Fully expand QSPanel on scroll" into sc-dev am: 909281eb

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

Change-Id: Ic24f11c817f2e875167b15d4f6e362429d08a797
parents a97a7df4 909281eb
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ public interface QS extends FragmentBase {

    String ACTION = "com.android.systemui.action.PLUGIN_QS";

    int VERSION = 10;
    int VERSION = 11;

    String TAG = "QS";

@@ -108,6 +108,20 @@ public interface QS extends FragmentBase {
     */
    void setCollapsedMediaVisibilityChangedListener(Consumer<Boolean> listener);

    /**
     * Set a scroll listener for the QSPanel container
     */
    default void setScrollListener(ScrollListener scrollListener) {}

    /**
     * Callback for when QSPanel container is scrolled
     */
    @ProvidesInterface(version = ScrollListener.VERSION)
    interface ScrollListener {
        int VERSION = 1;
        void onQsPanelScrollChanged(int scrollY);
    }

    @ProvidesInterface(version = HeightListener.VERSION)
    interface HeightListener {
        int VERSION = 1;
+1 −1
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@ public class QSContainerImpl extends FrameLayout {

    public void setExpansion(float expansion) {
        mQsExpansion = expansion;
        mQSPanelContainer.setScrollingEnabled(expansion > 0.0f);
        mQSPanelContainer.setScrollingEnabled(expansion > 0f);
        updateExpansion();
    }

+13 −3
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
    private QSPanelController mQSPanelController;
    private QuickQSPanelController mQuickQSPanelController;
    private QSCustomizerController mQSCustomizerController;
    private ScrollListener mScrollListener;
    private FeatureFlags mFeatureFlags;
    /**
     * When true, QS will translate from outside the screen. It will be clipped with parallax
@@ -174,6 +175,9 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                    // Lazily update animators whenever the scrolling changes
                    mQSAnimator.onQsScrollingChanged();
                    mHeader.setExpandedScrollAmount(scrollY);
                    if (mScrollListener != null) {
                        mScrollListener.onQsPanelScrollChanged(scrollY);
                    }
        });
        mQSDetail = view.findViewById(R.id.qs_detail);
        mHeader = view.findViewById(R.id.header);
@@ -213,6 +217,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                });
    }

    @Override
    public void setScrollListener(ScrollListener listener) {
        mScrollListener = listener;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
@@ -222,6 +231,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        }
        mQSCustomizerController.setQs(null);
        mQsDetailDisplayer.setQsPanelController(null);
        mScrollListener = null;
    }

    @Override
+9 −0
Original line number Diff line number Diff line
@@ -3491,6 +3491,14 @@ public class NotificationPanelViewController extends PanelViewController {
        return !isFullWidth() || !mShowIconsWhenExpanded;
    }

    public final QS.ScrollListener mScrollListener = scrollY -> {
        if (scrollY > 0 && !mQsFullyExpanded) {
            if (DEBUG) Log.d(TAG, "Scrolling while not expanded. Forcing expand");
            // If we are scrolling QS, we should be fully expanded.
            expandWithQs();
        }
    };

    private final FragmentListener mFragmentListener = new FragmentListener() {
        @Override
        public void onFragmentViewCreated(String tag, Fragment fragment) {
@@ -3520,6 +3528,7 @@ public class NotificationPanelViewController extends PanelViewController {
            });
            mLockscreenShadeTransitionController.setQS(mQs);
            mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView());
            mQs.setScrollListener(mScrollListener);
            updateQsExpansion();
        }