diff --git a/binder/build.gradle.kts b/binder/build.gradle.kts index 8fde34fc..67f9f681 100644 --- a/binder/build.gradle.kts +++ b/binder/build.gradle.kts @@ -16,7 +16,7 @@ tasks.withType { } dependencies { - api(libs.rxjava2) + api(libs.rxjava3) implementation(libs.rxkotlin) implementation(libs.kotlin.stdlib) diff --git a/binder/detekt-baseline.xml b/binder/detekt-baseline.xml index 5df9333d..3769371e 100644 --- a/binder/detekt-baseline.xml +++ b/binder/detekt-baseline.xml @@ -4,7 +4,7 @@ MaxLineLength:Connection.kt$infix MaxLineLength:ManualLifecycle.kt$ManualLifecycle$class - ReturnCount:Consumer.kt$fun <In> Consumer<In>.wrapWithMiddleware( standalone: Boolean = true, name: String? = null, postfix: String? = null, wrapperOf: Any? = null ): Consumer<In> + ReturnCount:Consumer.kt$fun <In : Any> Consumer<In>.wrapWithMiddleware( standalone: Boolean = true, name: String? = null, postfix: String? = null, wrapperOf: Any? = null ): Consumer<In> TooManyFunctions:Binder.kt$Binder : Disposable UseCheckOrError:StandaloneMiddleware.kt$StandaloneMiddleware$throw IllegalStateException("Middleware was initialised in standalone mode, can't accept other connections") diff --git a/binder/src/main/java/com/badoo/binder/Binder.kt b/binder/src/main/java/com/badoo/binder/Binder.kt index ca78539c..dc39527b 100644 --- a/binder/src/main/java/com/badoo/binder/Binder.kt +++ b/binder/src/main/java/com/badoo/binder/Binder.kt @@ -5,14 +5,14 @@ import com.badoo.binder.lifecycle.Lifecycle.Event.BEGIN import com.badoo.binder.lifecycle.Lifecycle.Event.END import com.badoo.binder.middleware.base.Middleware import com.badoo.binder.middleware.wrapWithMiddleware -import io.reactivex.Observable -import io.reactivex.Observable.wrap -import io.reactivex.ObservableSource -import io.reactivex.Scheduler -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.functions.Consumer -import io.reactivex.rxkotlin.plusAssign +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observable.wrap +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.kotlin.plusAssign class Binder( private val lifecycle: Lifecycle? = null, @@ -56,27 +56,32 @@ class Binder( subscribeWithLifecycle(connection, middleware) } } + else -> subscribe(connection, middleware) } } - private fun subscribeWithLifecycle( + private fun subscribeWithLifecycle( connection: Connection, middleware: Middleware? ) { - connectionDisposables += wrap(connection.from) - .subscribeWithMiddleware(connection, middleware) + connection.from?.let { + connectionDisposables += wrap(it) + .subscribeWithMiddleware(connection, middleware) + } } - private fun subscribe( + private fun subscribe( connection: Connection, middleware: Middleware? ) { - disposables += wrap(connection.from) - .subscribeWithMiddleware(connection, middleware) + connection.from?.let { + disposables += wrap(it) + .subscribeWithMiddleware(connection, middleware) + } } - private fun Observable.subscribeWithMiddleware( + private fun Observable.subscribeWithMiddleware( connection: Connection, middleware: Middleware? ): Disposable = @@ -97,7 +102,7 @@ class Binder( } } - private fun Observable.applyTransformer( + private fun Observable.applyTransformer( connection: Connection ): Observable = connection.connector?.let { @@ -153,7 +158,7 @@ class Binder( disposables.clear() } - private fun Observable.optionalObserveOn(scheduler: Scheduler?) = + private fun Observable.optionalObserveOn(scheduler: Scheduler?) = if (scheduler != null) { observeOn(scheduler) } else { diff --git a/binder/src/main/java/com/badoo/binder/Connection.kt b/binder/src/main/java/com/badoo/binder/Connection.kt index 2d62f698..138cba7e 100644 --- a/binder/src/main/java/com/badoo/binder/Connection.kt +++ b/binder/src/main/java/com/badoo/binder/Connection.kt @@ -2,11 +2,11 @@ package com.badoo.binder import com.badoo.binder.connector.Connector import com.badoo.binder.connector.NotNullConnector -import io.reactivex.ObservableSource -import io.reactivex.Scheduler -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.functions.Consumer -data class Connection( +data class Connection( val from: ObservableSource? = null, val to: Consumer, val connector: Connector? = null, @@ -24,36 +24,36 @@ data class Connection( "<${name ?: ANONYMOUS}> (${from ?: "?"} --> $to${connector?.let { " using $it" } ?: ""})" } -infix fun Pair, Consumer>.using(transformer: (Out) -> In?): Connection = +infix fun Pair, Consumer>.using(transformer: (Out) -> In?): Connection = using(NotNullConnector(transformer)) -infix fun Pair, Consumer>.using(connector: Connector): Connection = +infix fun Pair, Consumer>.using(connector: Connector): Connection = Connection( from = first, to = second, connector = connector ) -infix fun Pair, Consumer>.named(name: String): Connection = +infix fun Pair, Consumer>.named(name: String): Connection = Connection( from = first, to = second, name = name ) -infix fun Pair, Consumer>.observeOn(scheduler: Scheduler): Connection = +infix fun Pair, Consumer>.observeOn(scheduler: Scheduler): Connection = Connection( from = first, to = second, observeScheduler = scheduler ) -infix fun Connection.named(name: String) = +infix fun Connection.named(name: String) = copy( name = name ) -infix fun Connection.observeOn(scheduler: Scheduler) = +infix fun Connection.observeOn(scheduler: Scheduler) = copy( observeScheduler = scheduler ) diff --git a/binder/src/main/java/com/badoo/binder/connector/Connector.kt b/binder/src/main/java/com/badoo/binder/connector/Connector.kt index 684c8c1b..4fc6227e 100644 --- a/binder/src/main/java/com/badoo/binder/connector/Connector.kt +++ b/binder/src/main/java/com/badoo/binder/connector/Connector.kt @@ -1,5 +1,5 @@ package com.badoo.binder.connector -import io.reactivex.ObservableSource +import io.reactivex.rxjava3.core.ObservableSource -interface Connector: (ObservableSource) -> ObservableSource +interface Connector: (ObservableSource) -> ObservableSource diff --git a/binder/src/main/java/com/badoo/binder/connector/NotNullConnector.kt b/binder/src/main/java/com/badoo/binder/connector/NotNullConnector.kt index 07cccc70..e9932583 100644 --- a/binder/src/main/java/com/badoo/binder/connector/NotNullConnector.kt +++ b/binder/src/main/java/com/badoo/binder/connector/NotNullConnector.kt @@ -1,10 +1,10 @@ package com.badoo.binder.connector -import io.reactivex.Observable -import io.reactivex.Observable.wrap -import io.reactivex.ObservableSource +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observable.wrap +import io.reactivex.rxjava3.core.ObservableSource -internal class NotNullConnector(private val mapper: (Out) -> In?): Connector { +internal class NotNullConnector(private val mapper: (Out) -> In?): Connector { override fun invoke(element: ObservableSource): ObservableSource = wrap(element) .flatMap { diff --git a/binder/src/main/java/com/badoo/binder/lifecycle/Lifecycle.kt b/binder/src/main/java/com/badoo/binder/lifecycle/Lifecycle.kt index 17f5f607..ff50a74b 100644 --- a/binder/src/main/java/com/badoo/binder/lifecycle/Lifecycle.kt +++ b/binder/src/main/java/com/badoo/binder/lifecycle/Lifecycle.kt @@ -1,7 +1,7 @@ package com.badoo.binder.lifecycle import com.badoo.binder.lifecycle.internal.FromObservableSource -import io.reactivex.ObservableSource +import io.reactivex.rxjava3.core.ObservableSource interface Lifecycle : ObservableSource { diff --git a/binder/src/main/java/com/badoo/binder/lifecycle/ManualLifecycle.kt b/binder/src/main/java/com/badoo/binder/lifecycle/ManualLifecycle.kt index c37dc992..2fb99f1f 100644 --- a/binder/src/main/java/com/badoo/binder/lifecycle/ManualLifecycle.kt +++ b/binder/src/main/java/com/badoo/binder/lifecycle/ManualLifecycle.kt @@ -3,7 +3,7 @@ package com.badoo.binder.lifecycle import com.badoo.binder.lifecycle.Lifecycle.Event import com.badoo.binder.lifecycle.Lifecycle.Event.BEGIN import com.badoo.binder.lifecycle.Lifecycle.Event.END -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.subjects.BehaviorSubject class ManualLifecycle(private val subject : BehaviorSubject = BehaviorSubject.create()) : Lifecycle by Lifecycle.wrap(subject) { diff --git a/binder/src/main/java/com/badoo/binder/lifecycle/internal/FromObservableSource.kt b/binder/src/main/java/com/badoo/binder/lifecycle/internal/FromObservableSource.kt index 92bc3799..6a2ae360 100644 --- a/binder/src/main/java/com/badoo/binder/lifecycle/internal/FromObservableSource.kt +++ b/binder/src/main/java/com/badoo/binder/lifecycle/internal/FromObservableSource.kt @@ -1,7 +1,7 @@ package com.badoo.binder.lifecycle.internal import com.badoo.binder.lifecycle.Lifecycle -import io.reactivex.ObservableSource +import io.reactivex.rxjava3.core.ObservableSource internal class FromObservableSource( source: ObservableSource diff --git a/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt b/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt index 41a06c89..05116788 100644 --- a/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt +++ b/binder/src/main/java/com/badoo/binder/middleware/Consumer.kt @@ -4,7 +4,7 @@ import com.badoo.binder.middleware.base.Middleware import com.badoo.binder.middleware.base.StandaloneMiddleware import com.badoo.binder.middleware.config.Middlewares import com.badoo.binder.middleware.config.NonWrappable -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer /** * Wraps a Consumer with Middlewares. The list of Middlewares that will be applied is resolved @@ -19,7 +19,7 @@ import io.reactivex.functions.Consumer * @param postfix Passed on to [ConsumerMiddleware], in most cases you shouldn't need to override this. * @param wrapperOf Passed on to [ConsumerMiddleware], in most cases you shouldn't need to override this. */ -fun Consumer.wrapWithMiddleware( +fun Consumer.wrapWithMiddleware( standalone: Boolean = true, name: String? = null, postfix: String? = null, diff --git a/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt b/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt index a8ba0f26..c0747b54 100644 --- a/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt +++ b/binder/src/main/java/com/badoo/binder/middleware/base/Middleware.kt @@ -1,9 +1,9 @@ package com.badoo.binder.middleware.base import com.badoo.binder.Connection -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer -abstract class Middleware( +abstract class Middleware( protected val wrapped: Consumer ): Consumer { diff --git a/binder/src/main/java/com/badoo/binder/middleware/base/StandaloneMiddleware.kt b/binder/src/main/java/com/badoo/binder/middleware/base/StandaloneMiddleware.kt index 68f91668..4b5c589c 100644 --- a/binder/src/main/java/com/badoo/binder/middleware/base/StandaloneMiddleware.kt +++ b/binder/src/main/java/com/badoo/binder/middleware/base/StandaloneMiddleware.kt @@ -1,9 +1,9 @@ package com.badoo.binder.middleware.base import com.badoo.binder.Connection -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.disposables.Disposable -internal class StandaloneMiddleware( +internal class StandaloneMiddleware( private val wrappedMiddleware: Middleware, name: String? = null, postfix: String? = null diff --git a/binder/src/main/java/com/badoo/binder/middleware/config/ConsumerMiddlewareFactory.kt b/binder/src/main/java/com/badoo/binder/middleware/config/ConsumerMiddlewareFactory.kt index 22b5269c..26c1fe85 100644 --- a/binder/src/main/java/com/badoo/binder/middleware/config/ConsumerMiddlewareFactory.kt +++ b/binder/src/main/java/com/badoo/binder/middleware/config/ConsumerMiddlewareFactory.kt @@ -1,6 +1,6 @@ package com.badoo.binder.middleware.config import com.badoo.binder.middleware.base.Middleware -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer typealias ConsumerMiddlewareFactory = (Consumer) -> Middleware diff --git a/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt b/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt index 2683e009..7e533a19 100644 --- a/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt +++ b/binder/src/main/java/com/badoo/binder/middleware/config/MiddlewareConfiguration.kt @@ -1,14 +1,14 @@ package com.badoo.binder.middleware.config import com.badoo.binder.middleware.base.Middleware -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer data class MiddlewareConfiguration( private val condition: WrappingCondition, private val factories: List> ) { - fun applyOn( + fun applyOn( consumerToWrap: Consumer, targetToCheck: Any, name: String?, diff --git a/binder/src/test/java/com/badoo/binder/BinderTest.kt b/binder/src/test/java/com/badoo/binder/BinderTest.kt index d6369b87..c65e71fb 100644 --- a/binder/src/test/java/com/badoo/binder/BinderTest.kt +++ b/binder/src/test/java/com/badoo/binder/BinderTest.kt @@ -1,9 +1,9 @@ package com.badoo.binder import com.badoo.binder.connector.Connector -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.subjects.PublishSubject import org.junit.jupiter.api.Test class BinderTest { @@ -36,7 +36,7 @@ class BinderTest { @Test fun `covariant endpoints compile for connection dsl`() { - val anyConsumer = TestConsumer() + val anyConsumer = TestConsumer() binder.bind(source to anyConsumer using IntToString) } diff --git a/binder/src/test/java/com/badoo/binder/LifecycleTest.kt b/binder/src/test/java/com/badoo/binder/LifecycleTest.kt index 60b6c414..73c0dbf4 100644 --- a/binder/src/test/java/com/badoo/binder/LifecycleTest.kt +++ b/binder/src/test/java/com/badoo/binder/LifecycleTest.kt @@ -2,9 +2,9 @@ package com.badoo.binder import com.badoo.binder.lifecycle.Lifecycle import com.badoo.binder.lifecycle.ManualLifecycle -import io.reactivex.ObservableSource -import io.reactivex.functions.Consumer -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.subjects.PublishSubject import org.junit.jupiter.api.Test import org.mockito.kotlin.any import org.mockito.kotlin.mock diff --git a/binder/src/test/java/com/badoo/binder/TestConsumer.kt b/binder/src/test/java/com/badoo/binder/TestConsumer.kt index 4d295e89..ffb3e105 100644 --- a/binder/src/test/java/com/badoo/binder/TestConsumer.kt +++ b/binder/src/test/java/com/badoo/binder/TestConsumer.kt @@ -1,9 +1,9 @@ package com.badoo.binder -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer import org.junit.jupiter.api.Assertions.assertEquals -class TestConsumer : Consumer { +class TestConsumer : Consumer { val values = mutableListOf() override fun accept(item: T) { @@ -11,5 +11,5 @@ class TestConsumer : Consumer { } } -fun TestConsumer.assertValues(vararg values: T) = +fun TestConsumer.assertValues(vararg values: T) = assertEquals(values.toList(), this.values) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c2a88248..f410df6b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,9 +11,9 @@ androidMaterialVersion = "1.4.0" constraintLayoutVersion = "2.1.0" # Rx -rxJavaVersion = "2.2.21" -rxKotlinVersion = "2.4.0" -rxAndroidVersion = "2.1.1" +rxJavaVersion = "3.1.9" +rxKotlinVersion = "3.0.1" +rxAndroidVersion = "3.0.2" # DI daggerVersion = "2.46.1" @@ -25,7 +25,7 @@ scalpelVersion = "1.1.2" glideVersion = "4.13.2" # Testing -retrofitVersion = "2.4.0" +retrofitVersion = "2.11.0" gsonVersion = "2.10.1" # Testing @@ -46,9 +46,9 @@ androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayo google-material = { module = "com.google.android.material:material", version.ref = "androidMaterialVersion" } # Rx -rxjava2 = { module = "io.reactivex.rxjava2:rxjava", version.ref = "rxJavaVersion" } -rxkotlin = { module = "io.reactivex.rxjava2:rxkotlin", version.ref = "rxKotlinVersion" } -rxandroid = { module = "io.reactivex.rxjava2:rxandroid", version.ref = "rxAndroidVersion" } +rxjava3 = { module = "io.reactivex.rxjava3:rxjava", version.ref = "rxJavaVersion" } +rxkotlin = { module = "io.reactivex.rxjava3:rxkotlin", version.ref = "rxKotlinVersion" } +rxandroid = { module = "io.reactivex.rxjava3:rxandroid", version.ref = "rxAndroidVersion" } # DI dagger-runtime = { module = "com.google.dagger:dagger", version.ref = "daggerVersion" } @@ -75,7 +75,7 @@ glide-compiler = { module = "com.github.bumptech.glide:compiler", version.ref = # Network retrofit-runtime = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofitVersion" } -retrofit-adapter-rxjava2 = { module = "com.squareup.retrofit2:adapter-rxjava2", version.ref = "retrofitVersion" } +retrofit-adapter-rxjava3 = { module = "com.squareup.retrofit2:adapter-rxjava3", version.ref = "retrofitVersion" } retrofit-converter-simplexml = { module = "com.squareup.retrofit2:converter-simplexml", version.ref = "retrofitVersion" } gson = { module = "com.google.code.gson:gson", version.ref = "gsonVersion" } diff --git a/mvicore-android/build.gradle.kts b/mvicore-android/build.gradle.kts index 6b91e3cc..a7cbc138 100644 --- a/mvicore-android/build.gradle.kts +++ b/mvicore-android/build.gradle.kts @@ -44,7 +44,7 @@ dependencies { api(project(":mvicore")) api(project(":binder")) api(libs.androidx.lifecycle.common) - api(libs.rxjava2) + api(libs.rxjava3) implementation(libs.kotlin.stdlib) implementation(libs.rxandroid) diff --git a/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidMainThreadFeatureScheduler.kt b/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidMainThreadFeatureScheduler.kt index 9c750aa3..84ee185c 100644 --- a/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidMainThreadFeatureScheduler.kt +++ b/mvicore-android/src/main/java/com/badoo/mvicore/android/AndroidMainThreadFeatureScheduler.kt @@ -2,8 +2,8 @@ package com.badoo.mvicore.android import android.os.Looper import com.badoo.mvicore.feature.FeatureScheduler -import io.reactivex.Scheduler -import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers /** * A feature scheduler that ensures that MVICore feature only manipulates state on the Android diff --git a/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt b/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt index 5beba848..ac2d4af2 100644 --- a/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt +++ b/mvicore-android/src/main/java/com/badoo/mvicore/android/lifecycle/BaseAndroidBinderLifecycle.kt @@ -2,8 +2,8 @@ package com.badoo.mvicore.android.lifecycle import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleObserver -import io.reactivex.ObservableSource -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.subjects.BehaviorSubject import androidx.lifecycle.Lifecycle as AndroidLifecycle import com.badoo.binder.lifecycle.Lifecycle as BinderLifecycle diff --git a/mvicore-android/src/test/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensionsTest.kt b/mvicore-android/src/test/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensionsTest.kt index d5090c83..9af3c753 100644 --- a/mvicore-android/src/test/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensionsTest.kt +++ b/mvicore-android/src/test/java/com/badoo/mvicore/android/lifecycle/LifecycleExtensionsTest.kt @@ -5,10 +5,10 @@ import androidx.arch.core.executor.TaskExecutor import androidx.lifecycle.Lifecycle import com.badoo.binder.Binder import com.badoo.binder.observeOn -import io.reactivex.functions.Consumer -import io.reactivex.internal.schedulers.RxThreadFactory -import io.reactivex.plugins.RxJavaPlugins -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.internal.schedulers.RxThreadFactory +import io.reactivex.rxjava3.plugins.RxJavaPlugins +import io.reactivex.rxjava3.subjects.PublishSubject import java.util.concurrent.CountDownLatch import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals @@ -250,7 +250,7 @@ class LifecycleExtensionsTest { private var wasCalled: Boolean = false lateinit var threadName: String - override fun accept(t: Unit?) { + override fun accept(t: Unit) { wasCalled = true threadName = Thread.currentThread().name } diff --git a/mvicore-debugdrawer/build.gradle.kts b/mvicore-debugdrawer/build.gradle.kts index d7846b5a..af092737 100644 --- a/mvicore-debugdrawer/build.gradle.kts +++ b/mvicore-debugdrawer/build.gradle.kts @@ -40,7 +40,7 @@ dependencies { releaseApi(libs.debugdrawer.noop) implementation(libs.androidx.constraintlayout) - implementation(libs.rxjava2) + implementation(libs.rxjava3) implementation(libs.kotlin.stdlib) debugImplementation(libs.debugdrawer.view.impl) diff --git a/mvicore-debugdrawer/src/main/java/com/badoo/mvicore/debugdrawer/MviCoreControlsModule.kt b/mvicore-debugdrawer/src/main/java/com/badoo/mvicore/debugdrawer/MviCoreControlsModule.kt index 7ff0dbcb..47a2bc2a 100644 --- a/mvicore-debugdrawer/src/main/java/com/badoo/mvicore/debugdrawer/MviCoreControlsModule.kt +++ b/mvicore-debugdrawer/src/main/java/com/badoo/mvicore/debugdrawer/MviCoreControlsModule.kt @@ -17,7 +17,7 @@ import com.badoo.mvicore.consumer.middleware.PlaybackMiddleware.RecordStore.Play import com.badoo.mvicore.consumer.middleware.PlaybackMiddleware.RecordStore.RecordKey import io.palaima.debugdrawer.DebugDrawer import io.palaima.debugdrawer.base.DebugModuleAdapter -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.CompositeDisposable class MviCoreControlsModule( private val recordStore: PlaybackMiddleware.RecordStore diff --git a/mvicore-demo/mvicore-demo-app/build.gradle.kts b/mvicore-demo/mvicore-demo-app/build.gradle.kts index 834ed027..b541d869 100644 --- a/mvicore-demo/mvicore-demo-app/build.gradle.kts +++ b/mvicore-demo/mvicore-demo-app/build.gradle.kts @@ -58,7 +58,7 @@ dependencies { implementation(libs.google.material) // Rx - implementation(libs.rxjava2) + implementation(libs.rxjava3) implementation(libs.rxandroid) // DI diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/App.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/App.kt index 9e080d60..946f2ebf 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/App.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/App.kt @@ -31,9 +31,7 @@ class App : Application() { Middlewares.configurations.add( MiddlewareConfiguration( condition = WrappingCondition.Always, - factories = listOf( - { consumer -> LoggingMiddleware(consumer, { Timber.d(it) }) } - ) + factories = listOf { consumer -> LoggingMiddleware(consumer, { Timber.d(it) }) } ) ) @@ -46,18 +44,19 @@ class App : Application() { WrappingCondition.IsStandalone ) ), - factories = listOf( - { consumer -> PlaybackMiddleware(consumer, recordStore, { Timber.d(it) }) } - ) + factories = listOf { consumer -> + PlaybackMiddleware( + consumer, + recordStore + ) { Timber.d(it) } + } ) ) Middlewares.configurations.add( MiddlewareConfiguration( condition = WrappingCondition.Always, - factories = listOf( - { consumer -> IdeaPluginMiddleware(consumer, defaultStore) } - ) + factories = listOf { consumer -> IdeaPluginMiddleware(consumer, defaultStore) } ) ) } diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/appscope/module/MviCoreModule.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/appscope/module/MviCoreModule.kt index 28b3ab20..6a29126d 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/appscope/module/MviCoreModule.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/appscope/module/MviCoreModule.kt @@ -7,7 +7,7 @@ import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import timber.log.Timber import javax.inject.Singleton diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/usersessionscope/UserManager.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/usersessionscope/UserManager.kt index ab6bd20c..b55f7de2 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/usersessionscope/UserManager.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/di/usersessionscope/UserManager.kt @@ -4,7 +4,7 @@ import android.app.Application import com.badoo.mvicoredemo.di.usersessionscope.component.UserComponentEntryPoint import com.badoo.mvicoredemo.di.usersessionscope.component.UserSessionComponent import dagger.hilt.EntryPoints -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject import javax.inject.Provider import javax.inject.Singleton diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/common/ObservableSourceActivity.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/common/ObservableSourceActivity.kt index b232d53e..0e726050 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/common/ObservableSourceActivity.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/common/ObservableSourceActivity.kt @@ -1,8 +1,8 @@ package com.badoo.mvicoredemo.ui.common -import io.reactivex.ObservableSource -import io.reactivex.Observer -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Observer +import io.reactivex.rxjava3.subjects.PublishSubject abstract class ObservableSourceActivity : DebugActivity(), ObservableSource { diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/lifecycle/LifecycleDemoActivity.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/lifecycle/LifecycleDemoActivity.kt index bf2972c4..ae477da8 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/lifecycle/LifecycleDemoActivity.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/lifecycle/LifecycleDemoActivity.kt @@ -11,8 +11,8 @@ import com.badoo.mvicore.android.lifecycle.ResumePauseBinderLifecycle import com.badoo.mvicore.android.lifecycle.StartStopBinderLifecycle import com.badoo.mvicoredemo.databinding.ActivityLifecycleDemoBinding import init -import io.reactivex.functions.Consumer -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.subjects.PublishSubject import timber.log.Timber class LifecycleDemoActivity : AppCompatActivity() { diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/MainActivity.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/MainActivity.kt index 0edb100a..781a89de 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/MainActivity.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/MainActivity.kt @@ -16,7 +16,7 @@ import com.badoo.mvicoredemo.ui.main.event.UiEvent.PlusClicked import com.badoo.mvicoredemo.ui.main.viewmodel.ViewModel import dagger.hilt.android.AndroidEntryPoint import init -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer import javax.inject.Inject @AndroidEntryPoint diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/analytics/FakeAnalyticsTracker.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/analytics/FakeAnalyticsTracker.kt index 1690a5c8..bebd9a9e 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/analytics/FakeAnalyticsTracker.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/analytics/FakeAnalyticsTracker.kt @@ -3,7 +3,7 @@ package com.badoo.mvicoredemo.ui.main.analytics import android.content.Context import android.widget.Toast import com.badoo.mvicoredemo.ui.main.event.UiEvent -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer class FakeAnalyticsTracker( private val context: Context diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/news/NewsListener.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/news/NewsListener.kt index e349c099..05f301bd 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/news/NewsListener.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/ui/main/news/NewsListener.kt @@ -4,7 +4,7 @@ import android.content.Context import android.widget.Toast import com.badoo.feature2.Feature2 import com.badoo.feature2.Feature2.News.ErrorExecutingRequest -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer import timber.log.Timber class NewsListener( diff --git a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/utils/RxExtensions.kt b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/utils/RxExtensions.kt index c4c6e74e..75c7f831 100644 --- a/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/utils/RxExtensions.kt +++ b/mvicore-demo/mvicore-demo-app/src/main/java/com/badoo/mvicoredemo/utils/RxExtensions.kt @@ -1,14 +1,13 @@ package com.badoo.mvicoredemo.utils -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.functions.BiFunction +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource -fun combineLatest(o1: ObservableSource, o2: ObservableSource): ObservableSource> = +fun combineLatest( + o1: ObservableSource, + o2: ObservableSource +): ObservableSource> = Observable.combineLatest( o1, - o2, - BiFunction> { t1, t2 -> - t1 to t2 - } - ) + o2 + ) { t1, t2 -> t1 to t2 } diff --git a/mvicore-demo/mvicore-demo-catapi/build.gradle.kts b/mvicore-demo/mvicore-demo-catapi/build.gradle.kts index ba4397b4..24a76664 100644 --- a/mvicore-demo/mvicore-demo-catapi/build.gradle.kts +++ b/mvicore-demo/mvicore-demo-catapi/build.gradle.kts @@ -32,11 +32,11 @@ android { } dependencies { - api(libs.rxjava2) + api(libs.rxjava3) api(libs.retrofit.runtime) implementation(libs.kotlin.stdlib) - implementation(libs.retrofit.adapter.rxjava2) + implementation(libs.retrofit.adapter.rxjava3) implementation(libs.retrofit.converter.simplexml) configurations { diff --git a/mvicore-demo/mvicore-demo-catapi/src/main/java/com/badoo/catapi/CatApi.kt b/mvicore-demo/mvicore-demo-catapi/src/main/java/com/badoo/catapi/CatApi.kt index fa7479a3..a9ab5224 100644 --- a/mvicore-demo/mvicore-demo-catapi/src/main/java/com/badoo/catapi/CatApi.kt +++ b/mvicore-demo/mvicore-demo-catapi/src/main/java/com/badoo/catapi/CatApi.kt @@ -1,11 +1,11 @@ package com.badoo.catapi -import io.reactivex.Observable -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.schedulers.Schedulers import org.simpleframework.xml.convert.AnnotationStrategy import org.simpleframework.xml.core.Persister import retrofit2.Retrofit -import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory +import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory import retrofit2.converter.simplexml.SimpleXmlConverterFactory import retrofit2.http.GET import retrofit2.http.Query @@ -25,7 +25,7 @@ interface CatApi { private var retrofit = Retrofit.Builder() .baseUrl("https://thecatapi.com/api/") .addCallAdapterFactory( - RxJava2CallAdapterFactory.createWithScheduler( + RxJava3CallAdapterFactory.createWithScheduler( Schedulers.io() ) ) diff --git a/mvicore-demo/mvicore-demo-feature2/build.gradle.kts b/mvicore-demo/mvicore-demo-feature2/build.gradle.kts index 75c12d23..536f2ee4 100644 --- a/mvicore-demo/mvicore-demo-feature2/build.gradle.kts +++ b/mvicore-demo/mvicore-demo-feature2/build.gradle.kts @@ -33,7 +33,7 @@ android { } dependencies { - api(libs.rxjava2) + api(libs.rxjava3) api(project(":mvicore")) api(project(":mvicore-demo:mvicore-demo-catapi")) diff --git a/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Extensions.kt b/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Extensions.kt index fd510009..4612bf5f 100644 --- a/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Extensions.kt +++ b/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Extensions.kt @@ -1,9 +1,9 @@ package com.badoo.feature2 -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable import java.util.concurrent.ThreadLocalRandom -fun Observable.randomlyThrowAnException(): Observable = +fun Observable.randomlyThrowAnException(): Observable = doOnNext { if (ThreadLocalRandom.current().nextInt(10) == 0) throw RuntimeException("Test exception") } diff --git a/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Feature2.kt b/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Feature2.kt index ec4ea30f..8ab3c014 100644 --- a/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Feature2.kt +++ b/mvicore-demo/mvicore-demo-feature2/src/main/java/com/badoo/feature2/Feature2.kt @@ -18,8 +18,8 @@ import com.badoo.mvicore.element.NewsPublisher import com.badoo.mvicore.element.Reducer import com.badoo.mvicore.element.TimeCapsule import com.badoo.mvicore.feature.ActorReducerFeature -import io.reactivex.Observable -import io.reactivex.Observable.just +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observable.just import kotlinx.parcelize.Parcelize class Feature2( diff --git a/mvicore-diff/src/test/java/com/badoo/mvicore/ModelWatcherTest.kt b/mvicore-diff/src/test/java/com/badoo/mvicore/ModelWatcherTest.kt index bcdfa488..7f60f8e6 100644 --- a/mvicore-diff/src/test/java/com/badoo/mvicore/ModelWatcherTest.kt +++ b/mvicore-diff/src/test/java/com/badoo/mvicore/ModelWatcherTest.kt @@ -9,7 +9,7 @@ class ModelWatcherTest { @Test fun `invokes callback when field changes`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(int = 0), Model(int = 1) @@ -25,7 +25,7 @@ class ModelWatcherTest { @Test fun `does not invoke callback when field does not change`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(int = 0), Model(int = 0) @@ -41,7 +41,7 @@ class ModelWatcherTest { @Test fun `emits nullable fields on start`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(nullable = null) ) @@ -72,7 +72,7 @@ class ModelWatcherTest { @Test fun `invokes callback using dsl`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(int = 0), Model(int = 1) ) @@ -104,7 +104,7 @@ class ModelWatcherTest { @Test fun `invokes callback with combined diffStrategy using 'or'`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(list = listOf(""), int = 1), Model(list = listOf(""), int = 1, nullable = false), @@ -121,7 +121,7 @@ class ModelWatcherTest { @Test fun `invokes callback with combined diffStrategy using 'and'`() { - val results = testWatcher( + val results = testWatcher( listOf( Model(list = listOf(""), int = 1), Model(int = 1), @@ -139,7 +139,7 @@ class ModelWatcherTest { @Test fun `invokes callback after clear`() { val results = mutableListOf>() - val watcher = modelWatcher { + val watcher = modelWatcher { Model::list { results += it } diff --git a/mvicore-diff/src/test/java/com/badoo/mvicore/util/helpers.kt b/mvicore-diff/src/test/java/com/badoo/mvicore/util/helpers.kt index c7faf8ef..706efff9 100644 --- a/mvicore-diff/src/test/java/com/badoo/mvicore/util/helpers.kt +++ b/mvicore-diff/src/test/java/com/badoo/mvicore/util/helpers.kt @@ -8,7 +8,7 @@ fun testWatcher( init: ModelWatcher.Builder.(result: MutableList) -> Unit ): List { val updates = mutableListOf() - val watcher = modelWatcher { init(updates) } + val watcher = modelWatcher { init(updates) } models.forEach { watcher(it) } return updates } diff --git a/mvicore-plugin/idea/build.gradle.kts b/mvicore-plugin/idea/build.gradle.kts index 985b49a9..e7a9fe6c 100644 --- a/mvicore-plugin/idea/build.gradle.kts +++ b/mvicore-plugin/idea/build.gradle.kts @@ -37,7 +37,7 @@ tasks { dependencies { api(project(":mvicore-plugin:common")) api(libs.gson) - api(libs.rxjava2) + api(libs.rxjava3) implementation(libs.rxkotlin) implementation(libs.kotlin.stdlib) diff --git a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/MviPluginToolWindowFactory.kt b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/MviPluginToolWindowFactory.kt index ee530c12..e6f12d11 100644 --- a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/MviPluginToolWindowFactory.kt +++ b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/MviPluginToolWindowFactory.kt @@ -9,7 +9,6 @@ import com.badoo.mvicore.plugin.ui.EventList import com.badoo.mvicore.plugin.ui.JsonRootNode import com.badoo.mvicore.plugin.utils.mainThreadScheduler import com.google.gson.JsonElement -import com.intellij.openapi.Disposable import com.intellij.openapi.actionSystem.ActionGroup import com.intellij.openapi.actionSystem.ActionManager import com.intellij.openapi.actionSystem.ActionPlaces @@ -23,8 +22,8 @@ import com.intellij.ui.JBSplitter import com.intellij.ui.components.JBScrollPane import com.intellij.ui.content.ContentFactory import com.intellij.ui.treeStructure.Tree -import io.reactivex.Observable -import io.reactivex.disposables.CompositeDisposable +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.CompositeDisposable import java.awt.BorderLayout import javax.swing.JPanel import javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED @@ -68,7 +67,7 @@ class MviPluginToolWindowFactory : ToolWindowFactory { eventsObservable = Observable.wrap(SocketObservable(project, 7675)) .observeOn(mainThreadScheduler) - Disposer.register(project, Disposable { disposables.clear() }) + Disposer.register(project) { disposables.clear() } // Left val sideActions = createSidePanelActions() diff --git a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/SocketObservable.kt b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/SocketObservable.kt index 1a7eec40..d103e0e0 100644 --- a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/SocketObservable.kt +++ b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/SocketObservable.kt @@ -6,8 +6,8 @@ import com.badoo.mvicore.plugin.utils.stopForwarding import com.google.gson.JsonElement import com.google.gson.JsonParser import com.intellij.openapi.project.Project -import io.reactivex.Observable -import io.reactivex.ObservableSource +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource import java.net.InetAddress import java.net.ServerSocket import java.net.SocketException diff --git a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/action/RunAction.kt b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/action/RunAction.kt index bd666a82..3622ee1f 100644 --- a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/action/RunAction.kt +++ b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/action/RunAction.kt @@ -14,9 +14,9 @@ import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.IdeActions import com.intellij.openapi.project.Project -import io.reactivex.Observable -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.rxkotlin.plusAssign +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.kotlin.plusAssign import java.text.SimpleDateFormat import java.util.Date diff --git a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/utils/MainThreadScheduler.kt b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/utils/MainThreadScheduler.kt index 78437323..49abed99 100644 --- a/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/utils/MainThreadScheduler.kt +++ b/mvicore-plugin/idea/src/main/java/com/badoo/mvicore/plugin/utils/MainThreadScheduler.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore.plugin.utils -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.Schedulers import javax.swing.SwingUtilities val mainThreadScheduler = Schedulers.from { diff --git a/mvicore-plugin/middleware/build.gradle.kts b/mvicore-plugin/middleware/build.gradle.kts index df635d3a..6d24d340 100644 --- a/mvicore-plugin/middleware/build.gradle.kts +++ b/mvicore-plugin/middleware/build.gradle.kts @@ -16,7 +16,7 @@ base.archivesBaseName = "mvicore-plugin-middleware" dependencies { api(project(":binder")) api(project(":mvicore-plugin:common")) - api(libs.rxjava2) + api(libs.rxjava3) api(libs.gson) implementation(libs.kotlin.stdlib) diff --git a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt index f67d763a..7940f8f3 100644 --- a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt +++ b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/DefaultPluginStore.kt @@ -9,13 +9,13 @@ import com.badoo.mvicore.middleware.socket.PluginSocketThread import com.badoo.mvicore.plugin.model.ConnectionData import com.badoo.mvicore.plugin.model.Event import com.google.gson.GsonBuilder -import io.reactivex.Observable -import io.reactivex.Single -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.rxkotlin.plusAssign -import io.reactivex.schedulers.Schedulers -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Single +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.kotlin.plusAssign +import io.reactivex.rxjava3.schedulers.Schedulers +import io.reactivex.rxjava3.subjects.PublishSubject import java.lang.ref.ReferenceQueue import java.util.concurrent.ConcurrentLinkedDeque import java.util.concurrent.CopyOnWriteArrayList @@ -97,11 +97,11 @@ class DefaultPluginStore( )) } - private fun runInBackground(element: T, block: (T) -> Unit) { + private fun runInBackground(element: T, block: (T) -> Unit) { disposables += Single.just(element) .observeOn(Schedulers.computation()) - .subscribe(block, { + .subscribe(block) { // TODO: log? - }) + } } } diff --git a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/IdeaPluginMiddleware.kt b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/IdeaPluginMiddleware.kt index 2edeb670..7f87e5d5 100644 --- a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/IdeaPluginMiddleware.kt +++ b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/IdeaPluginMiddleware.kt @@ -2,7 +2,7 @@ package com.badoo.mvicore.middleware import com.badoo.binder.Connection import com.badoo.binder.middleware.base.Middleware -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer class IdeaPluginMiddleware( wrapped: Consumer, diff --git a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/gc/QueueWatcher.kt b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/gc/QueueWatcher.kt index 81857c75..4e2b3862 100644 --- a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/gc/QueueWatcher.kt +++ b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/gc/QueueWatcher.kt @@ -29,7 +29,7 @@ internal class QueueWatcher( } } - fun add(ref: Connection, data: ConnectionData) { + fun add(ref: Connection, data: ConnectionData) { references.add( ConnectionReference(ref, referenceQueue, data) ) diff --git a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/socket/PluginSocketThread.kt b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/socket/PluginSocketThread.kt index b6e5712c..dd8158b4 100644 --- a/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/socket/PluginSocketThread.kt +++ b/mvicore-plugin/middleware/src/main/java/com/badoo/mvicore/middleware/socket/PluginSocketThread.kt @@ -2,9 +2,9 @@ package com.badoo.mvicore.middleware.socket import com.badoo.mvicore.plugin.model.Event import com.google.gson.Gson -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.subjects.PublishSubject import java.io.IOException import java.net.InetAddress import java.net.Socket diff --git a/mvicore/build.gradle.kts b/mvicore/build.gradle.kts index 56b68d3f..4a56e8af 100644 --- a/mvicore/build.gradle.kts +++ b/mvicore/build.gradle.kts @@ -17,7 +17,7 @@ tasks.withType { dependencies { api(project(":binder")) - api(libs.rxjava2) + api(libs.rxjava3) implementation(libs.rxkotlin) implementation(libs.kotlin.stdlib) diff --git a/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/LoggingMiddleware.kt b/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/LoggingMiddleware.kt index 7cd73145..ba4a994e 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/LoggingMiddleware.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/LoggingMiddleware.kt @@ -3,7 +3,7 @@ package com.badoo.mvicore.consumer.middleware import com.badoo.binder.Connection import com.badoo.binder.middleware.base.Middleware import com.badoo.mvicore.consumer.util.Logger -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.functions.Consumer import java.util.Locale class LoggingMiddleware( diff --git a/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt b/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt index f6b7c1ba..1aa41719 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/consumer/middleware/PlaybackMiddleware.kt @@ -3,8 +3,8 @@ package com.badoo.mvicore.consumer.middleware import com.badoo.binder.Connection import com.badoo.binder.middleware.base.Middleware import com.badoo.mvicore.consumer.util.Logger -import io.reactivex.Observable -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.functions.Consumer open class PlaybackMiddleware( wrapped: Consumer, diff --git a/mvicore/src/main/java/com/badoo/mvicore/consumer/playback/MemoryRecordStore.kt b/mvicore/src/main/java/com/badoo/mvicore/consumer/playback/MemoryRecordStore.kt index 57657dd3..718e7044 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/consumer/playback/MemoryRecordStore.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/consumer/playback/MemoryRecordStore.kt @@ -11,9 +11,9 @@ import com.badoo.mvicore.consumer.middleware.PlaybackMiddleware.RecordStore.Play import com.badoo.mvicore.consumer.middleware.PlaybackMiddleware.RecordStore.PlaybackState.RECORDING import com.badoo.mvicore.consumer.middleware.PlaybackMiddleware.RecordStore.RecordKey import com.badoo.mvicore.consumer.util.Logger -import io.reactivex.Observable -import io.reactivex.Scheduler -import io.reactivex.subjects.BehaviorSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.subjects.BehaviorSubject import java.util.concurrent.TimeUnit class MemoryRecordStore( @@ -21,7 +21,8 @@ class MemoryRecordStore( private val playbackScheduler: Scheduler ) : RecordStore { private val state: BehaviorSubject = BehaviorSubject.createDefault(IDLE) - private val records: BehaviorSubject> = BehaviorSubject.createDefault(emptyList()) + private val records: BehaviorSubject> = + BehaviorSubject.createDefault(emptyList()) private val cachedEvents: MutableMap, MutableList> = mutableMapOf() private val lastElementBuffer: MutableMap, Any> = mutableMapOf() private var isRecording = false @@ -48,19 +49,29 @@ class MemoryRecordStore( } } - override fun register(middleware: PlaybackMiddleware, endpoints: Connection) { + override fun register( + middleware: PlaybackMiddleware, + endpoints: Connection + ) { cachedEvents[Key(middleware, endpoints)] = mutableListOf() updateRecords() } - override fun unregister(middleware: PlaybackMiddleware, endpoints: Connection) { + override fun unregister( + middleware: PlaybackMiddleware, + endpoints: Connection + ) { val key = Key(middleware, endpoints) cachedEvents.remove(key) lastElementBuffer.remove(key) updateRecords() } - override fun record(middleware: PlaybackMiddleware, endpoints: Connection, element: In) { + override fun record( + middleware: PlaybackMiddleware, + endpoints: Connection, + element: In + ) { val key = Key(middleware, endpoints) lastElementBuffer[key] = element @@ -76,7 +87,7 @@ class MemoryRecordStore( if (recordBaseTimestampNanos == 0L) throw IllegalStateException( "Don't create events when base timestamp is 0, you'll wait forever for the delay on playback. " + - "Check if you are in recording state?" + "Check if you are in recording state?" ) else Event( delayNanos = System.nanoTime() - recordBaseTimestampNanos, @@ -103,17 +114,19 @@ class MemoryRecordStore( throw IllegalStateException("Trying to playback while still recording") } - cachedEvents.keys - .first { it.id == recordKey.id } - .let { key -> - Observable.fromIterable(cachedEvents[key]) + cachedEvents + .entries + .first { it.key.id == recordKey.id } + .let { (key, events) -> + Observable.fromIterable(events) .delay { Observable.timer(it.delayNanos, TimeUnit.NANOSECONDS) } .observeOn(playbackScheduler) .doOnNext { logger?.invoke("MemoryRecordStore: PLAYBACK: ts: ${it.delayNanos}, event: ${it.obj}") } .map { it.obj } .doOnSubscribe { state.onNext(PLAYBACK) - key.middleWare.startPlayback() } + key.middleWare.startPlayback() + } .doOnTerminate { logger?.invoke("MemoryRecordStore: PLAYBACK FINISHED") state.onNext(FINISHED_PLAYBACK) @@ -130,7 +143,7 @@ class MemoryRecordStore( } } - private data class Key( + private data class Key( val middleWare: PlaybackMiddleware, val connection: Connection ) { diff --git a/mvicore/src/main/java/com/badoo/mvicore/element/Actor.kt b/mvicore/src/main/java/com/badoo/mvicore/element/Actor.kt index aa6affce..673b4bc8 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/element/Actor.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/element/Actor.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore.element -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable typealias Actor = (state: State, action: Action) -> Observable diff --git a/mvicore/src/main/java/com/badoo/mvicore/element/Bootstrapper.kt b/mvicore/src/main/java/com/badoo/mvicore/element/Bootstrapper.kt index 4d562849..328850c5 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/element/Bootstrapper.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/element/Bootstrapper.kt @@ -1,5 +1,5 @@ package com.badoo.mvicore.element -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable typealias Bootstrapper = () -> Observable diff --git a/mvicore/src/main/java/com/badoo/mvicore/element/Store.kt b/mvicore/src/main/java/com/badoo/mvicore/element/Store.kt index 582ee4be..93093a4d 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/element/Store.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/element/Store.kt @@ -1,7 +1,7 @@ package com.badoo.mvicore.element -import io.reactivex.ObservableSource -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.functions.Consumer interface Store : Consumer, ObservableSource { diff --git a/mvicore/src/main/java/com/badoo/mvicore/extension/Rx.kt b/mvicore/src/main/java/com/badoo/mvicore/extension/Rx.kt index acf1ed82..fcd597b7 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/extension/Rx.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/extension/Rx.kt @@ -1,11 +1,11 @@ package com.badoo.mvicore.extension -import io.reactivex.Observable -import io.reactivex.Observer -import io.reactivex.Scheduler -import io.reactivex.functions.Consumer +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observer +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.functions.Consumer fun Observer.asConsumer() = Consumer { onNext(it) } -internal fun Observable.subscribeOnNullable(scheduler: Scheduler?): Observable = +internal fun Observable.subscribeOnNullable(scheduler: Scheduler?): Observable = if (scheduler != null) subscribeOn(scheduler) else this diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeature.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeature.kt index 84e99f33..4e13a150 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeature.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeature.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore.feature -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable /** * [Feature] that explicitly defines its multithreading capabilities. diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeatureSchedulers.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeatureSchedulers.kt index bf55ee90..bdecf627 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeatureSchedulers.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/AsyncFeatureSchedulers.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore.feature -import io.reactivex.Scheduler +import io.reactivex.rxjava3.core.Scheduler /** * A set of [Scheduler]s that change the threading behaviour of [BaseAsyncFeature] diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/BaseAsyncFeature.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/BaseAsyncFeature.kt index 89609720..94766e1c 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/BaseAsyncFeature.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/BaseAsyncFeature.kt @@ -9,17 +9,17 @@ import com.badoo.mvicore.element.Reducer import com.badoo.mvicore.element.WishToAction import com.badoo.mvicore.extension.SameThreadVerifier import com.badoo.mvicore.extension.asConsumer -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.Observer -import io.reactivex.Scheduler -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.functions.Consumer -import io.reactivex.rxkotlin.plusAssign -import io.reactivex.subjects.BehaviorSubject -import io.reactivex.subjects.PublishSubject -import io.reactivex.subjects.Subject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Observer +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.kotlin.plusAssign +import io.reactivex.rxjava3.subjects.BehaviorSubject +import io.reactivex.rxjava3.subjects.PublishSubject +import io.reactivex.rxjava3.subjects.Subject import java.util.concurrent.atomic.AtomicReference open class BaseAsyncFeature( @@ -151,7 +151,7 @@ open class BaseAsyncFeature, private val stateSubject: Subject, private val reducerWrapper: Consumer>, - private val featureScheduler: Scheduler?, + private val featureScheduler: Scheduler, private val threadVerifier: Lazy ) : Consumer> { diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/BaseFeature.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/BaseFeature.kt index cf793992..833d5ddf 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/BaseFeature.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/BaseFeature.kt @@ -10,16 +10,16 @@ import com.badoo.mvicore.element.WishToAction import com.badoo.mvicore.extension.SameThreadVerifier import com.badoo.mvicore.extension.asConsumer import com.badoo.mvicore.extension.subscribeOnNullable -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.Observer -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.disposables.Disposable -import io.reactivex.functions.Consumer -import io.reactivex.rxkotlin.plusAssign -import io.reactivex.subjects.BehaviorSubject -import io.reactivex.subjects.PublishSubject -import io.reactivex.subjects.Subject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Observer +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.kotlin.plusAssign +import io.reactivex.rxjava3.subjects.BehaviorSubject +import io.reactivex.rxjava3.subjects.PublishSubject +import io.reactivex.rxjava3.subjects.Subject /** * A base implementation of a single threaded feature. diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/Feature.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/Feature.kt index 993368af..82e12d86 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/Feature.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/Feature.kt @@ -1,8 +1,8 @@ package com.badoo.mvicore.feature import com.badoo.mvicore.element.Store -import io.reactivex.ObservableSource -import io.reactivex.disposables.Disposable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.disposables.Disposable interface Feature : Store, Disposable { diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureScheduler.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureScheduler.kt index 096bf4c3..9e3ebc9b 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureScheduler.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureScheduler.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore.feature -import io.reactivex.Scheduler +import io.reactivex.rxjava3.core.Scheduler /** * A set of [Scheduler]s that change the threading behaviour of [BaseFeature] diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureSchedulers.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureSchedulers.kt index ae02f0b8..f47c4128 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureSchedulers.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/FeatureSchedulers.kt @@ -1,9 +1,9 @@ package com.badoo.mvicore.feature -import io.reactivex.Scheduler -import io.reactivex.internal.schedulers.RxThreadFactory -import io.reactivex.plugins.RxJavaPlugins -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.internal.schedulers.RxThreadFactory +import io.reactivex.rxjava3.plugins.RxJavaPlugins +import io.reactivex.rxjava3.schedulers.Schedulers import java.util.concurrent.ThreadFactory object FeatureSchedulers { diff --git a/mvicore/src/main/java/com/badoo/mvicore/feature/ReducerFeature.kt b/mvicore/src/main/java/com/badoo/mvicore/feature/ReducerFeature.kt index 65ee99e7..90445e15 100644 --- a/mvicore/src/main/java/com/badoo/mvicore/feature/ReducerFeature.kt +++ b/mvicore/src/main/java/com/badoo/mvicore/feature/ReducerFeature.kt @@ -5,8 +5,8 @@ import com.badoo.mvicore.element.Actor import com.badoo.mvicore.element.Bootstrapper import com.badoo.mvicore.element.NewsPublisher import com.badoo.mvicore.element.Reducer -import io.reactivex.Observable -import io.reactivex.Observable.just +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observable.just /** * An implementation of a single threaded feature. diff --git a/mvicore/src/test/java/com/badoo/mvicore/TestExtensions.kt b/mvicore/src/test/java/com/badoo/mvicore/TestExtensions.kt index 347fa11f..e87373c1 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/TestExtensions.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/TestExtensions.kt @@ -1,6 +1,6 @@ package com.badoo.mvicore -import io.reactivex.observers.TestObserver +import io.reactivex.rxjava3.observers.TestObserver fun TestObserver.onNextEvents() = - events[0] + values() diff --git a/mvicore/src/test/java/com/badoo/mvicore/TestHelper.kt b/mvicore/src/test/java/com/badoo/mvicore/TestHelper.kt index 0ee93be6..4ae55c4a 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/TestHelper.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/TestHelper.kt @@ -26,10 +26,10 @@ import com.badoo.mvicore.element.Actor import com.badoo.mvicore.element.Bootstrapper import com.badoo.mvicore.element.NewsPublisher import com.badoo.mvicore.element.Reducer -import io.reactivex.Observable -import io.reactivex.Observable.empty -import io.reactivex.Observable.just -import io.reactivex.Scheduler +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Observable.empty +import io.reactivex.rxjava3.core.Observable.just +import io.reactivex.rxjava3.core.Scheduler import java.util.concurrent.TimeUnit class TestHelper { @@ -130,7 +130,7 @@ class TestHelper { just(delayedFulfillAmount) .delay(wish.delayMs, TimeUnit.MILLISECONDS, asyncWorkScheduler) .map { FinishedAsync(it) } - .startWith(StartedAsync) + .startWith(just(StartedAsync)) private fun emit3effects(): Observable = just( diff --git a/mvicore/src/test/java/com/badoo/mvicore/bootstrapper/BootstrapperTest.kt b/mvicore/src/test/java/com/badoo/mvicore/bootstrapper/BootstrapperTest.kt index 9e4c40f4..f378d1ea 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/bootstrapper/BootstrapperTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/bootstrapper/BootstrapperTest.kt @@ -10,9 +10,9 @@ import com.badoo.mvicore.bootstrapper.BootstrapperTest.Action.Action3 import com.badoo.mvicore.element.Bootstrapper import com.badoo.mvicore.feature.BaseFeature import com.badoo.mvicore.feature.Feature -import io.reactivex.Observable -import io.reactivex.observers.TestObserver -import io.reactivex.subjects.ReplaySubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.observers.TestObserver +import io.reactivex.rxjava3.subjects.ReplaySubject import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/mvicore/src/test/java/com/badoo/mvicore/feature/AsyncBaseFeatureTest.kt b/mvicore/src/test/java/com/badoo/mvicore/feature/AsyncBaseFeatureTest.kt index 20ca9e58..ad856567 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/feature/AsyncBaseFeatureTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/feature/AsyncBaseFeatureTest.kt @@ -7,12 +7,12 @@ import com.badoo.mvicore.element.PostProcessor import com.badoo.mvicore.element.Reducer import com.badoo.mvicore.element.WishToAction import com.badoo.mvicore.utils.RxErrorRule -import io.reactivex.Observable -import io.reactivex.ObservableSource -import io.reactivex.Scheduler -import io.reactivex.disposables.CompositeDisposable -import io.reactivex.rxkotlin.plusAssign -import io.reactivex.schedulers.Schedulers +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.ObservableSource +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.kotlin.plusAssign +import io.reactivex.rxjava3.schedulers.Schedulers import java.util.concurrent.CountDownLatch import java.util.concurrent.Executors import java.util.concurrent.TimeUnit @@ -197,7 +197,7 @@ class AsyncBaseFeatureTest { ) ) - private fun ObservableSource.wrap() = + private fun ObservableSource.wrap() = Observable.wrap(this) class Wish diff --git a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeaturePostProcessorTest.kt b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeaturePostProcessorTest.kt index ee6aefa7..6cf1f74e 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeaturePostProcessorTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeaturePostProcessorTest.kt @@ -8,7 +8,7 @@ import com.badoo.mvicore.feature.PostProcessorTestFeature.Effect import com.badoo.mvicore.feature.PostProcessorTestFeature.News import com.badoo.mvicore.feature.PostProcessorTestFeature.State import com.badoo.mvicore.feature.PostProcessorTestFeature.Wish -import io.reactivex.Observable +import io.reactivex.rxjava3.core.Observable import org.junit.jupiter.api.Test class BaseFeaturePostProcessorTest { diff --git a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithSchedulerTest.kt b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithSchedulerTest.kt index a2723e32..d5218872 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithSchedulerTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithSchedulerTest.kt @@ -20,13 +20,13 @@ import com.badoo.mvicore.TestHelper.TestWish.Unfulfillable import com.badoo.mvicore.extension.SameThreadVerifier import com.badoo.mvicore.onNextEvents import com.badoo.mvicore.utils.RxErrorRule -import io.reactivex.Observable -import io.reactivex.Scheduler -import io.reactivex.disposables.Disposable -import io.reactivex.observers.TestObserver -import io.reactivex.schedulers.Schedulers -import io.reactivex.schedulers.TestScheduler -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.disposables.Disposable +import io.reactivex.rxjava3.observers.TestObserver +import io.reactivex.rxjava3.schedulers.Schedulers +import io.reactivex.rxjava3.schedulers.TestScheduler +import io.reactivex.rxjava3.subjects.PublishSubject import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit import org.junit.jupiter.api.Assertions.assertEquals diff --git a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithoutSchedulerTest.kt b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithoutSchedulerTest.kt index 5098714d..18798521 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithoutSchedulerTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/feature/BaseFeatureWithoutSchedulerTest.kt @@ -19,9 +19,9 @@ import com.badoo.mvicore.TestHelper.TestWish.TranslatesTo3Effects import com.badoo.mvicore.TestHelper.TestWish.Unfulfillable import com.badoo.mvicore.extension.SameThreadVerifier import com.badoo.mvicore.onNextEvents -import io.reactivex.observers.TestObserver -import io.reactivex.schedulers.TestScheduler -import io.reactivex.subjects.PublishSubject +import io.reactivex.rxjava3.observers.TestObserver +import io.reactivex.rxjava3.schedulers.TestScheduler +import io.reactivex.rxjava3.subjects.PublishSubject import java.util.concurrent.TimeUnit import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals @@ -40,8 +40,8 @@ class BaseFeatureWithoutSchedulerTest { fun prepare() { SameThreadVerifier.isEnabled = false - newsSubject = PublishSubject.create() - actorInvocationLog = PublishSubject.create>() + newsSubject = PublishSubject.create() + actorInvocationLog = PublishSubject.create() actorInvocationLogTest = actorInvocationLog.test() actorScheduler = TestScheduler() diff --git a/mvicore/src/test/java/com/badoo/mvicore/feature/TrampolineFeatureSchedulerTest.kt b/mvicore/src/test/java/com/badoo/mvicore/feature/TrampolineFeatureSchedulerTest.kt index 4b6d3087..5c239b14 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/feature/TrampolineFeatureSchedulerTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/feature/TrampolineFeatureSchedulerTest.kt @@ -6,9 +6,9 @@ import com.badoo.mvicore.feature.FeatureSchedulers.TrampolineFeatureScheduler import com.badoo.mvicore.feature.TrampolineFeatureSchedulerTest.TestFeature.Effect import com.badoo.mvicore.feature.TrampolineFeatureSchedulerTest.TestFeature.State import com.badoo.mvicore.feature.TrampolineFeatureSchedulerTest.TestFeature.Wish -import io.reactivex.Observable -import io.reactivex.Scheduler -import io.reactivex.schedulers.TestScheduler +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.core.Scheduler +import io.reactivex.rxjava3.schedulers.TestScheduler import java.util.concurrent.TimeUnit import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test diff --git a/mvicore/src/test/java/com/badoo/mvicore/newspublishing/NewsPublishingTest.kt b/mvicore/src/test/java/com/badoo/mvicore/newspublishing/NewsPublishingTest.kt index 93074a46..057ef479 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/newspublishing/NewsPublishingTest.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/newspublishing/NewsPublishingTest.kt @@ -17,9 +17,9 @@ import com.badoo.mvicore.newspublishing.TestNews.News3 import com.badoo.mvicore.newspublishing.TestWish.Wish1 import com.badoo.mvicore.newspublishing.TestWish.Wish2 import com.badoo.mvicore.newspublishing.TestWish.Wish3 -import io.reactivex.Observable -import io.reactivex.functions.Consumer -import io.reactivex.observers.TestObserver +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.functions.Consumer +import io.reactivex.rxjava3.observers.TestObserver import java.util.stream.Stream import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.extension.ExtensionContext diff --git a/mvicore/src/test/java/com/badoo/mvicore/utils/RxErrorRule.kt b/mvicore/src/test/java/com/badoo/mvicore/utils/RxErrorRule.kt index 0d96d644..ff177ceb 100644 --- a/mvicore/src/test/java/com/badoo/mvicore/utils/RxErrorRule.kt +++ b/mvicore/src/test/java/com/badoo/mvicore/utils/RxErrorRule.kt @@ -1,7 +1,7 @@ package com.badoo.mvicore.utils -import io.reactivex.exceptions.CompositeException -import io.reactivex.plugins.RxJavaPlugins +import io.reactivex.rxjava3.exceptions.CompositeException +import io.reactivex.rxjava3.plugins.RxJavaPlugins import java.util.Collections import org.junit.jupiter.api.Assertions.fail import org.junit.jupiter.api.extension.AfterEachCallback