Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java

Issue 1952853005: Surface sync error icon in account settings UI if sync error (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
index 1f6eb1d610451ac4ff152d20b2e2bda95f05e1a0..22db3f129df1a64999805f100d76611eb47d0d01 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncPreference.java
@@ -6,9 +6,12 @@ package org.chromium.chrome.browser.preferences;
import android.accounts.Account;
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
import android.preference.Preference;
import android.util.AttributeSet;
+import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.childaccounts.ChildAccountService;
import org.chromium.chrome.browser.sync.GoogleServiceAuthError;
@@ -23,14 +26,27 @@ import org.chromium.sync.signin.ChromeSigninController;
public class SyncPreference extends Preference {
public SyncPreference(Context context, AttributeSet attrs) {
super(context, attrs);
- updateSyncSummary();
+ updateSyncSummaryAndIcon();
}
/**
- * Updates the summary for this preference to reflect the current state of syncing.
+ * Updates the summary and icon for this preference to reflect the current state of syncing.
*/
- public void updateSyncSummary() {
+ public void updateSyncSummaryAndIcon() {
setSummary(getSyncStatusSummary(getContext()));
+
+ if (ProfileSyncService.get().getAuthError() == GoogleServiceAuthError.State.NONE) {
+ // Sets preference icon and tints it to blue.
+ Drawable icon = ApiCompatibilityUtils.getDrawable(
+ getContext().getResources(), R.drawable.permission_background_sync);
+ icon.setColorFilter(ApiCompatibilityUtils.getColor(
+ getContext().getResources(), R.color.light_active_color),
+ PorterDuff.Mode.SRC_IN);
+ setIcon(icon);
+ } else {
+ setIcon(ApiCompatibilityUtils.getDrawable(
+ getContext().getResources(), R.drawable.sync_error));
+ }
}
private static String getSyncStatusSummary(Context context) {

Powered by Google App Engine
This is Rietveld 408576698