Add IPipAnimationListener#onExpandPip

This signals Launcher when user leaves PiP mode by tapping on the
expand button in PiP window. Launcher can use signal, for instance, to
hide the Taskbar to avoid flicker when the app settles in full-screen mode.

Video: http://recall/-/aaaaaabFQoRHlzixHdtY/dIgvinb9yEB8MYfYDx0Ijy
Bug: 218450853
Test: see video
Change-Id: I0e9882324daa6dc419ad2746312a22a0c8721ff4
This commit is contained in:
Hongwei Wang
2022-03-22 17:33:06 -07:00
parent d5826ea531
commit bddc58e3bc
2 changed files with 18 additions and 0 deletions

View File

@@ -32,4 +32,9 @@ oneway interface IPipAnimationListener {
* @param cornerRadius the pixel value of the corner radius, zero means it's disabled.
*/
void onPipCornerRadiusChanged(int cornerRadius);
/**
* Notifies the listener that user leaves PiP by tapping on the expand button.
*/
void onExpandPip();
}

View File

@@ -136,6 +136,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
* @param cornerRadius the pixel value of the corner radius, zero means it's disabled.
*/
void onPipCornerRadiusChanged(int cornerRadius);
/**
* Notifies the listener that user leaves PiP by tapping on the expand button.
*/
void onExpandPip();
}
/**
@@ -643,6 +648,9 @@ public class PipController implements PipTransitionController.PipTransitionCallb
mTouchHandler.setTouchEnabled(false);
if (mPinnedStackAnimationRecentsCallback != null) {
mPinnedStackAnimationRecentsCallback.onPipAnimationStarted();
if (direction == TRANSITION_DIRECTION_LEAVE_PIP) {
mPinnedStackAnimationRecentsCallback.onExpandPip();
}
}
}
@@ -902,6 +910,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
public void onPipCornerRadiusChanged(int cornerRadius) {
mListener.call(l -> l.onPipCornerRadiusChanged(cornerRadius));
}
@Override
public void onExpandPip() {
mListener.call(l -> l.onExpandPip());
}
};
IPipImpl(PipController controller) {