From 0507fa5b0e27c13eab8802ce745a5af5e9750c3e Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 3 Jun 2020 12:00:52 +0200 Subject: [PATCH] Widgets: clean again after Benoit's review --- .../matrix/android/api/MatrixConfiguration.kt | 7 +++++ .../auth/data/HomeServerConnectionConfig.kt | 29 +++++++------------ .../internal/network/RetrofitFactory.kt | 9 ++---- .../content/DefaultContentUrlResolver.kt | 8 ++--- .../session/terms/DefaultTermsService.kt | 26 +++++++---------- .../widgets/DefaultWidgetURLFormatter.kt | 14 ++++----- .../matrix/android/internal/util/UrlUtils.kt | 11 +++++++ .../res/values/integration_manager_config.xml | 12 -------- .../src/main/res/values/strings.xml | 12 ++++---- .../timeline/format/NoticeEventFormatter.kt | 16 +++++----- vector/src/main/res/values-ar/strings.xml | 2 -- vector/src/main/res/values-bg/strings.xml | 2 -- vector/src/main/res/values-bn-rIN/strings.xml | 2 -- vector/src/main/res/values-ca/strings.xml | 2 -- vector/src/main/res/values-cs/strings.xml | 2 -- vector/src/main/res/values-de/strings.xml | 2 -- vector/src/main/res/values-es/strings.xml | 2 -- vector/src/main/res/values-eu/strings.xml | 2 -- vector/src/main/res/values-fi/strings.xml | 2 -- vector/src/main/res/values-fr/strings.xml | 2 -- vector/src/main/res/values-gl/strings.xml | 2 -- vector/src/main/res/values-hu/strings.xml | 2 -- vector/src/main/res/values-id/strings.xml | 2 -- vector/src/main/res/values-in/strings.xml | 2 -- vector/src/main/res/values-is/strings.xml | 2 -- vector/src/main/res/values-it/strings.xml | 2 -- vector/src/main/res/values-ja/strings.xml | 2 -- vector/src/main/res/values-ko/strings.xml | 2 -- vector/src/main/res/values-lv/strings.xml | 2 -- vector/src/main/res/values-nl/strings.xml | 2 -- vector/src/main/res/values-nn/strings.xml | 2 -- vector/src/main/res/values-pl/strings.xml | 2 -- vector/src/main/res/values-pt-rBR/strings.xml | 2 -- vector/src/main/res/values-pt/strings.xml | 2 -- vector/src/main/res/values-ru/strings.xml | 2 -- vector/src/main/res/values-sk/strings.xml | 2 -- vector/src/main/res/values-sq/strings.xml | 2 -- vector/src/main/res/values-tr/strings.xml | 2 -- vector/src/main/res/values-uk/strings.xml | 2 -- vector/src/main/res/values-zh-rCN/strings.xml | 2 -- vector/src/main/res/values-zh-rTW/strings.xml | 2 -- vector/src/main/res/values/strings.xml | 3 -- 42 files changed, 66 insertions(+), 143 deletions(-) delete mode 100644 matrix-sdk-android/src/main/res/values/integration_manager_config.xml diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/MatrixConfiguration.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/MatrixConfiguration.kt index 76873e438e..e7c24fadc8 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/MatrixConfiguration.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/MatrixConfiguration.kt @@ -24,6 +24,13 @@ data class MatrixConfiguration( val cryptoConfig: MXCryptoConfig = MXCryptoConfig(), val integrationUIUrl: String = "https://scalar.vector.im/", val integrationRestUrl: String = "https://scalar.vector.im/api", + val integrationWidgetUrls: List = listOf( + "https://scalar.vector.im/_matrix/integrations/v1", + "https://scalar.vector.im/api", + "https://scalar-staging.vector.im/_matrix/integrations/v1", + "https://scalar-staging.vector.im/api", + "https://scalar-staging.riot.im/scalar/api" + ), /** * Optional proxy to connect to the matrix servers * You can create one using for instance Proxy(proxyType, InetSocketAddress(hostname, port) 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 853ea93544..36b812ce16 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 @@ -20,6 +20,7 @@ import android.net.Uri import com.squareup.moshi.JsonClass import im.vector.matrix.android.api.auth.data.HomeServerConnectionConfig.Builder import im.vector.matrix.android.internal.network.ssl.Fingerprint +import im.vector.matrix.android.internal.util.ensureTrailingSlash import okhttp3.CipherSuite import okhttp3.TlsVersion @@ -71,15 +72,11 @@ data class HomeServerConnectionConfig( throw RuntimeException("Invalid home server URI: " + hsUri) } // ensure trailing / - homeServerUri = if (!hsUri.toString().endsWith("/")) { - try { - val url = hsUri.toString() - Uri.parse("$url/") - } catch (e: Exception) { - throw RuntimeException("Invalid home server URI: $hsUri") - } - } else { - hsUri + val hsString = hsUri.toString().ensureTrailingSlash() + homeServerUri = try { + Uri.parse(hsString) + } catch (e: Exception) { + throw RuntimeException("Invalid home server URI: $hsUri") } return this } @@ -97,15 +94,11 @@ data class HomeServerConnectionConfig( throw RuntimeException("Invalid identity server URI: $identityServerUri") } // ensure trailing / - if (!identityServerUri.toString().endsWith("/")) { - try { - val url = identityServerUri.toString() - this.identityServerUri = Uri.parse("$url/") - } catch (e: Exception) { - throw RuntimeException("Invalid identity server URI: $identityServerUri") - } - } else { - this.identityServerUri = identityServerUri + val isString = identityServerUri.toString().ensureTrailingSlash() + this.identityServerUri = try { + Uri.parse(isString) + } catch (e: Exception) { + throw RuntimeException("Invalid identity server URI: $identityServerUri") } return this } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RetrofitFactory.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RetrofitFactory.kt index 4e94b23987..ad26171793 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RetrofitFactory.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RetrofitFactory.kt @@ -18,6 +18,7 @@ package im.vector.matrix.android.internal.network import com.squareup.moshi.Moshi import dagger.Lazy +import im.vector.matrix.android.internal.util.ensureTrailingSlash import okhttp3.Call import okhttp3.OkHttpClient import okhttp3.Request @@ -28,14 +29,8 @@ import javax.inject.Inject class RetrofitFactory @Inject constructor(private val moshi: Moshi) { fun create(okHttpClient: Lazy, baseUrl: String): Retrofit { - // ensure trailing / - val safeBaseUrl = if (!baseUrl.endsWith("/")) { - "$baseUrl/" - } else { - baseUrl - } return Retrofit.Builder() - .baseUrl(safeBaseUrl) + .baseUrl(baseUrl.ensureTrailingSlash()) .callFactory(object : Call.Factory { override fun newCall(request: Request): Call { return okHttpClient.get().newCall(request) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/content/DefaultContentUrlResolver.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/content/DefaultContentUrlResolver.kt index df12ad6131..f039628fd4 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/content/DefaultContentUrlResolver.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/content/DefaultContentUrlResolver.kt @@ -19,16 +19,16 @@ package im.vector.matrix.android.internal.session.content import im.vector.matrix.android.api.auth.data.HomeServerConnectionConfig import im.vector.matrix.android.api.session.content.ContentUrlResolver import im.vector.matrix.android.internal.network.NetworkConstants +import im.vector.matrix.android.internal.util.ensureTrailingSlash import javax.inject.Inject private const val MATRIX_CONTENT_URI_SCHEME = "mxc://" internal class DefaultContentUrlResolver @Inject constructor(homeServerConnectionConfig: HomeServerConnectionConfig) : ContentUrlResolver { - private val baseUrl = homeServerConnectionConfig.homeServerUri.toString() - private val sep = if (baseUrl.endsWith("/")) "" else "/" + private val baseUrl = homeServerConnectionConfig.homeServerUri.toString().ensureTrailingSlash() - override val uploadUrl = baseUrl + sep + NetworkConstants.URI_API_MEDIA_PREFIX_PATH_R0 + "upload" + override val uploadUrl = baseUrl + NetworkConstants.URI_API_MEDIA_PREFIX_PATH_R0 + "upload" override fun resolveFullSize(contentUrl: String?): String? { return contentUrl @@ -66,7 +66,7 @@ internal class DefaultContentUrlResolver @Inject constructor(homeServerConnectio serverAndMediaId = serverAndMediaId.substring(0, fragmentOffset) } - return baseUrl + sep + prefix + serverAndMediaId + params + fragment + return baseUrl + prefix + serverAndMediaId + params + fragment } private fun String.isValidMatrixContentUrl(): Boolean { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/terms/DefaultTermsService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/terms/DefaultTermsService.kt index 70fc9b1449..9111c5d5f1 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/terms/DefaultTermsService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/terms/DefaultTermsService.kt @@ -36,6 +36,7 @@ import im.vector.matrix.android.internal.session.user.accountdata.UpdateUserAcco import im.vector.matrix.android.internal.task.TaskExecutor import im.vector.matrix.android.internal.task.launchToCallback import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers +import im.vector.matrix.android.internal.util.ensureTrailingSlash import okhttp3.OkHttpClient import javax.inject.Inject @@ -55,17 +56,10 @@ internal class DefaultTermsService @Inject constructor( baseUrl: String, callback: MatrixCallback): Cancelable { return taskExecutor.executorScope.launchToCallback(coroutineDispatchers.main, callback) { - val sep = if (baseUrl.endsWith("/")) "" else "/" - - val url = when (serviceType) { - TermsService.ServiceType.IntegrationManager -> "$baseUrl$sep${NetworkConstants.URI_INTEGRATION_MANAGER_PATH}" - TermsService.ServiceType.IdentityService -> "$baseUrl$sep${NetworkConstants.URI_IDENTITY_PATH_V2}" - } - + val url = buildUrl(baseUrl, serviceType) val termsResponse = executeRequest(null) { apiCall = termsAPI.getTerms("${url}terms") } - GetTermsResponse(termsResponse, getAlreadyAcceptedTermUrlsFromAccountData()) } } @@ -76,13 +70,7 @@ internal class DefaultTermsService @Inject constructor( token: String?, callback: MatrixCallback): Cancelable { return taskExecutor.executorScope.launchToCallback(coroutineDispatchers.main, callback) { - val sep = if (baseUrl.endsWith("/")) "" else "/" - - val url = when (serviceType) { - TermsService.ServiceType.IntegrationManager -> "$baseUrl$sep${NetworkConstants.URI_INTEGRATION_MANAGER_PATH}" - TermsService.ServiceType.IdentityService -> "$baseUrl$sep${NetworkConstants.URI_IDENTITY_PATH_V2}" - } - + val url = buildUrl(baseUrl, serviceType) val tokenToUse = token?.takeIf { it.isNotEmpty() } ?: getToken(baseUrl) executeRequest(null) { @@ -112,6 +100,14 @@ internal class DefaultTermsService @Inject constructor( return token.token } + private fun buildUrl(baseUrl: String, serviceType: TermsService.ServiceType): String { + val servicePath = when (serviceType) { + TermsService.ServiceType.IntegrationManager -> NetworkConstants.URI_INTEGRATION_MANAGER_PATH + TermsService.ServiceType.IdentityService -> NetworkConstants.URI_IDENTITY_PATH_V2 + } + return "${baseUrl.ensureTrailingSlash()}$servicePath" + } + private fun getAlreadyAcceptedTermUrlsFromAccountData(): Set { return accountDataDataSource.getAccountDataEvent(UserAccountData.TYPE_ACCEPTED_TERMS) ?.content diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/widgets/DefaultWidgetURLFormatter.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/widgets/DefaultWidgetURLFormatter.kt index 2aaf5bbac7..0cf99b6021 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/widgets/DefaultWidgetURLFormatter.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/widgets/DefaultWidgetURLFormatter.kt @@ -16,21 +16,20 @@ package im.vector.matrix.android.internal.session.widgets -import im.vector.matrix.android.R +import im.vector.matrix.android.api.MatrixConfiguration import im.vector.matrix.android.api.session.integrationmanager.IntegrationManagerConfig import im.vector.matrix.android.api.session.integrationmanager.IntegrationManagerService import im.vector.matrix.android.api.session.widgets.WidgetURLFormatter import im.vector.matrix.android.internal.session.SessionScope import im.vector.matrix.android.internal.session.integrationmanager.IntegrationManager import im.vector.matrix.android.internal.session.widgets.token.GetScalarTokenTask -import im.vector.matrix.android.internal.util.StringProvider import java.net.URLEncoder import javax.inject.Inject @SessionScope internal class DefaultWidgetURLFormatter @Inject constructor(private val integrationManager: IntegrationManager, private val getScalarTokenTask: GetScalarTokenTask, - private val stringProvider: StringProvider + private val matrixConfiguration: MatrixConfiguration ) : IntegrationManagerService.Listener, WidgetURLFormatter { private lateinit var currentConfig: IntegrationManagerConfig @@ -53,11 +52,10 @@ internal class DefaultWidgetURLFormatter @Inject constructor(private val integra val preferredConfig = integrationManager.getPreferredConfig() if (!this::currentConfig.isInitialized || preferredConfig != currentConfig) { currentConfig = preferredConfig - val defaultWhiteList = stringProvider.getStringArray(R.array.integrations_widgets_urls).asList() - whiteListedUrls = when (preferredConfig.kind) { - IntegrationManagerConfig.Kind.DEFAULT -> defaultWhiteList - IntegrationManagerConfig.Kind.ACCOUNT -> defaultWhiteList + preferredConfig.restUrl - IntegrationManagerConfig.Kind.HOMESERVER -> listOf(preferredConfig.restUrl) + whiteListedUrls = if (matrixConfiguration.integrationWidgetUrls.isEmpty()) { + listOf(preferredConfig.restUrl) + } else { + matrixConfiguration.integrationWidgetUrls } } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/UrlUtils.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/UrlUtils.kt index 7c81a03223..bb5799baf1 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/UrlUtils.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/util/UrlUtils.kt @@ -37,3 +37,14 @@ internal fun String.ensureProtocol(): String { else -> this } } + +/** + * Ensure string has trailing / + */ +internal fun String.ensureTrailingSlash(): String { + return when { + isEmpty() -> this + !endsWith("/") -> "$this/" + else -> this + } +} diff --git a/matrix-sdk-android/src/main/res/values/integration_manager_config.xml b/matrix-sdk-android/src/main/res/values/integration_manager_config.xml deleted file mode 100644 index 7fc5b9d2b1..0000000000 --- a/matrix-sdk-android/src/main/res/values/integration_manager_config.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - https://scalar.vector.im/_matrix/integrations/v1 - https://scalar.vector.im/api - https://scalar-staging.vector.im/_matrix/integrations/v1 - https://scalar-staging.vector.im/api - https://scalar-staging.riot.im/scalar/api - - - \ No newline at end of file diff --git a/matrix-sdk-android/src/main/res/values/strings.xml b/matrix-sdk-android/src/main/res/values/strings.xml index 86624b7acf..103f82ba57 100644 --- a/matrix-sdk-android/src/main/res/values/strings.xml +++ b/matrix-sdk-android/src/main/res/values/strings.xml @@ -82,12 +82,12 @@ %1$s accepted the invitation for %2$s You accepted the invitation for %1$s - %1$s widget added by %2$s - %1$s widget added by you - %1$s widget removed by %2$s - %1$s widget removed by you - %1$s widget modified by %2$s - %1$s widget modified by you + %1$s added %2$s widget + you added %1$s widget + %1$s removed %2$s widget + you removed %1$s widget + %1$s modified %2$s widget + you modified %1$s widget ** Unable to decrypt: %s ** The sender\'s device has not sent us the keys for this message. diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt index ae5000afef..c3650c0b97 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/format/NoticeEventFormatter.kt @@ -88,26 +88,26 @@ class NoticeEventFormatter @Inject constructor(private val sessionHolder: Active val widgetContent: WidgetContent = event.getClearContent().toModel() ?: return null val previousWidgetContent: WidgetContent? = event.prevContent.toModel() return if (widgetContent.isActive()) { - val name = widgetContent.getHumanName() + val widgetName = widgetContent.getHumanName() if (previousWidgetContent?.isActive().orFalse()) { if (event.isSentByCurrentUser()) { - sp.getString(R.string.notice_widget_modified_by_you, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_modified_by_you, widgetName) } else { - sp.getString(R.string.notice_widget_modified, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_modified, disambiguatedDisplayName, widgetName) } } else { if (event.isSentByCurrentUser()) { - sp.getString(R.string.notice_widget_added_by_you, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_added_by_you, widgetName) } else { - sp.getString(R.string.notice_widget_added, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_added, disambiguatedDisplayName, widgetName) } } } else { - val name = previousWidgetContent?.getHumanName() + val widgetName = previousWidgetContent?.getHumanName() if (event.isSentByCurrentUser()) { - sp.getString(R.string.notice_widget_removed_by_you, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_removed_by_you, widgetName) } else { - sp.getString(R.string.notice_widget_removed, name, disambiguatedDisplayName) + sp.getString(R.string.notice_widget_removed, disambiguatedDisplayName, widgetName) } } } diff --git a/vector/src/main/res/values-ar/strings.xml b/vector/src/main/res/values-ar/strings.xml index 35e8f246aa..93012de01a 100644 --- a/vector/src/main/res/values-ar/strings.xml +++ b/vector/src/main/res/values-ar/strings.xml @@ -990,8 +990,6 @@ %d رسالة إخطار غير مقروءة %d رسالة إخطار غير مقروءة - أضاف ⁨%2$s⁩ المستخدم ⁨%1$s⁩ - أزال ⁨%2$s⁩ المستخدم ⁨%1$s⁩ استخدم مفتاح الإدخال في لوحة المفاتيح لإرسال الرسالة يمنع المستخدم حسب المعرّف المعطى يُلغي المنع عن المستخدم حسب المعرّف المعطى diff --git a/vector/src/main/res/values-bg/strings.xml b/vector/src/main/res/values-bg/strings.xml index 3428cbbfde..4ebdba0db7 100644 --- a/vector/src/main/res/values-bg/strings.xml +++ b/vector/src/main/res/values-bg/strings.xml @@ -648,8 +648,6 @@ Трябва Ви разрешение, за да управлявате приспособленията в тази стая Създаване на приспособлението беше неуспешно - %1$s добавено от %2$s - %1$s премахнато от %2$s Създаване на групови разговори с jitsi Сигурни ли сте, че искате да изтриете приспособлението от тази стая? diff --git a/vector/src/main/res/values-bn-rIN/strings.xml b/vector/src/main/res/values-bn-rIN/strings.xml index ac67c0aec5..462c95d42a 100644 --- a/vector/src/main/res/values-bn-rIN/strings.xml +++ b/vector/src/main/res/values-bn-rIN/strings.xml @@ -1042,8 +1042,6 @@ আপনি এই রুমে উইজেট পরিচালনা করার অনুমতি প্রয়োজন উইজেট এর নির্মাণ ব্যর্থ হয়েছে - %1$s %2$s দ্বারা যোগ করা হয়েছে - %1$s %2$s দ্বারা সরানো হয়েছে Jitsi সঙ্গে কনফারেন্স কল তৈরি করুন আপনি কি এই রুমে উইজেট মুছে ফেলতে চান\? diff --git a/vector/src/main/res/values-ca/strings.xml b/vector/src/main/res/values-ca/strings.xml index 9be9a0c077..7daa3908c5 100644 --- a/vector/src/main/res/values-ca/strings.xml +++ b/vector/src/main/res/values-ca/strings.xml @@ -738,8 +738,6 @@ Atenció: es podria eliminar aquest fitxer si es desinstal·la l\'aplicació. No teniu permisos per a gestionar ginys en aquesta sala Ha fallat la creació del giny - %1$s afegit per %2$s - %1$s retirat per %2$s Fes conferències amb jitsi Confirmeu que voleu esborrar el giny d\'aquesta sala? diff --git a/vector/src/main/res/values-cs/strings.xml b/vector/src/main/res/values-cs/strings.xml index 3722dca202..6de2427cd5 100644 --- a/vector/src/main/res/values-cs/strings.xml +++ b/vector/src/main/res/values-cs/strings.xml @@ -1145,8 +1145,6 @@ Vaši e-mailovou adresu můžete přidat k profilu v nastavení. Pro správu widgetů v této místnosti potřebujete oprávnění Založení widgetu se nezdařilo - %2$s přidal %1$s - %2$s odstranil(a) %1$s Založit konferenční hovor s jitsi Jste si jisti, že chcete smazat widget z této místnosti\? diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index bb00008d32..19ac96182c 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -704,8 +704,6 @@ Du kannst sie jetzt aktivieren oder später über das Einstellungsmenü.Um Widgets in diesem Raum zu verwalten, ist eine Berechtigung erforderlich Widget konnte nicht erstellt werden - %1$s hinzugefügt von %2$s - %1$s entfernt von %2$s Konferenzgespräche mit jitsi durchführen Soll das Widget wirklich aus diesem Raum gelöscht werden? diff --git a/vector/src/main/res/values-es/strings.xml b/vector/src/main/res/values-es/strings.xml index ec37ea2825..26a98cbe74 100644 --- a/vector/src/main/res/values-es/strings.xml +++ b/vector/src/main/res/values-es/strings.xml @@ -735,8 +735,6 @@ Puedes hacerlo ahora o más tarde desde los ajustes de la aplicación. Necesitas permiso para gestionar los componentes en esta sala La creación del componente falló - %1$s añadido por %2$s - %1$s eliminado por %2$s Crear llamadas de conferencia con jitsi ¿Seguro que quieres eliminar el widget de esta sala\? diff --git a/vector/src/main/res/values-eu/strings.xml b/vector/src/main/res/values-eu/strings.xml index faf596724d..4dde37bc30 100644 --- a/vector/src/main/res/values-eu/strings.xml +++ b/vector/src/main/res/values-eu/strings.xml @@ -659,8 +659,6 @@ Orain egin dezakezu edo gero aplikazioaren ezarpenetatik. Baimena behar duzu gela honetako trepetak kudeatzeko Trepetaren sorrerak huts egin du - %1$s gehitu du %2$s erabiltzaileak - %1$s kendu du %2$s erabiltzaileak Sortu konferentzia deiak Jitsi bidez Ziur trepeta ezabatu nahi duzula gela honetatik? diff --git a/vector/src/main/res/values-fi/strings.xml b/vector/src/main/res/values-fi/strings.xml index 72addef9e4..cb2a741e86 100644 --- a/vector/src/main/res/values-fi/strings.xml +++ b/vector/src/main/res/values-fi/strings.xml @@ -734,8 +734,6 @@ Tarvitse oikeudet pienoissovellusten hallintaan tässä huoneessa Pienoissovelluksen luonti epäonnistui - %2$s lisäsi %1$s:n - %2$s poisti %1$s:n Luo konferenssipuheluita jitsin avulla Haluatko varmasti poistaa pienoissovelluksen tästä huoneesta\? diff --git a/vector/src/main/res/values-fr/strings.xml b/vector/src/main/res/values-fr/strings.xml index 33f834e870..6c280ec598 100644 --- a/vector/src/main/res/values-fr/strings.xml +++ b/vector/src/main/res/values-fr/strings.xml @@ -669,8 +669,6 @@ Vous pouvez le faire maintenant ou plus tard à partir des paramètres de l’ap Vous avez besoin d’une permission pour gérer les widgets de ce salon La création du widget a échoué - %1$s ajouté par %2$s - %1$s supprimé par %2$s Créer des appels en téléconférence avec jitsi Voulez-vous vraiment supprimer le widget de ce salon ? diff --git a/vector/src/main/res/values-gl/strings.xml b/vector/src/main/res/values-gl/strings.xml index c01d8afcf4..aa70225f69 100644 --- a/vector/src/main/res/values-gl/strings.xml +++ b/vector/src/main/res/values-gl/strings.xml @@ -456,8 +456,6 @@ Pode engadir a dirección de correo na sección de configuración de perfil.Enorme Fallou a creación do trebello - %1$s engadido por %2$s - %1$s eliminado por %2$s 1 trebello activo %d trebellos activos diff --git a/vector/src/main/res/values-hu/strings.xml b/vector/src/main/res/values-hu/strings.xml index 077665fe64..b9e486ac1f 100644 --- a/vector/src/main/res/values-hu/strings.xml +++ b/vector/src/main/res/values-hu/strings.xml @@ -660,8 +660,6 @@ Ezt megteheted most vagy később az alkalmazás beállítások alatt. Engedélyre van szükséged a kisalkalmazások ebben a szobában való kezeléséhez Kisalkalmazás létrehozása sikertelen - %1$s hozzá lett adva %2$s által - %1$s eltávolításra került %2$s által Hozz létre konferencia hívást a jitsi segítségével Biztos vagy benne hogy törölni akarod ezt a kisalkalmazást ebből a szobából? diff --git a/vector/src/main/res/values-id/strings.xml b/vector/src/main/res/values-id/strings.xml index 56f6d4deb2..95d932602b 100644 --- a/vector/src/main/res/values-id/strings.xml +++ b/vector/src/main/res/values-id/strings.xml @@ -578,8 +578,6 @@ Perhatikan bahwa tindakan ini akan memulai ulang aplikasi dan mungkin cukup mema Anda butuh permisi untuk mengurus widget di ruang ini Pembuatan widget gagal - %1$s ditambahkan oleh %2$s - %1$s disingkirkan oleh %2$s Buat panggilan konferensi dengan jitsi Apa Anda yakin ingin menghapus widget tersebut dari ruang ini? diff --git a/vector/src/main/res/values-in/strings.xml b/vector/src/main/res/values-in/strings.xml index 56f6d4deb2..95d932602b 100644 --- a/vector/src/main/res/values-in/strings.xml +++ b/vector/src/main/res/values-in/strings.xml @@ -578,8 +578,6 @@ Perhatikan bahwa tindakan ini akan memulai ulang aplikasi dan mungkin cukup mema Anda butuh permisi untuk mengurus widget di ruang ini Pembuatan widget gagal - %1$s ditambahkan oleh %2$s - %1$s disingkirkan oleh %2$s Buat panggilan konferensi dengan jitsi Apa Anda yakin ingin menghapus widget tersebut dari ruang ini? diff --git a/vector/src/main/res/values-is/strings.xml b/vector/src/main/res/values-is/strings.xml index b4a9f59a46..c760ee128f 100644 --- a/vector/src/main/res/values-is/strings.xml +++ b/vector/src/main/res/values-is/strings.xml @@ -654,8 +654,6 @@ Til að halda áfram skaltu setja inn lykilorðið þitt. Þú þarft aðgangsheimildir til að sýsla með viðmótshluta á þessari spjallrás Gerð viðmótshluta mistókst - %1$s bætt við af %2$s - %1$s fjarlægt af %2$s Búa til símafundi með Jitsi Ertu viss um að þú viljir eyða viðmótshlutanum? Gat ekki búið til viðmótshluta. diff --git a/vector/src/main/res/values-it/strings.xml b/vector/src/main/res/values-it/strings.xml index bbb5220a7e..4ee32a1fd0 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/vector/src/main/res/values-it/strings.xml @@ -712,8 +712,6 @@ Suono delle notifiche Mostra gli orari in formato 12 ore Devi avere il permesso per poter gestire i widget in questa stanza - %1$s aggiunto da %2$s - %1$s rimosso da %2$s Avvia una conferenza usando Jitsi Vuoi davvero eliminare questo widget dalla stanza\? diff --git a/vector/src/main/res/values-ja/strings.xml b/vector/src/main/res/values-ja/strings.xml index 6507c31620..293e6a7490 100644 --- a/vector/src/main/res/values-ja/strings.xml +++ b/vector/src/main/res/values-ja/strings.xml @@ -543,10 +543,8 @@ Riotアプリがあなたの電話帳へアクセスすることを許可しま リクエストに room_id がありません。 リクエストの送信に失敗しました。 ウィジェットを作成できません。 - %1$s は %2$s によって削除されました この部屋のウィジェットを管理する権限が必要です ウィジェットの作成に失敗しました - %1$s は %2$s によって追加されました ウィジェットをこの部屋から削除してもよろしいですか? サーバーが利用できないか、オーバーロードしている可能性があります この部屋は検証されていない不明なデバイスが含まれています。 diff --git a/vector/src/main/res/values-ko/strings.xml b/vector/src/main/res/values-ko/strings.xml index 14f7a082af..de83311a9e 100644 --- a/vector/src/main/res/values-ko/strings.xml +++ b/vector/src/main/res/values-ko/strings.xml @@ -1010,8 +1010,6 @@ 이 방에서 위젯을 다루려면 권한이 있어야 합니다 위젯 생성 실패 - %1$s을(를) %2$s님이 추가함 - %1$s을(를) %2$s님이 삭제함 Jitsi로 회의 전화 만들기 이 방에서 위젯을 삭제하겠습니까\? diff --git a/vector/src/main/res/values-lv/strings.xml b/vector/src/main/res/values-lv/strings.xml index be08be4dd1..9b6a7b38fd 100644 --- a/vector/src/main/res/values-lv/strings.xml +++ b/vector/src/main/res/values-lv/strings.xml @@ -763,8 +763,6 @@ Nepazīstamas ierīces: Tev nepietiek atļauju, lai rīkotos ar vidžetiem šajā istabā Vidžeta izveide neizdevās - %1$s pievienoja %2$s - %1$s noņēma %2$s Konferences zvaniem izmantot Jitsi Vai tiešām vēlies dzēst vidžetu? diff --git a/vector/src/main/res/values-nl/strings.xml b/vector/src/main/res/values-nl/strings.xml index 7d7e8e72e0..11f8e936ac 100644 --- a/vector/src/main/res/values-nl/strings.xml +++ b/vector/src/main/res/values-nl/strings.xml @@ -725,8 +725,6 @@ U heeft toestemming nodig om widgets in dit gesprek te beheren Aanmaken van widget is mislukt - %1$s is toegevoegd door %2$s - %1$s is verwijderd door %2$s Vergadergesprekken maken met jitsi Weet u zeker dat u deze widget uit dit gesprek wilt verwijderen\? diff --git a/vector/src/main/res/values-nn/strings.xml b/vector/src/main/res/values-nn/strings.xml index aad1451984..f2520d861c 100644 --- a/vector/src/main/res/values-nn/strings.xml +++ b/vector/src/main/res/values-nn/strings.xml @@ -789,8 +789,6 @@ For å gå fram, ver venleg og skriv passordet ditt inn. Du trenger tillating til å handsama widgetar i dette rommet Widget-laging mislukkast - %1$s lagt til av %2$s - %1$s fjerna av %2$s Lag konferansesamtalar med Jitsi Er du sikker på at du vil slette widgeten frå dette rommet\? diff --git a/vector/src/main/res/values-pl/strings.xml b/vector/src/main/res/values-pl/strings.xml index 301ae3299e..597c016ae9 100644 --- a/vector/src/main/res/values-pl/strings.xml +++ b/vector/src/main/res/values-pl/strings.xml @@ -844,8 +844,6 @@ Czy chcesz dodać teraz kilka? Potrzebujesz uprawnień do zarządzania widżetami w tym pokoju Utworzenie widżetu nie powiodło się - %1$s został dodany przez %2$s - %1$s został usunięty przez %2$s Utwórz połączenia konferencyjne za pomocą jitsi Czy na pewno chcesz usunąć widżet z tego pokoju? Nie można utworzyć widżetu. diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 9f2feb3062..33aa6db04d 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -760,8 +760,6 @@ Atenção: este arquivo poderá ser apagado se o aplicativo for desinstalado.Você necessita ter permissões para poder gerenciar os widgets desta sala A criação do widget falhou - %1$s adicionada/o por %2$s - %1$s removida/o por %2$s Criar chamadas de conferência com jitsi Você tem certeza que quer apagar este widget desta sala? diff --git a/vector/src/main/res/values-pt/strings.xml b/vector/src/main/res/values-pt/strings.xml index 56417b9a36..70f0d10436 100755 --- a/vector/src/main/res/values-pt/strings.xml +++ b/vector/src/main/res/values-pt/strings.xml @@ -722,8 +722,6 @@ Dispositivos desconhecidos: Precisa de permissão para gerir os widgets nesta sala Criação de widget falhou - %1$s adicionado por %2$s - %1$s removido por %2$s Criar chamadas de conferência com o jitsi Tem a certeza que quer remover o widget? diff --git a/vector/src/main/res/values-ru/strings.xml b/vector/src/main/res/values-ru/strings.xml index f937f0bc7e..2b4e1c333d 100644 --- a/vector/src/main/res/values-ru/strings.xml +++ b/vector/src/main/res/values-ru/strings.xml @@ -708,8 +708,6 @@ Звук уведомлений Показывать метки времени в 12-часовом формате - %1$s добавлен %2$s - %1$s удален %2$s Вам нужно разрешение на управление виджетами в этой комнате Создание виджета не удалось diff --git a/vector/src/main/res/values-sk/strings.xml b/vector/src/main/res/values-sk/strings.xml index 3ca6b4bf71..bd4206a208 100644 --- a/vector/src/main/res/values-sk/strings.xml +++ b/vector/src/main/res/values-sk/strings.xml @@ -667,8 +667,6 @@ Môžete to urobiť teraz, alebo to môžete urobiť neskôr v časti Nastavenia Musíte mať povolenie meniť widgety v tejto miestnosti Nie je možné vytvoriť widget - %2$s pridal widget %1$s - %2$s odstránil widget %1$s Konferenčné hovory uskutočňovať použitím jitsi Ste si istí, že chcete odstrániť widget z tejto miestnosti? diff --git a/vector/src/main/res/values-sq/strings.xml b/vector/src/main/res/values-sq/strings.xml index a7c62f4605..9affafbdb2 100644 --- a/vector/src/main/res/values-sq/strings.xml +++ b/vector/src/main/res/values-sq/strings.xml @@ -624,8 +624,6 @@ Të stërmëdha Krijimi i widget-it dështoi - %1$s u shtua nga %2$s - %1$s u hoq nga %2$s Krijoni thirrje konferencë me Jitsi-n Jeni i sigurt se doni të fshihet widget-i nga kjo dhomë? S’arrihet të krijohet widget-i. diff --git a/vector/src/main/res/values-tr/strings.xml b/vector/src/main/res/values-tr/strings.xml index c4e2105154..1fc83cfe09 100644 --- a/vector/src/main/res/values-tr/strings.xml +++ b/vector/src/main/res/values-tr/strings.xml @@ -1017,8 +1017,6 @@ Eğer yeni kurtarma yöntemini siz ayarlamadıysanız, bir saldırgan hesabını Bu odada widgetları yönetebilmek için izine ihtiyacın var Widget oluşturma başarısız - %1$s %2$s tarafından eklendi - %1$s %2$s tarafından kaldırıldı Jitsi ile konferans çağrısı oluştur Bu widget\'ı odadan kaldırmak istediğine emin misin\? diff --git a/vector/src/main/res/values-uk/strings.xml b/vector/src/main/res/values-uk/strings.xml index 4086598171..5fd4a1939c 100755 --- a/vector/src/main/res/values-uk/strings.xml +++ b/vector/src/main/res/values-uk/strings.xml @@ -708,8 +708,6 @@ Для керування віджетами у цій кімнаті потрібен дозвіл Помилка створення віджету - %1$s додано %2$s - %1$s видалено %2$s Здійснювати конференц дзвінки через Jitsi Справді бажаєте видалити віджет? diff --git a/vector/src/main/res/values-zh-rCN/strings.xml b/vector/src/main/res/values-zh-rCN/strings.xml index f460df6d24..3e17303f7e 100644 --- a/vector/src/main/res/values-zh-rCN/strings.xml +++ b/vector/src/main/res/values-zh-rCN/strings.xml @@ -662,8 +662,6 @@ 您需要权限来管理这个聊天室的小部件 创建小部件失败 - %1$s 被 %2$s 添加 - %1$s 被 %2$s 移除 用 jitsi 创建会议通话 您确定要删除这个小部件吗? diff --git a/vector/src/main/res/values-zh-rTW/strings.xml b/vector/src/main/res/values-zh-rTW/strings.xml index 2853987daf..8a0ba7f94a 100644 --- a/vector/src/main/res/values-zh-rTW/strings.xml +++ b/vector/src/main/res/values-zh-rTW/strings.xml @@ -784,8 +784,6 @@ 您需要相關權限以管理此聊天室的小部件 創建小部件失敗 - %1$s 已由 %2$s 新增 - %1$s 被 %2$s 移除 使用 jitsi 建立會議通話 您確定要從聊天室刪除小工具嗎? diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index cffd978b25..de54771187 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -1108,9 +1108,6 @@ You need permission to manage widgets in this room Widget creation has failed - %1$s widget added by %2$s - %1$s widget removed by %2$s - %1$s widget modified by %2$s Create conference calls with jitsi Are you sure you want to delete the widget from this room?