diff --git a/autodispose-interop/coroutines/src/main/kotlin/autodispose2/interop/coroutines/AutoDisposeCoroutinesInterop.kt b/autodispose-interop/coroutines/src/main/kotlin/autodispose2/interop/coroutines/AutoDisposeCoroutinesInterop.kt index 28c32b74..ea644b4d 100644 --- a/autodispose-interop/coroutines/src/main/kotlin/autodispose2/interop/coroutines/AutoDisposeCoroutinesInterop.kt +++ b/autodispose-interop/coroutines/src/main/kotlin/autodispose2/interop/coroutines/AutoDisposeCoroutinesInterop.kt @@ -37,6 +37,36 @@ import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.cancel import kotlin.coroutines.CoroutineContext +/** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ +context(CoroutineScope) + public inline fun Flowable.autoDispose(): FlowableSubscribeProxy { + return autoDispose(asScopeProvider()) +} + +/** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ +context(CoroutineScope) + public inline fun Observable.autoDispose(): ObservableSubscribeProxy { + return autoDispose(asScopeProvider()) +} + +/** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ +context(CoroutineScope) + public inline fun Single.autoDispose(): SingleSubscribeProxy { + return autoDispose(asScopeProvider()) +} + +/** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ +context(CoroutineScope) + public inline fun Maybe.autoDispose(): MaybeSubscribeProxy { + return autoDispose(asScopeProvider()) +} + +/** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ +context(CoroutineScope) + public inline fun Completable.autoDispose(): CompletableSubscribeProxy { + return autoDispose(asScopeProvider()) +} + /** Extension that proxies to the normal [autoDispose] extension function with a [ScopeProvider]. */ public inline fun Flowable.autoDispose(scope: CoroutineScope): FlowableSubscribeProxy { return autoDispose(scope.asScopeProvider()) diff --git a/autodispose/src/test/java/autodispose2/AutoDisposeKotlinTest.kt b/autodispose/src/test/java/autodispose2/AutoDisposeKotlinTest.kt index 3a81c33a..24780fac 100644 --- a/autodispose/src/test/java/autodispose2/AutoDisposeKotlinTest.kt +++ b/autodispose/src/test/java/autodispose2/AutoDisposeKotlinTest.kt @@ -444,7 +444,7 @@ class AutoDisposeKotlinTest { o.takeSubscribe() assertThat(source.hasObservers()).isTrue() - assertThat(scopeSource.hasObservers()) + assertThat(scopeSource.hasObservers()).isTrue() source.onNext(1) assertThat(o.takeNext()).isEqualTo(1) @@ -452,7 +452,7 @@ class AutoDisposeKotlinTest { source.onNext(2) assertThat(source.hasObservers()).isTrue() - assertThat(scopeSource.hasObservers()) + assertThat(scopeSource.hasObservers()).isTrue() assertThat(o.takeNext()).isEqualTo(2) scopeSource.onComplete() @@ -474,7 +474,7 @@ class AutoDisposeKotlinTest { o.takeSubscribe() assertThat(source.hasObservers()).isTrue() - assertThat(scopeSource.hasObservers()) + assertThat(scopeSource.hasObservers()).isTrue() scopeSource.onComplete() @@ -498,7 +498,7 @@ class AutoDisposeKotlinTest { o.takeSubscribe() assertThat(source.hasObservers()).isTrue() - assertThat(scopeSource.hasObservers()) + assertThat(scopeSource.hasObservers()).isTrue() scopeSource.onComplete() @@ -522,7 +522,7 @@ class AutoDisposeKotlinTest { o.takeSubscribe() assertThat(source.hasObservers()).isTrue() - assertThat(scopeSource.hasObservers()) + assertThat(scopeSource.hasObservers()).isTrue() scopeSource.onComplete() diff --git a/build.gradle b/build.gradle index d399a8d4..9c1b946b 100644 --- a/build.gradle +++ b/build.gradle @@ -150,7 +150,8 @@ subprojects { kotlinOptions { freeCompilerArgs = [ "-Xjsr305=strict", - "-progressive" + "-progressive", + "-Xcontext-receivers" ] jvmTarget = "1.8" } @@ -167,7 +168,8 @@ subprojects { kotlinOptions { freeCompilerArgs = [ "-Xjsr305=strict", - "-progressive" + "-progressive", + "-Xcontext-receivers" ] jvmTarget = "1.8" } @@ -176,7 +178,8 @@ subprojects { kotlinOptions { freeCompilerArgs = [ "-Xjsr305=strict", - "-progressive" + "-progressive", + "-Xcontext-receivers" ] jvmTarget = "1.8" } diff --git a/gradle.properties b/gradle.properties index cab20e73..0caed712 100644 --- a/gradle.properties +++ b/gradle.properties @@ -35,6 +35,7 @@ android.defaults.buildfeatures.renderscript=false android.defaults.buildfeatures.resvalues=false android.defaults.buildfeatures.shaders=false android.library.defaults.buildfeatures.androidresources=false +android.disableAutomaticComponentCreation=true kapt.include.compile.classpath=false diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index e6f85155..5a656a07 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -18,15 +18,15 @@ def versions = [ androidTest: '1.4.0', animalSniffer: '1.5.0', androidxLifecycle: '2.3.1', - dokka: '1.5.0', + dokka: '1.6.10', errorProne: '2.9.0', errorPronePlugin: '2.0.1', gjf: '1.11.0', nullawayPlugin: '1.1.0', - kotlin: '1.5.30', - lint: '30.0.0', + kotlin: '1.6.20-M1', + lint: '30.1.0', ktlint: '0.42.1', - spotless: '5.14.3' + spotless: '6.2.1' ] def apt = [ @@ -49,7 +49,7 @@ def build = [ animalSniffer: 'org.codehaus.mojo.signature:java17:1.0@signature', gradlePlugins: [ - android: 'com.android.tools.build:gradle:7.0.0', + android: 'com.android.tools.build:gradle:7.1.0', dokka: "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}", dokkaAndroid: "org.jetbrains.dokka:dokka-android-gradle-plugin:${versions.dokka}", kotlin: "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f..41d9927a 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 ffed3a25..41dfb879 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists