diff --git a/build.gradle b/build.gradle index 64434ac697..71875c49f1 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ buildscript { classpath 'com.google.gms:google-services:4.3.13' classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513' classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5' - classpath "com.likethesalad.android:stem-plugin:2.1.1" + classpath "com.likethesalad.android:stem-plugin:2.2.2" classpath 'org.owasp:dependency-check-gradle:7.1.2' classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.10" classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0" diff --git a/changelog.d/3955.misc b/changelog.d/3955.misc new file mode 100644 index 0000000000..4e8fbeb4d8 --- /dev/null +++ b/changelog.d/3955.misc @@ -0,0 +1 @@ +Creates a dedicated strings module diff --git a/changelog.d/6964.wip b/changelog.d/6964.wip new file mode 100644 index 0000000000..f96dfe41ed --- /dev/null +++ b/changelog.d/6964.wip @@ -0,0 +1 @@ +[Device Manager] Render Security Recommendations diff --git a/changelog.d/6969.bugfix b/changelog.d/6969.bugfix new file mode 100644 index 0000000000..4f3a161b41 --- /dev/null +++ b/changelog.d/6969.bugfix @@ -0,0 +1 @@ +FTUE - Fixes optional email registration step always being mandatory diff --git a/changelog.d/6982.bugfix b/changelog.d/6982.bugfix new file mode 100644 index 0000000000..baa75d9c15 --- /dev/null +++ b/changelog.d/6982.bugfix @@ -0,0 +1,2 @@ +Fix autoplayed animated stickers +Increase sticker size diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104320.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104320.txt new file mode 100644 index 0000000000..578549ce6c --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability. +Úplný seznam změn: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104260.txt b/fastlane/metadata/android/de-DE/changelogs/40104260.txt new file mode 100644 index 0000000000..0298255dad --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104260.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: UnifiedPush wird unterstützt; Dies ermöglicht Push-Benachrichtigungen ohne FCM. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104270.txt b/fastlane/metadata/android/de-DE/changelogs/40104270.txt new file mode 100644 index 0000000000..50b5647608 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104270.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104280.txt b/fastlane/metadata/android/de-DE/changelogs/40104280.txt new file mode 100644 index 0000000000..50b5647608 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104280.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104300.txt b/fastlane/metadata/android/de-DE/changelogs/40104300.txt new file mode 100644 index 0000000000..c906fedd54 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104300.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: Verbessertes Anmelde- und Registrierungserlebnis. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104310.txt b/fastlane/metadata/android/de-DE/changelogs/40104310.txt new file mode 100644 index 0000000000..c906fedd54 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104310.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: Verbessertes Anmelde- und Registrierungserlebnis. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/de-DE/changelogs/40104320.txt b/fastlane/metadata/android/de-DE/changelogs/40104320.txt new file mode 100644 index 0000000000..50b5647608 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen. +Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/et/changelogs/40104320.txt b/fastlane/metadata/android/et/changelogs/40104320.txt new file mode 100644 index 0000000000..1df5ac4176 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused. +Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/fa/changelogs/40104320.txt b/fastlane/metadata/android/fa/changelogs/40104320.txt new file mode 100644 index 0000000000..29efb95925 --- /dev/null +++ b/fastlane/metadata/android/fa/changelogs/40104320.txt @@ -0,0 +1,2 @@ +تغییرات عمده در این نگارش: رفع اشکال‌های مختلف و بهبودهای پایداری. +گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104320.txt b/fastlane/metadata/android/fr-FR/changelogs/40104320.txt new file mode 100644 index 0000000000..fe61fd021c --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Principaux changements pour cette version : Plusieurs corrections de bogues et d’améliorations de stabilité. +Intégralité des changements : https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/id/changelogs/40104320.txt b/fastlane/metadata/android/id/changelogs/40104320.txt new file mode 100644 index 0000000000..1017951d47 --- /dev/null +++ b/fastlane/metadata/android/id/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas. +Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/it-IT/changelogs/40104320.txt b/fastlane/metadata/android/it-IT/changelogs/40104320.txt new file mode 100644 index 0000000000..556a6fc7ea --- /dev/null +++ b/fastlane/metadata/android/it-IT/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità. +Cronologia completa: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100100.txt b/fastlane/metadata/android/pl-PL/changelogs/40100100.txt new file mode 100644 index 0000000000..7960e8a961 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100100.txt @@ -0,0 +1,2 @@ +Ta nowa wersja zawiera głównie poprawki błędów i ulepszenia. Wysyłanie wiadomości jest teraz znacznie szybsze. +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.10 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100110.txt b/fastlane/metadata/android/pl-PL/changelogs/40100110.txt new file mode 100644 index 0000000000..ce95f4ab46 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100110.txt @@ -0,0 +1,2 @@ +Ta nowa wersja zawiera głównie ulepszenia interfejsu i doświadczenia użytkownika. Teraz możesz zapraszać znajomych i bardzo szybko tworzyć bezpośrednie rozmowy, skanując kody QR. +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.11 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100120.txt b/fastlane/metadata/android/pl-PL/changelogs/40100120.txt new file mode 100644 index 0000000000..5b79301d97 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100120.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Podgląd URL, nowa klawiatura Emoji, nowe możliwości ustawień pokoju i śnieg na Boże Narodzenie! +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.12 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100130.txt b/fastlane/metadata/android/pl-PL/changelogs/40100130.txt new file mode 100644 index 0000000000..6a8f3ac662 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100130.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Podgląd URL, nowa klawiatura Emoji, nowe możliwości ustawień pokoju i śnieg na Boże Narodzenie! +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.13 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100140.txt b/fastlane/metadata/android/pl-PL/changelogs/40100140.txt new file mode 100644 index 0000000000..084f75dbf7 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100140.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Edytuj uprawnienia do pokoju, automatyczny jasny/ciemny motyw i kilka poprawek błędów. +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.14 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100150.txt b/fastlane/metadata/android/pl-PL/changelogs/40100150.txt new file mode 100644 index 0000000000..f2cb216b06 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100150.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Obsługa logowania społecznościowego. +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.15 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40100160.txt b/fastlane/metadata/android/pl-PL/changelogs/40100160.txt new file mode 100644 index 0000000000..354d794070 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40100160.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Obsługa logowania społecznościowego. +Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.0.15 i https://github.com/vector-im/element-android/releases/tag/v1.0.16 diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104300.txt b/fastlane/metadata/android/pl-PL/changelogs/40104300.txt new file mode 100644 index 0000000000..d50c5a3f0e --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40104300.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Włącza ulepszone podróże w logowaniu i przy rejestracji. +Pełna lista zmian: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104310.txt b/fastlane/metadata/android/pl-PL/changelogs/40104310.txt new file mode 100644 index 0000000000..d50c5a3f0e --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40104310.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Włącza ulepszone podróże w logowaniu i przy rejestracji. +Pełna lista zmian: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/pl-PL/changelogs/40104320.txt b/fastlane/metadata/android/pl-PL/changelogs/40104320.txt new file mode 100644 index 0000000000..005f2d2b71 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Różne poprawki błędów i ulepszenia stabilności. +Pełna lista zmian: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104320.txt b/fastlane/metadata/android/pt-BR/changelogs/40104320.txt new file mode 100644 index 0000000000..6e11e92579 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade. +Changelog completo: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/sk/changelogs/40104320.txt b/fastlane/metadata/android/sk/changelogs/40104320.txt new file mode 100644 index 0000000000..50670f18c2 --- /dev/null +++ b/fastlane/metadata/android/sk/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability. +Úplný zoznam zmien: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/uk/changelogs/40104320.txt b/fastlane/metadata/android/uk/changelogs/40104320.txt new file mode 100644 index 0000000000..9664c615c1 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність. +Перелік усіх змін: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-CN/changelogs/40104080.txt b/fastlane/metadata/android/zh-CN/changelogs/40104080.txt index 44d178cfce..09b5bf2cd3 100644 --- a/fastlane/metadata/android/zh-CN/changelogs/40104080.txt +++ b/fastlane/metadata/android/zh-CN/changelogs/40104080.txt @@ -1,2 +1,2 @@ -此版本的主要变化:Thread timeline are now live and faster. 多个bug修复及稳定性改进。 +此版本的主要变化:消息列时间线 are now live and faster. 多个bug修复及稳定性改进。 完整更改日志:https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-CN/changelogs/40104300.txt b/fastlane/metadata/android/zh-CN/changelogs/40104300.txt new file mode 100644 index 0000000000..f6e5f8ddfc --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/40104300.txt @@ -0,0 +1,2 @@ +此版本的主要变化:启用改善的登录与注册流程。 +完整更改日志:https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-CN/changelogs/40104310.txt b/fastlane/metadata/android/zh-CN/changelogs/40104310.txt new file mode 100644 index 0000000000..f6e5f8ddfc --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/40104310.txt @@ -0,0 +1,2 @@ +此版本的主要变化:启用改善的登录与注册流程。 +完整更改日志:https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-CN/changelogs/40104320.txt b/fastlane/metadata/android/zh-CN/changelogs/40104320.txt new file mode 100644 index 0000000000..be6a485fb4 --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/40104320.txt @@ -0,0 +1,2 @@ +此版本的主要变化:多个bug修复与稳定性改善。 +完整更改日志:https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104320.txt b/fastlane/metadata/android/zh-TW/changelogs/40104320.txt new file mode 100644 index 0000000000..4bcca9a0b8 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/changelogs/40104320.txt @@ -0,0 +1,2 @@ +此版本中的主要變動:多個臭蟲修復與穩定性改善。 +完整的變更紀錄:https://github.com/vector-im/element-android/releases diff --git a/library/ui-strings/build.gradle b/library/ui-strings/build.gradle new file mode 100644 index 0000000000..860fc3c980 --- /dev/null +++ b/library/ui-strings/build.gradle @@ -0,0 +1,22 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'com.likethesalad.stem-library' +} + +android { + compileSdk versions.compileSdk + defaultConfig { + minSdk versions.minSdk + targetSdk versions.targetSdk + } + + compileOptions { + sourceCompatibility versions.sourceCompat + targetCompatibility versions.targetCompat + } + + kotlinOptions { + jvmTarget = "11" + } +} diff --git a/library/ui-strings/src/main/AndroidManifest.xml b/library/ui-strings/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..deff03ee0a --- /dev/null +++ b/library/ui-strings/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/vector/src/main/res/values-ab/strings.xml b/library/ui-strings/src/main/res/values-ab/strings.xml similarity index 100% rename from vector/src/main/res/values-ab/strings.xml rename to library/ui-strings/src/main/res/values-ab/strings.xml diff --git a/vector/src/main/res/values-ang/strings.xml b/library/ui-strings/src/main/res/values-ang/strings.xml similarity index 100% rename from vector/src/main/res/values-ang/strings.xml rename to library/ui-strings/src/main/res/values-ang/strings.xml diff --git a/vector/src/main/res/values-ar/strings.xml b/library/ui-strings/src/main/res/values-ar/strings.xml similarity index 100% rename from vector/src/main/res/values-ar/strings.xml rename to library/ui-strings/src/main/res/values-ar/strings.xml diff --git a/vector/src/main/res/values-ar/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ar/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ar/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ar/strings_no_weblate.xml diff --git a/vector/src/main/res/values-az/strings.xml b/library/ui-strings/src/main/res/values-az/strings.xml similarity index 100% rename from vector/src/main/res/values-az/strings.xml rename to library/ui-strings/src/main/res/values-az/strings.xml diff --git a/vector/src/main/res/values-az/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-az/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-az/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-az/strings_no_weblate.xml diff --git a/vector/src/main/res/values-b+sr+Latn/strings.xml b/library/ui-strings/src/main/res/values-b+sr+Latn/strings.xml similarity index 100% rename from vector/src/main/res/values-b+sr+Latn/strings.xml rename to library/ui-strings/src/main/res/values-b+sr+Latn/strings.xml diff --git a/vector/src/main/res/values-b+sr+Latn/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-b+sr+Latn/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-b+sr+Latn/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-b+sr+Latn/strings_no_weblate.xml diff --git a/vector/src/main/res/values-bg/strings.xml b/library/ui-strings/src/main/res/values-bg/strings.xml similarity index 100% rename from vector/src/main/res/values-bg/strings.xml rename to library/ui-strings/src/main/res/values-bg/strings.xml diff --git a/vector/src/main/res/values-bg/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-bg/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-bg/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-bg/strings_no_weblate.xml diff --git a/vector/src/main/res/values-bn-rBD/strings.xml b/library/ui-strings/src/main/res/values-bn-rBD/strings.xml similarity index 100% rename from vector/src/main/res/values-bn-rBD/strings.xml rename to library/ui-strings/src/main/res/values-bn-rBD/strings.xml diff --git a/vector/src/main/res/values-bn-rBD/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-bn-rBD/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-bn-rBD/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-bn-rBD/strings_no_weblate.xml diff --git a/vector/src/main/res/values-bn-rIN/strings.xml b/library/ui-strings/src/main/res/values-bn-rIN/strings.xml similarity index 100% rename from vector/src/main/res/values-bn-rIN/strings.xml rename to library/ui-strings/src/main/res/values-bn-rIN/strings.xml diff --git a/vector/src/main/res/values-bn-rIN/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-bn-rIN/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-bn-rIN/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-bn-rIN/strings_no_weblate.xml diff --git a/vector/src/main/res/values-bn/strings.xml b/library/ui-strings/src/main/res/values-bn/strings.xml similarity index 100% rename from vector/src/main/res/values-bn/strings.xml rename to library/ui-strings/src/main/res/values-bn/strings.xml diff --git a/vector/src/main/res/values-bs/strings.xml b/library/ui-strings/src/main/res/values-bs/strings.xml similarity index 100% rename from vector/src/main/res/values-bs/strings.xml rename to library/ui-strings/src/main/res/values-bs/strings.xml diff --git a/vector/src/main/res/values-bs/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-bs/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-bs/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-bs/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ca/strings.xml b/library/ui-strings/src/main/res/values-ca/strings.xml similarity index 99% rename from vector/src/main/res/values-ca/strings.xml rename to library/ui-strings/src/main/res/values-ca/strings.xml index c98333ffdb..0c61cdf6c6 100644 --- a/vector/src/main/res/values-ca/strings.xml +++ b/library/ui-strings/src/main/res/values-ca/strings.xml @@ -2600,4 +2600,23 @@ \nPotser el servidor utilitzat no està configurat per mostrar mapes. Obre configuració Tots els xats + Preferències de disseny + Explora sales + Per estar més segur, verifica les teves sessions i tanca qualsevol sessió que no reconeguis o ja no utilitzis. + Altres sessions + Sessions + Obre la llista d\'espais + Crea un nou xat o sala + Gent + Preferits + No llegits + Tot + A - Z + Activitat + Ordena per + Mostra recents + Mostra filtres + Mostra totes les sessions (V2, WIP) + Crea sala + Inicia xat diff --git a/vector/src/main/res/values-ca/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ca/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ca/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ca/strings_no_weblate.xml diff --git a/vector/src/main/res/values-cs/strings.xml b/library/ui-strings/src/main/res/values-cs/strings.xml similarity index 99% rename from vector/src/main/res/values-cs/strings.xml rename to library/ui-strings/src/main/res/values-cs/strings.xml index 960c5e0a40..200480ffa2 100644 --- a/vector/src/main/res/values-cs/strings.xml +++ b/library/ui-strings/src/main/res/values-cs/strings.xml @@ -2650,4 +2650,23 @@ \nTento domovský server nemusí být nakonfigurován pro zobrazování map. Otevřít nastavení Všechny konverzace + Zobrazit všechny relace (V2, WIP) + V zájmu co nejlepšího zabezpečení ověřujte své relace a odhlašujte se ze všech relací, které již nepoznáváte nebo nepoužíváte. + Ostatní relace + Relace + Seznam otevřených prostorů + Vytvořit novou konverzaci nebo místnost + Lidé + Oblíbené + Nepřečtené + Všechny + A - Z + Aktivita + Seřadit podle + Zobrazit nedávné + Zobrazit filtry + Předvolby uspořádání + Prozkoumat místnosti + Vytvořit místnost + Zahájit konverzaci diff --git a/vector/src/main/res/values-cs/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-cs/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-cs/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-cs/strings_no_weblate.xml diff --git a/vector/src/main/res/values-cy/strings.xml b/library/ui-strings/src/main/res/values-cy/strings.xml similarity index 100% rename from vector/src/main/res/values-cy/strings.xml rename to library/ui-strings/src/main/res/values-cy/strings.xml diff --git a/vector/src/main/res/values-cy/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-cy/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-cy/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-cy/strings_no_weblate.xml diff --git a/vector/src/main/res/values-da/strings.xml b/library/ui-strings/src/main/res/values-da/strings.xml similarity index 100% rename from vector/src/main/res/values-da/strings.xml rename to library/ui-strings/src/main/res/values-da/strings.xml diff --git a/vector/src/main/res/values-da/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-da/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-da/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-da/strings_no_weblate.xml diff --git a/vector/src/main/res/values-de/strings.xml b/library/ui-strings/src/main/res/values-de/strings.xml similarity index 98% rename from vector/src/main/res/values-de/strings.xml rename to library/ui-strings/src/main/res/values-de/strings.xml index 40473e9e27..527b21ad56 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/library/ui-strings/src/main/res/values-de/strings.xml @@ -320,7 +320,7 @@ Zu ungelesenen Nachrichten springen Raum verlassen Raum wirklich verlassen\? - DIREKT-CHATS + Direktnachrichten Einladen Verbannen Verbannung aufheben @@ -543,21 +543,21 @@ Du hast aktuell keine Stickerpakete aktiviert. \n \nMöchtest du welche hinzufügen\? - Account deaktivieren - Meinen Account deaktivieren + Konto deaktivieren + Mein Konto deaktivieren Sende Analysedaten ${app_name} sammelt anonyme Analysedaten um uns zu helfen, die App zu verbessern. Ein benötigter Parameter fehlt. Um %1$s weiter zu verwenden, musst die Geschäftsbedingungen begutachten und ihnen zustimmen. Jetzt prüfen - Account deaktivieren + Konto deaktivieren Dies wird dein Konto permanent unbenutzbar machen. Du wirst dich nicht anmelden können und keiner wird denselben Nutzernamen erneut registrieren können. Du verlässt automatisch alle Räume, in denen du bist, und deine Kontoangaben werden vom Identitätsserver gelöscht. Diese Aktion ist unumkehrbar. \n \nDie Deaktivierung deines Konto wird standardmäßig keine deiner gesendeten Nachrichten löschen. Wenn du möchtest, dass auch deine Nachrichten gelöscht werden, wähle zusätzlich die Option unten. \n \nDie Sichtbarkeit deiner Nachrichten ist ähnlich wie bei E-Mails: Wenn deine Nachrichten gelöscht werden, bedeutet dies, dass von dir verschickte Nachrichten nicht mit neuen oder unregistrierten Nutzer geteilt werden. Aber registrierte Nutzer, die bereits Zugang zu diesen Nachrichten haben, behalten weiterhin Zugriff auf ihre Kopie. Bitte alle Nachrichten, die ich gesendet habe, löschen, wenn mein Konto deaktiviert wird (Warnung: Unterhaltungen werden für zukünftige Nutzer unvollständig erscheinen) - Account deaktivieren + Konto deaktivieren Download Schlüssel von deinen anderen Sitzungen erneut anfordern. Bitte öffne ${app_name} auf einem anderen Gerät, das die Nachricht entschlüsseln kann, damit es die Schlüssel an diese Sitzung senden kann. @@ -604,7 +604,7 @@ zusammenklappen %1$s: %2$s +%d - Entfernen + Aus Unterhaltung entfernen Linkvorschau im Chat aktivieren, falls dein Homeserver diese Funktion unterstützt. Schreibbenachrichtigungen senden Lasse andere Benutzer wissen, dass du tippst. @@ -2572,4 +2572,46 @@ Wie lautet die Adresse deines Servers\? Muss 8 oder mehr Zeichen umfassen Wähle deinen Server - + + %1$s und %2$d anderer + %1$s und %2$d andere + + A - Z + Aktivität + Sortierung + Filter anzeigen + Layouteinstellungen + Räume erkunden + Raum erstellen + Ungelesene + Personen + Schreibe deine erste Nachricht, um %s zur Konversation einzuladen + Alle Sitzungen anzeigen (V2, in Arbeit) + Für bestmögliche Sicherheit verifiziere deine Sitzungen und melde dich von allen ab, die du nicht erkennst oder nutzt. + Andere Sitzungen + Sitzungen + Space-Liste öffnen + Beginne ein Gespräch oder erstelle einen Raum + Favoriten + Alle + Karte laden nicht möglich +\nDieser Heimserver könnte für die Kartendarstellung nicht konfiguriert sein. + Einstellungen öffnen + Dieser QR-Code ist fehlerhaft. Bitte versuche es mit einer anderen Methode. + Du wirst deinen verschlüsselten Nachrichtenverlauf nicht abrufen können. Um neu zu beginnen, setze deine Sicherung und Verifizierungsschlüssel zurück. + Verifizierung dieses Gerätes nicht möglich + Aktualisiere deine Daten … + Standort teilen + Du musst die Berechtigung erhalten, um deinen Live-Standort mit diesem Raum zu teilen. + Dir fehlt die Berechtigung, deinen Live-Standort teilen zu dürfen + Passwort zurückgesetzt + Code erneut schicken + Ein Code wurde an %s gesendet + Bestätigungscode + %s muss dein Konto verifizieren + Gib deine Telefonnummer ein + %s muss dein Konto verifizieren + Kontakt aufnehmen + Element Matrix Services (EMS) ist ein robuster und zuverlässiger Hosting-Dienst für schnelle und sichere Echtzeitkommunikation. Erfahre mehr unter element.io/ems + Willst du deinen eigenen Server betreiben\? + \ No newline at end of file diff --git a/vector/src/main/res/values-de/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-de/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-de/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-de/strings_no_weblate.xml diff --git a/vector/src/main/res/values-el/strings.xml b/library/ui-strings/src/main/res/values-el/strings.xml similarity index 100% rename from vector/src/main/res/values-el/strings.xml rename to library/ui-strings/src/main/res/values-el/strings.xml diff --git a/vector/src/main/res/values-el/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-el/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-el/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-el/strings_no_weblate.xml diff --git a/vector/src/main/res/values-en-rGB/strings.xml b/library/ui-strings/src/main/res/values-en-rGB/strings.xml similarity index 100% rename from vector/src/main/res/values-en-rGB/strings.xml rename to library/ui-strings/src/main/res/values-en-rGB/strings.xml diff --git a/vector/src/main/res/values-en-rGB/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-en-rGB/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-en-rGB/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-en-rGB/strings_no_weblate.xml diff --git a/vector/src/main/res/values-eo/strings.xml b/library/ui-strings/src/main/res/values-eo/strings.xml similarity index 100% rename from vector/src/main/res/values-eo/strings.xml rename to library/ui-strings/src/main/res/values-eo/strings.xml diff --git a/vector/src/main/res/values-eo/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-eo/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-eo/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-eo/strings_no_weblate.xml diff --git a/vector/src/main/res/values-es-rMX/strings.xml b/library/ui-strings/src/main/res/values-es-rMX/strings.xml similarity index 100% rename from vector/src/main/res/values-es-rMX/strings.xml rename to library/ui-strings/src/main/res/values-es-rMX/strings.xml diff --git a/vector/src/main/res/values-es-rMX/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-es-rMX/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-es-rMX/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-es-rMX/strings_no_weblate.xml diff --git a/vector/src/main/res/values-es/strings.xml b/library/ui-strings/src/main/res/values-es/strings.xml similarity index 100% rename from vector/src/main/res/values-es/strings.xml rename to library/ui-strings/src/main/res/values-es/strings.xml diff --git a/vector/src/main/res/values-es/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-es/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-es/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-es/strings_no_weblate.xml diff --git a/vector/src/main/res/values-et/strings.xml b/library/ui-strings/src/main/res/values-et/strings.xml similarity index 99% rename from vector/src/main/res/values-et/strings.xml rename to library/ui-strings/src/main/res/values-et/strings.xml index 89460d921c..a476ec4b3a 100644 --- a/vector/src/main/res/values-et/strings.xml +++ b/library/ui-strings/src/main/res/values-et/strings.xml @@ -2591,4 +2591,23 @@ \nSee koduserver ei pruugi olla seadistatud kuvama kaarte. Ava seadistused Kõik vestlused + Näita kõiki sessioone (V2, WIP) + Parima turvalisuse nimel verifitseeri kõik oma sessioonid ning logi välja neist, mida sa enam ei kasuta. + Muud sessioonid + Sessionid + Ava kogukondade loend + Alusta uut vestlust või loo uus jututuba + Inimesed + Lemmikud + Lugemata + Kõik + A - Z + Aktiivsuse alusel + Järjestamisviis + Näita hiljutisi sõnumeid + Näita otsinguvalikuid + Paigutuse seadistused + Tutvu jututubadega + Loo jututuba + Alusta vestlust diff --git a/vector/src/main/res/values-et/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-et/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-et/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-et/strings_no_weblate.xml diff --git a/vector/src/main/res/values-eu/strings.xml b/library/ui-strings/src/main/res/values-eu/strings.xml similarity index 100% rename from vector/src/main/res/values-eu/strings.xml rename to library/ui-strings/src/main/res/values-eu/strings.xml diff --git a/vector/src/main/res/values-eu/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-eu/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-eu/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-eu/strings_no_weblate.xml diff --git a/vector/src/main/res/values-fa/strings.xml b/library/ui-strings/src/main/res/values-fa/strings.xml similarity index 99% rename from vector/src/main/res/values-fa/strings.xml rename to library/ui-strings/src/main/res/values-fa/strings.xml index c534356e92..d1dbb57593 100644 --- a/vector/src/main/res/values-fa/strings.xml +++ b/library/ui-strings/src/main/res/values-fa/strings.xml @@ -2600,4 +2600,23 @@ \nشاید این کارساز خانگی برای نمایش نقشه‌ها پیکربندی نشده باشد. گشودن تنظیمات تمامی گپ‌ها + نمایش تمامی نشست‌ها (ن۲، دح‌ت) + برای امنیت بیش‌تر، نشست‌هایتان را تأیید و از هر نشستی که تشخیصش نمی‌دهید یا دیگر استفاده نمی‌کنید خارج شوید. + دیگر نشست‌ها + نشست‌ها + گشودن سیاههٔ فضاها + ایجاد اتاق یا گفت‌وگویی جدید + افراد + محبوب‌ها + نخوانده‌ها + همه + آ - ی + فعّالیت + چینش بر اساس + نمایش تازگی‌ها + نمایش پالایه‌ها + ترجیحات چینش + کاوش اتاق‌ها + ایجاد اتاق + آغاز گپ diff --git a/vector/src/main/res/values-fa/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-fa/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-fa/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-fa/strings_no_weblate.xml diff --git a/vector/src/main/res/values-fi/strings.xml b/library/ui-strings/src/main/res/values-fi/strings.xml similarity index 100% rename from vector/src/main/res/values-fi/strings.xml rename to library/ui-strings/src/main/res/values-fi/strings.xml diff --git a/vector/src/main/res/values-fi/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-fi/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-fi/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-fi/strings_no_weblate.xml diff --git a/vector/src/main/res/values-fr-rCA/strings.xml b/library/ui-strings/src/main/res/values-fr-rCA/strings.xml similarity index 100% rename from vector/src/main/res/values-fr-rCA/strings.xml rename to library/ui-strings/src/main/res/values-fr-rCA/strings.xml diff --git a/vector/src/main/res/values-fr-rCA/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-fr-rCA/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-fr-rCA/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-fr-rCA/strings_no_weblate.xml diff --git a/vector/src/main/res/values-fr/strings.xml b/library/ui-strings/src/main/res/values-fr/strings.xml similarity index 99% rename from vector/src/main/res/values-fr/strings.xml rename to library/ui-strings/src/main/res/values-fr/strings.xml index c5a7a7b2b7..0bc033c93a 100644 --- a/vector/src/main/res/values-fr/strings.xml +++ b/library/ui-strings/src/main/res/values-fr/strings.xml @@ -2600,4 +2600,23 @@ \nCe serveur d’accueil n’a peut-être pas été configuré pour afficher les cartes. Ouvrir les paramètres Toutes les conversations + Afficher toutes les sessions (V2, en cours) + Pour une meilleure sécurité, vérifiez vos sessions et déconnectez toutes les sessions que vous ne connaissez pas ou que vous n’utilisez plus. + Autres sessions + Sessions + Ouvrir la liste des espaces + Créer une nouvelle conversation ou salon + Personnes + Favoris + Non lus + Tous + A - Z + Activité + Trier par + Afficher les récents + Afficher les filtres + Préférences de présentation + Parcourir les salons + Créer un salon + Commencer une discussion diff --git a/vector/src/main/res/values-fr/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-fr/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-fr/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-fr/strings_no_weblate.xml diff --git a/vector/src/main/res/values-fy/strings.xml b/library/ui-strings/src/main/res/values-fy/strings.xml similarity index 100% rename from vector/src/main/res/values-fy/strings.xml rename to library/ui-strings/src/main/res/values-fy/strings.xml diff --git a/vector/src/main/res/values-fy/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-fy/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-fy/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-fy/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ga/strings.xml b/library/ui-strings/src/main/res/values-ga/strings.xml similarity index 100% rename from vector/src/main/res/values-ga/strings.xml rename to library/ui-strings/src/main/res/values-ga/strings.xml diff --git a/vector/src/main/res/values-ga/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ga/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ga/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ga/strings_no_weblate.xml diff --git a/vector/src/main/res/values-gl/strings.xml b/library/ui-strings/src/main/res/values-gl/strings.xml similarity index 100% rename from vector/src/main/res/values-gl/strings.xml rename to library/ui-strings/src/main/res/values-gl/strings.xml diff --git a/vector/src/main/res/values-gl/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-gl/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-gl/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-gl/strings_no_weblate.xml diff --git a/vector/src/main/res/values-hr/strings.xml b/library/ui-strings/src/main/res/values-hr/strings.xml similarity index 100% rename from vector/src/main/res/values-hr/strings.xml rename to library/ui-strings/src/main/res/values-hr/strings.xml diff --git a/vector/src/main/res/values-hr/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-hr/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-hr/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-hr/strings_no_weblate.xml diff --git a/vector/src/main/res/values-hu/strings.xml b/library/ui-strings/src/main/res/values-hu/strings.xml similarity index 100% rename from vector/src/main/res/values-hu/strings.xml rename to library/ui-strings/src/main/res/values-hu/strings.xml diff --git a/vector/src/main/res/values-hu/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-hu/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-hu/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-hu/strings_no_weblate.xml diff --git a/vector/src/main/res/values-in/strings.xml b/library/ui-strings/src/main/res/values-in/strings.xml similarity index 99% rename from vector/src/main/res/values-in/strings.xml rename to library/ui-strings/src/main/res/values-in/strings.xml index 4dea8c3f92..031e13ed63 100644 --- a/vector/src/main/res/values-in/strings.xml +++ b/library/ui-strings/src/main/res/values-in/strings.xml @@ -2552,4 +2552,23 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. %1$s dan %2$s Email belum diverifikasi, periksa kotak masuk Anda Semua Obrolan + Tampilkan Semua Sesi (V2, Dalam Pengembangan) + Untuk keamanan terbaik, verifikasi sesi Anda dan keluarkan sesi apa pun yang Anda tidak kenal atau Anda tidak gunakan lagi. + Sesi lainnya + Sesi + Buka daftar space + Buat percakapan atau ruangan baru + Orang + Favorit + Belum dibaca + Semua + A - Z + Aktivitas + Urutkan berdasarkan + Tampilkan terkini + Tampilkan saringan + Preferensi tata letak + Jelajahi Ruangan + Buat Ruangan + Mulai Obrolan diff --git a/vector/src/main/res/values-in/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-in/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-in/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-in/strings_no_weblate.xml diff --git a/vector/src/main/res/values-is/strings.xml b/library/ui-strings/src/main/res/values-is/strings.xml similarity index 100% rename from vector/src/main/res/values-is/strings.xml rename to library/ui-strings/src/main/res/values-is/strings.xml diff --git a/vector/src/main/res/values-is/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-is/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-is/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-is/strings_no_weblate.xml diff --git a/vector/src/main/res/values-it/strings.xml b/library/ui-strings/src/main/res/values-it/strings.xml similarity index 99% rename from vector/src/main/res/values-it/strings.xml rename to library/ui-strings/src/main/res/values-it/strings.xml index b14b9d8fbd..5dd17d5cbe 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/library/ui-strings/src/main/res/values-it/strings.xml @@ -2591,4 +2591,23 @@ \nQuesto homeserver potrebbe non essere configurato per mostrare mappe. Apri le impostazioni Tutte le chat + Mostra tutte le sessioni (V2, WIP) + Per una maggiore sicurezza, verifica le tue sessioni e disconnetti quelle che non riconosci o che non usi più. + Altre sessioni + Sessioni + Apri elenco spazi + Crea una nuova conversazione o stanza + Persone + Preferiti + Non lette + Tutte + A - Z + Attività + Ordina per + Mostra recenti + Mostra filtri + Preferenze disposizione + Esplora le stanze + Crea una stanza + Inizia una chat diff --git a/vector/src/main/res/values-it/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-it/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-it/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-it/strings_no_weblate.xml diff --git a/vector/src/main/res/values-iw/strings.xml b/library/ui-strings/src/main/res/values-iw/strings.xml similarity index 100% rename from vector/src/main/res/values-iw/strings.xml rename to library/ui-strings/src/main/res/values-iw/strings.xml diff --git a/vector/src/main/res/values-iw/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-iw/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-iw/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-iw/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ja/strings.xml b/library/ui-strings/src/main/res/values-ja/strings.xml similarity index 100% rename from vector/src/main/res/values-ja/strings.xml rename to library/ui-strings/src/main/res/values-ja/strings.xml diff --git a/vector/src/main/res/values-ja/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ja/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ja/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ja/strings_no_weblate.xml diff --git a/vector/src/main/res/values-kaa/strings.xml b/library/ui-strings/src/main/res/values-kaa/strings.xml similarity index 100% rename from vector/src/main/res/values-kaa/strings.xml rename to library/ui-strings/src/main/res/values-kaa/strings.xml diff --git a/vector/src/main/res/values-kab/strings.xml b/library/ui-strings/src/main/res/values-kab/strings.xml similarity index 100% rename from vector/src/main/res/values-kab/strings.xml rename to library/ui-strings/src/main/res/values-kab/strings.xml diff --git a/vector/src/main/res/values-kab/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-kab/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-kab/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-kab/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ko/strings.xml b/library/ui-strings/src/main/res/values-ko/strings.xml similarity index 100% rename from vector/src/main/res/values-ko/strings.xml rename to library/ui-strings/src/main/res/values-ko/strings.xml diff --git a/vector/src/main/res/values-ko/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ko/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ko/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ko/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ku/strings.xml b/library/ui-strings/src/main/res/values-ku/strings.xml similarity index 100% rename from vector/src/main/res/values-ku/strings.xml rename to library/ui-strings/src/main/res/values-ku/strings.xml diff --git a/vector/src/main/res/values-ku/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ku/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ku/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ku/strings_no_weblate.xml diff --git a/vector/src/main/res/values-lo/strings.xml b/library/ui-strings/src/main/res/values-lo/strings.xml similarity index 100% rename from vector/src/main/res/values-lo/strings.xml rename to library/ui-strings/src/main/res/values-lo/strings.xml diff --git a/vector/src/main/res/values-lo/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-lo/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-lo/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-lo/strings_no_weblate.xml diff --git a/vector/src/main/res/values-lt/strings.xml b/library/ui-strings/src/main/res/values-lt/strings.xml similarity index 100% rename from vector/src/main/res/values-lt/strings.xml rename to library/ui-strings/src/main/res/values-lt/strings.xml diff --git a/vector/src/main/res/values-lt/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-lt/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-lt/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-lt/strings_no_weblate.xml diff --git a/vector/src/main/res/values-lv/strings.xml b/library/ui-strings/src/main/res/values-lv/strings.xml similarity index 100% rename from vector/src/main/res/values-lv/strings.xml rename to library/ui-strings/src/main/res/values-lv/strings.xml diff --git a/vector/src/main/res/values-lv/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-lv/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-lv/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-lv/strings_no_weblate.xml diff --git a/vector/src/main/res/values-mk/strings.xml b/library/ui-strings/src/main/res/values-mk/strings.xml similarity index 100% rename from vector/src/main/res/values-mk/strings.xml rename to library/ui-strings/src/main/res/values-mk/strings.xml diff --git a/vector/src/main/res/values-ml/strings.xml b/library/ui-strings/src/main/res/values-ml/strings.xml similarity index 100% rename from vector/src/main/res/values-ml/strings.xml rename to library/ui-strings/src/main/res/values-ml/strings.xml diff --git a/vector/src/main/res/values-ml/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ml/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ml/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ml/strings_no_weblate.xml diff --git a/vector/src/main/res/values-nb-rNO/strings.xml b/library/ui-strings/src/main/res/values-nb-rNO/strings.xml similarity index 100% rename from vector/src/main/res/values-nb-rNO/strings.xml rename to library/ui-strings/src/main/res/values-nb-rNO/strings.xml diff --git a/vector/src/main/res/values-nb-rNO/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-nb-rNO/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-nb-rNO/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-nb-rNO/strings_no_weblate.xml diff --git a/vector/src/main/res/values-nl/strings.xml b/library/ui-strings/src/main/res/values-nl/strings.xml similarity index 99% rename from vector/src/main/res/values-nl/strings.xml rename to library/ui-strings/src/main/res/values-nl/strings.xml index 513fb42fa1..b1d239963e 100644 --- a/vector/src/main/res/values-nl/strings.xml +++ b/library/ui-strings/src/main/res/values-nl/strings.xml @@ -2596,4 +2596,27 @@ %1$s en %2$s E-mailadres niet geverifieerd, controleer je inbox + Toon alle sessies (V2, WIP) + Kan kaart niet laden +\nDeze server is mogelijk niet geconfigureerd om kaarten weer te geven. + Open instellingen + Voor de beste beveiliging verifieert u uw sessies en meldt u zich af bij elke sessie die u niet meer herkent of gebruikt. + Andere sessies + Sessies + Lijst met publieke spaces + Maak een nieuw gesprek of een nieuwe kamer + Personen + Favorieten + Ongelezen + Alles + A - Z + Activiteit + Sorteer op + Recente tonen + Toon filters + Lay-outvoorkeuren + Ontdek kamers + Kamer creëren + Start gesprek + Alle gesprekken diff --git a/vector/src/main/res/values-nl/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-nl/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-nl/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-nl/strings_no_weblate.xml diff --git a/vector/src/main/res/values-nn/strings.xml b/library/ui-strings/src/main/res/values-nn/strings.xml similarity index 100% rename from vector/src/main/res/values-nn/strings.xml rename to library/ui-strings/src/main/res/values-nn/strings.xml diff --git a/vector/src/main/res/values-nn/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-nn/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-nn/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-nn/strings_no_weblate.xml diff --git a/vector/src/main/res/values-pa/strings.xml b/library/ui-strings/src/main/res/values-pa/strings.xml similarity index 100% rename from vector/src/main/res/values-pa/strings.xml rename to library/ui-strings/src/main/res/values-pa/strings.xml diff --git a/vector/src/main/res/values-pa/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-pa/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-pa/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-pa/strings_no_weblate.xml diff --git a/vector/src/main/res/values-pl/strings.xml b/library/ui-strings/src/main/res/values-pl/strings.xml similarity index 98% rename from vector/src/main/res/values-pl/strings.xml rename to library/ui-strings/src/main/res/values-pl/strings.xml index ecc9316084..682fd1df1e 100644 --- a/vector/src/main/res/values-pl/strings.xml +++ b/library/ui-strings/src/main/res/values-pl/strings.xml @@ -2686,4 +2686,36 @@ %1$s i %2$s Email nie został zweryfikowany, sprawdź swoją skrzynkę + Nie udało się zarejestrować tokena punktu końcowego na serwerze domowym: +\n%1$s + Wyświetl wszystkie sesje (V2, WIP) + Bieżąca brama: %s + Wejście + Nie można znaleźć punktu końcowego. + Bieżący punkt końcowy: %s + Punkt końcowy + Nie można wczytać mapy. +\nTen serwer macierzysty może nie być skonfigurowany do wyświetlania map. + Otwórz ustawienia + Aby zapewnić najlepsze bezpieczeństwo, zweryfikuj swoje sesje i wyloguj się z każdej sesji, której już nie rozpoznajesz lub której już nie używasz. + Inne sesje + Sesje + Lista otwartych przestrzeni + Utwórz nową rozmowę lub pokój + Ludzie + Ulubione + Nieprzeczytane + Wszystkie + Punkt końcowy został pomyślnie zarejestrowany na serwerze domowym. + Rejestracja punktu końcowego + A - Z + Aktywności + Sortuj według + Wyświetl ostatnie + Wyświetl filtry + Preferencje interfejsu + Przeglądaj pokoje + Utwórz pokój + Zacznij rozmawiać + Wszystkie rozmowy diff --git a/vector/src/main/res/values-pl/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-pl/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-pl/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-pl/strings_no_weblate.xml diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/library/ui-strings/src/main/res/values-pt-rBR/strings.xml similarity index 99% rename from vector/src/main/res/values-pt-rBR/strings.xml rename to library/ui-strings/src/main/res/values-pt-rBR/strings.xml index a148ea90cb..23dd6ae75f 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/library/ui-strings/src/main/res/values-pt-rBR/strings.xml @@ -2600,4 +2600,23 @@ \nEste servidor casa pode não estar configurado para exibir mapas. Abrir configurações Todos os Chats + Mostrar Todas Sessões (V2, WIP) + Para a melhor segurança, verifique suas sessões e faça signout de qualquer sessão que você não reconhece ou usa mais. + Outras sessões + Sessões + Abrir lista de espaços + Criar uma nova conversa ou sala + Todas + Pessoas + Favoritas + Não-lidas + A - Z + Atividade + Ordenar por + Mostrar recentes + Mostrar filtros + Preferências de layout + Explorar Salas + Criar Sala + Começar Chat diff --git a/vector/src/main/res/values-pt-rBR/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-pt-rBR/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-pt-rBR/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-pt-rBR/strings_no_weblate.xml diff --git a/vector/src/main/res/values-pt/strings.xml b/library/ui-strings/src/main/res/values-pt/strings.xml similarity index 100% rename from vector/src/main/res/values-pt/strings.xml rename to library/ui-strings/src/main/res/values-pt/strings.xml diff --git a/vector/src/main/res/values-pt/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-pt/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-pt/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-pt/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ro/strings.xml b/library/ui-strings/src/main/res/values-ro/strings.xml similarity index 100% rename from vector/src/main/res/values-ro/strings.xml rename to library/ui-strings/src/main/res/values-ro/strings.xml diff --git a/vector/src/main/res/values-ro/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ro/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ro/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ro/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ru/strings.xml b/library/ui-strings/src/main/res/values-ru/strings.xml similarity index 99% rename from vector/src/main/res/values-ru/strings.xml rename to library/ui-strings/src/main/res/values-ru/strings.xml index 01ce2f1bf6..4852be1f82 100644 --- a/vector/src/main/res/values-ru/strings.xml +++ b/library/ui-strings/src/main/res/values-ru/strings.xml @@ -2659,5 +2659,23 @@ Открыть настройки Не удалось загрузить карту \nВозможно, этот домашний сервер не настроен для отображения карт. - Все Беседы - + Все беседы + Для лучшей безопасности заверьте свои сессии и выйдите из тех, которые более не признаёте или не используете. + Другие сессии + Сессии + Создать беседу или комнату + Показать все сессии (V2, в разработке) + Люди + Настройки макета + Фильтры + Недавние + Избранные + Непрочитанные + Все + А - Я + Активности + Сортировать по + Обзор комнат + Начать беседу + Создать комнату + \ No newline at end of file diff --git a/vector/src/main/res/values-ru/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-ru/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-ru/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-ru/strings_no_weblate.xml diff --git a/vector/src/main/res/values-rue/strings.xml b/library/ui-strings/src/main/res/values-rue/strings.xml similarity index 100% rename from vector/src/main/res/values-rue/strings.xml rename to library/ui-strings/src/main/res/values-rue/strings.xml diff --git a/vector/src/main/res/values-si/strings.xml b/library/ui-strings/src/main/res/values-si/strings.xml similarity index 100% rename from vector/src/main/res/values-si/strings.xml rename to library/ui-strings/src/main/res/values-si/strings.xml diff --git a/vector/src/main/res/values-si/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-si/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-si/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-si/strings_no_weblate.xml diff --git a/vector/src/main/res/values-sk/strings.xml b/library/ui-strings/src/main/res/values-sk/strings.xml similarity index 99% rename from vector/src/main/res/values-sk/strings.xml rename to library/ui-strings/src/main/res/values-sk/strings.xml index cb2d371ccc..68663b3b9c 100644 --- a/vector/src/main/res/values-sk/strings.xml +++ b/library/ui-strings/src/main/res/values-sk/strings.xml @@ -2650,4 +2650,23 @@ \nTento domovský server nemusí byť nakonfigurovaný na zobrazovanie máp. Otvoriť nastavenia Všetky konverzácie + Zobraziť všetky relácie (V2, WIP) + V záujme čo najlepšieho zabezpečenia overte svoje relácie a odhláste sa z každej relácie, ktorú už nepoznáte alebo nepoužívate. + Iné relácie + Relácie + Otvoriť zoznam priestorov + Vytvoriť novú konverzáciu alebo miestnosť + Ľudia + Obľúbené + Neprečítané + Všetky + A - Z + Aktivity + Zoradiť podľa + Zobraziť posledné + Zobraziť filtre + Predvoľby rozmiestnenia + Preskúmať miestnosti + Vytvoriť miestnosť + Začať konverzáciu diff --git a/vector/src/main/res/values-sk/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-sk/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-sk/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-sk/strings_no_weblate.xml diff --git a/vector/src/main/res/values-sl/strings.xml b/library/ui-strings/src/main/res/values-sl/strings.xml similarity index 100% rename from vector/src/main/res/values-sl/strings.xml rename to library/ui-strings/src/main/res/values-sl/strings.xml diff --git a/vector/src/main/res/values-sl/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-sl/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-sl/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-sl/strings_no_weblate.xml diff --git a/vector/src/main/res/values-sq/strings.xml b/library/ui-strings/src/main/res/values-sq/strings.xml similarity index 100% rename from vector/src/main/res/values-sq/strings.xml rename to library/ui-strings/src/main/res/values-sq/strings.xml diff --git a/vector/src/main/res/values-sq/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-sq/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-sq/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-sq/strings_no_weblate.xml diff --git a/vector/src/main/res/values-sr/strings.xml b/library/ui-strings/src/main/res/values-sr/strings.xml similarity index 100% rename from vector/src/main/res/values-sr/strings.xml rename to library/ui-strings/src/main/res/values-sr/strings.xml diff --git a/vector/src/main/res/values-sr/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-sr/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-sr/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-sr/strings_no_weblate.xml diff --git a/vector/src/main/res/values-sv/strings.xml b/library/ui-strings/src/main/res/values-sv/strings.xml similarity index 100% rename from vector/src/main/res/values-sv/strings.xml rename to library/ui-strings/src/main/res/values-sv/strings.xml diff --git a/vector/src/main/res/values-sv/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-sv/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-sv/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-sv/strings_no_weblate.xml diff --git a/vector/src/main/res/values-szl/strings.xml b/library/ui-strings/src/main/res/values-szl/strings.xml similarity index 100% rename from vector/src/main/res/values-szl/strings.xml rename to library/ui-strings/src/main/res/values-szl/strings.xml diff --git a/vector/src/main/res/values-szl/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-szl/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-szl/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-szl/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ta/strings.xml b/library/ui-strings/src/main/res/values-ta/strings.xml similarity index 100% rename from vector/src/main/res/values-ta/strings.xml rename to library/ui-strings/src/main/res/values-ta/strings.xml diff --git a/vector/src/main/res/values-te/strings.xml b/library/ui-strings/src/main/res/values-te/strings.xml similarity index 100% rename from vector/src/main/res/values-te/strings.xml rename to library/ui-strings/src/main/res/values-te/strings.xml diff --git a/vector/src/main/res/values-te/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-te/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-te/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-te/strings_no_weblate.xml diff --git a/vector/src/main/res/values-th/strings.xml b/library/ui-strings/src/main/res/values-th/strings.xml similarity index 100% rename from vector/src/main/res/values-th/strings.xml rename to library/ui-strings/src/main/res/values-th/strings.xml diff --git a/vector/src/main/res/values-th/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-th/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-th/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-th/strings_no_weblate.xml diff --git a/vector/src/main/res/values-tlh/strings.xml b/library/ui-strings/src/main/res/values-tlh/strings.xml similarity index 100% rename from vector/src/main/res/values-tlh/strings.xml rename to library/ui-strings/src/main/res/values-tlh/strings.xml diff --git a/vector/src/main/res/values-tlh/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-tlh/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-tlh/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-tlh/strings_no_weblate.xml diff --git a/vector/src/main/res/values-tr/strings.xml b/library/ui-strings/src/main/res/values-tr/strings.xml similarity index 100% rename from vector/src/main/res/values-tr/strings.xml rename to library/ui-strings/src/main/res/values-tr/strings.xml diff --git a/vector/src/main/res/values-tr/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-tr/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-tr/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-tr/strings_no_weblate.xml diff --git a/vector/src/main/res/values-tzm/strings.xml b/library/ui-strings/src/main/res/values-tzm/strings.xml similarity index 100% rename from vector/src/main/res/values-tzm/strings.xml rename to library/ui-strings/src/main/res/values-tzm/strings.xml diff --git a/vector/src/main/res/values-tzm/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-tzm/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-tzm/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-tzm/strings_no_weblate.xml diff --git a/vector/src/main/res/values-uk/strings.xml b/library/ui-strings/src/main/res/values-uk/strings.xml similarity index 99% rename from vector/src/main/res/values-uk/strings.xml rename to library/ui-strings/src/main/res/values-uk/strings.xml index bf786be0c4..47f15c9a27 100644 --- a/vector/src/main/res/values-uk/strings.xml +++ b/library/ui-strings/src/main/res/values-uk/strings.xml @@ -2700,4 +2700,23 @@ \nМожливо, цей домашній сервер не налаштовано для показу карт. Відкрити налаштування Усі бесіди + Показати всі сеанси (V2, WIP) + Для найкращої безпеки перевірте свої сеанси та вийдіть з усіх сеансів, які ви більше не розпізнаєте або не використовуєте. + Інші сеанси + Сеанси + Відкрити список кімнат + Створити нову розмову або кімнату + Люди + Обрані + Непрочитані + Усі + А - Я + Діяльністю + Упорядкувати за + Показувати останні + Показати фільтри + Налаштування макета + Знайти кімнати + Створити кімнату + Розпочати бесіду diff --git a/vector/src/main/res/values-uk/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-uk/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-uk/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-uk/strings_no_weblate.xml diff --git a/vector/src/main/res/values-ur/strings.xml b/library/ui-strings/src/main/res/values-ur/strings.xml similarity index 100% rename from vector/src/main/res/values-ur/strings.xml rename to library/ui-strings/src/main/res/values-ur/strings.xml diff --git a/vector/src/main/res/values-uz/strings.xml b/library/ui-strings/src/main/res/values-uz/strings.xml similarity index 100% rename from vector/src/main/res/values-uz/strings.xml rename to library/ui-strings/src/main/res/values-uz/strings.xml diff --git a/vector/src/main/res/values-uz/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-uz/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-uz/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-uz/strings_no_weblate.xml diff --git a/vector/src/main/res/values-vi/strings.xml b/library/ui-strings/src/main/res/values-vi/strings.xml similarity index 100% rename from vector/src/main/res/values-vi/strings.xml rename to library/ui-strings/src/main/res/values-vi/strings.xml diff --git a/vector/src/main/res/values-vi/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-vi/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-vi/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-vi/strings_no_weblate.xml diff --git a/vector/src/main/res/values-vls/strings.xml b/library/ui-strings/src/main/res/values-vls/strings.xml similarity index 100% rename from vector/src/main/res/values-vls/strings.xml rename to library/ui-strings/src/main/res/values-vls/strings.xml diff --git a/vector/src/main/res/values-vls/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-vls/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-vls/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-vls/strings_no_weblate.xml diff --git a/vector/src/main/res/values-zh-rCN/strings.xml b/library/ui-strings/src/main/res/values-zh-rCN/strings.xml similarity index 99% rename from vector/src/main/res/values-zh-rCN/strings.xml rename to library/ui-strings/src/main/res/values-zh-rCN/strings.xml index 3083978734..6f7151167f 100644 --- a/vector/src/main/res/values-zh-rCN/strings.xml +++ b/library/ui-strings/src/main/res/values-zh-rCN/strings.xml @@ -1309,7 +1309,7 @@ 管理会话 登出此会话 加密信息不可用 - 此会话对安全消息可信因为你已验证它: + 因为你已验证此会话,所以其在安全地收发消息上可受信任: 验证此会话以将其标记为可信,并授予其访问加密消息的权限。如果你未登录此会话,则你的账户可能已被盗: %d 个活动会话 @@ -1323,7 +1323,7 @@ 会话 可信任 未信任 - 此会话可信任,可以用于收发加密消息,因为 %1$s(%2$s)已验证了它: + 可信任此会话用于安全地收发消息,因为%1$s(%2$s)已验证了它: %1$s (%2$s) 使用新会话登录: 在此用户信任此会话之前,发送到该会话和从该会话发送的消息均标有警告。或者,你可以手动进行验证。 初始化交叉签名 @@ -2550,4 +2550,23 @@ \n此主服务器可能没有设置好显示地图。 打开设置 全部聊天 + 显示全部会话(V2, WIP) + 为获得最佳安全性,请验证你的会话,并从任何你不认识或不再使用的会话登出。 + 其他会话 + 会话 + 打开空间列表 + 创建新对话或房间 + + 收藏 + 未读 + 全部 + A—Z + 活动 + 排序方式 + 显示最近的 + 显示过滤条件 + 布局偏好 + 探索房间 + 创建房间 + 开始聊天 diff --git a/vector/src/main/res/values-zh-rCN/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-zh-rCN/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-zh-rCN/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-zh-rCN/strings_no_weblate.xml diff --git a/vector/src/main/res/values-zh-rTW/strings.xml b/library/ui-strings/src/main/res/values-zh-rTW/strings.xml similarity index 99% rename from vector/src/main/res/values-zh-rTW/strings.xml rename to library/ui-strings/src/main/res/values-zh-rTW/strings.xml index 91388ed561..93b4a8d4c6 100644 --- a/vector/src/main/res/values-zh-rTW/strings.xml +++ b/library/ui-strings/src/main/res/values-zh-rTW/strings.xml @@ -2550,4 +2550,23 @@ \n此家伺服器可能未設定好顯示地圖。 開啟設定 所有聊天 + 顯示所有工作階段 (V2, WIP) + 為了取得最佳安全性,請驗證您的工作階段並登出任何您無法識別或不再使用的工作階段。 + 其他工作階段 + 工作階段 + 開啟空間清單 + 建立新的對話或聊天室 + 聯絡人 + 最愛 + 未讀 + 全部 + A - Z + 排序由 + 活動 + 顯示最近的 + 顯示過濾條件 + 佈局偏好設定 + 探索聊天室 + 建立聊天室 + 開始聊天 diff --git a/vector/src/main/res/values-zh-rTW/strings_no_weblate.xml b/library/ui-strings/src/main/res/values-zh-rTW/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values-zh-rTW/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values-zh-rTW/strings_no_weblate.xml diff --git a/vector/src/main/res/values/array.xml b/library/ui-strings/src/main/res/values/array.xml similarity index 100% rename from vector/src/main/res/values/array.xml rename to library/ui-strings/src/main/res/values/array.xml diff --git a/vector/src/main/res/values/donottranslate.xml b/library/ui-strings/src/main/res/values/donottranslate.xml similarity index 100% rename from vector/src/main/res/values/donottranslate.xml rename to library/ui-strings/src/main/res/values/donottranslate.xml diff --git a/vector/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml similarity index 99% rename from vector/src/main/res/values/strings.xml rename to library/ui-strings/src/main/res/values/strings.xml index 178feb2223..eefb4300f8 100644 --- a/vector/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -3228,5 +3228,19 @@ View All (%1$d) Verified · Last activity %1$s Unverified · Last activity %1$s + + + Inactive for %1$d+ day (%2$s) + Inactive for %1$d+ days (%2$s) + + Security recommendations + Improve your account security by following these recommendations. + Unverified sessions + Verify or sign out from unverified sessions. + Inactive sessions + + Consider signing out from old sessions (%1$d day or more) that you don’t use anymore. + Consider signing out from old sessions (%1$d days or more) that you don’t use anymore. + diff --git a/vector/src/main/res/values/strings_no_weblate.xml b/library/ui-strings/src/main/res/values/strings_no_weblate.xml similarity index 100% rename from vector/src/main/res/values/strings_no_weblate.xml rename to library/ui-strings/src/main/res/values/strings_no_weblate.xml diff --git a/library/ui-styles/src/main/res/values/colors.xml b/library/ui-styles/src/main/res/values/colors.xml index e72d02f51e..01af740d43 100644 --- a/library/ui-styles/src/main/res/values/colors.xml +++ b/library/ui-styles/src/main/res/values/colors.xml @@ -143,6 +143,7 @@ #0DBD8B #17191C #FF4B55 + #0FFF4B55 diff --git a/library/ui-styles/src/main/res/values/stylable_security_recommendation_view.xml b/library/ui-styles/src/main/res/values/stylable_security_recommendation_view.xml new file mode 100644 index 0000000000..4283c8da8a --- /dev/null +++ b/library/ui-styles/src/main/res/values/stylable_security_recommendation_view.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/settings.gradle b/settings.gradle index 023d09e74a..e5b5511b94 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,6 +3,7 @@ include ':vector' include ':vector-config' include ':matrix-sdk-android' include ':library:core-utils' +include ':library:ui-strings' include ':library:ui-styles' include ':library:jsonviewer' include ':library:attachment-viewer' diff --git a/vector-app/build.gradle b/vector-app/build.gradle index e52d2b6bb9..2368586bfb 100644 --- a/vector-app/build.gradle +++ b/vector-app/build.gradle @@ -236,6 +236,7 @@ android { debug { applicationIdSuffix ".debug" signingConfig signingConfigs.debug + resValue "string", "app_name", "Element dbg" resValue "color", "launcher_background", "#0DBD8B" if (project.hasProperty("coverage")) { @@ -244,6 +245,7 @@ android { } release { + resValue "string", "app_name", "Element" resValue "color", "launcher_background", "#0DBD8B" postprocessing { removeUnusedCode true @@ -260,8 +262,8 @@ android { initWith release applicationIdSuffix ".nightly" versionNameSuffix "-nightly" + // Just override the background color of the launcher icon for the nightly build. resValue "color", "launcher_background", "#07007E" - // We need to copy paste this block, this is not done automatically by `initWith release` postprocessing { removeUnusedCode true diff --git a/vector/build.gradle b/vector/build.gradle index c19aee0987..ee549fc4b6 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -3,7 +3,6 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-parcelize' apply plugin: 'kotlin-kapt' apply plugin: 'dagger.hilt.android.plugin' -apply plugin: 'com.likethesalad.stem-library' if (project.hasProperty("coverage")) { apply plugin: 'jacoco' @@ -63,19 +62,15 @@ android { } buildTypes { debug { - resValue "string", "app_name", "Element dbg" if (project.hasProperty("coverage")) { testCoverageEnabled = coverage.enableTestCoverage } } nightly { initWith release - resValue "string", "app_name", "Element" matchingFallbacks = ['release'] } - release { - resValue "string", "app_name", "Element" - } + release } flavorDimensions "store" @@ -139,6 +134,7 @@ dependencies { api project(":matrix-sdk-android") implementation project(":matrix-sdk-android-flow") implementation project(":library:jsonviewer") + implementation project(":library:ui-strings") implementation project(":library:ui-styles") implementation project(":library:core-utils") implementation project(":library:attachment-viewer") diff --git a/vector/src/main/java/im/vector/app/core/date/DateFormatKind.kt b/vector/src/main/java/im/vector/app/core/date/DateFormatKind.kt index b08a1dc725..a66066ac8b 100644 --- a/vector/src/main/java/im/vector/app/core/date/DateFormatKind.kt +++ b/vector/src/main/java/im/vector/app/core/date/DateFormatKind.kt @@ -27,7 +27,7 @@ enum class DateFormatKind { // Will show hour or date relative (9:30am or yesterday or Sep 7 or 09/07/2020) ROOM_LIST, - // Will show full date (Sep 7 2020) + // Will show full date (Sep 7, 2020) TIMELINE_DAY_DIVIDER, // Will show full date and time (Mon, Sep 7 2020, 9:30am) 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 e86d3b2ec6..6d94837f88 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 @@ -34,9 +34,11 @@ import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.content.EncryptedEventContent import org.matrix.android.sdk.api.session.events.model.getMsgType import org.matrix.android.sdk.api.session.events.model.isAttachmentMessage +import org.matrix.android.sdk.api.session.events.model.isSticker import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.room.model.ReferencesAggregatedContent import org.matrix.android.sdk.api.session.room.model.RoomSummary +import org.matrix.android.sdk.api.session.room.model.message.MessageType import org.matrix.android.sdk.api.session.room.model.message.MessageVerificationRequestContent import org.matrix.android.sdk.api.session.room.send.SendState import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent @@ -122,7 +124,7 @@ class MessageInformationDataFactory @Inject constructor( isLastFromThisSender = isLastFromThisSender, e2eDecoration = e2eDecoration, sendStateDecoration = sendStateDecoration, - messageType = event.root.getMsgType() + messageType = if (event.root.isSticker()) { MessageType.MSGTYPE_STICKER_LOCAL } else { event.root.getMsgType() } ) } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt index 2c29113ce8..2ed20ab417 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt @@ -82,7 +82,7 @@ abstract class MessageImageVideoItem : AbsMessageItem { // limit on width - val maxWidthDp = min(dimensionConverter.dpToPx(120), maxImageWidth / 2) - finalWidth = min(dimensionConverter.dpToPx(width), maxWidthDp) + finalWidth = min(dimensionConverter.dpToPx(width), maxImageWidth * 3 / 4) finalHeight = finalWidth * height / width } } diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthEmailEntryFragment.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthEmailEntryFragment.kt index 4cd35c8a66..e315f191c1 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthEmailEntryFragment.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthEmailEntryFragment.kt @@ -17,9 +17,11 @@ package im.vector.app.features.onboarding.ftueauth import android.os.Bundle +import android.os.Parcelable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import com.airbnb.mvrx.args import dagger.hilt.android.AndroidEntryPoint import im.vector.app.R import im.vector.app.core.extensions.associateContentStateWith @@ -35,11 +37,18 @@ import im.vector.app.databinding.FragmentFtueEmailInputBinding import im.vector.app.features.onboarding.OnboardingAction import im.vector.app.features.onboarding.OnboardingViewState import im.vector.app.features.onboarding.RegisterAction +import kotlinx.parcelize.Parcelize import org.matrix.android.sdk.api.auth.registration.RegisterThreePid +@Parcelize +data class FtueAuthEmailEntryFragmentArgument( + val mandatory: Boolean, +) : Parcelable + @AndroidEntryPoint -class FtueAuthEmailEntryFragment : - AbstractFtueAuthFragment() { +class FtueAuthEmailEntryFragment : AbstractFtueAuthFragment() { + + private val params: FtueAuthEmailEntryFragmentArgument by args() override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentFtueEmailInputBinding { return FragmentFtueEmailInputBinding.inflate(inflater, container, false) @@ -51,7 +60,11 @@ class FtueAuthEmailEntryFragment : } private fun setupViews() { - views.emailEntryInput.associateContentStateWith(button = views.emailEntrySubmit, enabledPredicate = { it.isEmail() }) + views.emailEntryInput.hint = getString(if (params.mandatory) R.string.ftue_auth_email_entry_title else R.string.login_set_email_optional_hint) + views.emailEntryInput.associateContentStateWith( + button = views.emailEntrySubmit, + enabledPredicate = { it.isEmail() || it.isEmptyAndOptional() }, + ) views.emailEntryInput.setOnImeDoneListener { updateEmail() } views.emailEntryInput.clearErrorOnChange(viewLifecycleOwner) views.emailEntrySubmit.debouncedClicks { updateEmail() } @@ -60,9 +73,14 @@ class FtueAuthEmailEntryFragment : private fun updateEmail() { val email = views.emailEntryInput.content() - viewModel.handle(OnboardingAction.PostRegisterAction(RegisterAction.AddThreePid(RegisterThreePid.Email(email)))) + when { + email.isEmptyAndOptional() -> viewModel.handle(OnboardingAction.PostRegisterAction(RegisterAction.RegisterDummy)) + else -> viewModel.handle(OnboardingAction.PostRegisterAction(RegisterAction.AddThreePid(RegisterThreePid.Email(email)))) + } } + private fun String.isEmptyAndOptional() = isEmpty() && !params.mandatory + override fun updateWithState(state: OnboardingViewState) { views.emailEntryHeaderSubtitle.text = getString(R.string.ftue_auth_email_subtitle, state.selectedHomeserver.userFacingUrl.toReducedUrl()) diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt index f3767aa546..6fe1b5b7bb 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthVariant.kt @@ -411,7 +411,8 @@ class FtueAuthVariant( private fun onEmail(stage: Stage) { when { vectorFeatures.isOnboardingCombinedRegisterEnabled() -> addRegistrationStageFragmentToBackstack( - FtueAuthEmailEntryFragment::class.java + FtueAuthEmailEntryFragment::class.java, + FtueAuthEmailEntryFragmentArgument(mandatory = stage.mandatory) ) else -> addRegistrationStageFragmentToBackstack( FtueAuthGenericTextInputFormFragment::class.java, diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/DevicesViewModel.kt b/vector/src/main/java/im/vector/app/features/settings/devices/DevicesViewModel.kt index 11fc6ecd64..3b5bcb61d9 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/DevicesViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/DevicesViewModel.kt @@ -34,6 +34,7 @@ import im.vector.app.core.resources.StringProvider import im.vector.app.core.utils.PublishDataSource import im.vector.app.features.auth.ReAuthActivity import im.vector.app.features.login.ReAuthHelper +import im.vector.app.features.settings.devices.v2.list.CheckIfSessionIsInactiveUseCase import im.vector.lib.core.utils.flow.throttleFirst import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.combine @@ -52,6 +53,7 @@ import org.matrix.android.sdk.api.auth.UserPasswordAuth import org.matrix.android.sdk.api.auth.data.LoginFlowTypes import org.matrix.android.sdk.api.auth.registration.RegistrationFlowResponse import org.matrix.android.sdk.api.auth.registration.nextUncompletedStage +import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.failure.Failure import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.crypto.crosssigning.DeviceTrustLevel @@ -81,12 +83,15 @@ data class DevicesViewState( val request: Async = Uninitialized, val hasAccountCrossSigning: Boolean = false, val accountCrossSigningIsTrusted: Boolean = false, + val unverifiedSessionsCount: Int = 0, + val inactiveSessionsCount: Int = 0, ) : MavericksState data class DeviceFullInfo( val deviceInfo: DeviceInfo, val cryptoDeviceInfo: CryptoDeviceInfo?, val trustLevelForShield: RoomEncryptionTrustLevel, + val isInactive: Boolean, ) class DevicesViewModel @AssistedInject constructor( @@ -95,6 +100,7 @@ class DevicesViewModel @AssistedInject constructor( private val reAuthHelper: ReAuthHelper, private val stringProvider: StringProvider, private val matrix: Matrix, + private val checkIfSessionIsInactiveUseCase: CheckIfSessionIsInactiveUseCase, ) : VectorViewModel(initialState), VerificationService.Listener { var uiaContinuation: Continuation? = null @@ -125,6 +131,14 @@ class DevicesViewModel @AssistedInject constructor( session.flow().liveUserCryptoDevices(session.myUserId), session.flow().liveMyDevicesInfo() ) { cryptoList, infoList -> + val unverifiedSessionsCount = cryptoList.count { !it.trustLevel?.isVerified().orFalse() } + val inactiveSessionsCount = infoList.count { checkIfSessionIsInactiveUseCase.execute(it.date) } + setState { + copy( + unverifiedSessionsCount = unverifiedSessionsCount, + inactiveSessionsCount = inactiveSessionsCount + ) + } infoList .sortedByDescending { it.lastSeenTs } .map { deviceInfo -> @@ -135,7 +149,8 @@ class DevicesViewModel @AssistedInject constructor( deviceTrustLevel = cryptoDeviceInfo?.trustLevel, isCurrentDevice = deviceInfo.deviceId == session.sessionParams.deviceId ) - DeviceFullInfo(deviceInfo, cryptoDeviceInfo, trustLevelForShield) + val isInactive = checkIfSessionIsInactiveUseCase.execute(deviceInfo.lastSeenTs ?: 0) + DeviceFullInfo(deviceInfo, cryptoDeviceInfo, trustLevelForShield, isInactive) } } .distinctUntilChanged() diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt index 80dfe25c77..78b8c66f9c 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/VectorSettingsDevicesFragment.kt @@ -40,6 +40,8 @@ import im.vector.app.features.settings.devices.DeviceFullInfo import im.vector.app.features.settings.devices.DevicesAction import im.vector.app.features.settings.devices.DevicesViewEvents import im.vector.app.features.settings.devices.DevicesViewModel +import im.vector.app.features.settings.devices.v2.list.SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS +import im.vector.app.features.settings.devices.v2.list.SecurityRecommendationViewState /** * Display the list of the user's devices and sessions. @@ -131,9 +133,11 @@ class VectorSettingsDevicesFragment : } val otherDevices = devices?.filter { it.deviceInfo.deviceId != state.myDeviceId } + renderSecurityRecommendations(state.inactiveSessionsCount, state.unverifiedSessionsCount) renderCurrentDevice(currentDeviceInfo) renderOtherSessionsView(otherDevices) } else { + hideSecurityRecommendations() hideCurrentSessionView() hideOtherSessionsView() } @@ -141,6 +145,38 @@ class VectorSettingsDevicesFragment : handleRequestStatus(state.request) } + private fun renderSecurityRecommendations(inactiveSessionsCount: Int, unverifiedSessionsCount: Int) { + if (unverifiedSessionsCount == 0 && inactiveSessionsCount == 0) { + hideSecurityRecommendations() + } else { + views.deviceListHeaderSectionSecurityRecommendations.isVisible = true + views.deviceListSecurityRecommendationsDivider.isVisible = true + views.deviceListUnverifiedSessionsRecommendation.isVisible = unverifiedSessionsCount > 0 + views.deviceListInactiveSessionsRecommendation.isVisible = inactiveSessionsCount > 0 + val unverifiedSessionsViewState = SecurityRecommendationViewState( + description = getString(R.string.device_manager_unverified_sessions_description), + sessionsCount = unverifiedSessionsCount, + ) + views.deviceListUnverifiedSessionsRecommendation.render(unverifiedSessionsViewState) + val inactiveSessionsViewState = SecurityRecommendationViewState( + description = resources.getQuantityString( + R.plurals.device_manager_inactive_sessions_description, + SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS, + SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS + ), + sessionsCount = inactiveSessionsCount, + ) + views.deviceListInactiveSessionsRecommendation.render(inactiveSessionsViewState) + } + } + + private fun hideSecurityRecommendations() { + views.deviceListHeaderSectionSecurityRecommendations.isVisible = false + views.deviceListUnverifiedSessionsRecommendation.isVisible = false + views.deviceListInactiveSessionsRecommendation.isVisible = false + views.deviceListSecurityRecommendationsDivider.isVisible = false + } + private fun renderOtherSessionsView(otherDevices: List?) { if (otherDevices.isNullOrEmpty()) { hideOtherSessionsView() @@ -169,6 +205,7 @@ class VectorSettingsDevicesFragment : private fun hideCurrentSessionView() { views.deviceListHeaderCurrentSession.isVisible = false views.deviceListCurrentSession.isVisible = false + views.deviceListDividerCurrentSession.isVisible = false } private fun handleRequestStatus(unIgnoreRequest: Async) { diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/CheckIfSessionIsInactiveUseCase.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/CheckIfSessionIsInactiveUseCase.kt new file mode 100644 index 0000000000..8991ad1e3d --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/CheckIfSessionIsInactiveUseCase.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.settings.devices.v2.list + +import im.vector.app.core.time.Clock +import java.util.concurrent.TimeUnit +import javax.inject.Inject + +class CheckIfSessionIsInactiveUseCase @Inject constructor( + private val clock: Clock, +) { + + fun execute(lastSeenTs: Long): Boolean { + // In case of the server doesn't send the last seen date. + if (lastSeenTs == 0L) return true + + val diffMilliseconds = clock.epochMillis() - lastSeenTs + return diffMilliseconds >= TimeUnit.DAYS.toMillis(SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS.toLong()) + } +} diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionItem.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionItem.kt index 2a62100994..e9376953e0 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionItem.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionItem.kt @@ -16,6 +16,7 @@ package im.vector.app.features.settings.devices.v2.list +import android.graphics.drawable.Drawable import android.widget.ImageView import android.widget.TextView import com.airbnb.epoxy.EpoxyAttribute @@ -42,6 +43,9 @@ abstract class OtherSessionItem : VectorEpoxyModel(R.la @EpoxyAttribute var sessionDescription: String? = null + @EpoxyAttribute + var sessionDescriptionDrawable: Drawable? = null + @EpoxyAttribute lateinit var stringProvider: StringProvider @@ -68,6 +72,7 @@ abstract class OtherSessionItem : VectorEpoxyModel(R.la holder.otherSessionVerificationStatusImageView.render(roomEncryptionTrustLevel) holder.otherSessionNameTextView.text = sessionName holder.otherSessionDescriptionTextView.text = sessionDescription + holder.otherSessionDescriptionTextView.setCompoundDrawablesWithIntrinsicBounds(sessionDescriptionDrawable, null, null, null) } class Holder : VectorEpoxyHolder() { diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsController.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsController.kt index 44c73e6eb7..8a5ee05af7 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsController.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/OtherSessionsController.kt @@ -21,6 +21,8 @@ import im.vector.app.R import im.vector.app.core.date.DateFormatKind import im.vector.app.core.date.VectorDateFormatter import im.vector.app.core.epoxy.noResultItem +import im.vector.app.core.resources.ColorProvider +import im.vector.app.core.resources.DrawableProvider import im.vector.app.core.resources.StringProvider import im.vector.app.features.settings.devices.DeviceFullInfo import org.matrix.android.sdk.api.session.crypto.model.RoomEncryptionTrustLevel @@ -29,6 +31,8 @@ import javax.inject.Inject class OtherSessionsController @Inject constructor( private val stringProvider: StringProvider, private val dateFormatter: VectorDateFormatter, + private val drawableProvider: DrawableProvider, + private val colorProvider: ColorProvider, ) : TypedEpoxyController>() { override fun buildModels(data: List?) { @@ -41,12 +45,22 @@ class OtherSessionsController @Inject constructor( } } else { data.take(NUMBER_OF_OTHER_DEVICES_TO_RENDER).forEach { device -> - val formattedLastActivityDate = host.dateFormatter.format(device.deviceInfo.lastSeenTs, DateFormatKind.DEFAULT_DATE_AND_TIME) - val description = if (device.trustLevelForShield == RoomEncryptionTrustLevel.Trusted) { + val dateFormatKind = if (device.isInactive) DateFormatKind.TIMELINE_DAY_DIVIDER else DateFormatKind.DEFAULT_DATE_AND_TIME + val formattedLastActivityDate = host.dateFormatter.format(device.deviceInfo.lastSeenTs, dateFormatKind) + val description = if (device.isInactive) { + stringProvider.getQuantityString( + R.plurals.device_manager_other_sessions_description_inactive, + SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS, + SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS, + formattedLastActivityDate + ) + } else if (device.trustLevelForShield == RoomEncryptionTrustLevel.Trusted) { stringProvider.getString(R.string.device_manager_other_sessions_description_verified, formattedLastActivityDate) } else { stringProvider.getString(R.string.device_manager_other_sessions_description_unverified, formattedLastActivityDate) } + val drawableColor = colorProvider.getColorFromAttribute(R.attr.vctr_content_secondary) + val descriptionDrawable = if (device.isInactive) drawableProvider.getDrawable(R.drawable.ic_inactive_sessions, drawableColor) else null otherSessionItem { id(device.deviceInfo.deviceId) @@ -54,6 +68,7 @@ class OtherSessionsController @Inject constructor( roomEncryptionTrustLevel(device.trustLevelForShield) sessionName(device.deviceInfo.displayName) sessionDescription(description) + sessionDescriptionDrawable(descriptionDrawable) stringProvider(this@OtherSessionsController.stringProvider) } } diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationView.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationView.kt new file mode 100644 index 0000000000..93cf3c0501 --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationView.kt @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.settings.devices.v2.list + +import android.content.Context +import android.content.res.ColorStateList +import android.content.res.TypedArray +import android.util.AttributeSet +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.res.use +import im.vector.app.R +import im.vector.app.databinding.ViewSecurityRecommendationBinding + +class SecurityRecommendationView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + + private val views: ViewSecurityRecommendationBinding + + init { + inflate(context, R.layout.view_security_recommendation, this) + views = ViewSecurityRecommendationBinding.bind(this) + + context.obtainStyledAttributes( + attrs, + R.styleable.SecurityRecommendationView, + 0, + 0 + ).use { + setTitle(it) + setDescription(it) + setImage(it) + } + } + + private fun setTitle(typedArray: TypedArray) { + val title = typedArray.getString(R.styleable.SecurityRecommendationView_recommendationTitle) + views.recommendationTitleTextView.text = title + } + + private fun setDescription(typedArray: TypedArray) { + val description = typedArray.getString(R.styleable.SecurityRecommendationView_recommendationDescription) + setDescription(description) + } + + private fun setImage(typedArray: TypedArray) { + val imageResource = typedArray.getResourceId(R.styleable.SecurityRecommendationView_recommendationImageResource, 0) + val backgroundTint = typedArray.getColor(R.styleable.SecurityRecommendationView_recommendationImageBackgroundTint, 0) + views.recommendationShieldImageView.setImageResource(imageResource) + views.recommendationShieldImageView.backgroundTintList = ColorStateList.valueOf(backgroundTint) + } + + private fun setDescription(description: String?) { + views.recommendationDescriptionTextView.text = description + } + + private fun setCount(sessionsCount: Int) { + views.recommendationViewAllButton.text = context.getString(R.string.device_manager_other_sessions_view_all, sessionsCount) + } + + fun render(viewState: SecurityRecommendationViewState) { + setDescription(viewState.description) + setCount(viewState.sessionsCount) + } +} diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationViewState.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationViewState.kt new file mode 100644 index 0000000000..a5b30ea13b --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SecurityRecommendationViewState.kt @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.settings.devices.v2.list + +data class SecurityRecommendationViewState( + val description: String, + val sessionsCount: Int, +) diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SessionListConstants.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SessionListConstants.kt index c1dbbdff4f..662ce536e7 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SessionListConstants.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/list/SessionListConstants.kt @@ -17,3 +17,4 @@ package im.vector.app.features.settings.devices.v2.list internal const val NUMBER_OF_OTHER_DEVICES_TO_RENDER = 5 +internal const val SESSION_IS_MARKED_AS_INACTIVE_AFTER_DAYS = 90 diff --git a/vector/src/main/res/drawable/bg_security_recommendation_shield.xml b/vector/src/main/res/drawable/bg_security_recommendation_shield.xml new file mode 100644 index 0000000000..3d46fd4ff6 --- /dev/null +++ b/vector/src/main/res/drawable/bg_security_recommendation_shield.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/vector/src/main/res/drawable/ic_inactive_sessions.xml b/vector/src/main/res/drawable/ic_inactive_sessions.xml new file mode 100644 index 0000000000..30ee2b3b3c --- /dev/null +++ b/vector/src/main/res/drawable/ic_inactive_sessions.xml @@ -0,0 +1,9 @@ + + + diff --git a/vector/src/main/res/layout/fragment_ftue_email_input.xml b/vector/src/main/res/layout/fragment_ftue_email_input.xml index 046d9de552..c58fd3fc6e 100644 --- a/vector/src/main/res/layout/fragment_ftue_email_input.xml +++ b/vector/src/main/res/layout/fragment_ftue_email_input.xml @@ -1,6 +1,7 @@ + app:layout_constraintTop_toBottomOf="@id/titleContentSpacing" + tools:hint="@string/ftue_auth_email_entry_title"> + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/deviceListSecurityRecommendationsDivider" /> diff --git a/vector/src/main/res/layout/view_current_session.xml b/vector/src/main/res/layout/view_current_session.xml index 31ad3cce2c..91977eba40 100644 --- a/vector/src/main/res/layout/view_current_session.xml +++ b/vector/src/main/res/layout/view_current_session.xml @@ -12,12 +12,12 @@ android:layout_width="40dp" android:layout_height="40dp" android:layout_marginTop="16dp" + android:background="@drawable/bg_device_type" android:contentDescription="@string/a11y_device_manager_device_type_mobile" android:padding="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - tools:background="@drawable/bg_device_type" tools:src="@drawable/ic_device_type_mobile" /> + + + + + + + + +