summaryrefslogtreecommitdiffstats
path: root/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java
diff options
context:
space:
mode:
authorAscrod <32915892+Ascrod@users.noreply.github.com>2019-04-18 20:35:10 -0400
committerAscrod <32915892+Ascrod@users.noreply.github.com>2019-04-18 20:35:10 -0400
commitaf7e140d4ed8f5bc9a69da2f0338ad3cb1319dec (patch)
tree4aac6c4383fb9e279fccb13c65a4e44595fd4cf6 /mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java
parent40fc72376411587e7bf9985fb9545eca1c9aaa8e (diff)
parent51722cd4fecb5c8c79a302f2771cad71535df5ea (diff)
downloadUXP-af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec.tar
UXP-af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec.tar.gz
UXP-af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec.tar.lz
UXP-af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec.tar.xz
UXP-af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec.zip
Merge branch 'master' into default-pref
Diffstat (limited to 'mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java')
-rw-r--r--mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java102
1 files changed, 0 insertions, 102 deletions
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java
deleted file mode 100644
index 1a5c1e96a..000000000
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/StoreTrackingRepositorySession.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/* 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.repositories;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.mozilla.gecko.background.common.log.Logger;
-import org.mozilla.gecko.sync.repositories.delegates.RepositorySessionBeginDelegate;
-import org.mozilla.gecko.sync.repositories.delegates.RepositorySessionFinishDelegate;
-import org.mozilla.gecko.sync.repositories.domain.Record;
-
-public abstract class StoreTrackingRepositorySession extends RepositorySession {
- private static final String LOG_TAG = "StoreTrackSession";
- protected StoreTracker storeTracker;
-
- protected static StoreTracker createStoreTracker() {
- return new HashSetStoreTracker();
- }
-
- public StoreTrackingRepositorySession(Repository repository) {
- super(repository);
- }
-
- @Override
- public void begin(RepositorySessionBeginDelegate delegate) throws InvalidSessionTransitionException {
- RepositorySessionBeginDelegate deferredDelegate = delegate.deferredBeginDelegate(delegateQueue);
- try {
- super.sharedBegin();
- } catch (InvalidSessionTransitionException e) {
- deferredDelegate.onBeginFailed(e);
- return;
- }
- // Or do this in your own subclass.
- storeTracker = createStoreTracker();
- deferredDelegate.onBeginSucceeded(this);
- }
-
- @Override
- protected synchronized void trackGUID(String guid) {
- if (this.storeTracker == null) {
- throw new IllegalStateException("Store tracker not yet initialized!");
- }
- this.storeTracker.trackRecordForExclusion(guid);
- }
-
- @Override
- protected synchronized void untrackGUID(String guid) {
- if (this.storeTracker == null) {
- throw new IllegalStateException("Store tracker not yet initialized!");
- }
- this.storeTracker.untrackStoredForExclusion(guid);
- }
-
- @Override
- protected synchronized void untrackGUIDs(Collection<String> guids) {
- if (this.storeTracker == null) {
- throw new IllegalStateException("Store tracker not yet initialized!");
- }
- if (guids == null) {
- return;
- }
- for (String guid : guids) {
- this.storeTracker.untrackStoredForExclusion(guid);
- }
- }
-
- protected void trackRecord(Record record) {
-
- Logger.debug(LOG_TAG, "Tracking record " + record.guid +
- " (" + record.lastModified + ") to avoid re-upload.");
- // Future: we care about the timestamp…
- trackGUID(record.guid);
- }
-
- protected void untrackRecord(Record record) {
- Logger.debug(LOG_TAG, "Un-tracking record " + record.guid + ".");
- untrackGUID(record.guid);
- }
-
- @Override
- public Iterator<String> getTrackedRecordIDs() {
- if (this.storeTracker == null) {
- throw new IllegalStateException("Store tracker not yet initialized!");
- }
- return this.storeTracker.recordsTrackedForExclusion();
- }
-
- @Override
- public void abort(RepositorySessionFinishDelegate delegate) {
- this.storeTracker = null;
- super.abort(delegate);
- }
-
- @Override
- public void finish(RepositorySessionFinishDelegate delegate) throws InactiveSessionException {
- super.finish(delegate);
- this.storeTracker = null;
- }
-}