From 27c41677b1d2c13af1fbcc26e76773df3a2f5f4a Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 21 Jan 2022 00:08:19 +0000 Subject: [PATCH] Don't create new nav bar layer when IME is rendering nav buttons Test: Edit folder name in taskbar, ensure we don't create a new window Fixes: 214571910 Change-Id: I9a1385dbed2df7a4ee141485c8bbfb521457d853 --- .../launcher3/taskbar/NavbarButtonsViewController.java | 6 ++++++ .../android/launcher3/taskbar/TaskbarActivityContext.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java index 094bced31e..ead30b0f6b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/NavbarButtonsViewController.java @@ -52,6 +52,7 @@ import android.graphics.Region; import android.graphics.Region.Op; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.PaintDrawable; +import android.inputmethodservice.InputMethodService; import android.util.Property; import android.view.Gravity; import android.view.MotionEvent; @@ -602,6 +603,11 @@ public class NavbarButtonsViewController { return; } + if (InputMethodService.canImeRenderGesturalNavButtons() && mContext.isGestureNav()) { + // IME is rendering the nav buttons, so we don't need to create a new layer for them. + return; + } + mSeparateWindowParent.addOnAttachStateChangeListener(new OnAttachStateChangeListener() { @Override public void onViewAttachedToWindow(View view) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index a60d434dac..b02c300dd6 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -240,6 +240,10 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ return mNavMode == Mode.THREE_BUTTONS; } + public boolean isGestureNav() { + return mNavMode == Mode.NO_BUTTON; + } + public int getLeftCornerRadius() { return mLeftCorner == null ? 0 : mLeftCorner.getRadius(); }