diff --git a/.travis.yml b/.travis.yml
index d950d91..6e5dea5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,9 +4,11 @@ android:
components:
- tools
- platform-tools
- - build-tools-25.0.2
- - android-25
+ - build-tools-28.0.3
+ - android-28
- extra-android-m2repository
+ licenses:
+ - 'android-sdk-license-.+'
jdk:
- oraclejdk8
diff --git a/build.gradle b/build.gradle
index 06f581f..20f23b6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,50 +1,55 @@
buildscript {
- repositories {
- mavenCentral()
- jcenter()
- maven { url 'https://plugins.gradle.org/m2/' }
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:2.3.0'
- classpath 'me.tatarka:gradle-retrolambda:3.3.0'
- classpath 'net.ltgt.gradle:gradle-errorprone-plugin:0.0.10'
- }
-}
-
-allprojects {
- repositories {
- mavenCentral()
- jcenter()
- }
+ ext {
+ minSdkVersion = 9
+ targetSdkVersion = 28
+ compileSdkVersion = 28
+ buildToolsVersion = '28.0.3'
+ javaVersion = JavaVersion.VERSION_1_7
+ java8Version = JavaVersion.VERSION_1_8
+ butterknifeVersion = '10.1.0'
+ }
- tasks.withType(JavaCompile) {
- options.compilerArgs += ['-Xlint:all', '-Xlint:-processing', '-Werror']
- }
+ repositories {
+ mavenCentral()
+ google()
+ jcenter()
+ }
- apply plugin: 'net.ltgt.errorprone'
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.3.2'
+ classpath "com.jakewharton:butterknife-gradle-plugin:${butterknifeVersion}"
+ }
+}
- group = GROUP
- version = VERSION_NAME
+plugins {
+ id("net.ltgt.errorprone") version "0.7.1"
}
-ext {
- minSdkVersion = 9
- targetSdkVersion = 25
- compileSdkVersion = 25
- buildToolsVersion = '25.0.2'
- javaVersion = JavaVersion.VERSION_1_7
- java8Version = JavaVersion.VERSION_1_8
+allprojects {
+ repositories {
+ mavenCentral()
+ google()
+ jcenter()
+ }
+
+ tasks.withType(JavaCompile) {
+ options.compilerArgs += ['-Xlint:all', '-Xlint:-processing', '-Werror']
+ }
+
+ group = GROUP
+ version = VERSION_NAME
}
ext.deps = [
- annotations: 'com.android.support:support-annotations:25.1.1',
- rxjava: 'io.reactivex.rxjava2:rxjava:2.0.3',
- rxandroid: 'io.reactivex.rxjava2:rxandroid:2.0.1',
- rxbinding: 'com.jakewharton.rxbinding:rxbinding:0.3.0',
- rxjava2interop: 'com.github.akarnokd:rxjava2-interop:0.4.0',
- butterknife: 'com.jakewharton:butterknife:8.4.0',
- butterknifeCompiler: 'com.jakewharton:butterknife-compiler:8.4.0',
- junit: 'junit:junit:4.12',
- assertj: 'org.assertj:assertj-core:1.7.0',
- robolectric: 'org.robolectric:robolectric:3.0',
+ 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.rxbinding:rxbinding:1.0.1',
+ rxjava2interop : 'com.github.akarnokd:rxjava2-interop:0.13.5',
+ butterknife : "com.jakewharton:butterknife:${ext.butterknifeVersion}",
+ butterknifeCompiler: "com.jakewharton:butterknife-compiler:${ext.butterknifeVersion}",
+ junit : 'junit:junit:4.12',
+ assertj : 'org.assertj:assertj-core:3.12.2',
+ robolectric : 'org.robolectric:robolectric:4.2.1',
+ testcore : 'androidx.test:core:1.0.0'
]
diff --git a/gradle.properties b/gradle.properties
index 7db2f59..b8ff29c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,3 +14,5 @@ POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=f2prateek
POM_DEVELOPER_NAME=Prateek Srivastava
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 6074266..87b738c 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 050062f..1b2b07c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Mar 14 01:37:42 PDT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-all.zip
diff --git a/gradlew b/gradlew
index 4453cce..af6708f 100755
--- a/gradlew
+++ b/gradlew
@@ -28,16 +28,16 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+DEFAULT_JVM_OPTS='"-Xmx64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
-warn ( ) {
+warn () {
echo "$*"
}
-die ( ) {
+die () {
echo
echo "$*"
echo
@@ -155,7 +155,7 @@ if $cygwin ; then
fi
# Escape application args
-save ( ) {
+save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
diff --git a/gradlew.bat b/gradlew.bat
index e95643d..0f8d593 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
+set DEFAULT_JVM_OPTS="-Xmx64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/rx-preferences-sample/build.gradle b/rx-preferences-sample/build.gradle
index 75156b3..ecd0861 100644
--- a/rx-preferences-sample/build.gradle
+++ b/rx-preferences-sample/build.gradle
@@ -1,5 +1,5 @@
apply plugin: 'com.android.application'
-apply plugin: 'me.tatarka.retrolambda'
+apply plugin: 'com.jakewharton.butterknife'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
@@ -30,11 +30,11 @@ android {
}
dependencies {
- compile project(':rx-preferences')
- compile deps.rxandroid
- compile deps.rxbinding
- compile deps.rxjava2interop
- compile deps.butterknife
+ implementation project(':rx-preferences')
+ implementation deps.rxandroid
+ implementation deps.rxbinding
+ implementation deps.rxjava2interop
+ implementation deps.butterknife
annotationProcessor deps.butterknifeCompiler
}
diff --git a/rx-preferences/build.gradle b/rx-preferences/build.gradle
index 401a145..cfdb716 100644
--- a/rx-preferences/build.gradle
+++ b/rx-preferences/build.gradle
@@ -20,12 +20,13 @@ android {
}
dependencies {
- compile deps.annotations
- compile deps.rxjava
+ implementation deps.annotations
+ api deps.rxjava2
- testCompile deps.junit
- testCompile deps.assertj
- testCompile deps.robolectric
+ testImplementation deps.junit
+ testImplementation deps.assertj
+ testImplementation deps.testcore
+ testImplementation deps.robolectric
}
apply from: rootProject.file('gradle/gradle-mvn-push.gradle')
diff --git a/rx-preferences/src/main/AndroidManifest.xml b/rx-preferences/src/main/AndroidManifest.xml
index 66289f2..29fb7fd 100644
--- a/rx-preferences/src/main/AndroidManifest.xml
+++ b/rx-preferences/src/main/AndroidManifest.xml
@@ -1,3 +1 @@
-
-
-
+
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/BooleanAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/BooleanAdapter.java
index 78ec35c..1dcc59a 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/BooleanAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/BooleanAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class BooleanAdapter implements RealPreference.Adapter {
static final BooleanAdapter INSTANCE = new BooleanAdapter();
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/ConverterAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/ConverterAdapter.java
index 6c026b5..5c9b3b4 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/ConverterAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/ConverterAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/EnumAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/EnumAdapter.java
index ddba3d9..b5a4d37 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/EnumAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/EnumAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class EnumAdapter> implements RealPreference.Adapter {
private final Class enumClass;
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/FloatAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/FloatAdapter.java
index 5e1e435..4adf881 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/FloatAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/FloatAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class FloatAdapter implements RealPreference.Adapter {
static final FloatAdapter INSTANCE = new FloatAdapter();
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/IntegerAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/IntegerAdapter.java
index 6d17efa..4c18c4c 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/IntegerAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/IntegerAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class IntegerAdapter implements RealPreference.Adapter {
static final IntegerAdapter INSTANCE = new IntegerAdapter();
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/LongAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/LongAdapter.java
index 8f945f6..7f4e68d 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/LongAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/LongAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class LongAdapter implements RealPreference.Adapter {
static final LongAdapter INSTANCE = new LongAdapter();
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/Preference.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/Preference.java
index 8409e48..aafc8b2 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/Preference.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/Preference.java
@@ -1,8 +1,10 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.CheckResult;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.CheckResult;
+import androidx.annotation.NonNull;
+
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RealPreference.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RealPreference.java
index 9253aae..d2325f7 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RealPreference.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RealPreference.java
@@ -1,15 +1,17 @@
package com.f2prateek.rx.preferences2;
-import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
-
import android.content.SharedPreferences;
-import android.support.annotation.CheckResult;
-import android.support.annotation.NonNull;
+
+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;
+
final class RealPreference implements Preference {
/** Stores and retrieves instances of {@code T} in {@link SharedPreferences}. */
interface Adapter {
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RxSharedPreferences.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RxSharedPreferences.java
index 3001d3e..1ebac22 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RxSharedPreferences.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/RxSharedPreferences.java
@@ -2,16 +2,18 @@
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.support.annotation.CheckResult;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
+
+import androidx.annotation.CheckResult;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+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 java.util.Collections;
-import java.util.Set;
import static android.os.Build.VERSION_CODES.HONEYCOMB;
import static com.f2prateek.rx.preferences2.Preconditions.checkNotNull;
@@ -37,7 +39,7 @@ public static RxSharedPreferences create(@NonNull SharedPreferences preferences)
private RxSharedPreferences(final SharedPreferences preferences) {
this.preferences = preferences;
this.keyChanges = Observable.create(new ObservableOnSubscribe() {
- @Override public void subscribe(final ObservableEmitter emitter) throws Exception {
+ @Override public void subscribe(final ObservableEmitter emitter) {
final OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
@@ -46,7 +48,7 @@ public void onSharedPreferenceChanged(SharedPreferences preferences, String key)
};
emitter.setCancellable(new Cancellable() {
- @Override public void cancel() throws Exception {
+ @Override public void cancel() {
preferences.unregisterOnSharedPreferenceChangeListener(listener);
}
});
@@ -97,7 +99,6 @@ public Preference getFloat(@NonNull String key, @NonNull Float defaultVal
/** Create an integer preference for {@code key}. Default is {@code 0}. */
@CheckResult @NonNull
public Preference getInteger(@NonNull String key) {
- //noinspection UnnecessaryBoxing
return getInteger(key, DEFAULT_INTEGER);
}
@@ -112,7 +113,6 @@ public Preference getInteger(@NonNull String key, @NonNull Integer defa
/** Create a long preference for {@code key}. Default is {@code 0}. */
@CheckResult @NonNull
public Preference getLong(@NonNull String key) {
- //noinspection UnnecessaryBoxing
return getLong(key, DEFAULT_LONG);
}
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringAdapter.java
index f46bcd8..f8f9a83 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringAdapter.java
@@ -1,7 +1,8 @@
package com.f2prateek.rx.preferences2;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
final class StringAdapter implements RealPreference.Adapter {
static final StringAdapter INSTANCE = new StringAdapter();
diff --git a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringSetAdapter.java b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringSetAdapter.java
index 7f8500f..b853ee8 100644
--- a/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringSetAdapter.java
+++ b/rx-preferences/src/main/java/com/f2prateek/rx/preferences2/StringSetAdapter.java
@@ -2,7 +2,9 @@
import android.annotation.TargetApi;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
+
import java.util.Collections;
import java.util.Set;
diff --git a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PointPreferenceConverter.java b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PointPreferenceConverter.java
index 37b2257..51e922c 100644
--- a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PointPreferenceConverter.java
+++ b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PointPreferenceConverter.java
@@ -1,6 +1,6 @@
package com.f2prateek.rx.preferences2;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
final class PointPreferenceConverter implements Preference.Converter {
@NonNull @Override public Point deserialize(@NonNull String serialized) {
diff --git a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PreferenceTest.java b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PreferenceTest.java
index 6a099ac..8238852 100644
--- a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PreferenceTest.java
+++ b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/PreferenceTest.java
@@ -2,16 +2,20 @@
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
-import io.reactivex.functions.Consumer;
-import java.util.LinkedHashSet;
-import java.util.Set;
+
+import androidx.annotation.NonNull;
+import androidx.test.core.app.ApplicationProvider;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import io.reactivex.functions.Consumer;
import static android.preference.PreferenceManager.getDefaultSharedPreferences;
import static com.f2prateek.rx.preferences2.Roshambo.PAPER;
@@ -31,7 +35,7 @@ public class PreferenceTest {
private RxSharedPreferences rxPreferences;
@Before public void setUp() {
- preferences = getDefaultSharedPreferences(RuntimeEnvironment.application);
+ preferences = getDefaultSharedPreferences(ApplicationProvider.getApplicationContext());
preferences.edit().clear().commit();
rxPreferences = RxSharedPreferences.create(preferences);
}
diff --git a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/RxSharedPreferencesTest.java b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/RxSharedPreferencesTest.java
index 35f6caf..2fb2a1e 100644
--- a/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/RxSharedPreferencesTest.java
+++ b/rx-preferences/src/test/java/com/f2prateek/rx/preferences2/RxSharedPreferencesTest.java
@@ -2,12 +2,15 @@
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
-import java.util.Collections;
+
+import androidx.test.core.app.ApplicationProvider;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+
+import java.util.Collections;
import static android.preference.PreferenceManager.getDefaultSharedPreferences;
import static org.assertj.core.api.Assertions.assertThat;
@@ -20,7 +23,7 @@ public class RxSharedPreferencesTest {
private RxSharedPreferences rxPreferences;
@Before public void setUp() {
- SharedPreferences preferences = getDefaultSharedPreferences(RuntimeEnvironment.application);
+ SharedPreferences preferences = getDefaultSharedPreferences(ApplicationProvider.getApplicationContext());
preferences.edit().clear().commit();
rxPreferences = RxSharedPreferences.create(preferences);
}