Loading packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +15 −1 Original line number Diff line number Diff line Loading @@ -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"; Loading Loading @@ -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; Loading packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } Loading packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +13 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading Loading @@ -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(); Loading @@ -222,6 +231,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } mQSCustomizerController.setQs(null); mQsDetailDisplayer.setQsPanelController(null); mScrollListener = null; } @Override Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +9 −0 Original line number Diff line number Diff line Loading @@ -3477,6 +3477,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) { Loading Loading @@ -3506,6 +3514,7 @@ public class NotificationPanelViewController extends PanelViewController { }); mLockscreenShadeTransitionController.setQS(mQs); mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView()); mQs.setScrollListener(mScrollListener); updateQsExpansion(); } Loading Loading
packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QS.java +15 −1 Original line number Diff line number Diff line Loading @@ -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"; Loading Loading @@ -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; Loading
packages/SystemUI/src/com/android/systemui/qs/QSContainerImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -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(); } Loading
packages/SystemUI/src/com/android/systemui/qs/QSFragment.java +13 −3 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); Loading Loading @@ -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(); Loading @@ -222,6 +231,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca } mQSCustomizerController.setQs(null); mQsDetailDisplayer.setQsPanelController(null); mScrollListener = null; } @Override Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +9 −0 Original line number Diff line number Diff line Loading @@ -3477,6 +3477,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) { Loading Loading @@ -3506,6 +3514,7 @@ public class NotificationPanelViewController extends PanelViewController { }); mLockscreenShadeTransitionController.setQS(mQs); mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView()); mQs.setScrollListener(mScrollListener); updateQsExpansion(); } Loading