Fix Move-navigation-bar-to-bottom.patch (#2029)
* fix 1995 and 2011 * fixgit apply Co-authored-by: Carmelo Messina <uazo@users.noreply.github.com>
This commit is contained in:
parent
685c40dbda
commit
b7bad88837
1 changed files with 95 additions and 9 deletions
|
@ -18,6 +18,7 @@ Support for tablet mode is also included.
|
||||||
.../tab_management/TabGroupUiProperties.java | 6 ++-
|
.../tab_management/TabGroupUiProperties.java | 6 ++-
|
||||||
.../tab_management/TabGroupUiToolbarView.java | 18 +++++++
|
.../tab_management/TabGroupUiToolbarView.java | 18 +++++++
|
||||||
.../tab_management/TabGroupUiViewBinder.java | 3 ++
|
.../tab_management/TabGroupUiViewBinder.java | 3 ++
|
||||||
|
.../tab_management/TabListRecyclerView.java | 18 ++++++-
|
||||||
.../tab_management/TabSwitcherMediator.java | 15 ++++++
|
.../tab_management/TabSwitcherMediator.java | 15 ++++++
|
||||||
.../ChromeAccessibilitySettingsDelegate.java | 52 +++++++++++++++++++
|
.../ChromeAccessibilitySettingsDelegate.java | 52 +++++++++++++++++++
|
||||||
.../chrome/browser/app/ChromeActivity.java | 8 +++
|
.../chrome/browser/app/ChromeActivity.java | 8 +++
|
||||||
|
@ -52,7 +53,7 @@ Support for tablet mode is also included.
|
||||||
.../flags/android/chrome_feature_list.cc | 2 +
|
.../flags/android/chrome_feature_list.cc | 2 +
|
||||||
.../browser/flags/CachedFeatureFlags.java | 19 +++++++
|
.../browser/flags/CachedFeatureFlags.java | 19 +++++++
|
||||||
.../browser/flags/ChromeFeatureList.java | 2 +
|
.../browser/flags/ChromeFeatureList.java | 2 +
|
||||||
.../chrome/browser/ui/appmenu/AppMenu.java | 4 ++
|
.../chrome/browser/ui/appmenu/AppMenu.java | 19 +++++++
|
||||||
.../omnibox/LocationBarCoordinator.java | 9 +++-
|
.../omnibox/LocationBarCoordinator.java | 9 +++-
|
||||||
.../browser/omnibox/UrlBarCoordinator.java | 11 +++-
|
.../browser/omnibox/UrlBarCoordinator.java | 11 +++-
|
||||||
.../suggestions/AutocompleteCoordinator.java | 16 +++++-
|
.../suggestions/AutocompleteCoordinator.java | 16 +++++-
|
||||||
|
@ -75,7 +76,7 @@ Support for tablet mode is also included.
|
||||||
.../accessibility/AccessibilitySettings.java | 16 ++++++
|
.../accessibility/AccessibilitySettings.java | 16 ++++++
|
||||||
.../AccessibilitySettingsDelegate.java | 6 +++
|
.../AccessibilitySettingsDelegate.java | 6 +++
|
||||||
.../render_widget_host_view_android.cc | 3 ++
|
.../render_widget_host_view_android.cc | 3 ++
|
||||||
66 files changed, 674 insertions(+), 51 deletions(-)
|
67 files changed, 706 insertions(+), 52 deletions(-)
|
||||||
|
|
||||||
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
diff --git a/cc/base/features.cc b/cc/base/features.cc
|
||||||
--- a/cc/base/features.cc
|
--- a/cc/base/features.cc
|
||||||
|
@ -356,6 +357,69 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
|
||||||
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
|
||||||
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java
|
||||||
|
@@ -65,6 +65,8 @@ class TabListRecyclerView
|
||||||
|
public static final long BASE_ANIMATION_DURATION_MS = 218;
|
||||||
|
public static final long FINAL_FADE_IN_DURATION_MS = 50;
|
||||||
|
|
||||||
|
+ private boolean mIsVisible = false;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Field trial parameter for downsampling scaling factor.
|
||||||
|
*/
|
||||||
|
@@ -192,6 +194,7 @@ class TabListRecyclerView
|
||||||
|
? FINAL_FADE_IN_DURATION_MS
|
||||||
|
: BASE_ANIMATION_DURATION_MS;
|
||||||
|
|
||||||
|
+ mIsVisible = true;
|
||||||
|
setAlpha(0);
|
||||||
|
setVisibility(View.VISIBLE);
|
||||||
|
mFadeInAnimator = ObjectAnimator.ofFloat(this, View.ALPHA, 1);
|
||||||
|
@@ -220,6 +223,11 @@ class TabListRecyclerView
|
||||||
|
}
|
||||||
|
|
||||||
|
void setShadowVisibility(boolean shouldShowShadow) {
|
||||||
|
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)
|
||||||
|
+ && mIsVisible) {
|
||||||
|
+ // always show shadow
|
||||||
|
+ shouldShowShadow = true;
|
||||||
|
+ }
|
||||||
|
if (mShadowImageView == null) {
|
||||||
|
Context context = getContext();
|
||||||
|
mShadowImageView = new ImageView(context);
|
||||||
|
@@ -238,7 +246,10 @@ class TabListRecyclerView
|
||||||
|
if (getParent() instanceof FrameLayout) {
|
||||||
|
// Add shadow for grid tab switcher.
|
||||||
|
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||||
|
- LayoutParams.MATCH_PARENT, shadowHeight, Gravity.TOP);
|
||||||
|
+ LayoutParams.MATCH_PARENT, shadowHeight,
|
||||||
|
+ (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) ?
|
||||||
|
+ Gravity.BOTTOM :
|
||||||
|
+ Gravity.TOP));
|
||||||
|
mShadowImageView.setLayoutParams(params);
|
||||||
|
mShadowImageView.setTranslationY(mShadowTopOffset);
|
||||||
|
FrameLayout parent = (FrameLayout) getParent();
|
||||||
|
@@ -265,6 +276,10 @@ class TabListRecyclerView
|
||||||
|
|
||||||
|
void setShadowTopOffset(int shadowTopOffset) {
|
||||||
|
mShadowTopOffset = shadowTopOffset;
|
||||||
|
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
|
||||||
|
+ // invert the offset since Gravity is set to BOTTOM
|
||||||
|
+ mShadowTopOffset = -mShadowTopOffset;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (mShadowImageView != null && getParent() instanceof FrameLayout) {
|
||||||
|
// Since the shadow has no functionality, other than just existing visually, we can use
|
||||||
|
@@ -445,6 +460,7 @@ class TabListRecyclerView
|
||||||
|
mListener.finishedHiding();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
+ mIsVisible = false;
|
||||||
|
setShadowVisibility(false);
|
||||||
|
mFadeOutAnimator.start();
|
||||||
|
if (!animate) mFadeOutAnimator.end();
|
||||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
||||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
||||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
|
||||||
|
@ -1507,15 +1571,37 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
|
||||||
import org.chromium.chrome.browser.ui.appmenu.internal.R;
|
import org.chromium.chrome.browser.ui.appmenu.internal.R;
|
||||||
import org.chromium.components.browser_ui.styles.ChromeColors;
|
import org.chromium.components.browser_ui.styles.ChromeColors;
|
||||||
import org.chromium.components.browser_ui.widget.chips.ChipView;
|
import org.chromium.components.browser_ui.widget.chips.ChipView;
|
||||||
@@ -522,6 +524,8 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
@@ -341,6 +343,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
||||||
View anchorView, @IdRes int groupDividerResourceId) {
|
int anchorViewX = tempLocation[0];
|
||||||
anchorView.getLocationOnScreen(mTempLocation);
|
int anchorViewY = tempLocation[1];
|
||||||
int anchorViewY = mTempLocation[1] - appDimensions.top;
|
|
||||||
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM))
|
|
||||||
+ anchorViewY += mNegativeVerticalOffsetNotTopAnchored;
|
|
||||||
|
|
||||||
int anchorViewImpactHeight = mIsByPermanentButton ? anchorView.getHeight() : 0;
|
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
|
||||||
|
+ // moves the view offset up by the height of the popup
|
||||||
|
+ anchorViewY -= popupHeight;
|
||||||
|
+ // fix it if it goes offscreen
|
||||||
|
+ if (anchorViewY <= negativeSoftwareVerticalOffset)
|
||||||
|
+ anchorViewY = negativeSoftwareVerticalOffset;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
int[] offsets = new int[2];
|
||||||
|
// If we have a hardware menu button, locate the app menu closer to the estimated
|
||||||
|
// hardware menu button location.
|
||||||
|
@@ -531,6 +541,15 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
|
||||||
|
}
|
||||||
|
int availableScreenSpace = Math.max(
|
||||||
|
anchorViewY, appDimensions.height() - anchorViewY - anchorViewImpactHeight);
|
||||||
|
+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) {
|
||||||
|
+ // use all available space
|
||||||
|
+ availableScreenSpace = appDimensions.height() - anchorViewImpactHeight;
|
||||||
|
+ if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) {
|
||||||
|
+ // due to a bug in A7, the popup does not appear above the anchorview.
|
||||||
|
+ // the display is not pleasant, so we reduce the space
|
||||||
|
+ availableScreenSpace -= anchorView.getHeight();
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
availableScreenSpace -= (padding.bottom + footerHeight + headerHeight);
|
||||||
|
if (mIsByPermanentButton) availableScreenSpace -= padding.top;
|
||||||
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
|
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
|
--- 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
|
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
|
||||||
|
|
Loading…
Add table
Reference in a new issue