Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ allprojects {
}

ext.deps = [
annotations : 'androidx.annotation:annotation:1.0.2',
rxjava2 : 'io.reactivex.rxjava2:rxjava:2.2.7',
rxandroid : 'io.reactivex.rxjava2:rxandroid:2.1.1',
rxbinding : 'com.jakewharton.rxbinding3:rxbinding:3.0.0',
annotations : 'androidx.annotation:annotation:1.1.0',
rxjava3 : 'io.reactivex.rxjava3:rxjava:3.0.4',
rxandroid3 : 'io.reactivex.rxjava3:rxandroid:3.0.0',
rxbinding4 : 'com.jakewharton.rxbinding4:rxbinding:4.0.0',
butterknife : "com.jakewharton:butterknife:${ext.butterknifeVersion}",
butterknifeCompiler: "com.jakewharton:butterknife-compiler:${ext.butterknifeVersion}",
junit : 'junit:junit:4.12',
Expand Down
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
GROUP=com.f2prateek.rx.preferences2
VERSION_NAME=2.0.2-SNAPSHOT
GROUP=com.f2prateek.rx.preferences3
VERSION_NAME=3.0-SNAPSHOT

POM_DESCRIPTION=Reactive SharedPreferences for Android

Expand All @@ -14,4 +14,4 @@ POM_LICENCE_DIST=repo

POM_DEVELOPER_ID=f2prateek
POM_DEVELOPER_NAME=Prateek Srivastava
android.useAndroidX=true
android.useAndroidX=true
4 changes: 2 additions & 2 deletions rx-preferences-sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ android {

dependencies {
implementation project(':rx-preferences')
implementation deps.rxandroid
implementation deps.rxbinding
implementation deps.rxandroid3
implementation deps.rxbinding4
implementation deps.butterknife

annotationProcessor deps.butterknifeCompiler
Expand Down
4 changes: 2 additions & 2 deletions rx-preferences-sample/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.f2prateek.rx.preferences2.sample">
package="com.f2prateek.rx.preferences3.sample">
<application
android:label="@string/app_name">
<activity
android:label="@string/app_name"
android:name="com.f2prateek.rx.preferences2.sample.SampleActivity">
android:name="com.f2prateek.rx.preferences3.sample.SampleActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package com.f2prateek.rx.preferences2.sample;
package com.f2prateek.rx.preferences3.sample;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.EditText;

import com.f2prateek.rx.preferences2.Preference;
import com.f2prateek.rx.preferences2.RxSharedPreferences;
import com.jakewharton.rxbinding3.widget.RxCompoundButton;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.f2prateek.rx.preferences3.Preference;
import com.f2prateek.rx.preferences3.RxSharedPreferences;
import com.jakewharton.rxbinding4.widget.RxCompoundButton;
import com.jakewharton.rxbinding4.widget.RxTextView;

import java.util.concurrent.TimeUnit;

import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.CompositeDisposable;

import static android.preference.PreferenceManager.getDefaultSharedPreferences;

Expand Down
2 changes: 1 addition & 1 deletion rx-preferences/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ android {

dependencies {
implementation deps.annotations
api deps.rxjava2
api deps.rxjava3

testImplementation deps.junit
testImplementation deps.assertj
Expand Down
2 changes: 1 addition & 1 deletion rx-preferences/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<manifest package="com.f2prateek.rx.preferences2"/>
<manifest package="com.f2prateek.rx.preferences3"/>
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

final class BooleanAdapter implements RealPreference.Adapter<Boolean> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
import static com.f2prateek.rx.preferences3.Preconditions.checkNotNull;

final class ConverterAdapter<T> implements RealPreference.Adapter<T> {
private final Preference.Converter<T> converter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

final class EnumAdapter<T extends Enum<T>> implements RealPreference.Adapter<T> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

final class FloatAdapter implements RealPreference.Adapter<Float> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

final class IntegerAdapter implements RealPreference.Adapter<Integer> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.NonNull;

final class LongAdapter implements RealPreference.Adapter<Long> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

final class Preconditions {
static void checkNotNull(Object o, String message) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;

import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.functions.Consumer;

/** A preference of type {@link T}. Instances can be created from {@link RxSharedPreferences}. */
public interface Preference<T> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;

import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.functions.Predicate;

import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.functions.Consumer;
import io.reactivex.rxjava3.functions.Function;
import io.reactivex.rxjava3.functions.Predicate;

import static com.f2prateek.rx.preferences3.Preconditions.checkNotNull;

final class RealPreference<T> implements Preference<T> {
/** Stores and retrieves instances of {@code T} in {@link SharedPreferences}. */
Expand Down Expand Up @@ -47,7 +49,7 @@ interface Adapter<T> {
return key.equals(changedKey);
}
}) //
.startWith("<init>") // Dummy value to trigger initial load.
.startWithItem("<init>") // Dummy value to trigger initial load.
.map(new Function<String, T>() {
@Override public T apply(String s) {
if(s.equals(RxSharedPreferences.NULL_KEY_EMISSION)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
Expand All @@ -10,13 +10,13 @@
import java.util.Collections;
import java.util.Set;

import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.functions.Cancellable;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.ObservableEmitter;
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.functions.Cancellable;

import static android.os.Build.VERSION_CODES.HONEYCOMB;
import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
import static com.f2prateek.rx.preferences3.Preconditions.checkNotNull;

/** A factory for reactive {@link Preference} objects. */
public final class RxSharedPreferences {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.content.SharedPreferences;
import androidx.annotation.NonNull;

import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
import androidx.annotation.NonNull;

final class StringAdapter implements RealPreference.Adapter<String> {
static final StringAdapter INSTANCE = new StringAdapter();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.annotation.TargetApi;
import android.content.SharedPreferences;

import androidx.annotation.NonNull;

import java.util.Set;

import static android.os.Build.VERSION_CODES.HONEYCOMB;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

final class Point {
public final int x;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import androidx.annotation.NonNull;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.annotation.SuppressLint;
import android.content.SharedPreferences;

import androidx.annotation.NonNull;
import androidx.test.core.app.ApplicationProvider;
import io.reactivex.functions.Consumer;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import io.reactivex.rxjava3.functions.Consumer;

import static android.preference.PreferenceManager.getDefaultSharedPreferences;
import static com.f2prateek.rx.preferences2.Roshambo.PAPER;
import static com.f2prateek.rx.preferences2.Roshambo.ROCK;
import static com.f2prateek.rx.preferences3.Roshambo.PAPER;
import static com.f2prateek.rx.preferences3.Roshambo.ROCK;
import static java.util.Arrays.asList;
import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -267,22 +271,7 @@ public class PreferenceTest {
observer.assertValue("bar");
}

@Ignore("Robolectric needs to be updated to support API 30")
@Test public void asObservableWhenBackingPrefsCleared() {
Preference<String> preference = rxPreferences.getString("foo", "bar");

RecordingObserver<String> observer = observerRule.create();
preference.asObservable().subscribe(observer);
observer.assertValue("bar");

preferences.edit().putString("foo", "baz").commit();
observer.assertValue("baz");

preferences.edit().clear().commit();
observer.assertValue("bar");
}

@Test public void asConsumer() throws Exception {
@Test public void asConsumer() throws Exception {
Preference<String> preference = rxPreferences.getString("foo");
Consumer<? super String> consumer = preference.asConsumer();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;

import io.reactivex.Notification;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;

import io.reactivex.rxjava3.core.Notification;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;

import static org.assertj.core.api.Assertions.assertThat;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

enum Roshambo {
ROCK, PAPER, SCISSORS;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.f2prateek.rx.preferences2;
package com.f2prateek.rx.preferences3;

import android.annotation.SuppressLint;
import android.content.SharedPreferences;
Expand Down