diff --git a/app/build.gradle b/app/build.gradle index 182ca9a42..e226c356d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -503,6 +503,9 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.12.0" + + implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' + implementation 'io.reactivex.rxjava3:rxkotlin:3.0.1' } dependencyVerification { diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index b22f42de9..a89dd47e4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -86,6 +86,9 @@ import org.whispersystems.libsignal.logging.SignalProtocolLoggerProvider; import java.security.Security; import java.util.concurrent.TimeUnit; +import io.reactivex.rxjava3.plugins.RxJavaPlugins; +import io.reactivex.rxjava3.schedulers.Schedulers; + /** * Will be called once when the TextSecure process is created. * @@ -119,10 +122,14 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr AppStartup.getInstance().addBlocking("security-provider", this::initializeSecurityProvider) .addBlocking("logging", () -> { - initializeLogging(); - Log.i(TAG, "onCreate()"); + initializeLogging(); + Log.i(TAG, "onCreate()"); }) .addBlocking("crash-handling", this::initializeCrashHandling) + .addBlocking("rx-init", () -> { + RxJavaPlugins.setInitIoSchedulerHandler(schedulerSupplier -> Schedulers.from(SignalExecutors.UNBOUNDED, true, false)); + RxJavaPlugins.setInitComputationSchedulerHandler(schedulerSupplier -> Schedulers.from(SignalExecutors.BOUNDED, true, false)); + }) .addBlocking("eat-db", () -> DatabaseFactory.getInstance(this)) .addBlocking("app-dependencies", this::initializeAppDependencies) .addBlocking("notification-channels", () -> NotificationChannels.create(this)) diff --git a/libsignal/service/build.gradle b/libsignal/service/build.gradle index 73a2e0ff1..586fa1dd8 100644 --- a/libsignal/service/build.gradle +++ b/libsignal/service/build.gradle @@ -30,6 +30,8 @@ dependencies { api 'com.squareup.okhttp3:okhttp:3.12.10' implementation 'org.threeten:threetenbp:1.3.6' + api 'io.reactivex.rxjava3:rxjava:3.0.13' + api 'org.signal:zkgroup-java:0.7.0' testImplementation 'junit:junit:4.12'