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

Commit 44315c64 authored by Winson Chung's avatar Winson Chung
Browse files

Adjusting PiP for the TV IME.

Bug: 63898225
Test: Ensure that PiP does not overlap with the IME on TV
Change-Id: I6aced6331b56cd92599cbdb9c13d04ae9138c59b
parent f15c825d
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -127,6 +127,10 @@ public class PipManager implements BasePipManager {
    private PipNotification mPipNotification;
    private ParceledListSlice mCustomActions;

    // Keeps track of the IME visibility to adjust the PiP when the IME is visible
    private boolean mImeVisible;
    private int mImeHeightAdjustment;

    private final PinnedStackListener mPinnedStackListener = new PinnedStackListener();

    private final Runnable mResizePinnedStackRunnable = new Runnable() {
@@ -175,7 +179,22 @@ public class PipManager implements BasePipManager {
        public void onListenerRegistered(IPinnedStackController controller) {}

        @Override
        public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {}
        public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {
            if (mState == STATE_PIP) {
                if (mImeVisible != imeVisible) {
                    if (imeVisible) {
                        // Save the IME height adjustment, and offset to not occlude the IME
                        mPipBounds.offset(0, -imeHeight);
                        mImeHeightAdjustment = imeHeight;
                    } else {
                        // Apply the inverse adjustment when the IME is hidden
                        mPipBounds.offset(0, mImeHeightAdjustment);
                    }
                    mImeVisible = imeVisible;
                    resizePinnedStack(STATE_PIP);
                }
            }
        }

        @Override
        public void onMinimizedStateChanged(boolean isMinimized) {}