Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac8fac8c authored by Mateusz Cicheński's avatar Mateusz Cicheński Committed by Automerger Merge Worker
Browse files

Merge "Pass the keep clear areas through proper implementation. The...

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: 34fd7c52

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17366228

Change-Id: I63ce2cd397e3bb9126da3d0649e7f0af3d88d3c7
parents 575a0c12 34fd7c52
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ import java.util.function.Consumer;
 * Manages the picture-in-picture (PIP) UI and states for Phones.
 */
public class PipController implements PipTransitionController.PipTransitionCallback,
        RemoteCallable<PipController>, DisplayController.OnDisplaysChangedListener {
        RemoteCallable<PipController> {
    private static final String TAG = "PipController";

    private Context mContext;
@@ -234,6 +234,14 @@ public class PipController implements PipTransitionController.PipTransitionCallb
                    onDisplayChanged(mDisplayController.getDisplayLayout(displayId),
                            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;
    }

    @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) {
        mPipBoundsAlgorithm.onConfigurationChanged(mContext);
        mTouchHandler.onConfigurationChanged();
+2 −1
Original line number Diff line number Diff line
@@ -217,7 +217,8 @@ public class PipControllerTest extends ShellTestCase {
        final Rect keepClearArea = new Rect(0, 0, 10, 10);
        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());
    }