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

Commit 0545b61a authored by Miranda Kephart's avatar Miranda Kephart Committed by Android (Google) Code Review
Browse files

Merge "Make clipboard UI listen to keyboard visibility changes" into tm-qpr-dev

parents 7f391b59 c4e2ae21
Loading
Loading
Loading
Loading
+17 −4
Original line number Diff line number Diff line
@@ -169,6 +169,7 @@ public class ClipboardOverlayController {
    private Animator mExitAnimator;
    private Animator mEnterAnimator;
    private final int mOrientation;
    private boolean mKeyboardVisible;


    public ClipboardOverlayController(Context context,
@@ -261,8 +262,22 @@ public class ClipboardOverlayController {
        attachWindow();
        withWindowAttached(() -> {
            mWindow.setContentView(mView);
            updateInsets(mWindowManager.getCurrentWindowMetrics().getWindowInsets());
            mView.requestLayout();
            WindowInsets insets = mWindowManager.getCurrentWindowMetrics().getWindowInsets();
            mKeyboardVisible = insets.isVisible(WindowInsets.Type.ime());
            updateInsets(insets);
            mWindow.peekDecorView().getViewTreeObserver().addOnGlobalLayoutListener(
                    new ViewTreeObserver.OnGlobalLayoutListener() {
                        @Override
                        public void onGlobalLayout() {
                            WindowInsets insets =
                                    mWindowManager.getCurrentWindowMetrics().getWindowInsets();
                            boolean keyboardVisible = insets.isVisible(WindowInsets.Type.ime());
                            if (keyboardVisible != mKeyboardVisible) {
                                mKeyboardVisible = keyboardVisible;
                                updateInsets(insets);
                            }
                        }
                    });
            mWindow.peekDecorView().getViewRootImpl().setActivityConfigCallback(
                    new ViewRootImpl.ActivityConfigCallback() {
                        @Override
@@ -384,8 +399,6 @@ public class ClipboardOverlayController {
            mRemoteCopyChip.setVisibility(View.GONE);
        }
        withWindowAttached(() -> {
            updateInsets(
                    mWindowManager.getCurrentWindowMetrics().getWindowInsets());
            if (mEnterAnimator == null || !mEnterAnimator.isRunning()) {
                mView.post(this::animateIn);
            }