Commit ccbd91ce authored by spdonghao's avatar spdonghao Committed by Commit Bot

[Instant Start] Show Sign-in box for Feed articles pre-native.

Bug: 1086961
Change-Id: If811181513eced84a7c92960520a5f8e5f398398
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218849
Commit-Queue: Hao Dong <spdonghao@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Reviewed-by: default avatarXi Han <hanxi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#776558}
parent 55c84ae7
......@@ -91,6 +91,7 @@ android_library("java") {
deps += [
"//chrome/browser/profiles/android:java",
"//components/signin/public/android:java",
"//content/public/android:content_java",
"//third_party/android_sdk/androidx_browser:androidx_browser_java",
"//ui/android:ui_utils_java",
......
......@@ -32,6 +32,12 @@
android:textAppearance="@style/TextAppearance.TextMedium.Blue" />
</LinearLayout>
<LinearLayout
android:id="@+id/sign_in_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
<LinearLayout
android:id="@+id/images_layout"
android:layout_width="match_parent"
......
......@@ -10,7 +10,12 @@ import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import org.chromium.chrome.browser.ntp.cards.SignInPromo;
import org.chromium.chrome.browser.signin.ProfileDataCache;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.browser.signin.SigninPromoUtil;
import org.chromium.chrome.start_surface.R;
import org.chromium.components.signin.metrics.SigninAccessPoint;
/** The coordinator to control the loading feed surface. */
public class FeedLoadingCoordinator {
......@@ -30,5 +35,15 @@ public class FeedLoadingCoordinator {
(FeedLoadingLayout) LayoutInflater.from(mContext).inflate(
R.layout.feed_loading_layout, null, false);
mParentView.addView(feedLoadingView);
if (SignInPromo.shouldCreatePromo()) {
SigninPromoController signinPromoController =
new SigninPromoController(SigninAccessPoint.NTP_CONTENT_SUGGESTIONS);
int imageSize =
mContext.getResources().getDimensionPixelSize(R.dimen.user_picture_size);
ProfileDataCache profileDataCache = new ProfileDataCache(mContext, imageSize);
SigninPromoUtil.setupPromoViewFromCache(signinPromoController, profileDataCache,
feedLoadingView.getSigninPromoView(), null);
}
}
}
......@@ -8,10 +8,14 @@ import android.content.Context;
import android.content.res.Configuration;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import androidx.annotation.Nullable;
import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
import org.chromium.chrome.start_surface.R;
/**
......@@ -19,6 +23,7 @@ import org.chromium.chrome.start_surface.R;
*/
public class FeedLoadingLayout extends LinearLayout {
private Context mContext;
private @Nullable PersonalizedSigninPromoView mSigninPromoView;
public FeedLoadingLayout(Context context, AttributeSet attrs) {
super(context, attrs);
......@@ -38,6 +43,22 @@ public class FeedLoadingLayout extends LinearLayout {
setImageForConfiguration();
}
/** @return The {@link PersonalizedSigninPromoView} for this class. */
PersonalizedSigninPromoView getSigninPromoView() {
if (mSigninPromoView == null) {
mSigninPromoView = (PersonalizedSigninPromoView) LayoutInflater.from(mContext).inflate(
R.layout.personalized_signin_promo_view_modern_content_suggestions, null,
false);
LinearLayout signView = findViewById(R.id.sign_in_box);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
signView.setLayoutParams(lp);
lp.setMargins(0, 0, 0, dpToPx(12));
signView.addView(mSigninPromoView);
}
return mSigninPromoView;
}
private void setImageForConfiguration() {
int currentOrientation = getResources().getConfiguration().orientation;
LinearLayout imageParentView = findViewById(R.id.images_layout);
......
......@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.flags.CachedFeatureFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.ntp.cards.SignInPromo;
import org.chromium.chrome.browser.tab.TabState;
import org.chromium.chrome.browser.tabmodel.TabPersistentStore;
import org.chromium.chrome.browser.tabmodel.TabPersistentStore.TabModelMetadata;
......@@ -612,6 +613,7 @@ public class InstantStartTest {
createThumbnailBitmapAndWriteToFile(0);
TabAttributeCache.setTitleForTesting(0, "Google");
SignInPromo.setDisablePromoForTests(true);
startMainActivityFromLauncher();
CriteriaHelper.pollUiThread(
() -> mActivityTestRule.getActivity().getLayoutManager().overviewVisible());
......
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