Merge "Fully expand QSPanel on scroll" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
909281eb38
@@ -35,7 +35,7 @@ public interface QS extends FragmentBase {
|
|||||||
|
|
||||||
String ACTION = "com.android.systemui.action.PLUGIN_QS";
|
String ACTION = "com.android.systemui.action.PLUGIN_QS";
|
||||||
|
|
||||||
int VERSION = 10;
|
int VERSION = 11;
|
||||||
|
|
||||||
String TAG = "QS";
|
String TAG = "QS";
|
||||||
|
|
||||||
@@ -108,6 +108,20 @@ public interface QS extends FragmentBase {
|
|||||||
*/
|
*/
|
||||||
void setCollapsedMediaVisibilityChangedListener(Consumer<Boolean> listener);
|
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)
|
@ProvidesInterface(version = HeightListener.VERSION)
|
||||||
interface HeightListener {
|
interface HeightListener {
|
||||||
int VERSION = 1;
|
int VERSION = 1;
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ public class QSContainerImpl extends FrameLayout {
|
|||||||
|
|
||||||
public void setExpansion(float expansion) {
|
public void setExpansion(float expansion) {
|
||||||
mQsExpansion = expansion;
|
mQsExpansion = expansion;
|
||||||
mQSPanelContainer.setScrollingEnabled(expansion > 0.0f);
|
mQSPanelContainer.setScrollingEnabled(expansion > 0f);
|
||||||
updateExpansion();
|
updateExpansion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
private QSPanelController mQSPanelController;
|
private QSPanelController mQSPanelController;
|
||||||
private QuickQSPanelController mQuickQSPanelController;
|
private QuickQSPanelController mQuickQSPanelController;
|
||||||
private QSCustomizerController mQSCustomizerController;
|
private QSCustomizerController mQSCustomizerController;
|
||||||
|
private ScrollListener mScrollListener;
|
||||||
private FeatureFlags mFeatureFlags;
|
private FeatureFlags mFeatureFlags;
|
||||||
/**
|
/**
|
||||||
* When true, QS will translate from outside the screen. It will be clipped with parallax
|
* 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
|
// Lazily update animators whenever the scrolling changes
|
||||||
mQSAnimator.onQsScrollingChanged();
|
mQSAnimator.onQsScrollingChanged();
|
||||||
mHeader.setExpandedScrollAmount(scrollY);
|
mHeader.setExpandedScrollAmount(scrollY);
|
||||||
|
if (mScrollListener != null) {
|
||||||
|
mScrollListener.onQsPanelScrollChanged(scrollY);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
mQSDetail = view.findViewById(R.id.qs_detail);
|
mQSDetail = view.findViewById(R.id.qs_detail);
|
||||||
mHeader = view.findViewById(R.id.header);
|
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
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
@@ -222,6 +231,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
}
|
}
|
||||||
mQSCustomizerController.setQs(null);
|
mQSCustomizerController.setQs(null);
|
||||||
mQsDetailDisplayer.setQsPanelController(null);
|
mQsDetailDisplayer.setQsPanelController(null);
|
||||||
|
mScrollListener = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3477,6 +3477,14 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
return !isFullWidth() || !mShowIconsWhenExpanded;
|
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() {
|
private final FragmentListener mFragmentListener = new FragmentListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onFragmentViewCreated(String tag, Fragment fragment) {
|
public void onFragmentViewCreated(String tag, Fragment fragment) {
|
||||||
@@ -3506,6 +3514,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
});
|
});
|
||||||
mLockscreenShadeTransitionController.setQS(mQs);
|
mLockscreenShadeTransitionController.setQS(mQs);
|
||||||
mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView());
|
mNotificationStackScrollLayoutController.setQsContainer((ViewGroup) mQs.getView());
|
||||||
|
mQs.setScrollListener(mScrollListener);
|
||||||
updateQsExpansion();
|
updateQsExpansion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user