From f9e6f4b5332712baae73179eaaac98fbe26ba38c Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 11 Oct 2018 09:05:32 +0200 Subject: [PATCH] Integration with old SDK - make it works --- .idea/caches/build_file_checksums.ser | Bin 651 -> 653 bytes .../features/login/LoginActivity.kt | 1 + .../auth/data/HomeServerConnectionConfig.kt | 19 ++++++++++++++++-- .../android/internal/di/NetworkModule.kt | 4 +++- .../android/internal/di/SessionModule.kt | 5 ++++- .../internal/events/sync/SyncModule.kt | 2 +- .../events/sync/SyncResponseHandler.kt | 4 ++-- .../internal/legacy/util/ContentManager.java | 4 ++-- .../internal/legacy/util/JsonUtils.java | 1 - .../network/parsing/UriMoshiAdapter.kt | 19 ++++++++++++++++++ .../android/internal/network/ssl/CertUtil.kt | 6 +++--- 11 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/parsing/UriMoshiAdapter.kt diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 4bf38514d5820bdcddea4bfb9d908f6b2722e82b..f844065a2b5b117fb29e9fb47bb347954b242e71 100644 GIT binary patch delta 61 zcmV-D0K)%^1&sxem;_b1!FMZf0^}ll=iUlOzGR5P#Oppp { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/auth/data/HomeServerConnectionConfig.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/auth/data/HomeServerConnectionConfig.kt index 164a502a9b..0ffcbb77ab 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/auth/data/HomeServerConnectionConfig.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/auth/data/HomeServerConnectionConfig.kt @@ -43,7 +43,7 @@ data class HomeServerConnectionConfig( */ fun withHomeServerUri(hsUri: Uri): Builder { if (hsUri.scheme != "http" && hsUri.scheme != "https") { - throw RuntimeException("Invalid home server URI: " + hsUri!!) + throw RuntimeException("Invalid home server URI: " + hsUri) } // remove trailing / homeServerUri = if (hsUri.toString().endsWith("/")) { @@ -148,6 +148,10 @@ data class HomeServerConnectionConfig( return this } + fun withAntiVirusServerUri(antivirusServerUriString: String?): Builder { + return withAntiVirusServerUri(antivirusServerUriString?.let { Uri.parse(it) }) + } + /** * Update the anti-virus server URI. * @@ -211,7 +215,18 @@ data class HomeServerConnectionConfig( * @return the [HomeServerConnectionConfig] */ fun build(): HomeServerConnectionConfig { - return HomeServerConnectionConfig(homeServerUri, identityServerUri, antiVirusServerUri, allowedFingerprints, shouldPin, tlsVersions, tlsCipherSuites, shouldAcceptTlsExtensions, allowHttpExtension, forceUsageTlsVersions) + return HomeServerConnectionConfig( + homeServerUri, + identityServerUri, + antiVirusServerUri, + allowedFingerprints, + shouldPin, + tlsVersions, + tlsCipherSuites, + shouldAcceptTlsExtensions, + allowHttpExtension, + forceUsageTlsVersions + ) } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/NetworkModule.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/NetworkModule.kt index 9504b7b072..ebf688d7ca 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/NetworkModule.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/NetworkModule.kt @@ -1,7 +1,9 @@ package im.vector.matrix.android.internal.di import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory +import com.squareup.moshi.Moshi import im.vector.matrix.android.internal.network.AccessTokenInterceptor +import im.vector.matrix.android.internal.network.parsing.UriMoshiAdapter import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor import org.koin.dsl.context.ModuleDefinition @@ -38,7 +40,7 @@ class NetworkModule : Module { } single { - MoshiProvider.providesMoshi() + Moshi.Builder().add(UriMoshiAdapter()).build() } single { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/SessionModule.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/SessionModule.kt index 0997947de1..ca1a28d1d7 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/SessionModule.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/SessionModule.kt @@ -13,10 +13,11 @@ import retrofit2.Retrofit class SessionModule(private val sessionParams: SessionParams) : Module { override fun invoke(): ModuleDefinition = module(override = true) { + scope(DefaultSession.SCOPE) { val retrofitBuilder = get() as Retrofit.Builder retrofitBuilder - .baseUrl(sessionParams.homeServerConnectionConfig?.homeServerUri.toString()) + .baseUrl(sessionParams.homeServerConnectionConfig.homeServerUri.toString()) .build() } @@ -24,6 +25,8 @@ class SessionModule(private val sessionParams: SessionParams) : Module { val store = MXFileStore(sessionParams.credentials, false, get()) val dataHandler = MXDataHandler(store, sessionParams.credentials) MXSession.Builder(sessionParams, dataHandler, get()).build() + store.setDataHandler(dataHandler) + dataHandler } }.invoke() diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncModule.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncModule.kt index 01b95e265d..a0ec4d6409 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncModule.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncModule.kt @@ -16,7 +16,7 @@ class SyncModule : Module { } scope(DefaultSession.SCOPE) { - SyncResponseHandler(get(), get()) + SyncResponseHandler(get()) } scope(DefaultSession.SCOPE) { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncResponseHandler.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncResponseHandler.kt index d3ab929db2..3c2743af92 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncResponseHandler.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncResponseHandler.kt @@ -22,9 +22,9 @@ import kotlin.collections.emptyList import kotlin.collections.isNotEmpty import kotlin.collections.set -class SyncResponseHandler(private val dataHandler: MXDataHandler, - private val store: IMXStore) { +class SyncResponseHandler(private val dataHandler: MXDataHandler) { + private val store = dataHandler.store private val leftRoomsStore = MXMemoryStore() private var isStartingCryptoWithInitialSync = false private var areLeftRoomsSynced = false diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/ContentManager.java b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/ContentManager.java index 696c7df11a..15fb6dbacf 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/ContentManager.java +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/ContentManager.java @@ -74,9 +74,9 @@ public class ContentManager { public void configureAntiVirusScanner(boolean isEnabled) { mIsAvScannerEnabled = isEnabled; if (isEnabled) { - mDownloadUrlPrefix = mHsConfig.getAntiVirusServerUri().toString() + "/" + RestClient.URI_API_PREFIX_PATH_MEDIA_PROXY_UNSTABLE; + mDownloadUrlPrefix = mHsConfig.getAntiVirusServerUri() + "/" + RestClient.URI_API_PREFIX_PATH_MEDIA_PROXY_UNSTABLE; } else { - mDownloadUrlPrefix = mHsConfig.getHomeServerUri().toString() + URI_PREFIX_CONTENT_API; + mDownloadUrlPrefix = mHsConfig.getHomeServerUri() + URI_PREFIX_CONTENT_API; } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/JsonUtils.java b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/JsonUtils.java index 63e47933a1..70c02547e5 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/JsonUtils.java +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/legacy/util/JsonUtils.java @@ -28,7 +28,6 @@ import com.google.gson.JsonObject; import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; -import java.util.HashMap; import java.util.Map; import java.util.TreeSet; diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/parsing/UriMoshiAdapter.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/parsing/UriMoshiAdapter.kt new file mode 100644 index 0000000000..3311f3814a --- /dev/null +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/parsing/UriMoshiAdapter.kt @@ -0,0 +1,19 @@ +package im.vector.matrix.android.internal.network.parsing + +import android.net.Uri +import com.squareup.moshi.FromJson +import com.squareup.moshi.ToJson + +class UriMoshiAdapter { + + @ToJson + fun toJson(uri: Uri): String { + return uri.toString() + } + + @FromJson + fun fromJson(uriString: String): Uri { + return Uri.parse(uriString) + } + +} \ No newline at end of file diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/ssl/CertUtil.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/ssl/CertUtil.kt index 33a157af6b..c8e955c3fd 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/ssl/CertUtil.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/ssl/CertUtil.kt @@ -141,7 +141,7 @@ object CertUtil { try { tf = TrustManagerFactory.getInstance("PKIX") } catch (e: Exception) { - Timber.e("## newPinnedSSLSocketFactory() : TrustManagerFactory.getInstance failed " + e.message, e) + Timber.e(e, "## newPinnedSSLSocketFactory() : TrustManagerFactory.getInstance failed " + e.message) } // it doesn't exist, use the default one. @@ -149,7 +149,7 @@ object CertUtil { try { tf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()) } catch (e: Exception) { - Timber.e("## addRule : onBingRuleUpdateFailure failed " + e.message, e) + Timber.e(e, "## addRule : onBingRuleUpdateFailure failed " + e.message) } } @@ -197,7 +197,7 @@ object CertUtil { return HostnameVerifier { hostname, session -> if (defaultVerifier.verify(hostname, session)) return@HostnameVerifier true - if (trustedFingerprints == null || trustedFingerprints.size == 0) return@HostnameVerifier false + if (trustedFingerprints.isEmpty()) return@HostnameVerifier false // If remote cert matches an allowed fingerprint, just accept it. try {