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;
import org.chromium.base.ApiCompatibilityUtils;
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.tab.Tab;
import org.chromium.chrome.browser.toolbar.ThemeColorProvider.ThemeColorObserver;
import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.ui.widget.ChromeImageButton;
......@@ -33,6 +37,9 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
/** A provider that notifies components when the theme color changes.*/
private ThemeColorProvider mThemeColorProvider;
/** The {@link sActivityTabTabObserver} used to know when the active page changed. */
private ActivityTabTabObserver mActivityTabTabObserver;
public HomeButton(Context context, AttributeSet attrs) {
super(context, attrs);
......@@ -51,6 +58,10 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
mThemeColorProvider.removeObserver(this);
mThemeColorProvider = null;
}
if (mActivityTabTabObserver != null) {
mActivityTabTabObserver.destroy();
mActivityTabTabObserver = null;
}
}
public void setThemeColorProvider(ThemeColorProvider themeColorProvider) {
......@@ -74,4 +85,25 @@ public class HomeButton extends ChromeImageButton implements ThemeColorObserver,
HomepageManager.getInstance().setPrefHomepageEnabled(false);
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 {
mHomeButton = toolbarRoot.findViewById(R.id.home_button);
mHomeButton.setOnClickListener(homeButtonListener);
mHomeButton.setActivityTabProvider(tabProvider);
mShareButton = toolbarRoot.findViewById(R.id.share_button);
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