Merge "Pass the keep clear areas through proper implementation. The PipController is not registered as DisplayWindowListener, but this inner implementation is." into tm-dev am: 34fd7c525e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17366228 Change-Id: Ied1064ff212609838ebe64a3ec854f5042118917
This commit is contained in:
@@ -96,7 +96,7 @@ import java.util.function.Consumer;
|
|||||||
* Manages the picture-in-picture (PIP) UI and states for Phones.
|
* Manages the picture-in-picture (PIP) UI and states for Phones.
|
||||||
*/
|
*/
|
||||||
public class PipController implements PipTransitionController.PipTransitionCallback,
|
public class PipController implements PipTransitionController.PipTransitionCallback,
|
||||||
RemoteCallable<PipController>, DisplayController.OnDisplaysChangedListener {
|
RemoteCallable<PipController> {
|
||||||
private static final String TAG = "PipController";
|
private static final String TAG = "PipController";
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -234,6 +234,14 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
onDisplayChanged(mDisplayController.getDisplayLayout(displayId),
|
onDisplayChanged(mDisplayController.getDisplayLayout(displayId),
|
||||||
true /* saveRestoreSnapFraction */);
|
true /* saveRestoreSnapFraction */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onKeepClearAreasChanged(int displayId, Set<Rect> restricted,
|
||||||
|
Set<Rect> unrestricted) {
|
||||||
|
if (mPipBoundsState.getDisplayId() == displayId) {
|
||||||
|
mPipBoundsState.setKeepClearAreas(restricted, unrestricted);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -463,14 +471,6 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
return mMainExecutor;
|
return mMainExecutor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onKeepClearAreasChanged(int displayId, Set<Rect> restricted,
|
|
||||||
Set<Rect> unrestricted) {
|
|
||||||
if (mPipBoundsState.getDisplayId() == displayId) {
|
|
||||||
mPipBoundsState.setKeepClearAreas(restricted, unrestricted);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onConfigurationChanged(Configuration newConfig) {
|
private void onConfigurationChanged(Configuration newConfig) {
|
||||||
mPipBoundsAlgorithm.onConfigurationChanged(mContext);
|
mPipBoundsAlgorithm.onConfigurationChanged(mContext);
|
||||||
mTouchHandler.onConfigurationChanged();
|
mTouchHandler.onConfigurationChanged();
|
||||||
|
|||||||
@@ -217,7 +217,8 @@ public class PipControllerTest extends ShellTestCase {
|
|||||||
final Rect keepClearArea = new Rect(0, 0, 10, 10);
|
final Rect keepClearArea = new Rect(0, 0, 10, 10);
|
||||||
when(mMockPipBoundsState.getDisplayId()).thenReturn(displayId);
|
when(mMockPipBoundsState.getDisplayId()).thenReturn(displayId);
|
||||||
|
|
||||||
mPipController.onKeepClearAreasChanged(displayId, Set.of(keepClearArea), Set.of());
|
mPipController.mDisplaysChangedListener.onKeepClearAreasChanged(
|
||||||
|
displayId, Set.of(keepClearArea), Set.of());
|
||||||
|
|
||||||
verify(mMockPipBoundsState).setKeepClearAreas(Set.of(keepClearArea), Set.of());
|
verify(mMockPipBoundsState).setKeepClearAreas(Set.of(keepClearArea), Set.of());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user