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); }