package co.smartreceipts.android.push.store;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import io.reactivex.Single;
public class PushDataStore {
private static final String KEY_BOOL_REMOTE_REFRESH_REQUIRED = "key_bool_remote_refresh_required";
private final SharedPreferences sharedPreferences;
public PushDataStore(@NonNull Context context) {
this(PreferenceManager.getDefaultSharedPreferences(context));
}
public PushDataStore(@NonNull SharedPreferences sharedPreferences) {
this.sharedPreferences = Preconditions.checkNotNull(sharedPreferences);
}
/**
* @return a {@link Single} that will emit {@code true} if a refresh is required and {@code false}
* if one is not
*/
@NonNull
public Single<Boolean> isRemoteRefreshRequiredSingle() {
return Single.fromCallable(this::isRemoteRefreshRequired);
}
public boolean isRemoteRefreshRequired() {
return sharedPreferences.getBoolean(KEY_BOOL_REMOTE_REFRESH_REQUIRED, true);
}
public void setRemoteRefreshRequired(boolean refreshRequired) {
sharedPreferences.edit().putBoolean(KEY_BOOL_REMOTE_REFRESH_REQUIRED, refreshRequired).apply();
}
}