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

Commit 1076dc63 authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

Merge "Make clipboard UI listen to keyboard visibility changes" into...

Merge "Make clipboard UI listen to keyboard visibility changes" into tm-qpr-dev am: 0545b61a am: 19777c43

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



Change-Id: I438089b8c58345b7462db4067da904e0eb5718e3
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a6aa0a13 19777c43
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);
            }