Merge "Make clipboard UI listen to keyboard visibility changes" into tm-qpr-dev am: 0545b61a78
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19260010 Change-Id: Id4a64c40d24e3e8ff5f463484c8d787b8ce77ba7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -169,6 +169,7 @@ public class ClipboardOverlayController {
|
|||||||
private Animator mExitAnimator;
|
private Animator mExitAnimator;
|
||||||
private Animator mEnterAnimator;
|
private Animator mEnterAnimator;
|
||||||
private final int mOrientation;
|
private final int mOrientation;
|
||||||
|
private boolean mKeyboardVisible;
|
||||||
|
|
||||||
|
|
||||||
public ClipboardOverlayController(Context context,
|
public ClipboardOverlayController(Context context,
|
||||||
@@ -261,8 +262,22 @@ public class ClipboardOverlayController {
|
|||||||
attachWindow();
|
attachWindow();
|
||||||
withWindowAttached(() -> {
|
withWindowAttached(() -> {
|
||||||
mWindow.setContentView(mView);
|
mWindow.setContentView(mView);
|
||||||
updateInsets(mWindowManager.getCurrentWindowMetrics().getWindowInsets());
|
WindowInsets insets = mWindowManager.getCurrentWindowMetrics().getWindowInsets();
|
||||||
mView.requestLayout();
|
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(
|
mWindow.peekDecorView().getViewRootImpl().setActivityConfigCallback(
|
||||||
new ViewRootImpl.ActivityConfigCallback() {
|
new ViewRootImpl.ActivityConfigCallback() {
|
||||||
@Override
|
@Override
|
||||||
@@ -384,8 +399,6 @@ public class ClipboardOverlayController {
|
|||||||
mRemoteCopyChip.setVisibility(View.GONE);
|
mRemoteCopyChip.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
withWindowAttached(() -> {
|
withWindowAttached(() -> {
|
||||||
updateInsets(
|
|
||||||
mWindowManager.getCurrentWindowMetrics().getWindowInsets());
|
|
||||||
if (mEnterAnimator == null || !mEnterAnimator.isRunning()) {
|
if (mEnterAnimator == null || !mEnterAnimator.isRunning()) {
|
||||||
mView.post(this::animateIn);
|
mView.post(this::animateIn);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user