Move navigation bar to bottom: adjust the keyboard size on devices with 3-button navigation (#2543)
This commit is contained in:
@@ -75,7 +75,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../ui/appmenu/AppMenuHandlerImpl.java | 10 ++
|
||||
.../EdgeToEdgeControllerImpl.java | 1 +
|
||||
.../ui/edge_to_edge/EdgeToEdgeUtils.java | 2 +
|
||||
...rredIMEWindowInsetApplicationCallback.java | 17 ++
|
||||
...rredIMEWindowInsetApplicationCallback.java | 7 +
|
||||
.../omnibox/LocationBarCoordinator.java | 1 +
|
||||
...mniboxSuggestionsDropdownEmbedderImpl.java | 32 ++++
|
||||
.../suggestions/AutocompleteCoordinator.java | 16 ++
|
||||
@@ -104,7 +104,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
.../Move-navigation-bar-to-bottom.inc | 17 ++
|
||||
.../renderer/core/frame/viewport_data.cc | 1 +
|
||||
91 files changed, 1084 insertions(+), 95 deletions(-)
|
||||
91 files changed, 1074 insertions(+), 95 deletions(-)
|
||||
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
|
||||
@@ -2391,7 +2391,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
@Override
|
||||
public void onPrepare(WindowInsetsAnimationCompat animation) {
|
||||
if ((animation.getTypeMask() & WindowInsetsCompat.Type.ime()) == 0) return;
|
||||
@@ -121,11 +126,14 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
@@ -121,11 +126,13 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
public WindowInsetsCompat onApplyWindowInsets(
|
||||
View view, WindowInsetsCompat windowInsetsCompat) {
|
||||
int newKeyboardHeight = 0;
|
||||
@@ -2401,27 +2401,10 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
Insets systemBarInsets =
|
||||
windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
newKeyboardHeight = imeInsets.bottom - systemBarInsets.bottom;
|
||||
+ if (!hasTappableNavigationBarFromInsets(windowInsetsCompat))
|
||||
+ mSystemBarInsetsBottom = systemBarInsets.bottom;
|
||||
+ mSystemBarInsetsBottom = systemBarInsets.bottom;
|
||||
|
||||
// Since the ime insets are greater than 0, the keyboard is showing, but its height is
|
||||
// being suppressed in that this class deliberately wants to avoid application resizing.
|
||||
@@ -173,6 +181,15 @@ public class DeferredIMEWindowInsetApplicationCallback
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
+ static boolean hasTappableNavigationBarFromInsets(WindowInsetsCompat insets) {
|
||||
+ Insets navigationBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars());
|
||||
+ Insets tappableElementInsets = insets.getInsets(WindowInsetsCompat.Type.tappableElement());
|
||||
+ // Return whether there is any overlap in navigation bar and tappable element insets.
|
||||
+ return (navigationBarInsets.bottom > 0 && tappableElementInsets.bottom > 0)
|
||||
+ || (navigationBarInsets.left > 0 && tappableElementInsets.left > 0)
|
||||
+ || (navigationBarInsets.right > 0 && tappableElementInsets.right > 0);
|
||||
+ }
|
||||
+
|
||||
private void commitKeyboardHeight(int newKeyboardHeight) {
|
||||
mKeyboardHeight = newKeyboardHeight;
|
||||
mDeferredKeyboardHeight = NO_DEFERRED_KEYBOARD_HEIGHT;
|
||||
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||
|
||||
Reference in New Issue
Block a user