| Index: chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
|
| index b7a8e890b4cb42688b716285e7a8baf2a2303b6e..dd5de209e91b93e1eb5f9e98ed845dd1b927ad5e 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/ProfileSyncService.java
|
| @@ -18,6 +18,8 @@ import org.chromium.base.annotations.SuppressFBWarnings;
|
| import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator;
|
| import org.chromium.sync.internal_api.pub.PassphraseType;
|
| import org.chromium.sync.internal_api.pub.base.ModelType;
|
| +import org.json.JSONArray;
|
| +import org.json.JSONException;
|
|
|
| import java.util.HashSet;
|
| import java.util.Iterator;
|
| @@ -48,6 +50,30 @@ public class ProfileSyncService {
|
| public void syncStateChanged();
|
| }
|
|
|
| + /**
|
| + * Callback for getAllNodes.
|
| + */
|
| + public static class GetAllNodesCallback {
|
| + private String mNodesString;
|
| + private boolean mHasResult = false;
|
| +
|
| + // Invoked when getAllNodes completes.
|
| + public void onResult(String nodesString) {
|
| + mNodesString = nodesString;
|
| + mHasResult = true;
|
| + }
|
| +
|
| + // Whether this callback contains a result.
|
| + public boolean hasResult() {
|
| + return mHasResult;
|
| + }
|
| +
|
| + // Returns the result of GetAllNodes as a JSONArray.
|
| + public JSONArray getNodesAsJsonArray() throws JSONException {
|
| + return new JSONArray(mNodesString);
|
| + }
|
| + }
|
| +
|
| private static final String TAG = "ProfileSyncService";
|
|
|
| @VisibleForTesting
|
| @@ -586,6 +612,22 @@ public class ProfileSyncService {
|
| prompted);
|
| }
|
|
|
| + /**
|
| + * Invokes the onResult method of the callback from native code.
|
| + */
|
| + @CalledByNative
|
| + public static void onGetAllNodesResult(GetAllNodesCallback callback, String nodes) {
|
| + callback.onResult(nodes);
|
| + }
|
| +
|
| + /**
|
| + * Retrieves a JSON version of local Sync data via the native GetAllNodes method.
|
| + * This method is asynchronous; the result will be sent to the callback.
|
| + */
|
| + public void getAllNodes(GetAllNodesCallback callback) {
|
| + nativeGetAllNodes(mNativeProfileSyncServiceAndroid, callback);
|
| + }
|
| +
|
| // Native methods
|
| private native long nativeInit();
|
| private native void nativeEnableSync(long nativeProfileSyncServiceAndroid);
|
| @@ -641,4 +683,6 @@ public class ProfileSyncService {
|
| private native long nativeGetLastSyncedTimeForTest(long nativeProfileSyncServiceAndroid);
|
| private native void nativeOverrideNetworkResourcesForTest(
|
| long nativeProfileSyncServiceAndroid, long networkResources);
|
| + private native void nativeGetAllNodes(
|
| + long nativeProfileSyncServiceAndroid, GetAllNodesCallback callback);
|
| }
|
|
|