package co.smartreceipts.android.sync.noop; import android.content.Intent; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.FragmentActivity; import java.io.File; import java.sql.Date; import java.util.Collections; import java.util.List; import co.smartreceipts.android.sync.BackupProvider; import co.smartreceipts.android.sync.BackupProvidersManager; import co.smartreceipts.android.sync.errors.CriticalSyncError; import co.smartreceipts.android.sync.errors.SyncErrorType; import co.smartreceipts.android.sync.model.RemoteBackupMetadata; import co.smartreceipts.android.sync.model.impl.Identifier; import io.reactivex.Observable; import io.reactivex.Single; /** * A no-op implementation of the {@link BackupProvider} contract to help us to avoid dealing with nulls * in our {@link BackupProvidersManager} class */ public class NoOpBackupProvider implements BackupProvider { @Override public void initialize(@Nullable FragmentActivity activity) { } @Override public void deinitialize() { } @Override public boolean onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { return false; } @NonNull @Override public Single<List<RemoteBackupMetadata>> getRemoteBackups() { return Single.just(Collections.<RemoteBackupMetadata>emptyList()); } @Nullable @Override public Identifier getDeviceSyncId() { return null; } @NonNull @Override public Date getLastDatabaseSyncTime() { return new Date(0L); } @NonNull @Override public Single<Boolean> restoreBackup(@NonNull RemoteBackupMetadata remoteBackupMetadata, boolean overwriteExistingData) { return Single.just(false); } @NonNull @Override public Single<Boolean> deleteBackup(@NonNull RemoteBackupMetadata remoteBackupMetadata) { return Single.just(false); } @Override public Single<Boolean> clearCurrentBackupConfiguration() { return Single.just(false); } @NonNull @Override public Single<List<File>> downloadAllData(@NonNull RemoteBackupMetadata remoteBackupMetadata, @NonNull File downloadLocation) { return Single.just(Collections.<File>emptyList()); } @NonNull @Override public Single<List<File>> debugDownloadAllData(@NonNull RemoteBackupMetadata remoteBackupMetadata, @NonNull File downloadLocation) { return Single.just(Collections.<File>emptyList()); } @NonNull @Override public Observable<CriticalSyncError> getCriticalSyncErrorStream() { return Observable.empty(); } @Override public void markErrorResolved(@NonNull SyncErrorType syncErrorType) { // No-op } }