Commit c9569b31 authored by Jinsuk Kim's avatar Jinsuk Kim Committed by Commit Bot

Move IncognitoStateProvider to chrome/browser/tabmodel

IncognitoStateProvider uses a tab model to provide its incognito state,
used by toolbar/omnibox. This CL moves it to tabmodel module, in
an effort to reduce the omnibox's dependency on toolbar.

Bug: 1127732
Change-Id: If5b1904e6d7d90165d92ce348f3bc704beec8a52
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2408598
Commit-Queue: Jinsuk Kim <jinsukkim@chromium.org>
Reviewed-by: default avatarHenrique Nakashima <hnakashima@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810504}
parent 65d61ff1
...@@ -1542,7 +1542,6 @@ chrome_java_sources = [ ...@@ -1542,7 +1542,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/toolbar/ButtonDataProvider.java", "java/src/org/chromium/chrome/browser/toolbar/ButtonDataProvider.java",
"java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java", "java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java",
"java/src/org/chromium/chrome/browser/toolbar/HomeButton.java", "java/src/org/chromium/chrome/browser/toolbar/HomeButton.java",
"java/src/org/chromium/chrome/browser/toolbar/IncognitoStateProvider.java",
"java/src/org/chromium/chrome/browser/toolbar/IncognitoToggleTabLayout.java", "java/src/org/chromium/chrome/browser/toolbar/IncognitoToggleTabLayout.java",
"java/src/org/chromium/chrome/browser/toolbar/KeyboardNavigationListener.java", "java/src/org/chromium/chrome/browser/toolbar/KeyboardNavigationListener.java",
"java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java", "java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java",
......
...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; ...@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.top.Toolbar; import org.chromium.chrome.browser.toolbar.top.Toolbar;
import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback; import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback;
......
...@@ -65,8 +65,8 @@ import org.chromium.chrome.browser.profiles.Profile; ...@@ -65,8 +65,8 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil; import org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback; import org.chromium.chrome.browser.toolbar.top.ToolbarActionModeCallback;
import org.chromium.chrome.browser.ui.native_page.NativePage; import org.chromium.chrome.browser.ui.native_page.NativePage;
......
...@@ -20,7 +20,7 @@ import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate; ...@@ -20,7 +20,7 @@ import org.chromium.chrome.browser.page_info.ChromePageInfoControllerDelegate;
import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate; import org.chromium.chrome.browser.page_info.ChromePermissionParamsListBuilderDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabUtils; import org.chromium.chrome.browser.tab.TabUtils;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.components.page_info.PageInfoController; import org.chromium.components.page_info.PageInfoController;
import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents;
......
...@@ -25,7 +25,7 @@ import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; ...@@ -25,7 +25,7 @@ import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
import org.chromium.chrome.browser.omnibox.status.StatusProperties.StatusIconResource; import org.chromium.chrome.browser.omnibox.status.StatusProperties.StatusIconResource;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinatorFactory; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinatorFactory;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarColors; import org.chromium.chrome.browser.toolbar.ToolbarColors;
import org.chromium.chrome.browser.toolbar.ToolbarCommonPropertiesModel; import org.chromium.chrome.browser.toolbar.ToolbarCommonPropertiesModel;
import org.chromium.components.security_state.ConnectionSecurityLevel; import org.chromium.components.security_state.ConnectionSecurityLevel;
......
...@@ -10,7 +10,8 @@ import org.chromium.chrome.browser.ThemeColorProvider; ...@@ -10,7 +10,8 @@ import org.chromium.chrome.browser.ThemeColorProvider;
import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.OverviewModeObserver;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider.IncognitoStateObserver; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider.IncognitoStateObserver;
import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.browser_ui.styles.ChromeColors;
/** A ThemeColorProvider for the app theme (incognito or standard theming). */ /** A ThemeColorProvider for the app theme (incognito or standard theming). */
......
...@@ -16,8 +16,9 @@ import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; ...@@ -16,8 +16,9 @@ import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat;
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.device.DeviceClassManager; import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider.IncognitoStateObserver;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider.IncognitoStateObserver;
import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration; import org.chromium.chrome.features.start_surface.StartSurfaceConfiguration;
import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.widget.ChromeImageButton; import org.chromium.ui.widget.ChromeImageButton;
......
...@@ -71,6 +71,7 @@ import org.chromium.chrome.browser.tab.TabObserver; ...@@ -71,6 +71,7 @@ import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab.TabSelectionType;
import org.chromium.chrome.browser.tab.TabThemeColorHelper; import org.chromium.chrome.browser.tab.TabThemeColorHelper;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
...@@ -277,7 +278,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve ...@@ -277,7 +278,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
}; };
mActivity.registerComponentCallbacks(mComponentCallbacks); mActivity.registerComponentCallbacks(mComponentCallbacks);
mIncognitoStateProvider = new IncognitoStateProvider(mActivity); mIncognitoStateProvider = new IncognitoStateProvider();
mTabCountProvider = new TabCountProvider(); mTabCountProvider = new TabCountProvider();
mTabThemeColorProvider = themeColorProvider; mTabThemeColorProvider = themeColorProvider;
mTabThemeColorProvider.addThemeColorObserver(this); mTabThemeColorProvider.addThemeColorObserver(this);
......
...@@ -25,10 +25,10 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutManager; ...@@ -25,10 +25,10 @@ import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tasks.tab_management.TabGroupUi; import org.chromium.chrome.browser.tasks.tab_management.TabGroupUi;
import org.chromium.chrome.browser.tasks.tab_management.TabManagementModuleProvider; import org.chromium.chrome.browser.tasks.tab_management.TabManagementModuleProvider;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.TabCountProvider; import org.chromium.chrome.browser.toolbar.TabCountProvider;
import org.chromium.chrome.browser.toolbar.bottom.BottomControlsViewBinder.ViewHolder; import org.chromium.chrome.browser.toolbar.bottom.BottomControlsViewBinder.ViewHolder;
import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper;
......
...@@ -63,7 +63,7 @@ import org.chromium.chrome.browser.profiles.Profile; ...@@ -63,7 +63,7 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TrustedCdn; import org.chromium.chrome.browser.tab.TrustedCdn;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider; import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.ToolbarColors; import org.chromium.chrome.browser.toolbar.ToolbarColors;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.ToolbarTabController; import org.chromium.chrome.browser.toolbar.ToolbarTabController;
......
...@@ -20,9 +20,9 @@ import org.chromium.chrome.R; ...@@ -20,9 +20,9 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ThemeColorProvider; import org.chromium.chrome.browser.ThemeColorProvider;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ButtonData; import org.chromium.chrome.browser.toolbar.ButtonData;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.TabCountProvider; import org.chromium.chrome.browser.toolbar.TabCountProvider;
import org.chromium.chrome.browser.toolbar.TabSwitcherButtonCoordinator; import org.chromium.chrome.browser.toolbar.TabSwitcherButtonCoordinator;
import org.chromium.chrome.browser.toolbar.TabSwitcherButtonView; import org.chromium.chrome.browser.toolbar.TabSwitcherButtonView;
......
...@@ -34,11 +34,11 @@ import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv ...@@ -34,11 +34,11 @@ import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv
import org.chromium.chrome.browser.compositor.layouts.OverviewModeState; import org.chromium.chrome.browser.compositor.layouts.OverviewModeState;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
import org.chromium.chrome.browser.toolbar.ButtonData; import org.chromium.chrome.browser.toolbar.ButtonData;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator;
import org.chromium.chrome.browser.user_education.IPHCommandBuilder; import org.chromium.chrome.browser.user_education.IPHCommandBuilder;
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
......
...@@ -6,7 +6,8 @@ package org.chromium.chrome.browser.toolbar.top; ...@@ -6,7 +6,8 @@ package org.chromium.chrome.browser.toolbar.top;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.view.View; import android.view.View;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
......
...@@ -14,13 +14,15 @@ import android.view.View; ...@@ -14,13 +14,15 @@ import android.view.View;
import android.view.ViewPropertyAnimator; import android.view.ViewPropertyAnimator;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.NewTabButton; import org.chromium.chrome.browser.toolbar.NewTabButton;
import org.chromium.components.browser_ui.styles.ChromeColors; import org.chromium.components.browser_ui.styles.ChromeColors;
import org.chromium.components.browser_ui.widget.animation.Interpolators; import org.chromium.components.browser_ui.widget.animation.Interpolators;
......
...@@ -15,11 +15,11 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; ...@@ -15,11 +15,11 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabCreationState;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModelObserver;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.TabCountProvider; import org.chromium.chrome.browser.toolbar.TabCountProvider;
import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper; import org.chromium.chrome.browser.ui.appmenu.AppMenuButtonHelper;
......
...@@ -21,9 +21,9 @@ import org.chromium.chrome.R; ...@@ -21,9 +21,9 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils; import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities; import org.chromium.chrome.browser.tasks.tab_management.TabUiFeatureUtilities;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.IncognitoToggleTabLayout; import org.chromium.chrome.browser.toolbar.IncognitoToggleTabLayout;
import org.chromium.chrome.browser.toolbar.NewTabButton; import org.chromium.chrome.browser.toolbar.NewTabButton;
import org.chromium.chrome.browser.toolbar.TabCountProvider; import org.chromium.chrome.browser.toolbar.TabCountProvider;
......
...@@ -23,10 +23,10 @@ import org.chromium.chrome.R; ...@@ -23,10 +23,10 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ThemeColorProvider; import org.chromium.chrome.browser.ThemeColorProvider;
import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior; import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior;
import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.LocationBar;
import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider;
import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.toolbar.ButtonData; import org.chromium.chrome.browser.toolbar.ButtonData;
import org.chromium.chrome.browser.toolbar.ButtonDataProvider; import org.chromium.chrome.browser.toolbar.ButtonDataProvider;
import org.chromium.chrome.browser.toolbar.IncognitoStateProvider;
import org.chromium.chrome.browser.toolbar.TabCountProvider; import org.chromium.chrome.browser.toolbar.TabCountProvider;
import org.chromium.chrome.browser.toolbar.ToolbarDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarDataProvider;
import org.chromium.chrome.browser.toolbar.ToolbarProgressBar; import org.chromium.chrome.browser.toolbar.ToolbarProgressBar;
......
...@@ -14,6 +14,7 @@ android_library("java") { ...@@ -14,6 +14,7 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModel.java", "android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModel.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelFilter.java", "android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelFilter.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java", "android/java/src/org/chromium/chrome/browser/tabmodel/EmptyTabModelSelectorObserver.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoStateProvider.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHost.java", "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHost.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry.java", "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabHostRegistry.java",
"android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java", "android/java/src/org/chromium/chrome/browser/tabmodel/IncognitoTabModel.java",
......
...@@ -2,15 +2,9 @@ ...@@ -2,15 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
package org.chromium.chrome.browser.toolbar; package org.chromium.chrome.browser.tabmodel;
import android.content.Context;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
/** A provider that notifies its observers when incognito mode is entered or exited. */ /** A provider that notifies its observers when incognito mode is entered or exited. */
public class IncognitoStateProvider { public class IncognitoStateProvider {
...@@ -29,13 +23,14 @@ public class IncognitoStateProvider { ...@@ -29,13 +23,14 @@ public class IncognitoStateProvider {
/** A {@link TabModelSelector} used to know when incognito mode is entered or exited. */ /** A {@link TabModelSelector} used to know when incognito mode is entered or exited. */
private TabModelSelector mTabModelSelector; private TabModelSelector mTabModelSelector;
public IncognitoStateProvider(Context context) { public IncognitoStateProvider() {
mIncognitoStateObservers = new ObserverList<IncognitoStateObserver>(); mIncognitoStateObservers = new ObserverList<IncognitoStateObserver>();
mTabModelSelectorObserver = new EmptyTabModelSelectorObserver() { mTabModelSelectorObserver = new EmptyTabModelSelectorObserver() {
@Override @Override
public void onTabModelSelected(TabModel newModel, TabModel oldModel) { public void onTabModelSelected(TabModel newModel, TabModel oldModel) {
incognitoStateChanged(newModel.isIncognito()); // TODO(jinsukkim): Emit this only if the state is different.
emitIncognitoStateChanged(newModel.isIncognito());
} }
}; };
} }
...@@ -63,13 +58,19 @@ public class IncognitoStateProvider { ...@@ -63,13 +58,19 @@ public class IncognitoStateProvider {
mIncognitoStateObservers.removeObserver(observer); mIncognitoStateObservers.removeObserver(observer);
} }
void setTabModelSelector(TabModelSelector tabModelSelector) { /**
* @param tabModelSelector {@link TabModelSelector} to set.
*/
public void setTabModelSelector(TabModelSelector tabModelSelector) {
mTabModelSelector = tabModelSelector; mTabModelSelector = tabModelSelector;
mTabModelSelector.addObserver(mTabModelSelectorObserver); mTabModelSelector.addObserver(mTabModelSelectorObserver);
incognitoStateChanged(mTabModelSelector.isIncognitoSelected()); emitIncognitoStateChanged(mTabModelSelector.isIncognitoSelected());
} }
void destroy() { /**
* Destroy {@link IncognitoStateProvider} object.
*/
public void destroy() {
if (mTabModelSelector != null) { if (mTabModelSelector != null) {
mTabModelSelector.removeObserver(mTabModelSelectorObserver); mTabModelSelector.removeObserver(mTabModelSelectorObserver);
mTabModelSelector = null; mTabModelSelector = null;
...@@ -77,7 +78,11 @@ public class IncognitoStateProvider { ...@@ -77,7 +78,11 @@ public class IncognitoStateProvider {
mIncognitoStateObservers.clear(); mIncognitoStateObservers.clear();
} }
private void incognitoStateChanged(boolean isIncognito) { /**
* Update incognito-selected state.
* @param isIncognito Whether incognito mode is selected.
*/
private void emitIncognitoStateChanged(boolean isIncognito) {
for (IncognitoStateObserver observer : mIncognitoStateObservers) { for (IncognitoStateObserver observer : mIncognitoStateObservers) {
observer.onIncognitoStateChanged(isIncognito); observer.onIncognitoStateChanged(isIncognito);
} }
......
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