Commit 4a506955 authored by Peter Kotwicz's avatar Peter Kotwicz Committed by Commit Bot

[Android WebAPK] Make WebAPKs use CustomTabNightModeStateController

This CL makes home screen shortcuts and WebAPKs use
CustomTabNightModeStateController as part of the WebAPK/TWA unification
effort.

BUG=1067105

Change-Id: Ifd6f06825a3a8ac4610ec4b0a53dfaf3941d98be
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2133379
Commit-Queue: Peter Kotwicz <pkotwicz@chromium.org>
Reviewed-by: default avatarGlenn Hartmann <hartmanng@chromium.org>
Reviewed-by: default avatarPeter Conn <peconn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#757563}
parent 9b22c5ee
...@@ -27,6 +27,9 @@ import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTab ...@@ -27,6 +27,9 @@ import org.chromium.chrome.browser.customtabs.dependency_injection.BaseCustomTab
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarColorController; import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarColorController;
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator; import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
import org.chromium.chrome.browser.night_mode.PowerSavingModeMonitor;
import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabState; import org.chromium.chrome.browser.tab.TabState;
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator; import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
...@@ -51,6 +54,7 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo ...@@ -51,6 +54,7 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo
protected CustomTabStatusBarColorProvider mStatusBarColorProvider; protected CustomTabStatusBarColorProvider mStatusBarColorProvider;
protected CustomTabActivityTabFactory mTabFactory; protected CustomTabActivityTabFactory mTabFactory;
protected CustomTabIntentHandler mCustomTabIntentHandler; protected CustomTabIntentHandler mCustomTabIntentHandler;
protected CustomTabNightModeStateController mNightModeStateController;
protected @Nullable WebappActivityCoordinator mWebappActivityCoordinator; protected @Nullable WebappActivityCoordinator mWebappActivityCoordinator;
// This is to give the right package name while using the client's resources during an // This is to give the right package name while using the client's resources during an
...@@ -73,6 +77,19 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo ...@@ -73,6 +77,19 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo
|| activity instanceof SameTaskWebApkActivity; || activity instanceof SameTaskWebApkActivity;
} }
@Override
protected NightModeStateProvider createNightModeStateProvider() {
// This is called before Dagger component is created, so using getInstance() directly.
mNightModeStateController = new CustomTabNightModeStateController(getLifecycleDispatcher(),
SystemNightModeMonitor.getInstance(), PowerSavingModeMonitor.getInstance());
return mNightModeStateController;
}
@Override
protected void initializeNightModeStateProvider() {
mNightModeStateController.initialize(getDelegate(), getIntent());
}
@Override @Override
protected RootUiCoordinator createRootUiCoordinator() { protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(), return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
......
...@@ -47,10 +47,7 @@ import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsMod ...@@ -47,10 +47,7 @@ import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsMod
import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor; import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.infobar.InfoBarContainer; import org.chromium.chrome.browser.infobar.InfoBarContainer;
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
import org.chromium.chrome.browser.night_mode.NightModeUtils; import org.chromium.chrome.browser.night_mode.NightModeUtils;
import org.chromium.chrome.browser.night_mode.PowerSavingModeMonitor;
import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
import org.chromium.chrome.browser.page_info.PageInfoController; import org.chromium.chrome.browser.page_info.PageInfoController;
import org.chromium.chrome.browser.previews.Previews; import org.chromium.chrome.browser.previews.Previews;
...@@ -71,7 +68,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo ...@@ -71,7 +68,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
private final CustomTabsConnection mConnection = CustomTabsConnection.getInstance(); private final CustomTabsConnection mConnection = CustomTabsConnection.getInstance();
private CustomTabNightModeStateController mNightModeStateController;
private CustomTabActivityTabProvider.Observer mTabChangeObserver = private CustomTabActivityTabProvider.Observer mTabChangeObserver =
new CustomTabActivityTabProvider.Observer() { new CustomTabActivityTabProvider.Observer() {
...@@ -152,20 +148,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo ...@@ -152,20 +148,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
getComponent().resolveBottomBarDelegate().showBottomBarIfNecessary(); getComponent().resolveBottomBarDelegate().showBottomBarIfNecessary();
} }
@Override
protected NightModeStateProvider createNightModeStateProvider() {
// This is called before Dagger component is created, so using getInstance() directly.
mNightModeStateController = new CustomTabNightModeStateController(getLifecycleDispatcher(),
SystemNightModeMonitor.getInstance(),
PowerSavingModeMonitor.getInstance());
return mNightModeStateController;
}
@Override
protected void initializeNightModeStateProvider() {
mNightModeStateController.initialize(getDelegate(), getIntent());
}
@Override @Override
public void finishNativeInitialization() { public void finishNativeInitialization() {
if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this); if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this);
...@@ -353,10 +335,10 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo ...@@ -353,10 +335,10 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
IntentIgnoringCriterion intentIgnoringCriterion = IntentIgnoringCriterion intentIgnoringCriterion =
(intent) -> mIntentHandler.shouldIgnoreIntent(intent); (intent) -> mIntentHandler.shouldIgnoreIntent(intent);
BaseCustomTabActivityModule baseCustomTabsModule = BaseCustomTabActivityModule baseCustomTabsModule = new BaseCustomTabActivityModule(
new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion); mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
CustomTabActivityModule customTabsModule = CustomTabActivityModule customTabsModule =
new CustomTabActivityModule(mNightModeStateController, getStartupTabPreloader()); new CustomTabActivityModule(getStartupTabPreloader());
CustomTabActivityComponent component = CustomTabActivityComponent component =
ChromeApplication.getComponent().createCustomTabActivityComponent( ChromeApplication.getComponent().createCustomTabActivityComponent(
......
...@@ -8,6 +8,7 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv ...@@ -8,6 +8,7 @@ import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProv
import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaIntentHandlingStrategy; import org.chromium.chrome.browser.browserservices.trustedwebactivityui.TwaIntentHandlingStrategy;
import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.TwaVerifier; import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.TwaVerifier;
import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier; import org.chromium.chrome.browser.browserservices.trustedwebactivityui.controller.Verifier;
import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController;
import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.IntentIgnoringCriterion; import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandler.IntentIgnoringCriterion;
import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandlingStrategy; import org.chromium.chrome.browser.customtabs.content.CustomTabIntentHandlingStrategy;
import org.chromium.chrome.browser.customtabs.content.DefaultCustomTabIntentHandlingStrategy; import org.chromium.chrome.browser.customtabs.content.DefaultCustomTabIntentHandlingStrategy;
...@@ -28,12 +29,15 @@ import dagger.Reusable; ...@@ -28,12 +29,15 @@ import dagger.Reusable;
public class BaseCustomTabActivityModule { public class BaseCustomTabActivityModule {
private final BrowserServicesIntentDataProvider mIntentDataProvider; private final BrowserServicesIntentDataProvider mIntentDataProvider;
private final @ActivityType int mActivityType; private final @ActivityType int mActivityType;
private final CustomTabNightModeStateController mNightModeController;
private final IntentIgnoringCriterion mIntentIgnoringCriterion; private final IntentIgnoringCriterion mIntentIgnoringCriterion;
public BaseCustomTabActivityModule(BrowserServicesIntentDataProvider intentDataProvider, public BaseCustomTabActivityModule(BrowserServicesIntentDataProvider intentDataProvider,
CustomTabNightModeStateController nightModeController,
IntentIgnoringCriterion intentIgnoringCriterion) { IntentIgnoringCriterion intentIgnoringCriterion) {
mIntentDataProvider = intentDataProvider; mIntentDataProvider = intentDataProvider;
mActivityType = intentDataProvider.getActivityType(); mActivityType = intentDataProvider.getActivityType();
mNightModeController = nightModeController;
mIntentIgnoringCriterion = intentIgnoringCriterion; mIntentIgnoringCriterion = intentIgnoringCriterion;
} }
...@@ -69,6 +73,11 @@ public class BaseCustomTabActivityModule { ...@@ -69,6 +73,11 @@ public class BaseCustomTabActivityModule {
return mIntentIgnoringCriterion; return mIntentIgnoringCriterion;
} }
@Provides
public CustomTabNightModeStateController provideNightModeController() {
return mNightModeController;
}
@Provides @Provides
@Reusable @Reusable
public WebApkPostShareTargetNavigator providePostShareTargetNavigator() { public WebApkPostShareTargetNavigator providePostShareTargetNavigator() {
......
...@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.customtabs.dependency_injection; ...@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.customtabs.dependency_injection;
import org.chromium.chrome.browser.browserservices.BrowserServicesActivityTabController; import org.chromium.chrome.browser.browserservices.BrowserServicesActivityTabController;
import org.chromium.chrome.browser.browserservices.ClientAppDataRegister; import org.chromium.chrome.browser.browserservices.ClientAppDataRegister;
import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController;
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController; import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController;
import org.chromium.chrome.browser.init.StartupTabPreloader; import org.chromium.chrome.browser.init.StartupTabPreloader;
...@@ -18,12 +17,9 @@ import dagger.Provides; ...@@ -18,12 +17,9 @@ import dagger.Provides;
*/ */
@Module @Module
public class CustomTabActivityModule { public class CustomTabActivityModule {
private final CustomTabNightModeStateController mNightModeController;
private final StartupTabPreloader mStartupTabPreloader; private final StartupTabPreloader mStartupTabPreloader;
public CustomTabActivityModule(CustomTabNightModeStateController nightModeController, public CustomTabActivityModule(StartupTabPreloader startupTabPreloader) {
StartupTabPreloader startupTabPreloader) {
mNightModeController = nightModeController;
mStartupTabPreloader = startupTabPreloader; mStartupTabPreloader = startupTabPreloader;
} }
...@@ -38,11 +34,6 @@ public class CustomTabActivityModule { ...@@ -38,11 +34,6 @@ public class CustomTabActivityModule {
return new ClientAppDataRegister(); return new ClientAppDataRegister();
} }
@Provides
public CustomTabNightModeStateController provideNightModeController() {
return mNightModeController;
}
@Provides @Provides
public StartupTabPreloader provideStartupTabPreloader() { public StartupTabPreloader provideStartupTabPreloader() {
return mStartupTabPreloader; return mStartupTabPreloader;
......
...@@ -306,8 +306,8 @@ public class WebappActivity extends BaseCustomTabActivity<WebappActivityComponen ...@@ -306,8 +306,8 @@ public class WebappActivity extends BaseCustomTabActivity<WebappActivityComponen
(intent) -> mIntentHandler.shouldIgnoreIntent(intent); (intent) -> mIntentHandler.shouldIgnoreIntent(intent);
mIntentDataProvider = mWebappInfo.getProvider(); mIntentDataProvider = mWebappInfo.getProvider();
BaseCustomTabActivityModule baseCustomTabModule = BaseCustomTabActivityModule baseCustomTabModule = new BaseCustomTabActivityModule(
new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion); mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
WebappActivityModule webappModule = new WebappActivityModule(); WebappActivityModule webappModule = new WebappActivityModule();
WebappActivityComponent component = WebappActivityComponent component =
ChromeApplication.getComponent().createWebappActivityComponent( ChromeApplication.getComponent().createWebappActivityComponent(
......
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