Commit 54e8a107 authored by Pavel Yatsuk's avatar Pavel Yatsuk Committed by Commit Bot

[GID] Request sync state for IdentityDisc from ProfileSyncService

Currently sync state is requested from AndroidSyncSettings. This class
only reflects local Android sync settings and doesn't get updated if
sync is disabled for dasher account by domain administrator.

ProfileSyncService#canSyncFeatureStart is the correct method to check if
sync is enabled. Correspondingly IdentityDiscController should observe
sync state through ProfileSyncService.SyncStateChangedListener.

BUG=976089
R=mastiz@chromium.org,twellington@chromium.org

Change-Id: Ibe1913c6743d1c6438945f0391ac8a21bfb03f0e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1663376Reviewed-by: default avatarMikel Astiz <mastiz@chromium.org>
Reviewed-by: default avatarTheresa <twellington@chromium.org>
Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670115}
parent 620b6cfb
...@@ -19,10 +19,10 @@ import org.chromium.chrome.browser.preferences.SyncAndServicesPreferences; ...@@ -19,10 +19,10 @@ import org.chromium.chrome.browser.preferences.SyncAndServicesPreferences;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.ProfileDataCache; import org.chromium.chrome.browser.signin.ProfileDataCache;
import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.sync.ProfileSyncService;
import org.chromium.components.feature_engagement.FeatureConstants; import org.chromium.components.feature_engagement.FeatureConstants;
import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.feature_engagement.Tracker;
import org.chromium.components.signin.ChromeSigninController; import org.chromium.components.signin.ChromeSigninController;
import org.chromium.components.sync.AndroidSyncSettings;
import java.util.Collections; import java.util.Collections;
...@@ -32,16 +32,16 @@ import java.util.Collections; ...@@ -32,16 +32,16 @@ import java.util.Collections;
*/ */
class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Observer, class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Observer,
SigninManager.SignInStateObserver, SigninManager.SignInStateObserver,
AndroidSyncSettings.AndroidSyncSettingsObserver { ProfileSyncService.SyncStateChangedListener {
// Context is used for fetching resources and launching preferences page. // Context is used for fetching resources and launching preferences page.
private final Context mContext; private final Context mContext;
// Toolbar manager exposes APIs for manipulating experimental button. // Toolbar manager exposes APIs for manipulating experimental button.
private final ToolbarManager mToolbarManager; private final ToolbarManager mToolbarManager;
private ActivityLifecycleDispatcher mActivityLifecycleDispatcher; private ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
// SigninManager and AndroidSyncSettings allow observing sign-in and sync state. // SigninManager and ProfileSyncService allow observing sign-in and sync state.
private SigninManager mSigninManager; private SigninManager mSigninManager;
private AndroidSyncSettings mAndroidSyncSettings; private ProfileSyncService mProfileSyncService;
// ProfileDataCache facilitates retrieving profile picture. // ProfileDataCache facilitates retrieving profile picture.
private ProfileDataCache mProfileDataCache; private ProfileDataCache mProfileDataCache;
...@@ -70,8 +70,8 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs ...@@ -70,8 +70,8 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs
mSigninManager = SigninManager.get(); mSigninManager = SigninManager.get();
mSigninManager.addSignInStateObserver(this); mSigninManager.addSignInStateObserver(this);
mAndroidSyncSettings = AndroidSyncSettings.get(); mProfileSyncService = ProfileSyncService.get();
mAndroidSyncSettings.registerObserver(this); mProfileSyncService.addSyncStateChangedListener(this);
mActivityLifecycleDispatcher.unregister(this); mActivityLifecycleDispatcher.unregister(this);
mActivityLifecycleDispatcher = null; mActivityLifecycleDispatcher = null;
...@@ -85,8 +85,8 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs ...@@ -85,8 +85,8 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs
mIsNTPVisible = isNTPVisible; mIsNTPVisible = isNTPVisible;
String accountName = ChromeSigninController.get().getSignedInAccountName(); String accountName = ChromeSigninController.get().getSignedInAccountName();
boolean shouldShowIdentityDisc = boolean shouldShowIdentityDisc = isNTPVisible && accountName != null
isNTPVisible && accountName != null && AndroidSyncSettings.get().isSyncEnabled(); && ProfileSyncService.get().canSyncFeatureStart();
if (shouldShowIdentityDisc == mIsIdentityDiscVisible) return; if (shouldShowIdentityDisc == mIsIdentityDiscVisible) return;
...@@ -159,9 +159,9 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs ...@@ -159,9 +159,9 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs
updateButtonState(mIsNTPVisible); updateButtonState(mIsNTPVisible);
} }
// AndroidSyncSettings.AndroidSyncSettingsObserver implementation. // ProfileSyncService.SyncStateChangedListener implementation.
@Override @Override
public void androidSyncSettingsChanged() { public void syncStateChanged() {
updateButtonState(mIsNTPVisible); updateButtonState(mIsNTPVisible);
} }
...@@ -177,9 +177,9 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs ...@@ -177,9 +177,9 @@ class IdentityDiscController implements NativeInitObserver, ProfileDataCache.Obs
mSigninManager.removeSignInStateObserver(this); mSigninManager.removeSignInStateObserver(this);
mSigninManager = null; mSigninManager = null;
} }
if (mAndroidSyncSettings != null) { if (mProfileSyncService != null) {
mAndroidSyncSettings.unregisterObserver(this); mProfileSyncService.removeSyncStateChangedListener(this);
mAndroidSyncSettings = null; mProfileSyncService = null;
} }
} }
......
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