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
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarColorController;
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbarCoordinator;
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.TabState;
import org.chromium.chrome.browser.tabmodel.ChromeTabCreator;
......@@ -51,6 +54,7 @@ public abstract class BaseCustomTabActivity<C extends BaseCustomTabActivityCompo
protected CustomTabStatusBarColorProvider mStatusBarColorProvider;
protected CustomTabActivityTabFactory mTabFactory;
protected CustomTabIntentHandler mCustomTabIntentHandler;
protected CustomTabNightModeStateController mNightModeStateController;
protected @Nullable WebappActivityCoordinator mWebappActivityCoordinator;
// 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
|| 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
protected RootUiCoordinator createRootUiCoordinator() {
return new BaseCustomTabRootUiCoordinator(this, getShareDelegateSupplier(),
......
......@@ -47,10 +47,7 @@ import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsMod
import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
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.PowerSavingModeMonitor;
import org.chromium.chrome.browser.night_mode.SystemNightModeMonitor;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
import org.chromium.chrome.browser.page_info.PageInfoController;
import org.chromium.chrome.browser.previews.Previews;
......@@ -71,7 +68,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
private final CustomTabsConnection mConnection = CustomTabsConnection.getInstance();
private CustomTabNightModeStateController mNightModeStateController;
private CustomTabActivityTabProvider.Observer mTabChangeObserver =
new CustomTabActivityTabProvider.Observer() {
......@@ -152,20 +148,6 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
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
public void finishNativeInitialization() {
if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this);
......@@ -353,10 +335,10 @@ public class CustomTabActivity extends BaseCustomTabActivity<CustomTabActivityCo
IntentIgnoringCriterion intentIgnoringCriterion =
(intent) -> mIntentHandler.shouldIgnoreIntent(intent);
BaseCustomTabActivityModule baseCustomTabsModule =
new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion);
BaseCustomTabActivityModule baseCustomTabsModule = new BaseCustomTabActivityModule(
mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
CustomTabActivityModule customTabsModule =
new CustomTabActivityModule(mNightModeStateController, getStartupTabPreloader());
new CustomTabActivityModule(getStartupTabPreloader());
CustomTabActivityComponent component =
ChromeApplication.getComponent().createCustomTabActivityComponent(
......
......@@ -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.controller.TwaVerifier;
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.CustomTabIntentHandlingStrategy;
import org.chromium.chrome.browser.customtabs.content.DefaultCustomTabIntentHandlingStrategy;
......@@ -28,12 +29,15 @@ import dagger.Reusable;
public class BaseCustomTabActivityModule {
private final BrowserServicesIntentDataProvider mIntentDataProvider;
private final @ActivityType int mActivityType;
private final CustomTabNightModeStateController mNightModeController;
private final IntentIgnoringCriterion mIntentIgnoringCriterion;
public BaseCustomTabActivityModule(BrowserServicesIntentDataProvider intentDataProvider,
CustomTabNightModeStateController nightModeController,
IntentIgnoringCriterion intentIgnoringCriterion) {
mIntentDataProvider = intentDataProvider;
mActivityType = intentDataProvider.getActivityType();
mNightModeController = nightModeController;
mIntentIgnoringCriterion = intentIgnoringCriterion;
}
......@@ -69,6 +73,11 @@ public class BaseCustomTabActivityModule {
return mIntentIgnoringCriterion;
}
@Provides
public CustomTabNightModeStateController provideNightModeController() {
return mNightModeController;
}
@Provides
@Reusable
public WebApkPostShareTargetNavigator providePostShareTargetNavigator() {
......
......@@ -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.ClientAppDataRegister;
import org.chromium.chrome.browser.customtabs.CustomTabNightModeStateController;
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController;
import org.chromium.chrome.browser.init.StartupTabPreloader;
......@@ -18,12 +17,9 @@ import dagger.Provides;
*/
@Module
public class CustomTabActivityModule {
private final CustomTabNightModeStateController mNightModeController;
private final StartupTabPreloader mStartupTabPreloader;
public CustomTabActivityModule(CustomTabNightModeStateController nightModeController,
StartupTabPreloader startupTabPreloader) {
mNightModeController = nightModeController;
public CustomTabActivityModule(StartupTabPreloader startupTabPreloader) {
mStartupTabPreloader = startupTabPreloader;
}
......@@ -38,11 +34,6 @@ public class CustomTabActivityModule {
return new ClientAppDataRegister();
}
@Provides
public CustomTabNightModeStateController provideNightModeController() {
return mNightModeController;
}
@Provides
public StartupTabPreloader provideStartupTabPreloader() {
return mStartupTabPreloader;
......
......@@ -306,8 +306,8 @@ public class WebappActivity extends BaseCustomTabActivity<WebappActivityComponen
(intent) -> mIntentHandler.shouldIgnoreIntent(intent);
mIntentDataProvider = mWebappInfo.getProvider();
BaseCustomTabActivityModule baseCustomTabModule =
new BaseCustomTabActivityModule(mIntentDataProvider, intentIgnoringCriterion);
BaseCustomTabActivityModule baseCustomTabModule = new BaseCustomTabActivityModule(
mIntentDataProvider, mNightModeStateController, intentIgnoringCriterion);
WebappActivityModule webappModule = new WebappActivityModule();
WebappActivityComponent component =
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