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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/sync/SyncController.java

Issue 879533004: Rewrite AndroidSyncSettings to be significantly simpler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@android-sync
Patch Set: Add another deprecated method for transitioning. Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.sync; 5 package org.chromium.chrome.browser.sync;
6 6
7 import android.accounts.Account; 7 import android.accounts.Account;
8 import android.app.Activity; 8 import android.app.Activity;
9 import android.content.Context; 9 import android.content.Context;
10 import android.util.Log; 10 import android.util.Log;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 /** 114 /**
115 * Starts sync if the master sync flag is enabled. 115 * Starts sync if the master sync flag is enabled.
116 * 116 *
117 * Affects native sync, the invalidation controller, and the Android sync se ttings. 117 * Affects native sync, the invalidation controller, and the Android sync se ttings.
118 */ 118 */
119 public void start() { 119 public void start() {
120 ThreadUtils.assertOnUiThread(); 120 ThreadUtils.assertOnUiThread();
121 if (mAndroidSyncSettings.isMasterSyncEnabled()) { 121 if (mAndroidSyncSettings.isMasterSyncEnabled()) {
122 Log.d(TAG, "Enabling sync"); 122 Log.d(TAG, "Enabling sync");
123 Account account = mChromeSigninController.getSignedInUser();
124 InvalidationController.get(mContext).start(); 123 InvalidationController.get(mContext).start();
125 mProfileSyncService.enableSync(); 124 mProfileSyncService.enableSync();
126 mAndroidSyncSettings.enableChromeSync(account); 125 mAndroidSyncSettings.enableChromeSync();
127 } 126 }
128 } 127 }
129 128
130 /** 129 /**
131 * Stops Sync if a user is currently signed in. 130 * Stops Sync if a user is currently signed in.
132 * 131 *
133 * Affects native sync, the invalidation controller, and the Android sync se ttings. 132 * Affects native sync, the invalidation controller, and the Android sync se ttings.
134 */ 133 */
135 public void stop() { 134 public void stop() {
136 ThreadUtils.assertOnUiThread(); 135 ThreadUtils.assertOnUiThread();
137 if (mChromeSigninController.isSignedIn()) { 136 if (mChromeSigninController.isSignedIn()) {
138 Log.d(TAG, "Disabling sync"); 137 Log.d(TAG, "Disabling sync");
139 Account account = mChromeSigninController.getSignedInUser();
140 InvalidationController.get(mContext).stop(); 138 InvalidationController.get(mContext).stop();
141 mProfileSyncService.disableSync(); 139 mProfileSyncService.disableSync();
142 if (mAndroidSyncSettings.isMasterSyncEnabled()) { 140 if (mAndroidSyncSettings.isMasterSyncEnabled()) {
143 // Only disable Android's Chrome sync setting if we weren't disa bled 141 // Only disable Android's Chrome sync setting if we weren't disa bled
144 // by the master sync setting. This way, when master sync is ena bled 142 // by the master sync setting. This way, when master sync is ena bled
145 // they will both be on and sync will start again. 143 // they will both be on and sync will start again.
146 mAndroidSyncSettings.disableChromeSync(account); 144 mAndroidSyncSettings.disableChromeSync();
147 } 145 }
148 } 146 }
149 } 147 }
150 148
151 /** 149 /**
152 * From {@link ProfileSyncService.SyncStateChangedListener}. 150 * From {@link ProfileSyncService.SyncStateChangedListener}.
153 * 151 *
154 * Changes the invalidation controller and Android sync setting state to mat ch 152 * Changes the invalidation controller and Android sync setting state to mat ch
155 * the new native sync state. 153 * the new native sync state.
156 */ 154 */
157 @Override 155 @Override
158 public void syncStateChanged() { 156 public void syncStateChanged() {
159 ThreadUtils.assertOnUiThread(); 157 ThreadUtils.assertOnUiThread();
160 Account account = mChromeSigninController.getSignedInUser();
161 // Don't do anything if there isn't an account.
162 if (account == null) return;
163 boolean isSyncActive = !mProfileSyncService.isStartSuppressed(); 158 boolean isSyncActive = !mProfileSyncService.isStartSuppressed();
164 // Make the Java state match the native state. 159 // Make the Java state match the native state.
165 if (isSyncActive) { 160 if (isSyncActive) {
166 InvalidationController.get(mContext).start(); 161 InvalidationController.get(mContext).start();
167 mAndroidSyncSettings.enableChromeSync(account); 162 mAndroidSyncSettings.enableChromeSync();
168 } else { 163 } else {
169 InvalidationController.get(mContext).stop(); 164 InvalidationController.get(mContext).stop();
170 if (mAndroidSyncSettings.isMasterSyncEnabled()) { 165 if (mAndroidSyncSettings.isMasterSyncEnabled()) {
171 // See comment in stop(). 166 // See comment in stop().
172 mAndroidSyncSettings.disableChromeSync(account); 167 mAndroidSyncSettings.disableChromeSync();
173 } 168 }
174 } 169 }
175 } 170 }
176 171
177 /** 172 /**
178 * From {@link AndroidSyncSettings.AndroidSyncSettingsObserver}. 173 * From {@link AndroidSyncSettings.AndroidSyncSettingsObserver}.
179 */ 174 */
180 @Override 175 @Override
181 public void androidSyncSettingsChanged() { 176 public void androidSyncSettingsChanged() {
182 ThreadUtils.runOnUiThread(new Runnable() { 177 ThreadUtils.runOnUiThread(new Runnable() {
183 @Override 178 @Override
184 public void run() { 179 public void run() {
185 updateSyncStateFromAndroid(); 180 updateSyncStateFromAndroid();
186 } 181 }
187 }); 182 });
188 } 183 }
189 } 184 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698