Commit 84473ab6 authored by gogerald's avatar gogerald Committed by Commit Bot

[StartSurface] Set night mode properly for the feeds on the start surface

Screenshot
https://drive.google.com/file/d/1qg8pxjuJdN_d4YxeIpyssp-xFxbPjV1I/view?usp=sharing

Bug: 982018
Change-Id: Id334c4b2b279e130703ce99a9e76f81ef1735920
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1854461Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Ganggui Tang <gogerald@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704879}
parent 5e6baafd
......@@ -40,9 +40,10 @@ class ExploreSurfaceCoordinator implements FeedSurfaceCoordinator.FeedSurfaceDel
interface FeedSurfaceCreator {
/**
* Creates the {@link FeedSurfaceCoordinator} for the specified mode.
* @param isInNightMode Whether or not the feed surface is going to display in night mode.
* @return The {@link FeedSurfaceCoordinator}.
*/
FeedSurfaceCoordinator createFeedSurfaceCoordinator();
FeedSurfaceCoordinator createFeedSurfaceCoordinator(boolean isInNightMode);
}
ExploreSurfaceCoordinator(ChromeActivity activity, ViewGroup parentView,
......@@ -60,8 +61,8 @@ class ExploreSurfaceCoordinator implements FeedSurfaceCoordinator.FeedSurfaceDel
ExploreSurfaceViewBinder::bind);
mFeedSurfaceCreator = new FeedSurfaceCreator() {
@Override
public FeedSurfaceCoordinator createFeedSurfaceCoordinator() {
return internalCreateFeedSurfaceCoordinator(mHasHeader);
public FeedSurfaceCoordinator createFeedSurfaceCoordinator(boolean isInNightMode) {
return internalCreateFeedSurfaceCoordinator(mHasHeader, isInNightMode);
}
};
}
......@@ -85,7 +86,8 @@ class ExploreSurfaceCoordinator implements FeedSurfaceCoordinator.FeedSurfaceDel
return false;
}
private FeedSurfaceCoordinator internalCreateFeedSurfaceCoordinator(boolean hasHeader) {
private FeedSurfaceCoordinator internalCreateFeedSurfaceCoordinator(
boolean hasHeader, boolean isInNightMode) {
if (mExploreSurfaceNavigationDelegate == null) {
mExploreSurfaceNavigationDelegate = new ExploreSurfaceNavigationDelegate(mActivity);
}
......@@ -104,7 +106,7 @@ class ExploreSurfaceCoordinator implements FeedSurfaceCoordinator.FeedSurfaceDel
(SectionHeaderView) inflater.inflate(R.layout.ss_feed_header, null, false);
}
return new FeedSurfaceCoordinator(mActivity, null, null, null, sectionHeaderView,
exploreSurfaceActionHandler, false, this);
exploreSurfaceActionHandler, isInNightMode, this);
// TODO(crbug.com/982018): Customize surface background for incognito and dark mode.
// TODO(crbug.com/982018): Hide signin promo UI in incognito mode.
}
......
......@@ -100,7 +100,8 @@ public class StartSurfaceCoordinator implements StartSurface {
: mExploreSurfaceCoordinator.getFeedSurfaceCreator(),
mSurfaceMode == SurfaceMode.SINGLE_PANE ? this::initializeSecondaryTasksSurface
: null,
mSurfaceMode, mStartSurfaceLocationBarDelegate);
mSurfaceMode, mStartSurfaceLocationBarDelegate,
mActivity.getNightModeStateProvider());
}
// Implements StartSurface.
......
......@@ -27,6 +27,7 @@ import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.feed.FeedSurfaceCoordinator;
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModel;
......@@ -93,6 +94,7 @@ class StartSurfaceMediator
private boolean mIsIncognito;
@Nullable
private Delegate mDelegate;
private NightModeStateProvider mNightModeStateProvider;
@Nullable
UrlFocusChangeListener mUrlFocusChangeListener;
@Nullable
......@@ -102,13 +104,15 @@ class StartSurfaceMediator
@Nullable PropertyModel propertyModel,
@Nullable ExploreSurfaceCoordinator.FeedSurfaceCreator feedSurfaceCreator,
@Nullable SecondaryTasksSurfaceInitializer secondaryTasksSurfaceInitializer,
@SurfaceMode int surfaceMode, @Nullable Delegate delegate) {
@SurfaceMode int surfaceMode, @Nullable Delegate delegate,
NightModeStateProvider nightModeStateProvider) {
mController = controller;
mPropertyModel = propertyModel;
mFeedSurfaceCreator = feedSurfaceCreator;
mSecondaryTasksSurfaceInitializer = secondaryTasksSurfaceInitializer;
mSurfaceMode = surfaceMode;
mDelegate = delegate;
mNightModeStateProvider = nightModeStateProvider;
if (mPropertyModel != null) {
assert mSurfaceMode == SurfaceMode.SINGLE_PANE || mSurfaceMode == SurfaceMode.TWO_PANES
......@@ -258,7 +262,8 @@ class StartSurfaceMediator
if (mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)
&& mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
mPropertyModel.set(FEED_SURFACE_COORDINATOR,
mFeedSurfaceCreator.createFeedSurfaceCoordinator());
mFeedSurfaceCreator.createFeedSurfaceCoordinator(
mNightModeStateProvider.isInNightMode()));
}
mPropertyModel.set(IS_SHOWING_OVERVIEW, true);
......@@ -361,8 +366,9 @@ class StartSurfaceMediator
if (isVisible && mPropertyModel.get(IS_SHOWING_OVERVIEW)
&& mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
mPropertyModel.set(
FEED_SURFACE_COORDINATOR, mFeedSurfaceCreator.createFeedSurfaceCoordinator());
mPropertyModel.set(FEED_SURFACE_COORDINATOR,
mFeedSurfaceCreator.createFeedSurfaceCoordinator(
mNightModeStateProvider.isInNightMode()));
}
mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, isVisible);
......
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