Commit 022bd396 authored by Pedro Amaral's avatar Pedro Amaral Committed by Commit Bot

Disable bottom toolbar home button in NTP

Bug: 904980
Change-Id: I8be16d85a204fcd306fd7d5ea4e2988295daab77
Reviewed-on: https://chromium-review.googlesource.com/c/1364340Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Commit-Queue: Pedro Amaral <amaralp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614835}
parent 5356fbea
...@@ -17,7 +17,11 @@ import android.view.View.OnCreateContextMenuListener; ...@@ -17,7 +17,11 @@ import android.view.View.OnCreateContextMenuListener;
import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityTabProvider.ActivityTabTabObserver;
import org.chromium.chrome.browser.ntp.NewTabPage;
import org.chromium.chrome.browser.partnercustomizations.HomepageManager; import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver; import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver;
import org.chromium.chrome.browser.util.FeatureUtilities; import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.ui.widget.ChromeImageButton; import org.chromium.ui.widget.ChromeImageButton;
...@@ -33,6 +37,9 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver, ...@@ -33,6 +37,9 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
/** A provider that notifies components when the theme color changes.*/ /** A provider that notifies components when the theme color changes.*/
private ThemeColorProvider mThemeColorProvider; private ThemeColorProvider mThemeColorProvider;
/** The {@link sActivityTabTabObserver} used to know when the active page changed. */
private ActivityTabTabObserver mActivityTabTabObserver;
public HomeButton(Context context, AttributeSet attrs) { public HomeButton(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
...@@ -51,6 +58,10 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver, ...@@ -51,6 +58,10 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
mThemeColorProvider.removeObserver(this); mThemeColorProvider.removeObserver(this);
mThemeColorProvider = null; mThemeColorProvider = null;
} }
if (mActivityTabTabObserver != null) {
mActivityTabTabObserver.destroy();
mActivityTabTabObserver = null;
}
} }
public void setThemeColorProvider(ThemeColorProvider themeColorProvider) { public void setThemeColorProvider(ThemeColorProvider themeColorProvider) {
...@@ -74,4 +85,25 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver, ...@@ -74,4 +85,25 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
HomepageManager.getInstance().setPrefHomepageEnabled(false); HomepageManager.getInstance().setPrefHomepageEnabled(false);
return true; return true;
} }
public void setActivityTabProvider(ActivityTabProvider activityTabProvider) {
mActivityTabTabObserver = new ActivityTabTabObserver(activityTabProvider) {
@Override
public void onObservingDifferentTab(Tab tab) {
if (tab == null) return;
setEnabled(shouldEnableHome(tab));
}
@Override
public void onPageLoadFinished(Tab tab, String url) {
if (tab == null) return;
setEnabled(shouldEnableHome(tab));
}
};
}
private static boolean shouldEnableHome(Tab tab) {
if (!FeatureUtilities.isBottomToolbarEnabled()) return true;
return !NewTabPage.isNTPUrl(tab.getUrl());
}
} }
...@@ -85,6 +85,7 @@ public class BrowsingModeBottomToolbarCoordinator { ...@@ -85,6 +85,7 @@ public class BrowsingModeBottomToolbarCoordinator {
mHomeButton = toolbarRoot.findViewById(R.id.home_button); mHomeButton = toolbarRoot.findViewById(R.id.home_button);
mHomeButton.setOnClickListener(homeButtonListener); mHomeButton.setOnClickListener(homeButtonListener);
mHomeButton.setActivityTabProvider(tabProvider);
mShareButton = toolbarRoot.findViewById(R.id.share_button); mShareButton = toolbarRoot.findViewById(R.id.share_button);
mShareButton.setOnClickListener(shareButtonListener); mShareButton.setOnClickListener(shareButtonListener);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment