Merge "Revert "Allow hiding the IME navigation bar"" into udc-qpr-dev
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index a04c6bb..795eb4a 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -576,12 +576,6 @@
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
public static final long DISALLOW_INPUT_METHOD_INTERFACE_OVERRIDE = 148086656L;
- /**
- * Enable the logic to allow hiding the IME caption bar ("fake" IME navigation bar).
- * @hide
- */
- public static final boolean ENABLE_HIDE_IME_CAPTION_BAR = false;
-
LayoutInflater mInflater;
TypedArray mThemeAttrs;
@UnsupportedAppUsage
diff --git a/core/java/android/inputmethodservice/NavigationBarController.java b/core/java/android/inputmethodservice/NavigationBarController.java
index c01664e..78388ef 100644
--- a/core/java/android/inputmethodservice/NavigationBarController.java
+++ b/core/java/android/inputmethodservice/NavigationBarController.java
@@ -16,8 +16,6 @@
package android.inputmethodservice;
-import static android.inputmethodservice.InputMethodService.ENABLE_HIDE_IME_CAPTION_BAR;
-import static android.view.WindowInsets.Type.captionBar;
import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS;
import android.animation.ValueAnimator;
@@ -232,16 +230,6 @@
setIconTintInternal(calculateTargetDarkIntensity(mAppearance,
mDrawLegacyNavigationBarBackground));
-
- if (ENABLE_HIDE_IME_CAPTION_BAR) {
- mNavigationBarFrame.setOnApplyWindowInsetsListener((view, insets) -> {
- if (mNavigationBarFrame != null) {
- boolean visible = insets.isVisible(captionBar());
- mNavigationBarFrame.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
- }
- return view.onApplyWindowInsets(insets);
- });
- }
}
private void uninstallNavigationBarFrameIfNecessary() {
@@ -252,9 +240,6 @@
if (parent instanceof ViewGroup) {
((ViewGroup) parent).removeView(mNavigationBarFrame);
}
- if (ENABLE_HIDE_IME_CAPTION_BAR) {
- mNavigationBarFrame.setOnApplyWindowInsetsListener(null);
- }
mNavigationBarFrame = null;
}
@@ -429,9 +414,7 @@
decor.bringChildToFront(mNavigationBarFrame);
}
}
- if (!ENABLE_HIDE_IME_CAPTION_BAR) {
- mNavigationBarFrame.setVisibility(View.VISIBLE);
- }
+ mNavigationBarFrame.setVisibility(View.VISIBLE);
}
}
@@ -452,11 +435,6 @@
mShouldShowImeSwitcherWhenImeIsShown;
mShouldShowImeSwitcherWhenImeIsShown = shouldShowImeSwitcherWhenImeIsShown;
- if (ENABLE_HIDE_IME_CAPTION_BAR) {
- mService.mWindow.getWindow().getDecorView().getWindowInsetsController()
- .setImeCaptionBarInsetsHeight(getImeCaptionBarHeight());
- }
-
if (imeDrawsImeNavBar) {
installNavigationBarFrameIfNecessary();
if (mNavigationBarFrame == null) {
@@ -550,16 +528,6 @@
return drawLegacyNavigationBarBackground;
}
- /**
- * Returns the height of the IME caption bar if this should be shown, or {@code 0} instead.
- */
- private int getImeCaptionBarHeight() {
- return mImeDrawsImeNavBar
- ? mService.getResources().getDimensionPixelSize(
- com.android.internal.R.dimen.navigation_bar_frame_height)
- : 0;
- }
-
@Override
public String toDebugString() {
return "{mImeDrawsImeNavBar=" + mImeDrawsImeNavBar
diff --git a/core/java/android/view/InsetsController.java b/core/java/android/view/InsetsController.java
index c6d8bd1..4ecfc40 100644
--- a/core/java/android/view/InsetsController.java
+++ b/core/java/android/view/InsetsController.java
@@ -16,12 +16,10 @@
package android.view;
-import static android.inputmethodservice.InputMethodService.ENABLE_HIDE_IME_CAPTION_BAR;
import static android.os.Trace.TRACE_TAG_VIEW;
import static android.view.InsetsControllerProto.CONTROL;
import static android.view.InsetsControllerProto.STATE;
import static android.view.InsetsSource.ID_IME;
-import static android.view.InsetsSource.ID_IME_CAPTION_BAR;
import static android.view.ViewRootImpl.CAPTION_ON_SHELL;
import static android.view.WindowInsets.Type.FIRST;
import static android.view.WindowInsets.Type.LAST;
@@ -42,7 +40,6 @@
import android.content.Context;
import android.content.res.CompatibilityInfo;
import android.graphics.Insets;
-import android.graphics.Point;
import android.graphics.Rect;
import android.os.CancellationSignal;
import android.os.Handler;
@@ -655,7 +652,6 @@
private int mLastWindowingMode;
private boolean mStartingAnimation;
private int mCaptionInsetsHeight = 0;
- private int mImeCaptionBarInsetsHeight = 0;
private boolean mAnimationsDisabled;
private boolean mCompatSysUiVisibilityStaled;
@@ -697,9 +693,6 @@
if (!CAPTION_ON_SHELL && source1.getType() == captionBar()) {
return;
}
- if (source1.getId() == ID_IME_CAPTION_BAR) {
- return;
- }
// Don't change the indexes of the sources while traversing. Remove it later.
mPendingRemoveIndexes.add(index1);
@@ -830,9 +823,6 @@
if (mFrame.equals(frame)) {
return;
}
- if (mImeCaptionBarInsetsHeight != 0) {
- setImeCaptionBarInsetsHeight(mImeCaptionBarInsetsHeight);
- }
mHost.notifyInsetsChanged();
mFrame.set(frame);
}
@@ -1017,12 +1007,6 @@
// Ensure to update all existing source consumers
for (int i = mSourceConsumers.size() - 1; i >= 0; i--) {
final InsetsSourceConsumer consumer = mSourceConsumers.valueAt(i);
- if (consumer.getId() == ID_IME_CAPTION_BAR) {
- // The inset control for the IME caption bar will never be dispatched
- // by the server.
- continue;
- }
-
final InsetsSourceControl control = mTmpControlArray.get(consumer.getId());
if (control != null) {
controllableTypes |= control.getType();
@@ -1515,8 +1499,7 @@
continue;
}
final InsetsSourceControl control = consumer.getControl();
- if (control != null
- && (control.getLeash() != null || control.getId() == ID_IME_CAPTION_BAR)) {
+ if (control != null && control.getLeash() != null) {
controls.put(control.getId(), new InsetsSourceControl(control));
typesReady |= consumer.getType();
}
@@ -1902,35 +1885,6 @@
}
@Override
- public void setImeCaptionBarInsetsHeight(int height) {
- if (!ENABLE_HIDE_IME_CAPTION_BAR) {
- return;
- }
- Rect newFrame = new Rect(mFrame.left, mFrame.bottom - height, mFrame.right, mFrame.bottom);
- InsetsSource source = mState.peekSource(ID_IME_CAPTION_BAR);
- if (mImeCaptionBarInsetsHeight != height
- || (source != null && !newFrame.equals(source.getFrame()))) {
- mImeCaptionBarInsetsHeight = height;
- if (mImeCaptionBarInsetsHeight != 0) {
- mState.getOrCreateSource(ID_IME_CAPTION_BAR, captionBar())
- .setFrame(newFrame);
- getSourceConsumer(ID_IME_CAPTION_BAR, captionBar()).setControl(
- new InsetsSourceControl(ID_IME_CAPTION_BAR, captionBar(),
- null /* leash */, false /* initialVisible */,
- new Point(), Insets.NONE),
- new int[1], new int[1]);
- } else {
- mState.removeSource(ID_IME_CAPTION_BAR);
- InsetsSourceConsumer sourceConsumer = mSourceConsumers.get(ID_IME_CAPTION_BAR);
- if (sourceConsumer != null) {
- sourceConsumer.setControl(null, new int[1], new int[1]);
- }
- }
- mHost.notifyInsetsChanged();
- }
- }
-
- @Override
public void setSystemBarsBehavior(@Behavior int behavior) {
mHost.setSystemBarsBehavior(behavior);
}
diff --git a/core/java/android/view/InsetsSource.java b/core/java/android/view/InsetsSource.java
index 60a67de..6441186 100644
--- a/core/java/android/view/InsetsSource.java
+++ b/core/java/android/view/InsetsSource.java
@@ -20,7 +20,6 @@
import static android.view.InsetsSourceProto.TYPE;
import static android.view.InsetsSourceProto.VISIBLE;
import static android.view.InsetsSourceProto.VISIBLE_FRAME;
-import static android.view.WindowInsets.Type.captionBar;
import static android.view.WindowInsets.Type.ime;
import android.annotation.IntDef;
@@ -48,9 +47,6 @@
/** The insets source ID of IME */
public static final int ID_IME = createId(null, 0, ime());
- /** The insets source ID of the IME caption bar ("fake" IME navigation bar). */
- static final int ID_IME_CAPTION_BAR =
- InsetsSource.createId(null /* owner */, 1 /* index */, captionBar());
/**
* Controls whether this source suppresses the scrim. If the scrim is ignored, the system won't
@@ -219,9 +215,7 @@
// During drag-move and drag-resizing, the caption insets position may not get updated
// before the app frame get updated. To layout the app content correctly during drag events,
// we always return the insets with the corresponding height covering the top.
- // However, with the "fake" IME navigation bar treated as a caption bar, we skip this case
- // to set the actual insets towards the bottom of the screen.
- if (getType() == WindowInsets.Type.captionBar() && getId() != ID_IME_CAPTION_BAR) {
+ if (getType() == WindowInsets.Type.captionBar()) {
return Insets.of(0, frame.height(), 0, 0);
}
// Checks for whether there is shared edge with insets for 0-width/height window.
diff --git a/core/java/android/view/PendingInsetsController.java b/core/java/android/view/PendingInsetsController.java
index a4cbc52..e8f62fc 100644
--- a/core/java/android/view/PendingInsetsController.java
+++ b/core/java/android/view/PendingInsetsController.java
@@ -44,7 +44,6 @@
private ArrayList<OnControllableInsetsChangedListener> mControllableInsetsChangedListeners
= new ArrayList<>();
private int mCaptionInsetsHeight = 0;
- private int mImeCaptionBarInsetsHeight = 0;
private WindowInsetsAnimationControlListener mLoggingListener;
private @InsetsType int mRequestedVisibleTypes = WindowInsets.Type.defaultVisible();
@@ -92,11 +91,6 @@
}
@Override
- public void setImeCaptionBarInsetsHeight(int height) {
- mImeCaptionBarInsetsHeight = height;
- }
-
- @Override
public void setSystemBarsBehavior(int behavior) {
if (mReplayedInsetsController != null) {
mReplayedInsetsController.setSystemBarsBehavior(behavior);
@@ -174,9 +168,6 @@
if (mCaptionInsetsHeight != 0) {
controller.setCaptionInsetsHeight(mCaptionInsetsHeight);
}
- if (mImeCaptionBarInsetsHeight != 0) {
- controller.setImeCaptionBarInsetsHeight(mImeCaptionBarInsetsHeight);
- }
if (mAnimationsDisabled) {
controller.setAnimationsDisabled(true);
}
diff --git a/core/java/android/view/WindowInsetsController.java b/core/java/android/view/WindowInsetsController.java
index 9028a18..bc0bab7 100644
--- a/core/java/android/view/WindowInsetsController.java
+++ b/core/java/android/view/WindowInsetsController.java
@@ -250,15 +250,6 @@
void setCaptionInsetsHeight(int height);
/**
- * Sets the insets height for the IME caption bar, which corresponds to the
- * "fake" IME navigation bar.
- *
- * @param height the insets height of the IME caption bar.
- * @hide
- */
- void setImeCaptionBarInsetsHeight(int height);
-
- /**
* Controls the behavior of system bars.
*
* @param behavior Determines how the bars behave when being hidden by the application.
diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
index ae0ab84..e134f7c 100644
--- a/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
+++ b/packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java
@@ -25,7 +25,6 @@
import static android.app.StatusBarManager.WindowVisibleState;
import static android.app.StatusBarManager.windowStateToString;
import static android.app.WindowConfiguration.ROTATION_UNDEFINED;
-import static android.inputmethodservice.InputMethodService.ENABLE_HIDE_IME_CAPTION_BAR;
import static android.view.InsetsSource.FLAG_SUPPRESS_SCRIM;
import static android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE;
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
@@ -1715,12 +1714,10 @@
private InsetsFrameProvider[] getInsetsFrameProvider(int insetsHeight, Context userContext) {
final InsetsFrameProvider navBarProvider =
- new InsetsFrameProvider(mInsetsSourceOwner, 0, WindowInsets.Type.navigationBars());
- if (!ENABLE_HIDE_IME_CAPTION_BAR) {
- navBarProvider.setInsetsSizeOverrides(new InsetsFrameProvider.InsetsSizeOverride[] {
- new InsetsFrameProvider.InsetsSizeOverride(TYPE_INPUT_METHOD, null)
- });
- }
+ new InsetsFrameProvider(mInsetsSourceOwner, 0, WindowInsets.Type.navigationBars())
+ .setInsetsSizeOverrides(new InsetsFrameProvider.InsetsSizeOverride[] {
+ new InsetsFrameProvider.InsetsSizeOverride(
+ TYPE_INPUT_METHOD, null)});
if (insetsHeight != -1 && !mEdgeBackGestureHandler.isButtonForcedVisible()) {
navBarProvider.setInsetsSize(Insets.of(0, 0, 0, insetsHeight));
}
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 6509126..2a617c5 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -6132,8 +6132,6 @@
mVisibilityStateComputer.dump(pw);
p.println(" mInFullscreenMode=" + mInFullscreenMode);
p.println(" mSystemReady=" + mSystemReady + " mInteractive=" + mIsInteractive);
- p.println(" ENABLE_HIDE_IME_CAPTION_BAR="
- + InputMethodService.ENABLE_HIDE_IME_CAPTION_BAR);
p.println(" mSettingsObserver=" + mSettingsObserver);
p.println(" mStylusIds=" + (mStylusIds != null
? Arrays.toString(mStylusIds.toArray()) : ""));