Ganfra's review

This commit is contained in:
Benoit Marty 2020-02-04 17:48:17 +01:00
parent 6bff951c72
commit f7d511df38
5 changed files with 14 additions and 42 deletions

View file

@ -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

View file

@ -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
}

View file

@ -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
}
}

View file

@ -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 = ""

View file

@ -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
}
}