diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt index 6256c69479..22ac0324cf 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Matrix.kt @@ -24,7 +24,6 @@ import com.zhuinden.monarchy.Monarchy import im.vector.matrix.android.BuildConfig import im.vector.matrix.android.api.auth.AuthenticationService import im.vector.matrix.android.api.crypto.MXCryptoConfig -import im.vector.matrix.android.internal.MatrixConfigurationHolder import im.vector.matrix.android.internal.SessionManager import im.vector.matrix.android.internal.crypto.attachments.ElementToDecrypt import im.vector.matrix.android.internal.crypto.attachments.MXEncryptedAttachments @@ -54,20 +53,17 @@ class Matrix private constructor(context: Context, matrixConfiguration: MatrixCo @Inject internal lateinit var authenticationService: AuthenticationService @Inject internal lateinit var userAgentHolder: UserAgentHolder - @Inject internal lateinit var matrixConfigurationHolder: MatrixConfigurationHolder @Inject internal lateinit var backgroundDetectionObserver: BackgroundDetectionObserver @Inject internal lateinit var olmManager: OlmManager @Inject internal lateinit var sessionManager: SessionManager init { Monarchy.init(context) - DaggerMatrixComponent.factory().create(context).inject(this) + DaggerMatrixComponent.factory().create(context, matrixConfiguration).inject(this) if (context.applicationContext !is Configuration.Provider) { WorkManager.initialize(context, Configuration.Builder().build()) } ProcessLifecycleOwner.get().lifecycle.addObserver(backgroundDetectionObserver) - matrixConfigurationHolder.matrixConfiguration = matrixConfiguration.copy() - userAgentHolder.setApplicationFlavor(matrixConfiguration.applicationFlavor) } fun getUserAgent() = userAgentHolder.userAgent diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/MatrixConfigurationHolder.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/MatrixConfigurationHolder.kt deleted file mode 100644 index 794ed558f5..0000000000 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/MatrixConfigurationHolder.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2020 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package im.vector.matrix.android.internal - -import im.vector.matrix.android.api.MatrixConfiguration -import im.vector.matrix.android.internal.di.MatrixScope -import javax.inject.Inject - -@MatrixScope -internal class MatrixConfigurationHolder @Inject constructor() { - - var matrixConfiguration: MatrixConfiguration? = null -} diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/MatrixComponent.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/MatrixComponent.kt index c49fec5bb9..782ab1c609 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/MatrixComponent.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/MatrixComponent.kt @@ -22,8 +22,8 @@ import com.squareup.moshi.Moshi import dagger.BindsInstance import dagger.Component import im.vector.matrix.android.api.Matrix +import im.vector.matrix.android.api.MatrixConfiguration import im.vector.matrix.android.api.auth.AuthenticationService -import im.vector.matrix.android.internal.MatrixConfigurationHolder import im.vector.matrix.android.internal.SessionManager import im.vector.matrix.android.internal.auth.AuthModule import im.vector.matrix.android.internal.auth.SessionParamsStore @@ -47,10 +47,10 @@ internal interface MatrixComponent { fun authenticationService(): AuthenticationService - fun matrixConfigurationHolder(): MatrixConfigurationHolder - fun context(): Context + fun matrixConfiguration(): MatrixConfiguration + fun resources(): Resources fun olmManager(): OlmManager @@ -69,6 +69,7 @@ internal interface MatrixComponent { @Component.Factory interface Factory { - fun create(@BindsInstance context: Context): MatrixComponent + fun create(@BindsInstance context: Context, + @BindsInstance matrixConfiguration: MatrixConfiguration): MatrixComponent } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/UserAgentHolder.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/UserAgentHolder.kt index 89da02b275..0f3da0c834 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/UserAgentHolder.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/UserAgentHolder.kt @@ -18,18 +18,20 @@ package im.vector.matrix.android.internal.network import android.content.Context import im.vector.matrix.android.BuildConfig +import im.vector.matrix.android.api.MatrixConfiguration import im.vector.matrix.android.internal.di.MatrixScope import timber.log.Timber import javax.inject.Inject @MatrixScope -internal class UserAgentHolder @Inject constructor(private val context: Context) { +internal class UserAgentHolder @Inject constructor(private val context: Context, + matrixConfiguration: MatrixConfiguration) { var userAgent: String = "" private set init { - setApplicationFlavor("NoFlavor") + setApplicationFlavor(matrixConfiguration.applicationFlavor) } /** @@ -38,7 +40,7 @@ internal class UserAgentHolder @Inject constructor(private val context: Context) * * @param flavorDescription the flavor description */ - fun setApplicationFlavor(flavorDescription: String) { + private fun setApplicationFlavor(flavorDescription: String) { var appName = "" var appVersion = "" diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/SessionModule.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/SessionModule.kt index 069011f12d..81b4ba6e06 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/SessionModule.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/SessionModule.kt @@ -23,6 +23,7 @@ import dagger.Lazy import dagger.Module import dagger.Provides import dagger.multibindings.IntoSet +import im.vector.matrix.android.api.MatrixConfiguration import im.vector.matrix.android.api.auth.data.Credentials import im.vector.matrix.android.api.auth.data.HomeServerConnectionConfig import im.vector.matrix.android.api.auth.data.SessionParams @@ -32,7 +33,6 @@ import im.vector.matrix.android.api.session.InitialSyncProgressService import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService import im.vector.matrix.android.api.session.securestorage.SecureStorageService -import im.vector.matrix.android.internal.MatrixConfigurationHolder import im.vector.matrix.android.internal.crypto.verification.VerificationMessageLiveObserver import im.vector.matrix.android.internal.database.LiveEntityObserver import im.vector.matrix.android.internal.database.SessionRealmConfigurationFactory @@ -192,8 +192,8 @@ internal abstract class SessionModule { @JvmStatic @Provides @SessionScope - fun providesMxCryptoConfig(matrixConfigurationHolder: MatrixConfigurationHolder): MXCryptoConfig { - return matrixConfigurationHolder.matrixConfiguration?.cryptoConfig ?: MXCryptoConfig() + fun providesMxCryptoConfig(matrixConfiguration: MatrixConfiguration): MXCryptoConfig { + return matrixConfiguration.cryptoConfig } }