diff options
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/FetchInfoCollectionsStage.java')
-rw-r--r-- | mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/FetchInfoCollectionsStage.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/FetchInfoCollectionsStage.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/FetchInfoCollectionsStage.java new file mode 100644 index 000000000..088321d5b --- /dev/null +++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/FetchInfoCollectionsStage.java @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko.sync.stage; + +import java.net.URISyntaxException; + +import org.mozilla.gecko.sync.ExtendedJSONObject; +import org.mozilla.gecko.sync.InfoCollections; +import org.mozilla.gecko.sync.delegates.JSONRecordFetchDelegate; +import org.mozilla.gecko.sync.net.SyncStorageResponse; + +public class FetchInfoCollectionsStage extends AbstractNonRepositorySyncStage { + public class StageInfoCollectionsDelegate implements JSONRecordFetchDelegate { + + @Override + public void handleSuccess(ExtendedJSONObject global) { + session.config.infoCollections = new InfoCollections(global); + session.advance(); + } + + @Override + public void handleFailure(SyncStorageResponse response) { + session.handleHTTPError(response, "Failure fetching info/collections."); + } + + @Override + public void handleError(Exception e) { + session.abort(e, "Failure fetching info/collections."); + } + + } + + @Override + public void execute() throws NoSuchStageException { + try { + session.fetchInfoCollections(new StageInfoCollectionsDelegate()); + } catch (URISyntaxException e) { + session.abort(e, "Invalid URI."); + } + } + +} |