Commit 8918b0d2 authored by Tanmoy Mollik's avatar Tanmoy Mollik Committed by Commit Bot

[Android] Create setupSyncPromoViewFromCache method inside SigninPromoUtil

Move code related to creation of Sync Promo inside SigninPromoUtil. Also
update the badge inside ProfileDataCache instead of creating new instance
inside BookmarkPromoHeader.

Bug: 1095628
Change-Id: I5973c1db3feda7665823ff545aebc9f3b09bca72
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2264112Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Reviewed-by: default avatarAlice Wang <aliceywang@chromium.org>
Commit-Queue: Tanmoy Mollik <triploblastic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795504}
parent 5d744699
......@@ -620,7 +620,7 @@ public class FeedSurfaceMediator
// blocking the UI thread for several seconds if the accounts cache is not populated
// yet.
if (!isVisible()) return;
SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache,
SigninPromoUtil.setupSigninPromoViewFromCache(mSigninPromoController, mProfileDataCache,
mCoordinator.getSigninPromoView(), null);
}
}
......
......@@ -163,15 +163,13 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
* @param view The view to be configured.
*/
void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
this::setPersonalizedSigninPromoDeclined);
SigninPromoUtil.setupSigninPromoViewFromCache(mSigninPromoController, mProfileDataCache,
view, this::setPersonalizedSigninPromoDeclined);
}
void setupPersonalizedSyncPromo(PersonalizedSigninPromoView view) {
setupPersonalizedSigninPromo(view);
view.getStatusMessage().setVisibility(View.VISIBLE);
view.getChooseAccountButton().setVisibility(View.GONE);
view.getSigninButton().setText(R.string.sync_promo_turn_on_sync);
SigninPromoUtil.setupSyncPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
this::setPersonalizedSigninPromoDeclined);
}
/**
......
......@@ -5,7 +5,6 @@
package org.chromium.chrome.browser.ntp;
import android.content.Context;
import android.view.View;
import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
......@@ -391,17 +390,14 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
*/
void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
mProfileDataCache.updateBadgeConfig(0);
SigninPromoUtil.setupPromoViewFromCache(
SigninPromoUtil.setupSigninPromoViewFromCache(
mSigninPromoController, mProfileDataCache, view, null);
}
void setupPersonalizedSyncPromo(PersonalizedSigninPromoView view) {
mProfileDataCache.updateBadgeConfig(R.drawable.ic_sync_badge_off_20dp);
SigninPromoUtil.setupPromoViewFromCache(
SigninPromoUtil.setupSyncPromoViewFromCache(
mSigninPromoController, mProfileDataCache, view, null);
view.getStatusMessage().setVisibility(View.VISIBLE);
view.getChooseAccountButton().setVisibility(View.GONE);
view.getSigninButton().setText(R.string.sync_promo_turn_on_sync);
}
// SignInStateObserver implementation.
......
......@@ -7,11 +7,13 @@ package org.chromium.chrome.browser.signin;
import android.accounts.Account;
import android.app.Activity;
import android.text.TextUtils;
import android.view.View;
import androidx.annotation.VisibleForTesting;
import androidx.collection.ArraySet;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeVersionInfo;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.profiles.Profile;
......@@ -105,7 +107,7 @@ public class SigninPromoUtil {
* @param view The {@link PersonalizedSigninPromoView} that should be set up.
* @param listener The {@link SigninPromoController.OnDismissListener} to be set to the view.
*/
public static void setupPromoViewFromCache(SigninPromoController signinPromoController,
public static void setupSigninPromoViewFromCache(SigninPromoController signinPromoController,
ProfileDataCache profileDataCache, PersonalizedSigninPromoView view,
SigninPromoController.OnDismissListener listener) {
DisplayableProfileData profileData = null;
......@@ -119,6 +121,21 @@ public class SigninPromoUtil {
signinPromoController.setupPromoView(view.getContext(), view, profileData, listener);
}
/**
* @param signinPromoController The {@link SigninPromoController} that maintains the view.
* @param profileDataCache The {@link ProfileDataCache} that stores profile data.
* @param view The {@link PersonalizedSigninPromoView} that should be set up.
* @param listener The {@link SigninPromoController.OnDismissListener} to be set to the view.
*/
public static void setupSyncPromoViewFromCache(SigninPromoController signinPromoController,
ProfileDataCache profileDataCache, PersonalizedSigninPromoView view,
SigninPromoController.OnDismissListener listener) {
setupSigninPromoViewFromCache(signinPromoController, profileDataCache, view, listener);
view.getStatusMessage().setVisibility(View.VISIBLE);
view.getSigninButton().setText(R.string.sync_promo_turn_on_sync);
view.getChooseAccountButton().setVisibility(View.GONE);
}
/**
* A convenience method to create an SigninActivity, passing the access point as an
* intent extra.
......
......@@ -292,7 +292,7 @@ public class SignInPreference
PersonalizedSigninPromoView signinPromoView =
(PersonalizedSigninPromoView) holder.findViewById(R.id.signin_promo_view_container);
SigninPromoUtil.setupPromoViewFromCache(
SigninPromoUtil.setupSigninPromoViewFromCache(
mSigninPromoController, mProfileDataCache, signinPromoView, () -> {
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.SIGNIN_PROMO_SETTINGS_PERSONALIZED_DISMISSED,
......
......@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.sync.settings;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
......@@ -177,17 +176,13 @@ public class SyncPromoPreference extends Preference
PersonalizedSigninPromoView syncPromoView =
(PersonalizedSigninPromoView) holder.findViewById(R.id.signin_promo_view_container);
// TODO(https://crbug.com/1095628): Use setupPersonalizedSyncPromo here.
SigninPromoUtil.setupPromoViewFromCache(
SigninPromoUtil.setupSyncPromoViewFromCache(
mSigninPromoController, mProfileDataCache, syncPromoView, () -> {
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.SIGNIN_PROMO_SETTINGS_PERSONALIZED_DISMISSED,
true);
setupPromoHidden();
});
syncPromoView.getStatusMessage().setVisibility(View.VISIBLE);
syncPromoView.getChooseAccountButton().setVisibility(View.GONE);
syncPromoView.getSigninButton().setText(R.string.sync_promo_turn_on_sync);
}
// ProfileSyncServiceListener implementation.
......
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