package co.smartreceipts.android.sync.provider;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import javax.inject.Inject;
public class SyncProviderStore {
private static final String KEY_SYNC_PROVIDER = "key_sync_provider_1";
private final SharedPreferences mSharedPreferences;
@Inject
public SyncProviderStore(Context context) {
this(PreferenceManager.getDefaultSharedPreferences(context));
}
private SyncProviderStore(@NonNull SharedPreferences sharedPreferences) {
mSharedPreferences = Preconditions.checkNotNull(sharedPreferences);
}
@NonNull
public synchronized SyncProvider getProvider() {
final String syncProviderName = mSharedPreferences.getString(KEY_SYNC_PROVIDER, "");
try {
return SyncProvider.valueOf(syncProviderName);
} catch (IllegalArgumentException e) {
return SyncProvider.None;
}
}
public boolean setSyncProvider(@NonNull SyncProvider syncProvider) {
final SyncProvider currentValue = getProvider();
if (currentValue != syncProvider) {
mSharedPreferences.edit().putString(KEY_SYNC_PROVIDER, syncProvider.name()).apply();
return true;
} else {
return false;
}
}
}