From c160f5dff1959216f318728ed2c3e4d70578003f Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 8 Feb 2022 15:09:38 +0000 Subject: [PATCH] always providing matrix via the singleton module - allows the matrix configuration to also contain dependencies --- .../main/java/im/vector/app/VectorApplication.kt | 13 ++----------- .../java/im/vector/app/core/di/SingletonModule.kt | 14 +++++++++++++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/vector/src/main/java/im/vector/app/VectorApplication.kt b/vector/src/main/java/im/vector/app/VectorApplication.kt index e64188765e..a3f4ffcfcd 100644 --- a/vector/src/main/java/im/vector/app/VectorApplication.kt +++ b/vector/src/main/java/im/vector/app/VectorApplication.kt @@ -55,7 +55,6 @@ import im.vector.app.features.pin.PinLocker import im.vector.app.features.popup.PopupAlertManager import im.vector.app.features.rageshake.VectorFileLogger import im.vector.app.features.rageshake.VectorUncaughtExceptionHandler -import im.vector.app.features.room.VectorRoomDisplayNameFallbackProvider import im.vector.app.features.settings.VectorLocale import im.vector.app.features.settings.VectorPreferences import im.vector.app.features.themes.ThemeUtils @@ -63,7 +62,6 @@ import im.vector.app.features.version.VersionProvider import im.vector.app.push.fcm.FcmHelper import org.jitsi.meet.sdk.log.JitsiMeetDefaultLogHandler import org.matrix.android.sdk.api.Matrix -import org.matrix.android.sdk.api.MatrixConfiguration import org.matrix.android.sdk.api.auth.AuthenticationService import org.matrix.android.sdk.api.legacy.LegacySessionImporter import timber.log.Timber @@ -77,7 +75,6 @@ import androidx.work.Configuration as WorkConfiguration @HiltAndroidApp class VectorApplication : Application(), - MatrixConfiguration.Provider, WorkConfiguration.Provider { lateinit var appContext: Context @@ -100,6 +97,7 @@ class VectorApplication : @Inject lateinit var autoRageShaker: AutoRageShaker @Inject lateinit var vectorFileLogger: VectorFileLogger @Inject lateinit var vectorAnalytics: VectorAnalytics + @Inject lateinit var matrix: Matrix // font thread handler private var fontThreadHandler: Handler? = null @@ -220,16 +218,9 @@ class VectorApplication : } } - override fun providesMatrixConfiguration(): MatrixConfiguration { - return MatrixConfiguration( - applicationFlavor = BuildConfig.FLAVOR_DESCRIPTION, - roomDisplayNameFallbackProvider = VectorRoomDisplayNameFallbackProvider(this) - ) - } - override fun getWorkManagerConfiguration(): WorkConfiguration { return WorkConfiguration.Builder() - .setWorkerFactory(Matrix.getInstance(this.appContext).workerFactory()) + .setWorkerFactory(matrix.workerFactory()) .setExecutor(Executors.newCachedThreadPool()) .build() } diff --git a/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt b/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt index 0e19cd4388..84061daf0f 100644 --- a/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt +++ b/vector/src/main/java/im/vector/app/core/di/SingletonModule.kt @@ -26,6 +26,7 @@ import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import im.vector.app.BuildConfig import im.vector.app.EmojiCompatWrapper import im.vector.app.EmojiSpanify import im.vector.app.core.dispatchers.CoroutineDispatchers @@ -42,12 +43,14 @@ import im.vector.app.features.navigation.DefaultNavigator import im.vector.app.features.navigation.Navigator import im.vector.app.features.pin.PinCodeStore import im.vector.app.features.pin.SharedPrefPinCodeStore +import im.vector.app.features.room.VectorRoomDisplayNameFallbackProvider import im.vector.app.features.ui.SharedPreferencesUiStateRepository import im.vector.app.features.ui.UiStateRepository import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import org.matrix.android.sdk.api.Matrix +import org.matrix.android.sdk.api.MatrixConfiguration import org.matrix.android.sdk.api.auth.AuthenticationService import org.matrix.android.sdk.api.auth.HomeServerHistoryService import org.matrix.android.sdk.api.legacy.LegacySessionImporter @@ -107,7 +110,16 @@ object VectorStaticModule { } @Provides - fun providesMatrix(context: Context): Matrix { + fun providesMatrixConfiguration(context: Context): MatrixConfiguration { + return MatrixConfiguration( + applicationFlavor = BuildConfig.FLAVOR_DESCRIPTION, + roomDisplayNameFallbackProvider = VectorRoomDisplayNameFallbackProvider(context) + ) + } + + @Provides + fun providesMatrix(context: Context, configuration: MatrixConfiguration): Matrix { + Matrix.initialize(context, configuration) return Matrix.getInstance(context) }