From e53801957c30d286736aeb0ab18489adf5649b22 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Fri, 19 Feb 2021 13:36:39 +0000 Subject: [PATCH 01/65] Add subscribeToChanges/unsubscribeToChanges to VectorPreferences --- .../app/features/settings/VectorPreferences.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index d3ef36a80b..a0fe525d3e 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -239,6 +239,20 @@ class VectorPreferences @Inject constructor(private val context: Context) { } private val defaultPrefs = DefaultSharedPreferences.getInstance(context) + + /** + * Allow subscribing and unsubscribing to configuration changes. This is + * particularly useful when you need to be notified of a configuration change + * in a background service, e.g. for the P2P demos. + */ + + public fun subscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { + defaultPrefs.registerOnSharedPreferenceChangeListener(listener) + } + + public fun unsubscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { + defaultPrefs.unregisterOnSharedPreferenceChangeListener(listener) + } /** * Clear the preferences. From adc461d2f3c28bf95957caba357995561b6e30b8 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Fri, 19 Feb 2021 14:23:38 +0000 Subject: [PATCH 02/65] Update VectorPreferences.kt --- .../im/vector/app/features/settings/VectorPreferences.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index a0fe525d3e..fbd53f09c5 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -16,6 +16,7 @@ package im.vector.app.features.settings import android.content.Context +import android.content.SharedPreferences import android.media.RingtoneManager import android.net.Uri import android.provider.MediaStore @@ -246,11 +247,11 @@ class VectorPreferences @Inject constructor(private val context: Context) { * in a background service, e.g. for the P2P demos. */ - public fun subscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { + fun subscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.registerOnSharedPreferenceChangeListener(listener) } - public fun unsubscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { + fun unsubscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.unregisterOnSharedPreferenceChangeListener(listener) } From 2b403371a3370b073908581ebb09d9528c045722 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Fri, 19 Feb 2021 15:17:42 +0000 Subject: [PATCH 03/65] Update VectorPreferences.kt --- .../java/im/vector/app/features/settings/VectorPreferences.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index fbd53f09c5..eba7403a05 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -246,11 +246,9 @@ class VectorPreferences @Inject constructor(private val context: Context) { * particularly useful when you need to be notified of a configuration change * in a background service, e.g. for the P2P demos. */ - fun subscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.registerOnSharedPreferenceChangeListener(listener) } - fun unsubscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.unregisterOnSharedPreferenceChangeListener(listener) } From f6ac57ec9359229e452f7f87252221dc6a549114 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 21:11:06 +0000 Subject: [PATCH 04/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index db7f940e38..3d5fada807 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -2876,4 +2876,9 @@ Enviar vídeo com o tamanho original Enviar vídeos com o tamanho original + No momento pessoas podem não ser capaz de se juntar a quaisquer salas privadas que você fizer. +\n +\nNós vamos melhorar isto como parte da beta, mas só queríamos deixar você saber. + Espaços de colegas de trabalho não estão bem prontos mas você ainda pode dar-lhes uma tentativa + Continuar Mesmo Assim \ No newline at end of file From 51119ceec4b990caf8d812a2f1e1f4edb3903f54 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 21:36:51 +0000 Subject: [PATCH 05/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 3d5fada807..6a86e58d11 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -429,7 +429,7 @@ Falha para verificar endereço de email: assegure-se que clicou no link no email Sua senha tem sido resettada. \n -\nVocê tem sido feito logout de todas as sessões e não vai mais receber notificações push. Para reativar notificações, faça re-login em cada dispositivo. +\nVocê tem sido feito logout de todas as sessões e não vai mais receber notificações push. Para re-ativar notificações, re-faça login em cada dispositivo. URL deve começar com http[s]:// Incapaz de fazer login: Erro de rede From 861d652d88a3331ba2093dd98fa85486289a85f0 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 21:45:05 +0000 Subject: [PATCH 06/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 6a86e58d11..0f684d145c 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1995,7 +1995,7 @@ Eles correspondem Eles não correspondem Verifique esta(e) usuária(o) ao confirmar que os seguintes emoji únicos aparecem na tela dela(e), na mesma ordem. - Para máxima segurança, use um outro meio de comunicação confiado ou faça isto em pessoa. + Para segurança ótima, use um outro meio de comunicação confiado ou faça isto em pessoa. Procure pelo escudo verde para assegurar que um/uma usuário(a) é confiado. Confie em todos(as) os/as usuários(as) numa sala para assegurar que a sala é segura. Não seguro Um dos seguintes pode estar comprometido: From 1ea48f89b4bf44bf5e6492de18f7d15b66b6fb43 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 21:56:35 +0000 Subject: [PATCH 07/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 0f684d145c..458d8243b7 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1358,7 +1358,7 @@ Desbanir usuária(o) Desbanir usuária(o) vai permitir-lhe se juntar à sala de novo. Confirme sua senha - Você não pode fazer isto de ${app_name} celular + Você não pode fazer isto desde ${app_name} mobile Autenticação é requerida O app não precisa de se conectar ao ServidorCasa no background, isto deveria reduzir uso de bateria Modo Sinc no Background From de0b745eb980883002430af04cfa2e2e412ebba3 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:10:33 +0000 Subject: [PATCH 08/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 458d8243b7..cf45cbf5ee 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1602,7 +1602,7 @@ Esperando por parceira(o) confirmar… Verificada! Você tem confirmado esta sessão com sucesso. - Mensagens seguras com esta(e) usuária(o) estão encriptadas ponta-a-ponta e não são capazes de ser lidas por terceiros. + Mensagens seguras com esta(e) usuária(o) são encriptadas ponta-a-ponta e não são capazes de ser lidas por terceiros. Entendido Nada aparecendo\? Não todos os clientes suportam verificação interativa ainda. Use verificação legado. Usar verificação legado. From e6e7f82eb625b54f62fd07bcd02f40230614197a Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:36:15 +0000 Subject: [PATCH 09/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index cf45cbf5ee..ce235e3b8a 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1943,7 +1943,7 @@ Este não é um identificador de usuária(o) válido. Formato esperado: \'@usuarix:servidorcasa.org\' Incapaz de encontrar um servidorcasa válido. Por favor cheque seu identificador Vista por - Você fez signout + Você está com signout feito Pode ser devido a várias razões: \n \n• Você tem mudado sua senha numa outra sessão. @@ -1952,7 +1952,7 @@ \n \n• O/a administrador(a) de seu servidor tem invalidado seu acesso por razão de segurança. Fazer signin de novo - Você fez signout + Você está com signout feito Fazer signin A/o admin de seu servidorcasa (%1$s) fez seu signout de sua conta %2$s (%3$s). Faça signin para recuperar chaves de encriptação armazenadas exclusivamente neste dispositivo. Você precisa delas para ler todas suas mensagens seguras em qualquer dispositivo. @@ -2361,7 +2361,7 @@ Você não pode acessar esta mensagem porque o/a enviador(a) propositalmente não enviou as chaves Esperando por histórico de encriptação Riot agora é Element! - Nós estamos animados em anunciar que nós mudamos de nome! Seu app está atualizado e o signin está feito a sua conta. + Nós estamos animados em anunciar que nós mudamos de nome! Seu app está atualizado e você está com signin feito a sua conta. ENTENDI SABER MAIS Salvar chave de recuperação em From 7a12d29d3977e04fcc96288652f7bc61fbe672ef Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:37:07 +0000 Subject: [PATCH 10/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index ce235e3b8a..617ceb8fb8 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -2361,7 +2361,7 @@ Você não pode acessar esta mensagem porque o/a enviador(a) propositalmente não enviou as chaves Esperando por histórico de encriptação Riot agora é Element! - Nós estamos animados em anunciar que nós mudamos de nome! Seu app está atualizado e você está com signin feito a sua conta. + Nós estamos animados em anunciar que nós temos mudado de nome! Seu app está atualizado e você está com signin feito a sua conta. ENTENDI SABER MAIS Salvar chave de recuperação em From e826900bd3c3d0de122295551907d72581594b60 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:38:38 +0000 Subject: [PATCH 11/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 617ceb8fb8..e85ef28212 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1637,7 +1637,7 @@ Convidada(o) por %s Você está em dia! Você não tem mais nenhuma mensagem não-lida - Boas-vindas! + Boas vindas a casa! Fique em dia com suas mensagens não-lidas aqui Conversas Suas conversas de mensagem direta vai ser exibidas aqui. Toque no + à direita fundo para começar algumas. @@ -2790,7 +2790,7 @@ Convidar por nome de usuária(o) Convidar por email Convidar pessoas - Boas-vindas a %1$s, %2$s. + Boas vindas a %1$s, %2$s. Você está convidada(o) Aviso requer suporte de servidor e versão de sala experimental %s convida você @@ -2810,7 +2810,7 @@ Procurando por alguém que não está em %s\? Espaço Experimental - Sala Restringida. Espaços são uma nova forma de agrupar salas e pessoas. - Boas-vindas a Espaços! + Boas vindas a Espaços! Adicionar salas Adicionar salas e espaços existentes Você é admin deste espaço, assegure-se que você tem transferido direito de admin a um outro membro antes de sair. From 08af370600090cd5c3663df676eebf96b15133bb Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:50:45 +0000 Subject: [PATCH 12/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index e85ef28212..191b9846ad 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -2510,7 +2510,7 @@ Rotar e recortar Configurações de sala Tópico - Tópico da sala (opcional) + Tópico de sala (opcional) Nome de sala Enviar histórico de requisições de compartilhamento de chaves Mais nenhum resultado From a1bfe099adb9ffb702113e60254ec27d8cc1f2e6 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 22:56:50 +0000 Subject: [PATCH 13/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 191b9846ad..f5a9635a48 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1077,7 +1077,7 @@ Privacidade de Notificação ${app_name} pode rodar no background para gerenciar suas notificações seguramente e privadamente. Isto pode afetar uso de bateria. Conceder permissão - Escolha um outra opção + Escolher uma outra opção Enviar dados de analítica ${app_name} coleta analítica anônima para nos permitir melhorar o aplicativo. Por favor ative analítica para nos ajudar a melhorar ${app_name}. @@ -1846,7 +1846,7 @@ Junte-se a milhões de graça no maior servidor público Hospedagem premium para organizações Saiba mais - Outros + Outro Configurações personalizadas & avançadas Continuar Conectar-se a %1$s @@ -2010,7 +2010,7 @@ Arquivo Sticker Esperando… - %s cancelado + %s cancelou Você cancelou %s aceitou Você aceitou From d4c8c645d1fa1148645b14be677252190317f69e Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Thu, 17 Jun 2021 23:04:15 +0000 Subject: [PATCH 14/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index f5a9635a48..eaec973570 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -2519,7 +2519,7 @@ Mostrar avançadas Esconder avançadas Link Matrix - %s para deixar pessoas sabendo do que esta sala se trata. + %s para deixar pessoas saberem do que esta sala se trata. Por favor proveja um endereço de sala Recente QR code não scannado! From 22f3f612d7501222ccbf71cd6a8ae70603f91382 Mon Sep 17 00:00:00 2001 From: Erik Huizinga Date: Fri, 18 Jun 2021 12:26:30 +0200 Subject: [PATCH 15/65] Apply Google Services Gradle plugin more robustly Fixes #3527 --- vector/build.gradle | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/vector/build.gradle b/vector/build.gradle index 21f62647c0..10d593994e 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -246,6 +246,8 @@ android { productFlavors { gplay { + apply plugin: 'com.google.gms.google-services' + dimension "store" isDefault = true versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}" @@ -506,7 +508,3 @@ dependencies { exclude group: 'org.jetbrains.kotlin' } } - -if (getGradle().getStartParameter().getTaskRequests().toString().contains("Gplay")) { - apply plugin: 'com.google.gms.google-services' -} From cc5260b31138476bc49fca67936e312106297b06 Mon Sep 17 00:00:00 2001 From: Erik Huizinga Date: Fri, 18 Jun 2021 17:23:10 +0200 Subject: [PATCH 16/65] Disable non-Gplay flavor *GoogleServices* tasks --- vector/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vector/build.gradle b/vector/build.gradle index 10d593994e..62afed1b0a 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -247,6 +247,9 @@ android { productFlavors { gplay { apply plugin: 'com.google.gms.google-services' + afterEvaluate { + tasks.matching { it.name.contains("GoogleServices") && !it.name.contains("Gplay") }*.enabled = false + } dimension "store" isDefault = true From e0a5241cafe9c5a99d2dea1646519fe8fc2dbf1b Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Sun, 20 Jun 2021 00:02:59 +0000 Subject: [PATCH 17/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index eaec973570..7fe24cbb4b 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -359,7 +359,7 @@ Enviar crash logs Enviar screenshot Reportar bug - Por favor descreva o bug. O que você fez\? O que você esperava que acontecese\? O que aconteceu na verdade\? + Por favor descreva o bug. O que você fez\? O que você esperava que acontecesse\? O que na verdade aconteceu\? Descreva seu problema aqui A fim de diagnosticar problemas, logs deste cliente vão ser enviados com este reporte de bug. Este reporte de bug, incluindo os logs e o screenshot, não será visível publicamente. Se você prefere somente enviar o texto acima, por favor desmarque: Você parece estar agitando o telefone em frustração. Você gostaria de abrir a tela de reporte de bug\? From a64c7e5df2bf11d53d2ad42ceb710dc442e0e154 Mon Sep 17 00:00:00 2001 From: waclaw66 Date: Fri, 18 Jun 2021 05:09:31 +0000 Subject: [PATCH 18/65] Translated using Weblate (Czech) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/cs/ --- vector/src/main/res/values-cs/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-cs/strings.xml b/vector/src/main/res/values-cs/strings.xml index 7523be029e..0b37b4e046 100644 --- a/vector/src/main/res/values-cs/strings.xml +++ b/vector/src/main/res/values-cs/strings.xml @@ -2859,4 +2859,9 @@ Zadejte název nového serveru, který chcete prozkoumat. Přidat nový server Váš server + Přesto pokračovat + V současné době se lidé nemohou připojit k soukromým místnostem, které jste vytvořili. +\n +\nV rámci beta verze to zlepšíme, ale jen jsme vás chtěli informovat. + Prostory pro spolupracovníky nejsou ještě zcela připravené, ale přesto je můžete vyzkoušet \ No newline at end of file From b0c23426df27b23a998c9c0d09d885ab38908048 Mon Sep 17 00:00:00 2001 From: libexus Date: Fri, 18 Jun 2021 16:09:31 +0000 Subject: [PATCH 19/65] Translated using Weblate (German) Currently translated at 99.7% (2485 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/de/ --- vector/src/main/res/values-de/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index fa6d20d007..faff212373 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -2866,4 +2866,9 @@ Spaces Feedback Dieser Server ist schon in der Liste vorhanden Server oder Raumliste kann nicht gefunden werden + Momentan kann es sein, dass einige Leute deinen privaten Räumen nicht beitreten können. +\n +\nDies werden wir demnächst als Teil der Beta verbessern, wir wollten aber sicherstellen, dass du bescheid weißt. + Team-Spaces sind noch nicht fertig entwickelt, du kannst sie aber schon testen + Trotzdem fortfahren \ No newline at end of file From 5555b0dbb7247ce828b3401a1105f18389447d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Thu, 17 Jun 2021 18:47:43 +0000 Subject: [PATCH 20/65] Translated using Weblate (Estonian) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/et/ --- vector/src/main/res/values-et/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-et/strings.xml b/vector/src/main/res/values-et/strings.xml index 88081c59c5..49761f6d88 100644 --- a/vector/src/main/res/values-et/strings.xml +++ b/vector/src/main/res/values-et/strings.xml @@ -2806,4 +2806,9 @@ Sisesta serveri nimi, mille sisu sa soovid uurida. Lisa uus server Sinu server + Kaasteeliste kogukonnakeskused pole veel päris valmis, aga sa võid neid juba proovida + Jätka ikkagi + Hetkel teiste kasutajate liitumine sinu poolt tehtud privaatsete jututubadega ei pruugi õnnestuda. +\n +\nKuna tegemist on beetaversiooniga, siis me veel parandame seda funktsionaalsust, aga lihtsalt tahtsime sind teavitada. \ No newline at end of file From f6dd07eb64738431143c7a77ff47bcc17312ff85 Mon Sep 17 00:00:00 2001 From: Vancha Date: Fri, 18 Jun 2021 22:22:40 +0000 Subject: [PATCH 21/65] Translated using Weblate (Frisian) Currently translated at 25.7% (641 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/fy/ --- vector/src/main/res/values-fy/strings.xml | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/vector/src/main/res/values-fy/strings.xml b/vector/src/main/res/values-fy/strings.xml index 12a1df9012..5bdcc26d1f 100644 --- a/vector/src/main/res/values-fy/strings.xml +++ b/vector/src/main/res/values-fy/strings.xml @@ -630,4 +630,39 @@ Iepenbier Eltsenien kin by disse keamer oankopje, leden kinne don akseptearje as ôfslaan Eltsenien dyt in link nei disse keamer hat, sels gasten + Do hast gjin brûkers negearre + Negearre brûkers + Stim & Fideo + Avansearre ynstellingen + Oanpaste en avansearre ynstellingen + Akkount Tafoegje + Oanpaste Ynstellingen. + Ynskeakelje + Ynskeakelje + Notifikaasjes binne ynskeakele foar dyn akkount. + Akkount Ynstellingen. + Ynstellingen Iepenje + Notifikaasjes binne ynskeakele yn de systeem ynstellingen. + Systeem Ynstellingen. + Tests Útfiere + Telefoannûmers + E-mailadressen + Wachtwurd befêstigje + Applikaasje informaasje yn de systeem ynstellingen sjen litte. + Applikaasje informaasje + Telefoannûmer tafoegje + Der is gjin telefoannûmer tafoege oan syn akkount + E-mailadres tafoegje + Email + Ynstellingen + Petear Ferlitte + Direkt Petear + Alle berjochten + Alle berjochten (lûd) + Ynstellingen + Ynstellingen feroarje + Keamer rjochten + Do hast de tsjinner ACLs foar dizze keamer feroare. + %s hat de tsjinner ACLs foar dizze keamer feroare. + Do hast dyn profyl ôfbylding feroare \ No newline at end of file From e77cca4495b2c9d27aaf85d9d8800ff2b6936d41 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Fri, 18 Jun 2021 06:50:19 +0000 Subject: [PATCH 22/65] Translated using Weblate (Hungarian) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/hu/ --- vector/src/main/res/values-hu/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-hu/strings.xml b/vector/src/main/res/values-hu/strings.xml index 797ea4f036..ba1e3a9e8e 100644 --- a/vector/src/main/res/values-hu/strings.xml +++ b/vector/src/main/res/values-hu/strings.xml @@ -2811,4 +2811,9 @@ Ha nem te állítottad be a visszaállítási metódust, akkor egy támadó pró Add meg a felfedezni kívánt új szerver nevét. Új szerver hozzáadása Matrix szervered + Az emberek jelen pillanatban nem fognak tudni csatlakozni egyetlen olyan privát szobához sem amit készítettél. +\n +\nEzt folyamatosan fejlesztjük a béta program keretében, csak szerettünk volna tájékoztatni róla. + A csoporttárs terek még nem igazán vannak készen de már tehetsz velük egy próbát + Mindenképpen folytatás \ No newline at end of file From b5ff31b84ea29633b062b2ca0eb6ac256990657e Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Fri, 18 Jun 2021 09:28:16 +0000 Subject: [PATCH 23/65] Translated using Weblate (Albanian) Currently translated at 99.5% (2479 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/sq/ --- vector/src/main/res/values-sq/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-sq/strings.xml b/vector/src/main/res/values-sq/strings.xml index 73512f103c..167d4a6354 100644 --- a/vector/src/main/res/values-sq/strings.xml +++ b/vector/src/main/res/values-sq/strings.xml @@ -2796,4 +2796,9 @@ Jepni emrin e e një shërbyesi të ri që doni të eksploroni. Shtoni shërbyes të ri Shërbyesi juaj + Hëpërhë, personat mund të mos jenë në gjendje të hyjnë në çfarëdo dhome private që krijoni. +\n +\nDo ta përmirësojmë këtë punë, si pjesë e versionit beta, thjesht donim t’ua bënim të ditur. + Hapësirat për anëtarë ekipi ende s’janë tërësisht gati, por mund t’i provoni + Vazhdo, Sido Qoftë \ No newline at end of file From 8e595a7605b4971a82f4475d311e751c2a5ecfa2 Mon Sep 17 00:00:00 2001 From: LinAGKar Date: Sat, 19 Jun 2021 10:10:16 +0000 Subject: [PATCH 24/65] Translated using Weblate (Swedish) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/sv/ --- vector/src/main/res/values-sv/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-sv/strings.xml b/vector/src/main/res/values-sv/strings.xml index ce65fd9a5a..d9b58bb605 100644 --- a/vector/src/main/res/values-sv/strings.xml +++ b/vector/src/main/res/values-sv/strings.xml @@ -2806,4 +2806,9 @@ Ange namnet för en ny server du vill utforska. Lägg till en ny server Din server + För tillfället så kan folk kanske inte gå med i privata rum som du skapar. +\n +\nVi kommer att förbättra detta som en del av betan, men ville låta dig veta. + Lagkamratsutrymmen är inte riktigt färdiga men du kan ändå testa dem + Fortsätt ändå \ No newline at end of file From 061ab76c21ca97edcde165e324a6362d06d1f203 Mon Sep 17 00:00:00 2001 From: sr093906 Date: Fri, 18 Jun 2021 02:58:54 +0000 Subject: [PATCH 25/65] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hans/ --- vector/src/main/res/values-zh-rCN/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-zh-rCN/strings.xml b/vector/src/main/res/values-zh-rCN/strings.xml index d3cc148943..190ea00a1e 100644 --- a/vector/src/main/res/values-zh-rCN/strings.xml +++ b/vector/src/main/res/values-zh-rCN/strings.xml @@ -2763,4 +2763,9 @@ 输入你想要探索的新服务器的名称。 添加一个新的服务器 你的服务器 + 眼下,人们可能无法加入您设置的任何私人房间。 +\n +\n作为测试版的一部分,我们将对此进行改进,只是想让你知道。 + 队友空间还没有完全准备好,但你仍然可以尝试一下 + 不论如何继续 \ No newline at end of file From efe0a1737eea55897ac732cdfbf921630c6e2464 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Fri, 18 Jun 2021 03:00:53 +0000 Subject: [PATCH 26/65] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hant/ --- vector/src/main/res/values-zh-rTW/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-zh-rTW/strings.xml b/vector/src/main/res/values-zh-rTW/strings.xml index 1c67fdbbcd..e6577580b5 100644 --- a/vector/src/main/res/values-zh-rTW/strings.xml +++ b/vector/src/main/res/values-zh-rTW/strings.xml @@ -2753,4 +2753,9 @@ 輸入您想要探索的新伺服器名稱。 加入新的伺服器 您的伺服器 + 目前,人們可能無法加入您開啟的任何私人聊天室。 +\n +\n作為測試版的一部分,我們會對此進行改善,但想先讓您知道。 + 隊友空間還沒有完全準備好,但您仍可以試試看 + 無論如何都要繼續 \ No newline at end of file From f7be5996e5cfbd7a7e6a03c4f1e240214c6e4dc7 Mon Sep 17 00:00:00 2001 From: zeritti Date: Sun, 20 Jun 2021 08:33:40 +0000 Subject: [PATCH 27/65] Translated using Weblate (Czech) Currently translated at 100.0% (21 of 21 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/cs/ --- fastlane/metadata/android/cs-CZ/changelogs/40101070.txt | 2 ++ fastlane/metadata/android/cs-CZ/changelogs/40101080.txt | 2 ++ fastlane/metadata/android/cs-CZ/changelogs/40101090.txt | 2 ++ 3 files changed, 6 insertions(+) create mode 100644 fastlane/metadata/android/cs-CZ/changelogs/40101070.txt create mode 100644 fastlane/metadata/android/cs-CZ/changelogs/40101080.txt create mode 100644 fastlane/metadata/android/cs-CZ/changelogs/40101090.txt diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40101070.txt b/fastlane/metadata/android/cs-CZ/changelogs/40101070.txt new file mode 100644 index 0000000000..2a6afb21a5 --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40101070.txt @@ -0,0 +1,2 @@ +Hlavní změny v této verzi: beta podpora pro Spaces. Komprimace videa před odesláním. +Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.7 diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40101080.txt b/fastlane/metadata/android/cs-CZ/changelogs/40101080.txt new file mode 100644 index 0000000000..5ec173ebea --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40101080.txt @@ -0,0 +1,2 @@ +Hlavní změny v této verzi: vylepšení pro Spaces +Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.8 diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40101090.txt b/fastlane/metadata/android/cs-CZ/changelogs/40101090.txt new file mode 100644 index 0000000000..782a2fa8c5 --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40101090.txt @@ -0,0 +1,2 @@ +Hlavní změny v této verzi: doplněna podpora pro síť gitter.im +Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.9 From 13ec7a500a4468ff4bf38beb17b6cf43ffaa65a4 Mon Sep 17 00:00:00 2001 From: Ridhubharan Date: Tue, 22 Jun 2021 17:31:49 +0000 Subject: [PATCH 28/65] Added translation using Weblate (Tamil) --- vector/src/main/res/values-ta/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 vector/src/main/res/values-ta/strings.xml diff --git a/vector/src/main/res/values-ta/strings.xml b/vector/src/main/res/values-ta/strings.xml new file mode 100644 index 0000000000..a6b3daec93 --- /dev/null +++ b/vector/src/main/res/values-ta/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 3b31f3956c3cb2cfa04c0bc49c64f8a948db33b0 Mon Sep 17 00:00:00 2001 From: libexus Date: Mon, 21 Jun 2021 18:01:18 +0000 Subject: [PATCH 29/65] Translated using Weblate (German) Currently translated at 99.9% (2488 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/de/ --- vector/src/main/res/values-de/strings.xml | 66 ++++++++++++----------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index faff212373..6b8aa1c07e 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -511,7 +511,7 @@ Vorschau Ablehnen - Zur ersten ungelesenen Nachricht springen. + Zur ersten ungelesenen Nachricht Du wurdest von %s in diesen Raum eingeladen Diese Einladung wurde an %s gesendet, welche nicht mit diesem Konto verknüpft ist. @@ -650,9 +650,9 @@ Benachrichtigungen für diesen Account aktivieren Benachrichtigungen für diese Sitzung aktivieren Bildschirm für 3 Sekunden aktivieren - Nachrichten in direkten Chats - Nachrichten in Gruppen-Chats - Wenn ich in einen Raum eingeladen werde + Direktnachrichten + Gruppenchats + Einladungen Anrufe Nachrichten von Bots Hintergrundsynchronisierung @@ -797,7 +797,7 @@ Sitzungsschlüssel Verifizierungsstatus Ed25519-Fingerabdruck - Ende-zu-Ende-Verschlüsselungs-Raumschlüssel exportieren + Ende-zu-Ende-Raumschlüssel exportieren Raumschlüssel exportieren Schlüssel in lokale Datei exportieren Exportieren @@ -877,7 +877,7 @@ Du hast keine Berechtigung, diese Aktion in diesem Raum auszuführen. Anfrage beinhaltet keine Raum-ID. Raum %s ist nicht sichtbar. - Matrix-Apps hinzufügen + Integrationen hinzufügen Benachrichtigungston Anfrage konnte nicht gesendet werden. Anfrage enthält keine user_id. @@ -887,7 +887,7 @@ Synchronisiere… Auf Ereignisse lauschen Nachrichten mit meinem Anzeigenamen - Nachrichten, die meinen Benutzernamen enthalten + Nachrichten mit meinen Benutzernamen Du hast die neue Sitzung \'%s\' hinzugefügt, die jetzt Verschlüsselungs-Schlüssel anfordert. Deine bislang nicht verifiziertes Sitzung \'%s\' fordert Verschlüsselungs-Schlüssel an. Verifizierung beginnen @@ -1028,7 +1028,7 @@ \n \nMöchtest du welche hinzufügen\? Account deaktivieren - Deaktiviere meinen Account + Meinen Account deaktivieren Sende Analysedaten ${app_name} sammelt anonyme Analysedaten um uns zu helfen, die App zu verbessern. Bitte aktive Analysedaten um uns zu helfen ${app_name} zu verbessern. @@ -1150,11 +1150,11 @@ Entfernen Grund Linkvorschau im Chat aktivieren, falls dein Home-Server diese Funktion unterstützt. - Sende Schreibbenachrichtigungen + Schreibbenachrichtigungen senden Lasse andere Benutzer wissen, dass du tippst. Markdown-Formatierung Formatiere Nachrichten mittels Markdown-Syntax, bevor sie gesendet werden. Dies erlaubt erweiterte Formatierungen, etwa Sternchen (*) um kursiven Text anzuzeigen. - Zeige Lesebestätigungen + Lesebestätigungen zeigen Klicke auf die Lesebestätigungen für eine detailliertere Liste. Einladungen, Kicks und Banns bleiben unberührt. Passwort @@ -1223,7 +1223,7 @@ Einschränkungen deaktivieren Batterieoptimierung ${app_name} wird nicht von Batterieoptimierungen beeinflusst. - Fehler bei Benachrichtigungen finden + Benachrichtigungsprobleme finden Diagnose von Fehlern Basisdiagnose ist OK. Wenn du immer noch keine Benachrichtigungen bekommst, sende bitte einen Fehlerbericht, um uns beim Nachforschen zu helfen. Prüfung der Play-Dienste @@ -1254,8 +1254,8 @@ Konto hinzufügen Laute Benachrichtigungen einstellen Anrufbenachrichtigung einstellen - Lautlose Benachrichtigungen einstellen - Wähle LED-Farbe, Vibration, Ton… + Stumme Benachrichtigungen einstellen + LED-Farbe, Vibration und Ton wählen Stumm Bitte eine Passphrase eingeben Passphrase ist zu schwach @@ -1391,7 +1391,7 @@ Mit Single-Sign-On anmelden Diese URL ist nicht erreichbar, bitte prüfen Dein Gerät nutzt eine veraltetes TLS-Sicherheitsprotokoll, das anfällig für Angriffe ist. Zu deiner Sicherheit wirst du nicht in der Lage sein, dich zu verbinden - Schicke Nachricht mit Eingabetaste + Nachricht mit Eingabetaste senden Eingabetaste der Bildschirmtastatur schickt die Nachricht ab, statt einen Zeilenumbruch zu erzeugen Passwort aktualisieren Das Passwort ist ungültig @@ -1569,7 +1569,7 @@ Kannst du nicht finden, wonach du suchst\? Erstelle einen neuen Raum Name oder ID (#beispiel:matrix.org) - Aktiviere Wischen, um in der Zeitleiste zu antworten + Wischen, um in der Zeitleiste zu antworten Kein Ergebnis gefunden. Verwende \'Mit Matrix-ID hinzufügen\', um auf dem Server zu suchen. Beginne mit der Eingabe, um Ergebnisse zu erhalten Filtern nach Benutzername oder ID… @@ -1638,7 +1638,7 @@ Integrationen Benutze einen Integrations-Manager um Bots, Brücken, Widgets und Sticker-Pakete zu verwalten. \nIntegrations-Manager erhalten Konfigurationsdaten und können Widgets verändern, Raum-Einladungen senden und in deinem Namen Berechtigungslevel setzen. - Erlaube Integrationen + Integrationen erlauben Widget Widget laden Dieses Widget wurde hinzugefügt von: @@ -1659,7 +1659,7 @@ Mikrofon benutzen Lese DRM-geschützte Medien Du wirst nicht über eingehende Nachrichten benachrichtigt, wenn die App im Hintergrund ist. - Verwalte deine Erkennungseinstellungen. + Erkennungseinstellungen verwalten. Zugriff für mich zurückziehen Sitzungsname: Format: @@ -2101,8 +2101,8 @@ Speichere ihn auf einem USB-Stick oder auf einem Sicherungslaufwerk Import der Schlüssel fehlgeschlagen Benachrichtigungskonfiguration - Nachrichten, die @raum enthalten - Verschlüsselte Nachrichten in Gruppenchats + Nachrichten mit \"@room\" + Verschlüsselte Gruppenchats Setze die Benachrichtigungspräferenz abhängig vom Ereignistyp Sendet eine Nachricht als einfachen Text, ohne sie als Markdown zu interpretieren Inkorrekter Benutzername und/oder Passwort. Das eingegebene Passwort beginnt oder endet mit Leerzeichen, bitte kontrolliere es. @@ -2113,7 +2113,7 @@ Kopier es in deinen persönlichen Cloud-Speicher Verschlüsselung ist nicht aktiviert Dies kann nicht von einem mobilen Gerät erfolgen - Wenn Räume verbessert werden + Raumupgrades Verschlüsselung aktiviert Nachrichten in diesem Raum sind Ende-zu-Ende-verschlüsselt. Erfahre mehr & verifiziere Benutzer in deren Profil. Die Verschlüsselung in diesem Raum wird nicht unterstützt @@ -2123,7 +2123,7 @@ %s hat den Raum erstellt und konfiguriert. Fast geschafft! Zeigt das andere Gerät das gleiche Schild an\? Fast geschafft! Warte auf Bestätigung… - Verschlüsselte Nachrichten in 1:1 Chats + Verschlüsselte Direktnachrichten Nachricht… Verifiziere dich & andere, um eure Chats zu schützen Gib zum Fortfahren deinen %s ein @@ -2150,7 +2150,7 @@ nutze deinen Schlüsselbackup-Wiederherstellungsschlüssel Wenn du dein Schlüsselbackup-Passwort nicht weißt, kannst du %s. Schlüsselbackup-Wiederherstellungsschlüssel - Verhindere Screenshots innerhalb der Anwendung + Screenshots innerhalb der Anwendung verhindern Das Aktivieren dieser Einstellung setzt das FLAG_SECURE in allen Aktivitäten. Starte die Anwendung neu, damit die Änderung wirksam wird. Datei wurde der Galerie hinzugefügt Datei konnte nicht zur Galerie hinzugefügt werden @@ -2381,7 +2381,7 @@ Aktiviere PIN Wenn du deine PIN zurücksetzen möchtest, tippe \"PIN vergessen\" um dich abzumelden und sie anschließend zurückzusetzen. Bestätige PIN um die PIN zu deaktivieren - Verhindere versehentliche Anrufe + Versehentliche Anrufe verhindern Bitte um Bestätigung, bevor du einen Anruf tätigst Einrichten Dir fehlt die Berechtigung in diesem Raum eine Konferenz zu starten @@ -2397,7 +2397,7 @@ %1$d/%2$d Schlüssel erfolgreich importiert. %1$d/%2$d Schlüssel erfolgreich importiert. - Verwalte Integrationen + Integrationen verwalten Keine aktiven Widgets Der Raum wurde erstellt, aber manche Einladungen wurden aus folgendem Grund nicht versendet: \n @@ -2456,7 +2456,7 @@ Aktiviere Gerät-spezifische Biometrie wie Fingerabdrücke und Gesichtserkennung. Biometrie aktivieren Schutz konfigurieren - Zugriff schützen + Zugriffsschutz Schütze den Zugriff mit PIN und Biometrie. Zeigen das Gerät, mit dem du jetzt überprüfen kannst @@ -2556,7 +2556,7 @@ Hey, schreibe mit mir auf ${app_name}: %s Freunde einladen Leute hinzufügen - "Thema " + "Thema: " Füge ein Thema hinzu %s, um zu zeigen um was es in diesem Raum geht. Das ist der Anfang deiner Direktnachrichten mit %s. @@ -2629,7 +2629,7 @@ Knopf zum Nachrichteneditor hinzufügen, der die Emoji-Tastatur öffnet Emoji-Tastatur anzeigen Nutze /confetti Kommando oder sende Nachrichten, die ❄️ oder 🎉 enthalten - Chat-Effekte zeigen + Chateffekte Thema ändern Raum aktualisieren Rollen, die zum Ändern verschiedener Teile des Raums erforderlich sind, auswählen @@ -2642,8 +2642,8 @@ Cross-Signing konnte nicht eingerichtet werden Nicht autorisierte, fehlende gültige Authentifizierungsdaten Nutzer - Beim Übertragen des Anrufs ist ein Fehler aufgetreten - Übertragen + Beim Weiterleiten des Anrufs ist ein Fehler aufgetreten + Weiterleiten Verbinden 1 aktiver Anruf (%1$s) · 1 pausierter Anruf @@ -2735,7 +2735,7 @@ Senden der Nachricht gescheitert Wird gesendet Nachricht gesendet - Zuerst nachfragen + Zuerst anfragen Privat Öffentlich Du kannst dies später ändern @@ -2755,9 +2755,9 @@ Diese werden kein Teil von %s sein Tritt meinem Space %1$s %2$s bei Willkommen zu %1$s, %2$s. - Warnung benötigt Server Unterstützung und eine experimentelle Raumversion + Warnung: benötigt Server-Unterstützung und eine experimentelle Raumversion Experimenteller Space - Zugangsbeschränkter Raum. - Mit Spaces hast du die Möglichkeit Personen und Räume zu gruppieren. + Mit Spaces kannst du Personen und Räume zu gruppieren. Sag hallo zu Spaces! Füge bereits existierende Räume und Spaces hinzu Vorübergehend überspringen @@ -2871,4 +2871,6 @@ \nDies werden wir demnächst als Teil der Beta verbessern, wir wollten aber sicherstellen, dass du bescheid weißt. Team-Spaces sind noch nicht fertig entwickelt, du kannst sie aber schon testen Trotzdem fortfahren + Bei %1$s anfragen + Zu %1$s weiterleiten \ No newline at end of file From 25b954767830c546ab712af6ed5101b96a698537 Mon Sep 17 00:00:00 2001 From: Thor Arne Johansen Date: Tue, 22 Jun 2021 13:35:05 +0000 Subject: [PATCH 30/65] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 62.8% (1564 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/nb_NO/ --- vector/src/main/res/values-nb-rNO/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vector/src/main/res/values-nb-rNO/strings.xml b/vector/src/main/res/values-nb-rNO/strings.xml index 827c7ceaae..bf220237da 100644 --- a/vector/src/main/res/values-nb-rNO/strings.xml +++ b/vector/src/main/res/values-nb-rNO/strings.xml @@ -140,7 +140,7 @@ Ignorer Folk Filer - Instillinger + Innstillinger BLE MED Avbryt opplastning Avbryt nedlasting @@ -318,7 +318,7 @@ Lyd Galleri Demp - Instillinger + Innstillinger Lær mer Annet Fortsett @@ -349,7 +349,7 @@ Logg på Logg på Passord - Instillinger + Innstillinger Gjeldende økt Føyer til ¯\\_(ツ)_/¯ på en råtekstmelding Video. @@ -897,13 +897,13 @@ Denne hjemmetjeneren vil vite om du er en robot Registrering med e-post og telefonummer samtidig fungerer ikke enda. Bare telefonummeret kommer til å bli registrert. \n -\nDu kan legge e-postadressen din til i instillinger. - Bruk egendefinerte tjenerinstillinger (avansert) +\nDu kan legge e-postadressen din til i innstillinger. + Bruk egendefinerte tjenerinnstillinger (avansert) Klarte ikke å starte en sanntidskopling. \nVennligst be hjemmetjeneradministratoren din om å sette opp en TURN server så samtaler blir mer stabile. Vennligst be administratoren for hjemmetjeneren din (%1$s) til å sette opp en TURN tjener for at telefonsamtaler skal fungere ordentlig. \n -\nAlternativt kan du prøve å bruke den offentlige tjeneren på %2$s, men dette vil ikke være like stabilt, og det vil dele IP-adressen din med den serveren. Du kan styre dette i instillinger. +\nAlternativt kan du prøve å bruke den offentlige tjeneren på %2$s, men dette vil ikke være like stabilt, og det vil dele IP-adressen din med den serveren. Du kan styre dette i innstillinger. E-postkoblingen som ikke er klikket på ennå Dette brukernavnet er allerede brukt Inneholdt ikke gyldig JSON From 919ebaa82e43aa2f1906f54b213ae15b0b56f5ef Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 24 Jun 2021 12:41:23 +0200 Subject: [PATCH 31/65] Fix some issues with timeline cache invalidation and visibility. --- changelog.d/3542.bugfix | 1 + .../detail/timeline/TimelineEventController.kt | 18 ++++++++++++++++-- .../factory/TimelineItemFactoryParams.kt | 1 + .../helper/MessageInformationDataFactory.kt | 15 ++++++++------- 4 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 changelog.d/3542.bugfix diff --git a/changelog.d/3542.bugfix b/changelog.d/3542.bugfix new file mode 100644 index 0000000000..8e133e1e30 --- /dev/null +++ b/changelog.d/3542.bugfix @@ -0,0 +1 @@ +Fix some issues with timeline cache invalidation and visibility. \ No newline at end of file diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt index a0f87b9749..bbb1b7a06f 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt @@ -39,13 +39,13 @@ import im.vector.app.features.home.room.detail.UnreadState import im.vector.app.features.home.room.detail.timeline.factory.MergedHeaderItemFactory import im.vector.app.features.home.room.detail.timeline.factory.ReadReceiptsItemFactory import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactory +import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactoryParams import im.vector.app.features.home.room.detail.timeline.helper.ContentDownloadStateTrackerBinder import im.vector.app.features.home.room.detail.timeline.helper.ContentUploadStateTrackerBinder import im.vector.app.features.home.room.detail.timeline.helper.TimelineControllerInterceptorHelper import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventDiffUtilCallback import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventVisibilityHelper import im.vector.app.features.home.room.detail.timeline.helper.TimelineEventVisibilityStateChangedListener -import im.vector.app.features.home.room.detail.timeline.factory.TimelineItemFactoryParams import im.vector.app.features.home.room.detail.timeline.helper.TimelineMediaSizeProvider import im.vector.app.features.home.room.detail.timeline.item.AbsMessageItem import im.vector.app.features.home.room.detail.timeline.item.BasedMergedItem @@ -163,10 +163,19 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec override fun onChanged(position: Int, count: Int, payload: Any?) { synchronized(modelCache) { assertUpdateCallbacksAllowed() - (position until (position + count)).forEach { + (position until position + count).forEach { // Invalidate cache modelCache[it] = null } + // Also invalidate the first previous displayable event if + // it's sent by the same user so we are sure we have up to date information. + val invalidatedSenderId: String? = currentSnapshot.getOrNull(position)?.senderInfo?.userId + val prevDisplayableEventIndex = currentSnapshot.subList(0, position).indexOfLast { + timelineEventVisibilityHelper.shouldShowEvent(it, eventIdToHighlight) + } + if (prevDisplayableEventIndex != -1 && currentSnapshot[prevDisplayableEventIndex].senderInfo.userId == invalidatedSenderId) { + modelCache[prevDisplayableEventIndex] = null + } requestModelBuild() } } @@ -209,6 +218,7 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec ) init { + isDebugLoggingEnabled = true addInterceptor(this) requestModelBuild() } @@ -340,10 +350,14 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec val event = currentSnapshot[position] val nextEvent = currentSnapshot.nextOrNull(position) val prevEvent = currentSnapshot.prevOrNull(position) + val nextDisplayableEvent = currentSnapshot.subList(position + 1, currentSnapshot.size).firstOrNull { + timelineEventVisibilityHelper.shouldShowEvent(it, eventIdToHighlight) + } val params = TimelineItemFactoryParams( event = event, prevEvent = prevEvent, nextEvent = nextEvent, + nextDisplayableEvent = nextDisplayableEvent, highlightedEventId = eventIdToHighlight, lastSentEventIdWithoutReadReceipts = lastSentEventWithoutReadReceipts, callback = callback diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/TimelineItemFactoryParams.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/TimelineItemFactoryParams.kt index f92cd2800a..0e595ba30e 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/TimelineItemFactoryParams.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/TimelineItemFactoryParams.kt @@ -23,6 +23,7 @@ data class TimelineItemFactoryParams( val event: TimelineEvent, val prevEvent: TimelineEvent? = null, val nextEvent: TimelineEvent? = null, + val nextDisplayableEvent: TimelineEvent? = null, val highlightedEventId: String? = null, val lastSentEventIdWithoutReadReceipts: String? = null, val callback: TimelineEventController.Callback? = null diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/MessageInformationDataFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/MessageInformationDataFactory.kt index 124b196f72..221149aced 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/MessageInformationDataFactory.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/MessageInformationDataFactory.kt @@ -50,27 +50,28 @@ import javax.inject.Inject class MessageInformationDataFactory @Inject constructor(private val session: Session, private val roomSummariesHolder: RoomSummariesHolder, private val dateFormatter: VectorDateFormatter, + private val visibilityHelper: TimelineEventVisibilityHelper, private val vectorPreferences: VectorPreferences) { fun create(params: TimelineItemFactoryParams): MessageInformationData { val event = params.event - val nextEvent = params.nextEvent + val nextDisplayableEvent = params.nextDisplayableEvent val eventId = event.eventId val date = event.root.localDateTime() - val nextDate = nextEvent?.root?.localDateTime() + val nextDate = nextDisplayableEvent?.root?.localDateTime() val addDaySeparator = date.toLocalDate() != nextDate?.toLocalDate() val isNextMessageReceivedMoreThanOneHourAgo = nextDate?.isBefore(date.minusMinutes(60)) ?: false val showInformation = addDaySeparator - || event.senderInfo.avatarUrl != nextEvent?.senderInfo?.avatarUrl - || event.senderInfo.disambiguatedDisplayName != nextEvent?.senderInfo?.disambiguatedDisplayName - || nextEvent.root.getClearType() !in listOf(EventType.MESSAGE, EventType.STICKER, EventType.ENCRYPTED) + || event.senderInfo.avatarUrl != nextDisplayableEvent?.senderInfo?.avatarUrl + || event.senderInfo.disambiguatedDisplayName != nextDisplayableEvent?.senderInfo?.disambiguatedDisplayName + || nextDisplayableEvent.root.getClearType() !in listOf(EventType.MESSAGE, EventType.STICKER, EventType.ENCRYPTED) || isNextMessageReceivedMoreThanOneHourAgo - || isTileTypeMessage(nextEvent) - || nextEvent.isEdition() + || isTileTypeMessage(nextDisplayableEvent) + || nextDisplayableEvent.isEdition() val time = dateFormatter.format(event.root.originServerTs, DateFormatKind.MESSAGE_SIMPLE) val e2eDecoration = getE2EDecoration(event) From bafd01c0f4cefb652e0309a2de1bc12fc4068f18 Mon Sep 17 00:00:00 2001 From: Thibault Martin Date: Thu, 24 Jun 2021 07:19:30 +0000 Subject: [PATCH 32/65] Translated using Weblate (French) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/fr/ --- vector/src/main/res/values-fr/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-fr/strings.xml b/vector/src/main/res/values-fr/strings.xml index 2d5cad33f3..c33afe70d1 100644 --- a/vector/src/main/res/values-fr/strings.xml +++ b/vector/src/main/res/values-fr/strings.xml @@ -2813,4 +2813,9 @@ Ajouter un nouveau serveur Votre serveur Consultation de %1$s + Pour l’instant, vos coéquipiers pourraient ne pas pouvoir rejoindre les salons privés que vous créez. +\n +\nNous allons améliorer ceci dans la bêta, mais nous voulions vous en faire part. + Les espaces pour les équipes ne sont pas tout à fait prêts, mais vous pouvez quand même les essayer + Poursuivre malgré tout \ No newline at end of file From 7c04391037dd38aabcd49d0d1b5100cfcca1fcef Mon Sep 17 00:00:00 2001 From: BramvdnHeuvel Date: Thu, 24 Jun 2021 08:56:42 +0000 Subject: [PATCH 33/65] Translated using Weblate (Dutch) Currently translated at 52.1% (1298 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/nl/ --- vector/src/main/res/values-nl/strings.xml | 62 +++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/vector/src/main/res/values-nl/strings.xml b/vector/src/main/res/values-nl/strings.xml index b2c1aff6ec..a76c94cc05 100644 --- a/vector/src/main/res/values-nl/strings.xml +++ b/vector/src/main/res/values-nl/strings.xml @@ -1477,4 +1477,66 @@ %1$s heeft de kamer aangemaakt Jouw uitnodiging Je hebt een afbeelding gestuurd. + U heeft %1$s verbannen. Reden: %2$s + U heeft de verbanning van %1$s opgeheven. Reden: %2$s + U heeft %1$s eruit getrapt. Reden: %2$s + U heeft de uitnodiging geweigerd. Reden: %1$s + U bent vertrokken. Reden: %1$s + %1$s is vertrokken. Reden: %2$s + U heeft de ruimte verlaten. Reden: %1$s + U heeft zich aangesloten. Reden: %1$s + %1$s heeft zich aangesloten. Reden: %2$s + U heeft zich aangesloten bij de kamer. Reden: %1$s + + %1$s, %2$s, %3$s en %4$d andere + %1$s, %2$s, %3$s en %4$d anderen + + %1$s, %2$s, %3$s en %4$s + %1$s, %2$s en %3$s + %1$s van %2$s naar %3$s + %1$s heeft het machtigingsniveau van %2$s aangepast. + U heeft het machtigingsniveau van %1$s aangepast. + Speciaal + Speciaal (%1$d) + Standaardlid + Beheerder + U heeft de videoconferentie aangepast + Videoconferentie aangepast door %1$s + U heeft de videoconferentie beëindigd + Videoconferentie beëindigd door %1$s + U heeft een videoconferentie gestart + Videoconferentie gestart door %1$s + U heeft de widget %1$s aangepast + %1$s heeft de widget %2$s aangepast + U heeft de widget %1$s verwijderd + %1$s heeft de widget %2$s verwijderd + U heeft de widget %1$s toegevoegd + %1$s heeft de widget %2$s toegevoegd + U heeft de uitnodiging voor %1$s geaccepteerd + U heeft de uitnodiging voor %1$s ingetrokken + %1$s heeft de uitnodiging voor %2$s ingetrokken + U heeft de uitnodiging voor %1$s ingetrokken om zich bij de kamer aan te sluiten + U heeft een uitnodiging gestuurd naar %1$s om zich bij de kamer aan te sluiten + U heeft de kameravatar verwijderd + %1$s heeft de kameravatar verwijderd + U heeft het kameronderwerp verwijderd + U heeft de kamernaam verwijderd + U heeft de ruimte geüpgradet. + U verstuurde data om het gesprek op te zetten. + %s verstuurde data om het gesprek op te zetten. + U heeft een audiogesprek geopend. + U heeft een videogesprek geopend. + U heeft de ruimtenaam veranderd naar: %1$s + U heeft de ruimteavatar aangepast + %1$s heeft de ruimteavatar aangepast + U heeft het onderwerp gewijzigd naar: %1$s + U heeft uw weergavenaam verwijderd (voorheen %1$s) + U heeft de uitnodiging van %1$s ingetrokken + U heeft %1$s verbannen + U heeft de verbanning van %1$s opgeheven + U heeft %1$s eruit getrapt + U sloot zich aan + %1$s sluit aan + Je hebt de kamer betreden + Je hebt een sticker verzonden. \ No newline at end of file From 473259f150de166ab8668d3052c918d2075678e5 Mon Sep 17 00:00:00 2001 From: Thibault Martin Date: Thu, 24 Jun 2021 11:31:53 +0000 Subject: [PATCH 34/65] Translated using Weblate (French) Currently translated at 100.0% (21 of 21 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/fr/ --- .../android/fr-FR/changelogs/40101070.txt | 2 + .../android/fr-FR/changelogs/40101080.txt | 2 + .../android/fr-FR/changelogs/40101090.txt | 2 + .../android/fr-FR/full_description.txt | 47 +++++++++++-------- 4 files changed, 34 insertions(+), 19 deletions(-) create mode 100644 fastlane/metadata/android/fr-FR/changelogs/40101070.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/40101080.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/40101090.txt diff --git a/fastlane/metadata/android/fr-FR/changelogs/40101070.txt b/fastlane/metadata/android/fr-FR/changelogs/40101070.txt new file mode 100644 index 0000000000..66cc5d1671 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40101070.txt @@ -0,0 +1,2 @@ +Principaux changements pour cette version : prise en charge des espaces en bêta. Compression des vidéos avant envoi. +Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.7 diff --git a/fastlane/metadata/android/fr-FR/changelogs/40101080.txt b/fastlane/metadata/android/fr-FR/changelogs/40101080.txt new file mode 100644 index 0000000000..31a4b72363 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40101080.txt @@ -0,0 +1,2 @@ +Principaux changements pour cette version : amélioration des espaces. +Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.8 diff --git a/fastlane/metadata/android/fr-FR/changelogs/40101090.txt b/fastlane/metadata/android/fr-FR/changelogs/40101090.txt new file mode 100644 index 0000000000..99f02f1bb2 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40101090.txt @@ -0,0 +1,2 @@ +Principaux changements pour cette version : ajout de la prise en charge de gitter.im +Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.1.9 diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt index 066b94868b..78fcdf5617 100644 --- a/fastlane/metadata/android/fr-FR/full_description.txt +++ b/fastlane/metadata/android/fr-FR/full_description.txt @@ -1,30 +1,39 @@ -Element est une nouvelle application de messagerie et de collaboration qui : +Element est à la fois une messagerie sécurisée et une application de collaboration en équipe, idéale pour les conversations de groupe en télétravail. Cette application utilise le chiffrement de bout en bout. Elle permet de mettre en place des téléconférences vidéo, du partage de fichier et des appels vocaux. -1. Vous permet de préserver votre vie privée -2. Vous permet de communiquer avec n’importe qui sur réseau Matrix, et plus encore grâce aux intégrations d’autres applications telles que Slack ou Discord -3. Vous protège de la publicité et de la collecte de données -4. Vous protège grâce au chiffrement de bout-à-bout et à la signature croisée pour authentifier les autres utilisateurs +Les fonctionnalités d’Element incluent : +- Outils de communication en ligne avancés +- Communication d’entreprise sécurisée par le chiffrement de bout en bout des messages, même pour les travailleurs à distance +- Messagerie décentralisée basée sur le framework open source Matrix +- Partage sécurisé de fichiers avec chiffrement des données lors de la gestion de projet +- Conversations vidéo par voix sur IP et partage d’écran +- Intégration facile avec vos outils de collaboration, de gestion de projet, services de VoIP et autres applications de messagerie -Element est complètement différente des autres applications de messagerie et de collaboration puisque l’application est décentralisée et open-source. +Element est complètement différente des autres applications de messagerie et de collaboration. Elle s’appuie sur Matrix, un réseau ouvert de communication décentralisée. Elle permet l’auto-hébergement pour que ses utilisateurs restent le plus en contrôle possible de leurs données et leurs messages. -Element vous permet d’héberger vous-même ou de choisir un hôte vous permettant d’assurer votre vie privée, la propriété et le contrôle de vos données et de vos conversations. Cela vous donne accès à un réseau ouvert. Vous n’êtes donc pas condamné à parler à d’autres utilisateurs d’Element seulement. Et c'est très sécurisé. +Confidentialité et messagerie chiffrée +Element vous protège des publicités non désirées, du minage de données et des prisons dorées. Elle protègé vos données et vos communications vocales grâce au chiffrement de bout en bout et à la vérification de signature croisée entre appareils. -Element peut faire tout ça car elle est basée sur Matrix, le protocole standard pour la communication ouverte et décentralisée. +Element vous donne la main sur votre confidentialité en vous permettant de communiquer de manière sécurisée avec tout le réseau Matrix ou d’autres applications de communication d’entreprise au travers d’intégrations d’applications comme Slack. -Element vous donne le contrôle en vous laissant choisir qui héberge vos conversations. Depuis l'application Element, vous pouvez choisir votre hôte de différentes manières : +Element peut être auto-hébergé +Pour une meilleure souveraineté sur vos données et conversations, Element peut être auto-hébergé ou vous pouvez choisir votre hôte Matrix - la norme open source pour les communications décentralisées. Element garantit votre confidentialité, conformité aux normes de sécurité, tout en proposant une intégration souple. -1. Créer un compte gratuit sur le serveur public matrix.org hébergé par les développeurs de Matrix, ou choisir parmi les milliers de serveurs public hébergés par des bénévoles -2. Héberger vous-même votre compte en installant un serveur sur votre propre machine -3. Créer un compte sur un serveur personnalisé en souscrivant sur la plateforme d'hébergement « Element Matrix Services » (EMS) +Vos données vous appartiennent +Vous décidez où stocker vos données et messages. Aucun risque de minage de données où d’accès par des tierce parties. -Pourquoi choisir Element ? +Element vous place aux commandes de différente manières : +1. Inscrivez vous sur le serveur public matrix.org hébergé par les développeurs de Matrix ou choisissez parmi des milliers de serveurs publics hébergés par des bénévoles +2. Auto-hébergez votre compte sur un serveur de votre proper infrastructure informatique +3. Inscrivez vous à la plateforme d’hébergement Element Matrix Services -VOS DONNÉES VOUS APPARTIENNENT : vous décidez où stocker vos données et messages. Ils vous appartiennent et vous les maîtrisez. Aucune multinationale ne viendra extraire vos données pour les envoyer au plus offrant. +Messagerie et collaboration ouvertes +Vous pouvez discuter avec tout le réseau Matrix, que vos interlocuteurs utilisent Element, une autre application Matrix, ou même s’ils utilisent une application complètement différente. -MESSAGERIE ET COLLABORATION OUVERTES : vous pouvez discuter avec tout le réseau Matrix, qu’ils utilisent Element ou une autre application Matrix, même s’ils utilisent une autre plateforme de messagerie telle que Slack, IRC ou XMPP. +Ultra sécurisé +Chiffrement de bout en bout (seules les personnes dans la conversation peuvent déchiffrer les messages) et vérification de signature croisée entre appareils. -ULTRA SÉCURISÉ : chiffrement de bout en bout (seuls les membres d’une conversation peuvent déchiffrer les messages), et signature croisée pour vérifier les appareils de vos interlocuteurs. +Communication et intégration parfaites +Messagerie instantannée, appels audio et vidéo, partage de fichier, partage d’écran et bien d’autres intégrations, bots et widgets. Lancez des salons, des communautés, restez en contact et menez vos projets à bien. -TOUTES VOS COMMUNICATIONS : messagerie, appels audio et vidéo, partage de fichier, partage d’écran et un grand nombre d’intégrations, robots et widgets. Participez à des salons, des communautés, restez en contact et faites avancer vos projets. - -PARTOUT AVEC VOUS : votre historique reste synchronisé entre tous vos appareils et sur le web sur https://element.io/app. +Reprenez où vous vous êtes arrêté +Restez en contact où que vous soyez grâce à l’historique des messages synchronisé entre tous vos appareils et sur le web sur https://app.element.io From 230b3f31d7edf01caa6b8399e9572450797ee90b Mon Sep 17 00:00:00 2001 From: libexus Date: Sat, 26 Jun 2021 18:53:27 +0000 Subject: [PATCH 35/65] Translated using Weblate (German) Currently translated at 99.9% (2488 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/de/ --- vector/src/main/res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index 6b8aa1c07e..b673e29a2f 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -1255,7 +1255,7 @@ Laute Benachrichtigungen einstellen Anrufbenachrichtigung einstellen Stumme Benachrichtigungen einstellen - LED-Farbe, Vibration und Ton wählen + LED-Farbe, Vibration, Ton usw. wählen Stumm Bitte eine Passphrase eingeben Passphrase ist zu schwach @@ -2791,7 +2791,7 @@ Meine Teamkameraden und ich Ein privater Space um deine Räume zu organisieren Um einem bereits existierenden Space beizutreten, benötigst du eine Einladung. - Wir haben Spaces entwickelt, damit ihr eure vielen Räume besser organisieren könnt. + Wir haben Spaces entwickelt, damit ihr eure Räume besser organisieren könnt Dein privater Space Dein öffentlicher Space Betrete einen Space mit der angegebenen ID From 2764ecb2563e0fa15a176cfd80bd05c96781f8db Mon Sep 17 00:00:00 2001 From: random Date: Sat, 26 Jun 2021 09:51:46 +0000 Subject: [PATCH 36/65] Translated using Weblate (Italian) Currently translated at 99.8% (2486 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/it/ --- vector/src/main/res/values-it/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vector/src/main/res/values-it/strings.xml b/vector/src/main/res/values-it/strings.xml index 2bffefc310..1714d28a89 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/vector/src/main/res/values-it/strings.xml @@ -2868,4 +2868,9 @@ Inserisci il nome di un nuovo server che vuoi esplorare. Aggiungi un nuovo server Il tuo server + Al momento le persone potrebbero non poter entrare nelle stanze private che crei. +\n +\nMiglioreremo questa cosa come parte della beta, ma volevamo almeno fartelo sapere. + Gli spazi dei compagni non sono ancora pronti del tutto, ma puoi comunque provarli + Continua comunque \ No newline at end of file From bca220f90930b05e0b879c87896572ba0707f4ce Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 28 Jun 2021 17:02:06 +0200 Subject: [PATCH 37/65] Fix issue on button styles --- library/ui-styles/src/main/res/values/dimens_font.xml | 2 +- library/ui-styles/src/main/res/values/styles_buttons.xml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/library/ui-styles/src/main/res/values/dimens_font.xml b/library/ui-styles/src/main/res/values/dimens_font.xml index 92df8dbf35..1b5a826acb 100644 --- a/library/ui-styles/src/main/res/values/dimens_font.xml +++ b/library/ui-styles/src/main/res/values/dimens_font.xml @@ -8,6 +8,6 @@ 12sp 10sp - 16sp + 14sp \ No newline at end of file diff --git a/library/ui-styles/src/main/res/values/styles_buttons.xml b/library/ui-styles/src/main/res/values/styles_buttons.xml index 8d34995751..ad90469a52 100644 --- a/library/ui-styles/src/main/res/values/styles_buttons.xml +++ b/library/ui-styles/src/main/res/values/styles_buttons.xml @@ -6,6 +6,7 @@ 16dp 94dp @style/TextAppearance.Vector.Button + 8dp 24sp @@ -32,6 +33,7 @@ 16dp 94dp @style/TextAppearance.Vector.Button + 8dp 24sp @@ -48,6 +50,7 @@ ?colorSecondary @style/VectorMaterialThemeOverlayPositive @style/TextAppearance.Vector.Button + 8dp 24sp @@ -61,6 +64,7 @@ @color/button_background_tint_selector 1dp @style/TextAppearance.Vector.Button + 8dp 24sp From 0d02a197a5fb8e7d53537d074a6501580cab024b Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 4 May 2021 20:54:59 +0200 Subject: [PATCH 38/65] Remove redundant mimetype (vector-im/element-web#2547) --- changelog.d/3273.feature | 1 + .../room/model/message/MessageAudioContent.kt | 2 +- .../room/model/message/MessageFileContent.kt | 3 +-- .../room/model/message/MessageImageContent.kt | 3 +-- .../room/model/message/MessageStickerContent.kt | 2 +- .../room/model/message/MessageVideoContent.kt | 2 +- .../crypto/attachments/MXEncryptedAttachments.kt | 13 +++++++------ .../internal/crypto/model/rest/EncryptedFileInfo.kt | 6 ------ .../internal/session/content/UploadContentWorker.kt | 4 ++-- 9 files changed, 15 insertions(+), 21 deletions(-) create mode 100644 changelog.d/3273.feature diff --git a/changelog.d/3273.feature b/changelog.d/3273.feature new file mode 100644 index 0000000000..0edc81796b --- /dev/null +++ b/changelog.d/3273.feature @@ -0,0 +1 @@ +Remove redundant mimetype (vector-im/element-web#2547) \ No newline at end of file diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageAudioContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageAudioContent.kt index fcf3d73cbe..b4ba5c0a66 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageAudioContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageAudioContent.kt @@ -54,5 +54,5 @@ data class MessageAudioContent( ) : MessageWithAttachmentContent { override val mimeType: String? - get() = encryptedFileInfo?.mimetype ?: audioInfo?.mimeType + get() = audioInfo?.mimeType } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageFileContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageFileContent.kt index d93f115322..96877b4d9f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageFileContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageFileContent.kt @@ -60,8 +60,7 @@ data class MessageFileContent( ) : MessageWithAttachmentContent { override val mimeType: String? - get() = encryptedFileInfo?.mimetype - ?: info?.mimeType + get() = info?.mimeType ?: MimeTypeMap.getFileExtensionFromUrl(filename ?: body)?.let { extension -> MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension) } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageImageContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageImageContent.kt index 73e27b64e3..73fd1eab56 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageImageContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageImageContent.kt @@ -20,7 +20,6 @@ import com.squareup.moshi.Json import com.squareup.moshi.JsonClass import org.matrix.android.sdk.api.session.events.model.Content import org.matrix.android.sdk.api.session.room.model.relation.RelationDefaultContent -import org.matrix.android.sdk.api.util.MimeTypes import org.matrix.android.sdk.internal.crypto.model.rest.EncryptedFileInfo @JsonClass(generateAdapter = true) @@ -55,5 +54,5 @@ data class MessageImageContent( @Json(name = "file") override val encryptedFileInfo: EncryptedFileInfo? = null ) : MessageImageInfoContent { override val mimeType: String? - get() = encryptedFileInfo?.mimetype ?: info?.mimeType ?: MimeTypes.Images + get() = info?.mimeType } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageStickerContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageStickerContent.kt index 280316d4b5..8e1d4d3d75 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageStickerContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageStickerContent.kt @@ -55,5 +55,5 @@ data class MessageStickerContent( @Json(name = "file") override val encryptedFileInfo: EncryptedFileInfo? = null ) : MessageImageInfoContent { override val mimeType: String? - get() = encryptedFileInfo?.mimetype ?: info?.mimeType + get() = info?.mimeType } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageVideoContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageVideoContent.kt index b7581c9fbf..3f5d2dab2e 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageVideoContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageVideoContent.kt @@ -53,5 +53,5 @@ data class MessageVideoContent( @Json(name = "file") override val encryptedFileInfo: EncryptedFileInfo? = null ) : MessageWithAttachmentContent { override val mimeType: String? - get() = encryptedFileInfo?.mimetype ?: videoInfo?.mimeType + get() = videoInfo?.mimeType } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/attachments/MXEncryptedAttachments.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/attachments/MXEncryptedAttachments.kt index 5a9852b6db..70730326da 100755 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/attachments/MXEncryptedAttachments.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/attachments/MXEncryptedAttachments.kt @@ -39,7 +39,9 @@ internal object MXEncryptedAttachments { private const val SECRET_KEY_SPEC_ALGORITHM = "AES" private const val MESSAGE_DIGEST_ALGORITHM = "SHA-256" - fun encrypt(clearStream: InputStream, mimetype: String?, outputFile: File, progress: ((current: Int, total: Int) -> Unit)): EncryptedFileInfo { + fun encrypt(clearStream: InputStream, + outputFile: File, + progress: ((current: Int, total: Int) -> Unit)): EncryptedFileInfo { val t0 = System.currentTimeMillis() val secureRandom = SecureRandom() val initVectorBytes = ByteArray(16) { 0.toByte() } @@ -86,7 +88,6 @@ internal object MXEncryptedAttachments { return EncryptedFileInfo( url = null, - mimetype = mimetype, key = EncryptedFileKey( alg = "A256CTR", ext = true, @@ -155,10 +156,9 @@ internal object MXEncryptedAttachments { * Encrypt an attachment stream. * DO NOT USE for big files, it will load all in memory * @param attachmentStream the attachment stream. Will be closed after this method call. - * @param mimetype the mime type * @return the encryption file info */ - fun encryptAttachment(attachmentStream: InputStream, mimetype: String?): EncryptionResult { + fun encryptAttachment(attachmentStream: InputStream): EncryptionResult { val t0 = System.currentTimeMillis() val secureRandom = SecureRandom() @@ -207,7 +207,6 @@ internal object MXEncryptedAttachments { return EncryptionResult( encryptedFileInfo = EncryptedFileInfo( url = null, - mimetype = mimetype, key = EncryptedFileKey( alg = "A256CTR", ext = true, @@ -232,7 +231,9 @@ internal object MXEncryptedAttachments { * @param outputStream the outputStream where the decrypted attachment will be write. * @return true in case of success, false in case of error */ - fun decryptAttachment(attachmentStream: InputStream?, elementToDecrypt: ElementToDecrypt?, outputStream: OutputStream): Boolean { + fun decryptAttachment(attachmentStream: InputStream?, + elementToDecrypt: ElementToDecrypt?, + outputStream: OutputStream): Boolean { // sanity checks if (null == attachmentStream || elementToDecrypt == null) { Timber.e("## decryptAttachment() : null stream") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/model/rest/EncryptedFileInfo.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/model/rest/EncryptedFileInfo.kt index 0ed6c0dac9..4fc3adb42c 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/model/rest/EncryptedFileInfo.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/model/rest/EncryptedFileInfo.kt @@ -29,12 +29,6 @@ data class EncryptedFileInfo( @Json(name = "url") val url: String? = null, - /** - * Not documented - */ - @Json(name = "mimetype") - val mimetype: String? = null, - /** * Required. A JSON Web Key object. */ diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt index 237411db53..f14c85cf80 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt @@ -234,7 +234,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter .also { filesToDelete.add(it) } uploadedFileEncryptedFileInfo = - MXEncryptedAttachments.encrypt(fileToUpload.inputStream(), attachment.getSafeMimeType(), encryptedFile) { read, total -> + MXEncryptedAttachments.encrypt(fileToUpload.inputStream(), encryptedFile) { read, total -> notifyTracker(params) { contentUploadStateTracker.setEncrypting(it, read.toLong(), total.toLong()) } @@ -315,7 +315,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter if (params.isEncrypted) { Timber.v("Encrypt thumbnail") notifyTracker(params) { contentUploadStateTracker.setEncryptingThumbnail(it) } - val encryptionResult = MXEncryptedAttachments.encryptAttachment(thumbnailData.bytes.inputStream(), thumbnailData.mimeType) + val encryptionResult = MXEncryptedAttachments.encryptAttachment(thumbnailData.bytes.inputStream()) val contentUploadResponse = fileUploader.uploadByteArray( byteArray = encryptionResult.encryptedByteArray, filename = null, From 7f70a03f41a15fc015c2dea7a8515bb60b1dbf55 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 4 May 2021 21:00:06 +0200 Subject: [PATCH 39/65] Use interface field --- .../sdk/internal/session/room/send/DefaultSendService.kt | 6 +++--- .../home/room/detail/timeline/factory/MessageItemFactory.kt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/DefaultSendService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/DefaultSendService.kt index 449189e6b5..092fec4d72 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/DefaultSendService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/DefaultSendService.kt @@ -142,7 +142,7 @@ internal class DefaultSendService @AssistedInject constructor( // The image has not yet been sent val attachmentData = ContentAttachmentData( size = messageContent.info!!.size, - mimeType = messageContent.info.mimeType!!, + mimeType = messageContent.mimeType, width = messageContent.info.width.toLong(), height = messageContent.info.height.toLong(), name = messageContent.body, @@ -169,7 +169,7 @@ internal class DefaultSendService @AssistedInject constructor( is MessageFileContent -> { val attachmentData = ContentAttachmentData( size = messageContent.info!!.size, - mimeType = messageContent.info.mimeType!!, + mimeType = messageContent.mimeType, name = messageContent.getFileName(), queryUri = Uri.parse(messageContent.url), type = ContentAttachmentData.Type.FILE @@ -181,7 +181,7 @@ internal class DefaultSendService @AssistedInject constructor( val attachmentData = ContentAttachmentData( size = messageContent.audioInfo?.size ?: 0, duration = messageContent.audioInfo?.duration?.toLong() ?: 0L, - mimeType = messageContent.audioInfo?.mimeType, + mimeType = messageContent.mimeType, name = messageContent.body, queryUri = Uri.parse(messageContent.url), type = ContentAttachmentData.Type.AUDIO diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt index b1bac3378e..4767269833 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt @@ -314,7 +314,7 @@ class MessageItemFactory @Inject constructor( .leftGuideline(avatarSizeProvider.leftGuideline) .imageContentRenderer(imageContentRenderer) .contentUploadStateTrackerBinder(contentUploadStateTrackerBinder) - .playable(messageContent.info?.mimeType == MimeTypes.Gif) + .playable(messageContent.mimeType == MimeTypes.Gif) .highlighted(highlight) .mediaData(data) .apply { From 1d8b95560bb8ede75f4ccdc0d8efc61f694ab855 Mon Sep 17 00:00:00 2001 From: Valere Date: Tue, 29 Jun 2021 14:57:43 +0200 Subject: [PATCH 40/65] Fix / dm flattenParents always growing --- .../sdk/internal/session/room/summary/RoomSummaryUpdater.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt index 7cbcfee713..842c9d3aba 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryUpdater.kt @@ -199,7 +199,6 @@ internal class RoomSummaryUpdater @Inject constructor( measureTimeMillis { val lookupMap = realm.where(RoomSummaryEntity::class.java) .process(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.activeMemberships()) - .equalTo(RoomSummaryEntityFields.IS_DIRECT, false) // we order by roomID to be consistent when breaking parent/child cycles .sort(RoomSummaryEntityFields.ROOM_ID) .findAll().map { From a5b09b9dc37c50799c4c4b0a620b59320b72f3e6 Mon Sep 17 00:00:00 2001 From: Valere Date: Tue, 29 Jun 2021 15:01:43 +0200 Subject: [PATCH 41/65] change log --- changelog.d/3583.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/3583.bugfix diff --git a/changelog.d/3583.bugfix b/changelog.d/3583.bugfix new file mode 100644 index 0000000000..5f273c1779 --- /dev/null +++ b/changelog.d/3583.bugfix @@ -0,0 +1 @@ +Fix crash out of memory \ No newline at end of file From c350c94827099aeb5d6d6948edbe32260dba3b3b Mon Sep 17 00:00:00 2001 From: libexus Date: Mon, 28 Jun 2021 18:29:24 +0000 Subject: [PATCH 42/65] Translated using Weblate (German) Currently translated at 99.9% (2488 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/de/ --- vector/src/main/res/values-de/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index b673e29a2f..5b5fb0809d 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -741,7 +741,7 @@ Wer kann den Chatverlauf lesen? Wer kann auf diesen Raum zugreifen? - Jede*r + Alle Nur Mitglieder (ab dem Zeitpunkt, an dem diese Option ausgewählt wurde) Nur Mitglieder (ab dem Zeitpunkt, an dem sie eingeladen wurden) Nur Mitglieder (ab dem Zeitpunkt, an dem sie beigetreten sind) @@ -805,7 +805,7 @@ Passphrase bestätigen Die Ende-zu-Ende-Raumschlüssel wurden in \'%s\' gespeichert. \n -\nAchtung: Diese Datei wird vielleicht gelöscht, wenn die App deinstalliert wird. +\nWarnung: Diese Datei wird möglicherweise gelöscht, wenn die App deinstalliert wird. Ende-zu-Ende-Raumschlüssel importieren Raumschlüssel importieren Schlüssel aus lokaler Datei importieren @@ -1153,7 +1153,7 @@ Schreibbenachrichtigungen senden Lasse andere Benutzer wissen, dass du tippst. Markdown-Formatierung - Formatiere Nachrichten mittels Markdown-Syntax, bevor sie gesendet werden. Dies erlaubt erweiterte Formatierungen, etwa Sternchen (*) um kursiven Text anzuzeigen. + Formatiere Nachrichten mittels Markdown-Syntax, bevor sie gesendet werden. Dies erlaubt erweiterte Formatierungen wie Sternchen (*), um kursiven Text anzuzeigen. Lesebestätigungen zeigen Klicke auf die Lesebestätigungen für eine detailliertere Liste. Einladungen, Kicks und Banns bleiben unberührt. @@ -1989,7 +1989,7 @@ \nSchlüssel sind nicht vertrauenswürdig Cross-Signing ist nicht aktiviert Aktive Sitzungen - Zeige alle Sitzungen + Alle Sitzungen anzeigen Sitzungen verwalten Diese Sitzung abmelden Keine kryptografischen Informationen verfügbar @@ -2579,7 +2579,7 @@ Der Raum ist gerade nicht zugänglich. \nVersuche es später nochmal, oder bitte einen Raum-Admin um Hilfe. Eine neue Adresse veröffentlichen - Mit einer öffentlichen Adresse kann jede*r mit jedem Server deinem Raum beitreten. Um eine Adresse zu veröffentlichen, muss sie zuerst als lokale Adresse gesetzt sein. + Mit einer öffentlichen Adresse kann jeder den Raum betreten. Um eine Adresse zu veröffentlichen, muss sie zuerst als lokale Adresse gesetzt sein. Diesen Raum im Verzeichnis von %1$s veröffentlichen\? Die Adresse \"%1$s\" nicht mehr veröffentlichen\? Diese Adresse nicht mehr veröffentlichen From 1a0f29ff9484ded65f75941be98bde81c1a48ae6 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Tue, 29 Jun 2021 09:57:06 +0000 Subject: [PATCH 43/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 7fe24cbb4b..f574e30a0e 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -313,8 +313,8 @@ Convidar Fazer signout - Chamada de Voz - Chamada de Vídeo + Chamar por Voz + Chamar por Vídeo Pesquisa global Marcar tudo como lido Histórico @@ -894,7 +894,7 @@ Lista de Grupos Chamar Banir usuária(o) vai expulsá-la(o) desta sala e preveni-la(o) de se juntar de novo. - Todas as mensagens (barulhentas) + Todas as mensagens (barulhento) Todas as mensagens Menções somente Mudo @@ -1015,7 +1015,7 @@ Avatar de recibo Avatar de nota Avatar - Agite com raiva para reportar bug + Agitar com raiva para reportar bug Normal Privacidade reduzida O app precisa de permissão para rodar no background @@ -1203,7 +1203,7 @@ Enviar notificações de digitação Deixar outras(os) usuárias(os) saberem que você está digitando. Mostrar recibos de leitura - Clicar nos recibos de leitura para uma lista detalhada. + Clique nos recibos de leitura para uma lista detalhada. Mostrar eventos de juntar-se e sair Convites, expulsões e bans são desafetados. Mostrar eventos de conta @@ -1387,7 +1387,7 @@ Gere uma nova Chave de Segurança ou defina uma nova Frase de Segurança para seu backup existente. Isto vai substituir sua Chave ou Frase atual. Descoberta - Gerencie suas configurações de descoberta. + Gerenciar suas configurações de descoberta. Modo de economia de dados aplica um filtro específico para que atualizações de presença e notificações de digitação sejam filtradas fora. Permitir integrações Gerenciador de Integração @@ -1600,7 +1600,7 @@ Você recebeu uma requisição de verificação entrante. Visualizar requisição Esperando por parceira(o) confirmar… - Verificada! + Verificada(o)! Você tem confirmado esta sessão com sucesso. Mensagens seguras com esta(e) usuária(o) são encriptadas ponta-a-ponta e não são capazes de ser lidas por terceiros. Entendido @@ -1640,7 +1640,7 @@ Boas vindas a casa! Fique em dia com suas mensagens não-lidas aqui Conversas - Suas conversas de mensagem direta vai ser exibidas aqui. Toque no + à direita fundo para começar algumas. + Suas conversas de mensagem direta vão ser exibidas aqui. Toque no + à direita fundo para começar algumas. Salas Suas salas vão ser exibidas aqui. Toque no + à direita fundo para encontrar umas existentes ou começar algumas propriamente suas. Reações @@ -1669,7 +1669,7 @@ Nova Sala CRIAR Nome - Público + Pública Qualquer pessoa vai ser capaz de se juntar a esta sala Diretório de Salas Publicar esta sala no diretório de salas @@ -1816,7 +1816,7 @@ \nPor favor permita acesso no próximo pop-up para ser capaz de exportar suas chaves manualmente. Não há nenhuma conexão de rede no momento Ignorar usuária(o) - Todas as mensagens (barulhentas) + Todas as mensagens (barulhento) Todas as mensagens Menções somente Mutar @@ -1840,7 +1840,7 @@ Faça chat com pessoas diretamente ou em grupos Mantenha conversas privadas com encriptação Extenda & personalize sua experiência - Comece agora + Começar agora Selecione um servidor Assim como email, contas têm uma casa, embora você pode falar com qualquer pessoa Junte-se a milhões de graça no maior servidor público @@ -2036,7 +2036,7 @@ Mensagens nesta sala não são encriptadas ponta-a-ponta. Mensagens nesta sala são encriptadas ponta-a-ponta. \n -\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipente têm as chaves únicas para os destrancar. +\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipente têm as chaves únicas para as destrancar. Segurança Saiba mais Mais @@ -2109,7 +2109,7 @@ Completar Segurança Use uma sessão existente para verificar esta aqui, garantindo-lhe acesso a mensagens encriptadas. Verificar - Verificada + Verificada(o) Aviso Falha para obter sessões Sessões @@ -2207,7 +2207,7 @@ Configurando Backup de Chave Suas %2$s & %1$s estão agora definidas. \n -\nMantenha-as seguras! Você vai precisar delas para destrancar mensagens encriptadas e informação segura se você perder todas as suas sessões ativas. +\nMantenha-as seguras! Você vai precisar delas para destrancar mensagens encriptadas e informação segura se você perder todas suas sessões ativas. Imprima-a e armazene-a em algum lugar seguro Salve-a em uma chave USB ou drive de backup Copie-a para seu armazenamento nuvem pessoal @@ -2475,7 +2475,7 @@ Configurações Mensagens aqui são encriptadas ponta-a-ponta. \n -\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipiente têm as chaves únicas para os destrancar. +\nSuas mensagens são asseguradas com cadeados e somente você e a/o recipiente têm as chaves únicas para as destrancar. Mensagens aqui não são encriptadas ponta-a-ponta. Este servidorcasa está rodando uma versão antiga. Peça à/ao admin de seu servidorcasa para fazer upgrade. Você pode continuar, mas algumas funcionalidades podem não funcionar corretamente. Mostrar histórico completo em salas encriptadas From de64df3cdba8428290c226f2ec3a89b6102a91fc Mon Sep 17 00:00:00 2001 From: ganfra Date: Wed, 30 Jun 2021 14:50:30 +0200 Subject: [PATCH 44/65] Fix crash after video call --- changelog.d/3577.bugfix | 1 + .../app/features/call/webrtc/WebRtcCall.kt | 274 ++++++++++-------- 2 files changed, 149 insertions(+), 126 deletions(-) create mode 100644 changelog.d/3577.bugfix diff --git a/changelog.d/3577.bugfix b/changelog.d/3577.bugfix new file mode 100644 index 0000000000..6b3917292f --- /dev/null +++ b/changelog.d/3577.bugfix @@ -0,0 +1 @@ +Fix crash after video call. \ No newline at end of file diff --git a/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCall.kt b/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCall.kt index d3a9dd7edf..3259b0915f 100644 --- a/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCall.kt +++ b/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCall.kt @@ -83,9 +83,9 @@ import java.util.concurrent.TimeUnit import javax.inject.Provider import kotlin.coroutines.CoroutineContext -private const val STREAM_ID = "ARDAMS" -private const val AUDIO_TRACK_ID = "ARDAMSa0" -private const val VIDEO_TRACK_ID = "ARDAMSv0" +private const val STREAM_ID = "userMedia" +private const val AUDIO_TRACK_ID = "${STREAM_ID}a0" +private const val VIDEO_TRACK_ID = "${STREAM_ID}v0" private val DEFAULT_AUDIO_CONSTRAINTS = MediaConstraints() class WebRtcCall( @@ -274,12 +274,77 @@ class WebRtcCall( peerConnection = peerConnectionFactory.createPeerConnection(rtcConfig, PeerConnectionObserver(this)) } - fun attachViewRenderers(localViewRenderer: SurfaceViewRenderer?, remoteViewRenderer: SurfaceViewRenderer, mode: String?) { - Timber.v("## VOIP attachViewRenderers localRendeder $localViewRenderer / $remoteViewRenderer") - localSurfaceRenderers.addIfNeeded(localViewRenderer) - remoteSurfaceRenderers.addIfNeeded(remoteViewRenderer) - + /** + * Without consultation + */ + fun transferToUser(targetUserId: String, targetRoomId: String?) { sessionScope?.launch(dispatcher) { + mxCall.transfer( + targetUserId = targetUserId, + targetRoomId = targetRoomId, + createCallId = CallIdGenerator.generate(), + awaitCallId = null + ) + endCall(sendEndSignaling = false) + } + } + + /** + * With consultation + */ + fun transferToCall(transferTargetCall: WebRtcCall) { + sessionScope?.launch(dispatcher) { + val newCallId = CallIdGenerator.generate() + transferTargetCall.mxCall.transfer( + targetUserId = mxCall.opponentUserId, + targetRoomId = null, + createCallId = null, + awaitCallId = newCallId + ) + mxCall.transfer( + targetUserId = transferTargetCall.mxCall.opponentUserId, + targetRoomId = null, + createCallId = newCallId, + awaitCallId = null + ) + endCall(sendEndSignaling = false) + transferTargetCall.endCall(sendEndSignaling = false) + } + } + + fun acceptIncomingCall() { + sessionScope?.launch { + Timber.v("## VOIP acceptIncomingCall from state ${mxCall.state}") + if (mxCall.state == CallState.LocalRinging) { + internalAcceptIncomingCall() + } + } + } + + /** + * Sends a DTMF digit to the other party + * @param digit The digit (nb. string - '#' and '*' are dtmf too) + */ + fun sendDtmfDigit(digit: String) { + sessionScope?.launch { + for (sender in peerConnection?.senders.orEmpty()) { + if (sender.track()?.kind() == "audio" && sender.dtmf()?.canInsertDtmf() == true) { + try { + sender.dtmf()?.insertDtmf(digit, 100, 70) + return@launch + } catch (failure: Throwable) { + Timber.v("Fail to send Dtmf digit") + } + } + } + } + } + + fun attachViewRenderers(localViewRenderer: SurfaceViewRenderer?, remoteViewRenderer: SurfaceViewRenderer, mode: String?) { + sessionScope?.launch(dispatcher) { + Timber.v("## VOIP attachViewRenderers localRendeder $localViewRenderer / $remoteViewRenderer") + localSurfaceRenderers.addIfNeeded(localViewRenderer) + remoteSurfaceRenderers.addIfNeeded(remoteViewRenderer) when (mode) { VectorCallActivity.INCOMING_ACCEPT -> { internalAcceptIncomingCall() @@ -299,67 +364,31 @@ class WebRtcCall( } } - /** - * Without consultation - */ - suspend fun transferToUser(targetUserId: String, targetRoomId: String?) { - mxCall.transfer( - targetUserId = targetUserId, - targetRoomId = targetRoomId, - createCallId = CallIdGenerator.generate(), - awaitCallId = null - ) - endCall(sendEndSignaling = false) - } - - /** - * With consultation - */ - suspend fun transferToCall(transferTargetCall: WebRtcCall) { - val newCallId = CallIdGenerator.generate() - transferTargetCall.mxCall.transfer( - targetUserId = mxCall.opponentUserId, - targetRoomId = null, - createCallId = null, - awaitCallId = newCallId - ) - mxCall.transfer( - targetUserId = transferTargetCall.mxCall.opponentUserId, - targetRoomId = null, - createCallId = newCallId, - awaitCallId = null - ) - endCall(sendEndSignaling = false) - transferTargetCall.endCall(sendEndSignaling = false) - } - - fun acceptIncomingCall() { - sessionScope?.launch { - Timber.v("## VOIP acceptIncomingCall from state ${mxCall.state}") - if (mxCall.state == CallState.LocalRinging) { - internalAcceptIncomingCall() + private suspend fun attachViewRenderersInternal() = withContext(dispatcher) { + // render local video in pip view + localSurfaceRenderers.forEach { renderer -> + renderer.get()?.let { pipSurface -> + pipSurface.setMirror(cameraInUse?.type == CameraType.FRONT) + // no need to check if already added, addSink is checking that + localVideoTrack?.addSink(pipSurface) } } - } - /** - * Sends a DTMF digit to the other party - * @param digit The digit (nb. string - '#' and '*' are dtmf too) - */ - fun sendDtmfDigit(digit: String) { - for (sender in peerConnection?.senders.orEmpty()) { - if (sender.track()?.kind() == "audio" && sender.dtmf()?.canInsertDtmf() == true) { - try { - sender.dtmf()?.insertDtmf(digit, 100, 70) - return - } catch (failure: Throwable) { - Timber.v("Fail to send Dtmf digit") - } + // If remote track exists, then sink it to surface + remoteSurfaceRenderers.forEach { renderer -> + renderer.get()?.let { participantSurface -> + remoteVideoTrack?.addSink(participantSurface) } } } fun detachRenderers(renderers: List?) { + sessionScope?.launch(dispatcher) { + detachRenderersInternal(renderers) + } + } + + private suspend fun detachRenderersInternal(renderers: List?) = withContext(dispatcher) { Timber.v("## VOIP detachRenderers") if (renderers.isNullOrEmpty()) { // remove all sinks @@ -452,24 +481,6 @@ class WebRtcCall( }) } - private fun attachViewRenderersInternal() { - // render local video in pip view - localSurfaceRenderers.forEach { renderer -> - renderer.get()?.let { pipSurface -> - pipSurface.setMirror(this.cameraInUse?.type == CameraType.FRONT) - // no need to check if already added, addSink is checking that - localVideoTrack?.addSink(pipSurface) - } - } - - // If remote track exists, then sink it to surface - remoteSurfaceRenderers.forEach { renderer -> - renderer.get()?.let { participantSurface -> - remoteVideoTrack?.addSink(participantSurface) - } - } - } - private suspend fun getTurnServer(): TurnServerResponse? { return tryOrNull { sessionProvider.get()?.callSignalingService()?.getTurnServer() @@ -580,9 +591,11 @@ class WebRtcCall( } fun setCaptureFormat(format: CaptureFormat) { - Timber.v("## VOIP setCaptureFormat $format") - videoCapturer?.changeCaptureFormat(format.width, format.height, format.fps) - currentCaptureFormat = format + sessionScope?.launch(dispatcher) { + Timber.v("## VOIP setCaptureFormat $format") + videoCapturer?.changeCaptureFormat(format.width, format.height, format.fps) + currentCaptureFormat = format + } } private fun updateMuteStatus() { @@ -645,13 +658,17 @@ class WebRtcCall( } fun muteCall(muted: Boolean) { - micMuted = muted - updateMuteStatus() + sessionScope?.launch(dispatcher) { + micMuted = muted + updateMuteStatus() + } } fun enableVideo(enabled: Boolean) { - videoMuted = !enabled - updateMuteStatus() + sessionScope?.launch(dispatcher) { + videoMuted = !enabled + updateMuteStatus() + } } fun canSwitchCamera(): Boolean { @@ -668,28 +685,30 @@ class WebRtcCall( } fun switchCamera() { - Timber.v("## VOIP switchCamera") - if (mxCall.state is CallState.Connected && mxCall.isVideoCall) { - val oppositeCamera = getOppositeCameraIfAny() ?: return - videoCapturer?.switchCamera( - object : CameraVideoCapturer.CameraSwitchHandler { - // Invoked on success. |isFrontCamera| is true if the new camera is front facing. - override fun onCameraSwitchDone(isFrontCamera: Boolean) { - Timber.v("## VOIP onCameraSwitchDone isFront $isFrontCamera") - cameraInUse = oppositeCamera - localSurfaceRenderers.forEach { - it.get()?.setMirror(isFrontCamera) + sessionScope?.launch(dispatcher) { + Timber.v("## VOIP switchCamera") + if (mxCall.state is CallState.Connected && mxCall.isVideoCall) { + val oppositeCamera = getOppositeCameraIfAny() ?: return@launch + videoCapturer?.switchCamera( + object : CameraVideoCapturer.CameraSwitchHandler { + // Invoked on success. |isFrontCamera| is true if the new camera is front facing. + override fun onCameraSwitchDone(isFrontCamera: Boolean) { + Timber.v("## VOIP onCameraSwitchDone isFront $isFrontCamera") + cameraInUse = oppositeCamera + localSurfaceRenderers.forEach { + it.get()?.setMirror(isFrontCamera) + } + listeners.forEach { + tryOrNull { it.onCameraChanged() } + } } - listeners.forEach { - tryOrNull { it.onCameraChanged() } - } - } - override fun onCameraSwitchError(errorDescription: String?) { - Timber.v("## VOIP onCameraSwitchError isFront $errorDescription") - } - }, oppositeCamera.name - ) + override fun onCameraSwitchError(errorDescription: String?) { + Timber.v("## VOIP onCameraSwitchError isFront $errorDescription") + } + }, oppositeCamera.name + ) + } } } @@ -718,11 +737,12 @@ class WebRtcCall( return currentCaptureFormat } - private fun release() { + private suspend fun release() { listeners.clear() mxCall.removeListener(this) timer.stop() timer.tickListener = null + detachRenderersInternal(null) videoCapturer?.stopCapture() videoCapturer?.dispose() videoCapturer = null @@ -736,6 +756,8 @@ class WebRtcCall( localAudioTrack = null localVideoSource = null localVideoTrack = null + remoteAudioTrack = null + remoteVideoTrack = null cameraAvailabilityCallback = null } @@ -745,7 +767,7 @@ class WebRtcCall( if (stream.audioTracks.size > 1 || stream.videoTracks.size > 1) { Timber.e("## VOIP StreamObserver weird looking stream: $stream") // TODO maybe do something more?? - mxCall.hangUp() + endCall(true) return@launch } if (stream.audioTracks.size == 1) { @@ -774,27 +796,27 @@ class WebRtcCall( } fun endCall(sendEndSignaling: Boolean = true, reason: CallHangupContent.Reason? = null) { - if (mxCall.state == CallState.Terminated) { - return - } - // Close tracks ASAP - localVideoTrack?.setEnabled(false) - localVideoTrack?.setEnabled(false) - cameraAvailabilityCallback?.let { cameraAvailabilityCallback -> - val cameraManager = context.getSystemService()!! - cameraManager.unregisterAvailabilityCallback(cameraAvailabilityCallback) - } - val wasRinging = mxCall.state is CallState.LocalRinging - mxCall.state = CallState.Terminated sessionScope?.launch(dispatcher) { + if (mxCall.state == CallState.Terminated) { + return@launch + } + // Close tracks ASAP + localVideoTrack?.setEnabled(false) + localVideoTrack?.setEnabled(false) + cameraAvailabilityCallback?.let { cameraAvailabilityCallback -> + val cameraManager = context.getSystemService()!! + cameraManager.unregisterAvailabilityCallback(cameraAvailabilityCallback) + } + val wasRinging = mxCall.state is CallState.LocalRinging + mxCall.state = CallState.Terminated release() onCallEnded(callId) - } - if (sendEndSignaling) { - if (wasRinging) { - mxCall.reject() - } else { - mxCall.hangUp(reason) + if (sendEndSignaling) { + if (wasRinging) { + mxCall.reject() + } else { + mxCall.hangUp(reason) + } } } } From 3378be935b4985230e769b4aaed66f2920586e8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:06:02 +0000 Subject: [PATCH 45/65] Bump orchestrator from 1.3.0 to 1.4.0 Bumps orchestrator from 1.3.0 to 1.4.0. --- updated-dependencies: - dependency-name: androidx.test:orchestrator dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..dd39d37fcf 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -194,5 +194,5 @@ dependencies { // Plant Timber tree for test androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' - androidTestUtil 'androidx.test:orchestrator:1.3.0' + androidTestUtil 'androidx.test:orchestrator:1.4.0' } From 2ebfeb1709cc58e66a8027800122a229439426a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:06:24 +0000 Subject: [PATCH 46/65] Bump androidxTest_version from 1.3.0 to 1.4.0 Bumps `androidxTest_version` from 1.3.0 to 1.4.0. Updates `core` from 1.3.0 to 1.4.0 Updates `runner` from 1.3.0 to 1.4.0 Updates `rules` from 1.3.0 to 1.4.0 --- updated-dependencies: - dependency-name: androidx.test:core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: androidx.test:runner dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: androidx.test:rules dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 6 +++--- vector/build.gradle | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..3eec2548c6 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -182,9 +182,9 @@ dependencies { testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion" - androidTestImplementation 'androidx.test:core:1.3.0' - androidTestImplementation 'androidx.test:runner:1.3.0' - androidTestImplementation 'androidx.test:rules:1.3.0' + androidTestImplementation 'androidx.test:core:1.4.0' + androidTestImplementation 'androidx.test:runner:1.4.0' + androidTestImplementation 'androidx.test:rules:1.4.0' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'org.amshove.kluent:kluent-android:1.65' diff --git a/vector/build.gradle b/vector/build.gradle index 7c01cb550e..c341cb81a5 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -316,7 +316,7 @@ dependencies { // Tests def kluent_version = '1.67' - def androidxTest_version = '1.3.0' + def androidxTest_version = '1.4.0' def espresso_version = '3.3.0' implementation project(":matrix-sdk-android") From f1001231d600f22f8b2c0b67968b3b5b6313968e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:06:35 +0000 Subject: [PATCH 47/65] Bump mockk from 1.11.0 to 1.12.0 Bumps [mockk](https://github.com/mockk/mockk) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/mockk/mockk/releases) - [Commits](https://github.com/mockk/mockk/compare/1.11.0...v1.12.0) --- updated-dependencies: - dependency-name: io.mockk:mockk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..f8d91b24ff 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -175,7 +175,7 @@ dependencies { testImplementation 'org.robolectric:robolectric:4.5.1' //testImplementation 'org.robolectric:shadows-support-v4:3.0' // Note: version sticks to 1.9.2 due to https://github.com/mockk/mockk/issues/281 - testImplementation 'io.mockk:mockk:1.11.0' + testImplementation 'io.mockk:mockk:1.12.0' testImplementation 'org.amshove.kluent:kluent-android:1.67' testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" // Plant Timber tree for test From 7316bf4ee0744ceb9b682a37c2bace5016cf8a39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:07:27 +0000 Subject: [PATCH 48/65] Bump mockk-android from 1.11.0 to 1.12.0 Bumps [mockk-android](https://github.com/mockk/mockk) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/mockk/mockk/releases) - [Commits](https://github.com/mockk/mockk/compare/1.11.0...v1.12.0) --- updated-dependencies: - dependency-name: io.mockk:mockk-android dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..5372aa11bc 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -188,7 +188,7 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'org.amshove.kluent:kluent-android:1.65' - androidTestImplementation 'io.mockk:mockk-android:1.11.0' + androidTestImplementation 'io.mockk:mockk-android:1.12.0' androidTestImplementation "androidx.arch.core:core-testing:$arch_version" androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" // Plant Timber tree for test From 752290424c4eab6b85727545356a99052b41edec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:07:55 +0000 Subject: [PATCH 49/65] Bump core-ktx from 1.5.0 to 1.6.0 Bumps core-ktx from 1.5.0 to 1.6.0. --- updated-dependencies: - dependency-name: androidx.core:core-ktx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- attachment-viewer/build.gradle | 2 +- matrix-sdk-android/build.gradle | 2 +- vector/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/attachment-viewer/build.gradle b/attachment-viewer/build.gradle index 4b95b20029..a756e07cbd 100644 --- a/attachment-viewer/build.gradle +++ b/attachment-viewer/build.gradle @@ -55,7 +55,7 @@ dependencies { implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.5.0' + implementation 'androidx.core:core-ktx:1.6.0' implementation 'androidx.appcompat:appcompat:1.3.0' implementation "androidx.recyclerview:recyclerview:1.2.1" diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..9a80f3db7c 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -121,7 +121,7 @@ dependencies { implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" implementation "androidx.appcompat:appcompat:1.3.0" - implementation "androidx.core:core-ktx:1.5.0" + implementation "androidx.core:core-ktx:1.6.0" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version" diff --git a/vector/build.gradle b/vector/build.gradle index 7c01cb550e..583773943e 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -336,7 +336,7 @@ dependencies { implementation "androidx.fragment:fragment-ktx:$fragment_version" implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation "androidx.sharetarget:sharetarget:1.1.0" - implementation 'androidx.core:core-ktx:1.5.0' + implementation 'androidx.core:core-ktx:1.6.0' implementation "androidx.media:media:1.3.1" implementation "androidx.transition:transition:1.4.1" From 1ae88afcda68d7f3a1de6ca9cb9c68a3118ed50b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 23:09:18 +0000 Subject: [PATCH 50/65] Bump gradle from 4.2.1 to 4.2.2 Bumps gradle from 4.2.1 to 4.2.2. --- updated-dependencies: - dependency-name: com.android.tools.build:gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b6c4a17559..c4f3dfd3c2 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.android.tools.build:gradle:4.2.2' classpath 'com.google.gms:google-services:4.3.8' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3' From adcd1a64df9e70c490ca8ebe149d9197796e024c Mon Sep 17 00:00:00 2001 From: Valere Date: Thu, 1 Jul 2021 15:28:26 +0200 Subject: [PATCH 51/65] empty migration to fix big flattenParentIds for DM --- .../database/RealmSessionStoreMigration.kt | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt index 2b3c3b28ee..40299d4593 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt @@ -19,9 +19,10 @@ package org.matrix.android.sdk.internal.database import io.realm.DynamicRealm import io.realm.FieldAttribute import io.realm.RealmMigration -import org.matrix.android.sdk.api.session.room.model.VersioningState import org.matrix.android.sdk.api.session.events.model.EventType +import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesContent +import org.matrix.android.sdk.api.session.room.model.VersioningState import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent import org.matrix.android.sdk.api.session.room.model.tag.RoomTag import org.matrix.android.sdk.internal.database.model.CurrentStateEventEntityFields @@ -40,13 +41,14 @@ import org.matrix.android.sdk.internal.database.model.SpaceChildSummaryEntityFie import org.matrix.android.sdk.internal.database.model.SpaceParentSummaryEntityFields import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields import org.matrix.android.sdk.internal.di.MoshiProvider +import org.matrix.android.sdk.internal.query.process import timber.log.Timber import javax.inject.Inject class RealmSessionStoreMigration @Inject constructor() : RealmMigration { companion object { - const val SESSION_STORE_SCHEMA_VERSION = 14L + const val SESSION_STORE_SCHEMA_VERSION = 15L } override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) { @@ -66,6 +68,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration { if (oldVersion <= 11) migrateTo12(realm) if (oldVersion <= 12) migrateTo13(realm) if (oldVersion <= 13) migrateTo14(realm) + if (oldVersion <= 14) migrateTo15(realm) } private fun migrateTo1(realm: DynamicRealm) { @@ -292,7 +295,7 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration { Timber.d("Step 13 -> 14") val roomAccountDataSchema = realm.schema.create("RoomAccountDataEntity") .addField(RoomAccountDataEntityFields.CONTENT_STR, String::class.java) - .addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED) + .addField(RoomAccountDataEntityFields.TYPE, String::class.java, FieldAttribute.INDEXED) realm.schema.get("RoomEntity") ?.addRealmListField(RoomEntityFields.ACCOUNT_DATA.`$`, roomAccountDataSchema) @@ -306,4 +309,16 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration { roomAccountDataSchema.isEmbedded = true } + + private fun migrateTo15(realm: DynamicRealm) { + // fix issue with flattenParentIds on DM that kept growing with duplicate + // so we reset it, will be updated next sync + realm.where("RoomSummaryEntity") + .process(RoomSummaryEntityFields.MEMBERSHIP_STR, Membership.activeMemberships()) + .equalTo(RoomSummaryEntityFields.IS_DIRECT, true) + .findAll() + .onEach { + it.setString(RoomSummaryEntityFields.FLATTEN_PARENT_IDS, null) + } + } } From 9430d7a5dde307b16f1bfcc6ead8a6e2e16f722f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Jul 2021 23:07:36 +0000 Subject: [PATCH 52/65] Bump realm-gradle-plugin from 10.6.0 to 10.6.1 Bumps [realm-gradle-plugin](https://github.com/realm/realm-java) from 10.6.0 to 10.6.1. - [Release notes](https://github.com/realm/realm-java/releases) - [Changelog](https://github.com/realm/realm-java/blob/v10.6.1/CHANGELOG.md) - [Commits](https://github.com/realm/realm-java/compare/v10.6.0...v10.6.1) --- updated-dependencies: - dependency-name: io.realm:realm-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index cb00b0fd56..631b99e1d6 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -9,7 +9,7 @@ buildscript { mavenCentral() } dependencies { - classpath "io.realm:realm-gradle-plugin:10.6.0" + classpath "io.realm:realm-gradle-plugin:10.6.1" } } From 1906fbdeaa5570681cee8c6e7129b9843f01a2c3 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Fri, 2 Jul 2021 01:03:38 +0000 Subject: [PATCH 53/65] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2490 of 2490 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index f574e30a0e..17e4f1e9d3 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -640,7 +640,7 @@ Versão Termos & condições Notas de terceiros - Direito de autor + Copyright Política de privacidade Imagem de Perfil @@ -667,7 +667,7 @@ versão de olm Termos & condições Notas de terceiros - Direitos de autor + Copyright Política de privacidade Limpar cache From d4009476f9bcfd76f3e449886765185cac281a35 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 09:39:32 +0200 Subject: [PATCH 54/65] Cleanup --- .../home/room/detail/timeline/TimelineEventController.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt index bbb1b7a06f..95d7acb571 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt @@ -218,7 +218,6 @@ class TimelineEventController @Inject constructor(private val dateFormatter: Vec ) init { - isDebugLoggingEnabled = true addInterceptor(this) requestModelBuild() } From 1eea734a4c32f5504e69dbdf268ed0a17acc0be8 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 12:53:00 +0200 Subject: [PATCH 55/65] Fix compilation issue A bit weird, I did not figure out was was the original problem. Editiing the line, for instance adding any char fixes the issue, so I decided to put all on one line. --- vector/src/main/res/values-it/strings.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/vector/src/main/res/values-it/strings.xml b/vector/src/main/res/values-it/strings.xml index 1714d28a89..7632f11563 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/vector/src/main/res/values-it/strings.xml @@ -1897,12 +1897,7 @@ Per avere la massima certezza effettuate l\'operazione tramite un mezzo di comunicazione già fidato oppure fatelo di persona. Il badge verde garantisce che l\'identità dell\'utente è verificata. Verifica tutti gli utenti in una stanza per assicurarti che sia sicura. Non sicuro - Uno dei seguenti potrebbe essere compromesso: -\n -\n - Il tuo Home Server -\n - L\'Home Server al quale è connesso l\'utente che stai verificando -\n - La tua connessione internet o quella dell\'altro utente -\n - Il tuo dispositivo o quello dell\'altro utente + Uno dei seguenti potrebbe essere compromesso:\n\n - Il tuo Home Server\n - L\'Home Server al quale è connesso l\'utente che stai verificando\n - La tua connessione internet o quella dell\'altro utente\n - Il tuo dispositivo o quello dell\'altro utente Video. Immagine. Audio From f06d2b1734a8bff31704a944709fc4342331904c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 14:55:30 +0200 Subject: [PATCH 56/65] Fix typo --- vector/src/main/res/values-pt-rBR/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 17e4f1e9d3..f1aa5b6fb9 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -1637,7 +1637,7 @@ Convidada(o) por %s Você está em dia! Você não tem mais nenhuma mensagem não-lida - Boas vindas a casa! + Boas-vindas a casa! Fique em dia com suas mensagens não-lidas aqui Conversas Suas conversas de mensagem direta vão ser exibidas aqui. Toque no + à direita fundo para começar algumas. @@ -2790,7 +2790,7 @@ Convidar por nome de usuária(o) Convidar por email Convidar pessoas - Boas vindas a %1$s, %2$s. + Boas-vindas a %1$s, %2$s. Você está convidada(o) Aviso requer suporte de servidor e versão de sala experimental %s convida você @@ -2810,7 +2810,7 @@ Procurando por alguém que não está em %s\? Espaço Experimental - Sala Restringida. Espaços são uma nova forma de agrupar salas e pessoas. - Boas vindas a Espaços! + Boas-vindas a Espaços! Adicionar salas Adicionar salas e espaços existentes Você é admin deste espaço, assegure-se que você tem transferido direito de admin a um outro membro antes de sair. From 2c7b947d274e7d47d552da13982c5a984b97c62c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 15:32:01 +0200 Subject: [PATCH 57/65] Fix compilation issue A bit weird, I did not figure out was was the original problem. Editiing the line, for instance adding any char fixes the issue, so I decided to put all on one line. --- vector/src/main/res/values-it/strings.xml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/vector/src/main/res/values-it/strings.xml b/vector/src/main/res/values-it/strings.xml index 7632f11563..1792d09cae 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/vector/src/main/res/values-it/strings.xml @@ -1430,10 +1430,7 @@ \nNome sessione: %1$s \nUltimo accesso: %2$s \nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta. - Una sessione non verificata sta chiedendo le chiavi crittografiche. -\nNome sessione: %1$s -\nUltimo accesso: %2$s -\nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta. + Una sessione non verificata sta chiedendo le chiavi crittografiche.\nNome sessione: %1$s\nUltimo accesso: %2$s\nSe non hai effettuato l\'accesso da un\'altra sessione, ignora questa richiesta. Verifica Condividi Richiesta condivisione chiavi crittografiche From 2513be744c0e31c8c1b72a493ca5af7e16a1bbc6 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 15:46:04 +0200 Subject: [PATCH 58/65] CryptoStore migration has to be object to avoid crash Thread: main, Exception: java.lang.IllegalArgumentException: Configurations cannot be different if used to open the same file. The most likely cause is that equals() and hashCode() are not overridden in the migration class: org.matrix.android.sdk.internal.database.RealmSessionStoreMigration --- changelog.d/3605.bugfix | 1 + .../sdk/internal/crypto/CryptoModule.kt | 3 +-- .../store/db/RealmCryptoStoreMigration.kt | 24 +++++++++---------- .../database/RealmSessionStoreMigration.kt | 7 ++---- .../SessionRealmConfigurationFactory.kt | 3 +-- .../legacy/DefaultLegacySessionImporter.kt | 3 +-- .../session/identity/IdentityModule.kt | 3 +-- .../db/RealmIdentityStoreMigration.kt | 7 ++---- 8 files changed, 21 insertions(+), 30 deletions(-) create mode 100644 changelog.d/3605.bugfix diff --git a/changelog.d/3605.bugfix b/changelog.d/3605.bugfix new file mode 100644 index 0000000000..3e338a0c62 --- /dev/null +++ b/changelog.d/3605.bugfix @@ -0,0 +1 @@ +CryptoStore migration has to be object to avoid crash \ No newline at end of file diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt index e114f86a99..84d4fef5af 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/CryptoModule.kt @@ -112,7 +112,6 @@ internal abstract class CryptoModule { @SessionScope fun providesRealmConfiguration(@SessionFilesDirectory directory: File, @UserMd5 userMd5: String, - realmCryptoStoreMigration: RealmCryptoStoreMigration, realmKeysUtils: RealmKeysUtils): RealmConfiguration { return RealmConfiguration.Builder() .directory(directory) @@ -123,7 +122,7 @@ internal abstract class CryptoModule { .modules(RealmCryptoStoreModule()) .allowWritesOnUiThread(true) .schemaVersion(RealmCryptoStoreMigration.CRYPTO_STORE_SCHEMA_VERSION) - .migration(realmCryptoStoreMigration) + .migration(RealmCryptoStoreMigration) .build() } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStoreMigration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStoreMigration.kt index bca7914388..8e77f5b823 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/store/db/RealmCryptoStoreMigration.kt @@ -18,6 +18,9 @@ package org.matrix.android.sdk.internal.crypto.store.db import com.squareup.moshi.Moshi import com.squareup.moshi.Types +import io.realm.DynamicRealm +import io.realm.RealmMigration +import io.realm.RealmObjectSchema import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.util.JsonDict import org.matrix.android.sdk.internal.crypto.model.MXDeviceInfo @@ -35,29 +38,24 @@ import org.matrix.android.sdk.internal.crypto.store.db.model.KeysBackupDataEntit import org.matrix.android.sdk.internal.crypto.store.db.model.MyDeviceLastSeenInfoEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.OlmInboundGroupSessionEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.OlmSessionEntityFields +import org.matrix.android.sdk.internal.crypto.store.db.model.OutboundGroupSessionInfoEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.OutgoingGossipingRequestEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.SharedSessionEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.TrustLevelEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.UserEntityFields import org.matrix.android.sdk.internal.crypto.store.db.model.WithHeldSessionEntityFields +import org.matrix.android.sdk.internal.di.MoshiProvider import org.matrix.android.sdk.internal.di.SerializeNulls -import io.realm.DynamicRealm -import io.realm.RealmMigration -import io.realm.RealmObjectSchema -import org.matrix.android.sdk.internal.crypto.store.db.model.OutboundGroupSessionInfoEntityFields import org.matrix.androidsdk.crypto.data.MXOlmInboundGroupSession2 import timber.log.Timber -import javax.inject.Inject import org.matrix.androidsdk.crypto.data.MXDeviceInfo as LegacyMXDeviceInfo -internal class RealmCryptoStoreMigration @Inject constructor(private val crossSigningKeysMapper: CrossSigningKeysMapper) : RealmMigration { +internal object RealmCryptoStoreMigration : RealmMigration { - companion object { - // 0, 1, 2: legacy Riot-Android - // 3: migrate to RiotX schema - // 4, 5, 6, 7, 8, 9: migrations from RiotX (which was previously 1, 2, 3, 4, 5, 6) - const val CRYPTO_STORE_SCHEMA_VERSION = 12L - } + // 0, 1, 2: legacy Riot-Android + // 3: migrate to RiotX schema + // 4, 5, 6, 7, 8, 9: migrations from RiotX (which was previously 1, 2, 3, 4, 5, 6) + const val CRYPTO_STORE_SCHEMA_VERSION = 12L private fun RealmObjectSchema.addFieldIfNotExists(fieldName: String, fieldType: Class<*>): RealmObjectSchema { if (!hasField(fieldName)) { @@ -384,6 +382,8 @@ internal class RealmCryptoStoreMigration @Inject constructor(private val crossSi private fun migrateTo7(realm: DynamicRealm) { Timber.d("Step 6 -> 7") Timber.d("Updating KeyInfoEntity table") + val crossSigningKeysMapper = CrossSigningKeysMapper(MoshiProvider.providesMoshi()) + val keyInfoEntities = realm.where("KeyInfoEntity").findAll() try { keyInfoEntities.forEach { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt index 40299d4593..6eccaf8774 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt @@ -43,13 +43,10 @@ import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields import org.matrix.android.sdk.internal.di.MoshiProvider import org.matrix.android.sdk.internal.query.process import timber.log.Timber -import javax.inject.Inject -class RealmSessionStoreMigration @Inject constructor() : RealmMigration { +internal object RealmSessionStoreMigration : RealmMigration { - companion object { - const val SESSION_STORE_SCHEMA_VERSION = 15L - } + const val SESSION_STORE_SCHEMA_VERSION = 15L override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) { Timber.v("Migrating Realm Session from $oldVersion to $newVersion") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt index 244fe3432a..1771c5b202 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/SessionRealmConfigurationFactory.kt @@ -43,7 +43,6 @@ internal class SessionRealmConfigurationFactory @Inject constructor( @SessionFilesDirectory val directory: File, @SessionId val sessionId: String, @UserMd5 val userMd5: String, - val migration: RealmSessionStoreMigration, context: Context) { // Keep legacy preferences name for compatibility reason @@ -72,7 +71,7 @@ internal class SessionRealmConfigurationFactory @Inject constructor( .allowWritesOnUiThread(true) .modules(SessionRealmModule()) .schemaVersion(RealmSessionStoreMigration.SESSION_STORE_SCHEMA_VERSION) - .migration(migration) + .migration(RealmSessionStoreMigration) .build() // Try creating a realm instance and if it succeeds we can clear the flag diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/legacy/DefaultLegacySessionImporter.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/legacy/DefaultLegacySessionImporter.kt index 4586cfea1e..ad2aff4c9d 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/legacy/DefaultLegacySessionImporter.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/legacy/DefaultLegacySessionImporter.kt @@ -42,7 +42,6 @@ import org.matrix.android.sdk.internal.legacy.riot.HomeServerConnectionConfig as internal class DefaultLegacySessionImporter @Inject constructor( private val context: Context, private val sessionParamsStore: SessionParamsStore, - private val realmCryptoStoreMigration: RealmCryptoStoreMigration, private val realmKeysUtils: RealmKeysUtils ) : LegacySessionImporter { @@ -172,7 +171,7 @@ internal class DefaultLegacySessionImporter @Inject constructor( .name("crypto_store.realm") .modules(RealmCryptoStoreModule()) .schemaVersion(RealmCryptoStoreMigration.CRYPTO_STORE_SCHEMA_VERSION) - .migration(realmCryptoStoreMigration) + .migration(RealmCryptoStoreMigration) .build() Timber.d("Migration: copy DB to encrypted DB") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt index 7a39a333a5..4d664b76be 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/IdentityModule.kt @@ -60,7 +60,6 @@ internal abstract class IdentityModule { @SessionScope fun providesIdentityRealmConfiguration(realmKeysUtils: RealmKeysUtils, @SessionFilesDirectory directory: File, - migration: RealmIdentityStoreMigration, @UserMd5 userMd5: String): RealmConfiguration { return RealmConfiguration.Builder() .directory(directory) @@ -69,7 +68,7 @@ internal abstract class IdentityModule { realmKeysUtils.configureEncryption(this, SessionModule.getKeyAlias(userMd5)) } .schemaVersion(RealmIdentityStoreMigration.IDENTITY_STORE_SCHEMA_VERSION) - .migration(migration) + .migration(RealmIdentityStoreMigration) .allowWritesOnUiThread(true) .modules(IdentityRealmModule()) .build() diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/RealmIdentityStoreMigration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/RealmIdentityStoreMigration.kt index 6081dbab12..21c0f8eb9e 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/RealmIdentityStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/identity/db/RealmIdentityStoreMigration.kt @@ -19,13 +19,10 @@ package org.matrix.android.sdk.internal.session.identity.db import io.realm.DynamicRealm import io.realm.RealmMigration import timber.log.Timber -import javax.inject.Inject -internal class RealmIdentityStoreMigration @Inject constructor() : RealmMigration { +internal object RealmIdentityStoreMigration : RealmMigration { - companion object { - const val IDENTITY_STORE_SCHEMA_VERSION = 1L - } + const val IDENTITY_STORE_SCHEMA_VERSION = 1L override fun migrate(realm: DynamicRealm, oldVersion: Long, newVersion: Long) { Timber.v("Migrating Realm Identity from $oldVersion to $newVersion") From 4ad5deac3820b9965307f75720a6105bf805ae57 Mon Sep 17 00:00:00 2001 From: gradle-update-robot Date: Sat, 3 Jul 2021 00:09:56 +0000 Subject: [PATCH 59/65] Update Gradle Wrapper from 7.1 to 7.1.1. Signed-off-by: gradle-update-robot --- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 283500479a..17ba19021b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=a9e356a21595348b6f04b024ed0b08ac8aea6b2ac37e6c0ef58e51549cd7b9cb -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip +distributionSha256Sum=9bb8bc05f562f2d42bdf1ba8db62f6b6fa1c3bf6c392228802cc7cb0578fe7e0 +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 76f4c81d2dec1b74dbd8ad84bc63349764feb912 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Fri, 2 Jul 2021 16:39:45 +0200 Subject: [PATCH 60/65] Hide password... Oups --- .../main/java/im/vector/app/core/extensions/ViewExtensions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt index 759e130e29..92dc76670f 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt @@ -41,7 +41,7 @@ fun SearchView.withoutLeftMargin() { } fun EditText.hidePassword() { - inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD + inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD } fun View.getMeasurements(): Pair { From 09e362ec6b05abf5e524205b30f9a085ba3b8e26 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 5 Jul 2021 09:55:22 +0200 Subject: [PATCH 61/65] Release: towncrier --- CHANGES.md | 17 +++++++++++++++++ changelog.d/3542.bugfix | 1 - changelog.d/3545.feature | 1 - changelog.d/3547.feature | 1 - changelog.d/3564.bugfix | 1 - changelog.d/3577.bugfix | 1 - changelog.d/3583.bugfix | 1 - changelog.d/3605.bugfix | 1 - 8 files changed, 17 insertions(+), 7 deletions(-) delete mode 100644 changelog.d/3542.bugfix delete mode 100644 changelog.d/3545.feature delete mode 100644 changelog.d/3547.feature delete mode 100644 changelog.d/3564.bugfix delete mode 100644 changelog.d/3577.bugfix delete mode 100644 changelog.d/3583.bugfix delete mode 100644 changelog.d/3605.bugfix diff --git a/CHANGES.md b/CHANGES.md index 9947146a9e..e9a990f1b2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,20 @@ +Changes in Element 1.1.12 (2021-07-05) +====================================== + +Features ✨ +---------- + - Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling. ([#3545](https://github.com/vector-im/element-android/issues/3545)) + - Implements new design for Jump to unread and quick fix visibility issues. ([#3547](https://github.com/vector-im/element-android/issues/3547)) + +Bugfixes 🐛 +---------- + - Fix some issues with timeline cache invalidation and visibility. ([#3542](https://github.com/vector-im/element-android/issues/3542)) + - Fix call invite processed after call is ended because of fastlane mode. ([#3564](https://github.com/vector-im/element-android/issues/3564)) + - Fix crash after video call. ([#3577](https://github.com/vector-im/element-android/issues/3577)) + - Fix crash out of memory ([#3583](https://github.com/vector-im/element-android/issues/3583)) + - CryptoStore migration has to be object to avoid crash ([#3605](https://github.com/vector-im/element-android/issues/3605)) + + Changes in Element v1.1.11 (2021-06-22) ======================================= diff --git a/changelog.d/3542.bugfix b/changelog.d/3542.bugfix deleted file mode 100644 index 8e133e1e30..0000000000 --- a/changelog.d/3542.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix some issues with timeline cache invalidation and visibility. \ No newline at end of file diff --git a/changelog.d/3545.feature b/changelog.d/3545.feature deleted file mode 100644 index f582affbf2..0000000000 --- a/changelog.d/3545.feature +++ /dev/null @@ -1 +0,0 @@ -Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling. \ No newline at end of file diff --git a/changelog.d/3547.feature b/changelog.d/3547.feature deleted file mode 100644 index 8921932067..0000000000 --- a/changelog.d/3547.feature +++ /dev/null @@ -1 +0,0 @@ -Implements new design for Jump to unread and quick fix visibility issues. \ No newline at end of file diff --git a/changelog.d/3564.bugfix b/changelog.d/3564.bugfix deleted file mode 100644 index 74f71ccded..0000000000 --- a/changelog.d/3564.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix call invite processed after call is ended because of fastlane mode. \ No newline at end of file diff --git a/changelog.d/3577.bugfix b/changelog.d/3577.bugfix deleted file mode 100644 index 6b3917292f..0000000000 --- a/changelog.d/3577.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix crash after video call. \ No newline at end of file diff --git a/changelog.d/3583.bugfix b/changelog.d/3583.bugfix deleted file mode 100644 index 5f273c1779..0000000000 --- a/changelog.d/3583.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix crash out of memory \ No newline at end of file diff --git a/changelog.d/3605.bugfix b/changelog.d/3605.bugfix deleted file mode 100644 index 3e338a0c62..0000000000 --- a/changelog.d/3605.bugfix +++ /dev/null @@ -1 +0,0 @@ -CryptoStore migration has to be object to avoid crash \ No newline at end of file From 9673b3b15b3087a5861df770856b0e4d1e748c01 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 5 Jul 2021 09:56:27 +0200 Subject: [PATCH 62/65] Release: fastlane --- fastlane/metadata/android/en-US/changelogs/40101120.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/40101120.txt diff --git a/fastlane/metadata/android/en-US/changelogs/40101120.txt b/fastlane/metadata/android/en-US/changelogs/40101120.txt new file mode 100644 index 0000000000..6118974777 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/40101120.txt @@ -0,0 +1,2 @@ +Main changes in this version: theme and style update and fix a crash after video call +Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.12 \ No newline at end of file From 72dcc9203232ef799db018270f181c7e0cb96c83 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 5 Jul 2021 14:27:33 +0200 Subject: [PATCH 63/65] Version++ --- vector/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/build.gradle b/vector/build.gradle index c9a3724e11..2fa4561ba0 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -14,7 +14,7 @@ kapt { // Note: 2 digits max for each value ext.versionMajor = 1 ext.versionMinor = 1 -ext.versionPatch = 12 +ext.versionPatch = 13 static def getGitTimestamp() { def cmd = 'git show -s --format=%ct' From 86395826716e24d9b65c4b0e4385943f8cf8cb2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jul 2021 12:38:04 +0000 Subject: [PATCH 64/65] Bump espresso_version from 3.3.0 to 3.4.0 Bumps `espresso_version` from 3.3.0 to 3.4.0. Updates `espresso-core` from 3.3.0 to 3.4.0 Updates `espresso-contrib` from 3.3.0 to 3.4.0 Updates `espresso-intents` from 3.3.0 to 3.4.0 --- updated-dependencies: - dependency-name: androidx.test.espresso:espresso-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: androidx.test.espresso:espresso-contrib dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: androidx.test.espresso:espresso-intents dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- matrix-sdk-android/build.gradle | 2 +- vector/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 22aa308fab..d467221742 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -186,7 +186,7 @@ dependencies { androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation 'androidx.test:rules:1.4.0' androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'org.amshove.kluent:kluent-android:1.65' androidTestImplementation 'io.mockk:mockk-android:1.12.0' androidTestImplementation "androidx.arch.core:core-testing:$arch_version" diff --git a/vector/build.gradle b/vector/build.gradle index 72a8cdd003..f6650d5125 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -322,7 +322,7 @@ dependencies { // Tests def kluent_version = '1.67' def androidxTest_version = '1.4.0' - def espresso_version = '3.3.0' + def espresso_version = '3.4.0' implementation project(":matrix-sdk-android") implementation project(":matrix-sdk-android-rx") From 0e8018cbba266713de1d24e34c6447928a4d4cf3 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 5 Jul 2021 16:24:19 +0200 Subject: [PATCH 65/65] ktlint and format --- .../java/im/vector/app/features/settings/VectorPreferences.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index 23cc3c30bd..b247dbfcf6 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -253,7 +253,7 @@ class VectorPreferences @Inject constructor(private val context: Context) { } private val defaultPrefs = DefaultSharedPreferences.getInstance(context) - + /** * Allow subscribing and unsubscribing to configuration changes. This is * particularly useful when you need to be notified of a configuration change @@ -262,6 +262,7 @@ class VectorPreferences @Inject constructor(private val context: Context) { fun subscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.registerOnSharedPreferenceChangeListener(listener) } + fun unsubscribeToChanges(listener: SharedPreferences.OnSharedPreferenceChangeListener) { defaultPrefs.unregisterOnSharedPreferenceChangeListener(listener) }