From d04cbadd04229caa08f6fcc0c8840ee5ce40723d Mon Sep 17 00:00:00 2001 From: Valere Date: Wed, 26 May 2021 11:19:56 +0200 Subject: [PATCH] Compute via param from list utility method --- .../sdk/internal/session/permalinks/PermalinkFactory.kt | 3 +-- .../sdk/internal/session/permalinks/ViaParameterFinder.kt | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/PermalinkFactory.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/PermalinkFactory.kt index f8bc1b9b34..23ed2f68a3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/PermalinkFactory.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/PermalinkFactory.kt @@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.session.permalinks import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.permalinks.PermalinkService.Companion.MATRIX_TO_URL_BASE import org.matrix.android.sdk.internal.di.UserId -import java.net.URLEncoder import javax.inject.Inject internal class PermalinkFactory @Inject constructor( @@ -49,7 +48,7 @@ internal class PermalinkFactory @Inject constructor( append(MATRIX_TO_URL_BASE) append(escape(roomId)) append( - via?.joinToString(prefix = "?via=", separator = "&via=") { URLEncoder.encode(it, "utf-8") } + via?.takeIf { it.isNotEmpty() }?.let { viaParameterFinder.computeViaParams(it) } ?: viaParameterFinder.computeViaParams(userId, roomId) ) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/ViaParameterFinder.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/ViaParameterFinder.kt index 0da60e9ba2..f00d2a9ef7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/ViaParameterFinder.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/permalinks/ViaParameterFinder.kt @@ -43,6 +43,10 @@ internal class ViaParameterFinder @Inject constructor( .joinToString(prefix = "?via=", separator = "&via=") { URLEncoder.encode(it, "utf-8") } } + fun computeViaParams(viaList: List): String { + return viaList.joinToString(prefix = "?via=", separator = "&via=") { URLEncoder.encode(it, "utf-8") } + } + fun computeViaParams(userId: String, roomId: String, max: Int): List { val userHomeserver = userId.substringAfter(":") return getUserIdsOfJoinedMembers(roomId)