Merge "Remove more methods from CentralSurfaces" into tm-qpr-dev

This commit is contained in:
Justin Weir
2022-11-30 14:37:39 +00:00
committed by Android (Google) Code Review
6 changed files with 71 additions and 48 deletions

View File

@@ -393,6 +393,9 @@ public final class NotificationPanelViewController implements Dumpable {
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
private int mQsTrackingPointer;
private VelocityTracker mQsVelocityTracker;
private TrackingStartedListener mTrackingStartedListener;
private OpenCloseListener mOpenCloseListener;
private GestureRecorder mGestureRecorder;
private boolean mQsTracking;
/** Whether the ongoing gesture might both trigger the expansion in both the view and QS. */
private boolean mConflictingQsExpansionGesture;
@@ -1362,6 +1365,14 @@ public final class NotificationPanelViewController implements Dumpable {
mKeyguardIndicationController.setIndicationArea(mKeyguardBottomArea);
}
void setOpenCloseListener(OpenCloseListener openCloseListener) {
mOpenCloseListener = openCloseListener;
}
void setTrackingStartedListener(TrackingStartedListener trackingStartedListener) {
mTrackingStartedListener = trackingStartedListener;
}
private void updateGestureExclusionRect() {
Rect exclusionRect = calculateGestureExclusionRect();
mView.setSystemGestureExclusionRects(exclusionRect.isEmpty() ? Collections.emptyList()
@@ -1936,9 +1947,9 @@ public final class NotificationPanelViewController implements Dumpable {
}
private void fling(float vel) {
GestureRecorder gr = mCentralSurfaces.getGestureRecorder();
if (gr != null) {
gr.tag("fling " + ((vel > 0) ? "open" : "closed"), "notifications,v=" + vel);
if (mGestureRecorder != null) {
mGestureRecorder.tag("fling " + ((vel > 0) ? "open" : "closed"),
"notifications,v=" + vel);
}
fling(vel, true, 1.0f /* collapseSpeedUpFactor */, false);
}
@@ -3726,7 +3737,7 @@ public final class NotificationPanelViewController implements Dumpable {
mFalsingCollector.onTrackingStarted(!mKeyguardStateController.canDismissLockScreen());
endClosing();
mTracking = true;
mCentralSurfaces.onTrackingStarted();
mTrackingStartedListener.onTrackingStarted();
notifyExpandingStarted();
updatePanelExpansionAndVisibility();
mScrimController.onTrackingStarted();
@@ -3960,7 +3971,7 @@ public final class NotificationPanelViewController implements Dumpable {
}
private void onClosingFinished() {
mCentralSurfaces.onClosingFinished();
mOpenCloseListener.onClosingFinished();
setClosingWithAlphaFadeout(false);
mMediaHierarchyManager.closeGuts();
}
@@ -4519,11 +4530,13 @@ public final class NotificationPanelViewController implements Dumpable {
*/
public void initDependencies(
CentralSurfaces centralSurfaces,
GestureRecorder recorder,
Runnable hideExpandedRunnable,
NotificationShelfController notificationShelfController) {
// TODO(b/254859580): this can be injected.
mCentralSurfaces = centralSurfaces;
mGestureRecorder = recorder;
mHideExpandedRunnable = hideExpandedRunnable;
mNotificationStackScrollLayoutController.setShelfController(notificationShelfController);
mNotificationShelfController = notificationShelfController;
@@ -5772,7 +5785,7 @@ public final class NotificationPanelViewController implements Dumpable {
if (mSplitShadeEnabled && !isOnKeyguard()) {
setQsExpandImmediate(true);
}
mCentralSurfaces.makeExpandedVisible(false);
mOpenCloseListener.onOpenStarted();
}
if (state == STATE_CLOSED) {
setQsExpandImmediate(false);
@@ -6255,4 +6268,17 @@ public final class NotificationPanelViewController implements Dumpable {
return super.performAccessibilityAction(host, action, args);
}
}
/** Listens for when touch tracking begins. */
interface TrackingStartedListener {
void onTrackingStarted();
}
/** Listens for when shade begins opening of finishes closing. */
interface OpenCloseListener {
/** Called when the shade finishes closing. */
void onClosingFinished();
/** Called when the shade starts opening. */
void onOpenStarted();
}
}

View File

@@ -111,6 +111,9 @@ public interface ShadeController {
/** Handle status bar touch event. */
void onStatusBarTouch(MotionEvent event);
/** Called when the shade finishes collapsing. */
void onClosingFinished();
/** Sets the listener for when the visibility of the shade changes. */
void setVisibilityListener(ShadeVisibilityListener listener);

View File

@@ -226,6 +226,16 @@ public final class ShadeControllerImpl implements ShadeController {
}
}
@Override
public void onClosingFinished() {
runPostCollapseRunnables();
if (!mPresenter.isPresenterFullyCollapsed()) {
// if we set it not to be focusable when collapsing, we have to undo it when we aborted
// the closing
mNotificationShadeWindowController.setNotificationShadeFocusable(true);
}
}
@Override
public void instantCollapseShade() {
mNotificationPanelViewController.instantCollapse();
@@ -329,5 +339,18 @@ public final class ShadeControllerImpl implements ShadeController {
public void setNotificationPanelViewController(
NotificationPanelViewController notificationPanelViewController) {
mNotificationPanelViewController = notificationPanelViewController;
mNotificationPanelViewController.setTrackingStartedListener(this::runPostCollapseRunnables);
mNotificationPanelViewController.setOpenCloseListener(
new NotificationPanelViewController.OpenCloseListener() {
@Override
public void onClosingFinished() {
ShadeControllerImpl.this.onClosingFinished();
}
@Override
public void onOpenStarted() {
makeExpandedVisible(false);
}
});
}
}

View File

@@ -51,7 +51,6 @@ import com.android.systemui.qs.QSPanelController;
import com.android.systemui.shade.NotificationPanelViewController;
import com.android.systemui.shade.NotificationShadeWindowView;
import com.android.systemui.shade.NotificationShadeWindowViewController;
import com.android.systemui.statusbar.GestureRecorder;
import com.android.systemui.statusbar.LightRevealScrim;
import com.android.systemui.statusbar.NotificationPresenter;
@@ -286,8 +285,6 @@ public interface CentralSurfaces extends Dumpable, ActivityStarter, LifecycleOwn
void onTouchEvent(MotionEvent event);
GestureRecorder getGestureRecorder();
BiometricUnlockController getBiometricUnlockController();
void showWirelessChargingAnimation(int batteryLevel);
@@ -402,10 +399,6 @@ public interface CentralSurfaces extends Dumpable, ActivityStarter, LifecycleOwn
LightRevealScrim getLightRevealScrim();
void onTrackingStarted();
void onClosingFinished();
// TODO: Figure out way to remove these.
NavigationBarView getNavigationBarView();
@@ -489,13 +482,6 @@ public interface CentralSurfaces extends Dumpable, ActivityStarter, LifecycleOwn
void updateNotificationPanelTouchState();
/**
* TODO(b/257041702) delete this
* @deprecated Use ShadeController#makeExpandedVisible
*/
@Deprecated
void makeExpandedVisible(boolean force);
int getDisplayId();
int getRotation();

View File

@@ -1257,6 +1257,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mNotificationPanelViewController.initDependencies(
this,
mGestureRec,
mShadeController::makeExpandedInvisible,
mNotificationShelfController);
@@ -1855,7 +1856,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
public void onLaunchAnimationCancelled(boolean isLaunchForActivity) {
if (mPresenter.isPresenterFullyCollapsed() && !mPresenter.isCollapsing()
&& isLaunchForActivity) {
onClosingFinished();
mShadeController.onClosingFinished();
} else {
mShadeController.collapseShade(true /* animate */);
}
@@ -1865,7 +1866,7 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
@Override
public void onLaunchAnimationEnd(boolean launchIsFullScreen) {
if (!mPresenter.isCollapsing()) {
onClosingFinished();
mShadeController.onClosingFinished();
}
if (launchIsFullScreen) {
mShadeController.instantCollapseShade();
@@ -2051,11 +2052,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
}
}
@Override
public GestureRecorder getGestureRecorder() {
return mGestureRec;
}
@Override
public BiometricUnlockController getBiometricUnlockController() {
return mBiometricUnlockController;
@@ -3338,21 +3334,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
return mLightRevealScrim;
}
@Override
public void onTrackingStarted() {
mShadeController.runPostCollapseRunnables();
}
@Override
public void onClosingFinished() {
mShadeController.runPostCollapseRunnables();
if (!mPresenter.isPresenterFullyCollapsed()) {
// if we set it not to be focusable when collapsing, we have to undo it when we aborted
// the closing
mNotificationShadeWindowController.setNotificationShadeFocusable(true);
}
}
// TODO: Figure out way to remove these.
@Override
public NavigationBarView getNavigationBarView() {
@@ -3584,12 +3565,6 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
mNotificationIconAreaController.setAnimationsEnabled(!disabled);
}
//TODO(b/257041702) delete
@Override
public void makeExpandedVisible(boolean force) {
mShadeController.makeExpandedVisible(force);
}
final ScreenLifecycle.Observer mScreenObserver = new ScreenLifecycle.Observer() {
@Override
public void onScreenTurningOn(Runnable onDrawn) {

View File

@@ -499,8 +499,18 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase {
mDumpManager);
mNotificationPanelViewController.initDependencies(
mCentralSurfaces,
null,
() -> {},
mNotificationShelfController);
mNotificationPanelViewController.setTrackingStartedListener(() -> {});
mNotificationPanelViewController.setOpenCloseListener(
new NotificationPanelViewController.OpenCloseListener() {
@Override
public void onClosingFinished() {}
@Override
public void onOpenStarted() {}
});
mNotificationPanelViewController.setHeadsUpManager(mHeadsUpManager);
ArgumentCaptor<View.OnAttachStateChangeListener> onAttachStateChangeListenerArgumentCaptor =
ArgumentCaptor.forClass(View.OnAttachStateChangeListener.class);