diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 81262f1e9f..cd7e26f3cf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,9 +1,9 @@ name: Test on: - pull_request: {} + pull_request: { } push: - branches: [main, develop] + branches: [ main, develop ] # Enrich gradle.properties for CI/CD env: @@ -48,12 +48,12 @@ jobs: emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true emulator-build: 7425822 - script: | + script: | ./gradlew gatherGplayDebugStringTemplates $CI_GRADLE_ARG_PROPERTIES ./gradlew unitTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES ./gradlew instrumentationTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES ./gradlew generateCoverageReport $CI_GRADLE_ARG_PROPERTIES -# NB: continue-on-error marks steps.tests.conclusion = 'success' but leaves stes.tests.outcome = 'failure' + # NB: continue-on-error marks steps.tests.conclusion = 'success' but leaves stes.tests.outcome = 'failure' - name: Run all the codecoverage tests at once (retry if emulator failed) uses: reactivecircus/android-emulator-runner@v2 if: always() && steps.tests.outcome == 'failure' # don't run if previous step succeeded. @@ -70,12 +70,15 @@ jobs: ./gradlew unitTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES ./gradlew instrumentationTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES ./gradlew generateCoverageReport $CI_GRADLE_ARG_PROPERTIES - - run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES - if: always() # we may have failed a previous step and retried, that's OK + + # we may have failed a previous step and retried, that's OK + - name: Publish results to Sonar env: GITHUB_TOKEN: ${{ secrets.SONARQUBE_GITHUB_API_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }} + if: ${{ always() && env.GITHUB_TOKEN != '' && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }} + run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES - name: Format unit test results if: always() diff --git a/.github/workflows/triage-priority-bugs.yml b/.github/workflows/triage-priority-bugs.yml index 6cde154370..e762102226 100644 --- a/.github/workflows/triage-priority-bugs.yml +++ b/.github/workflows/triage-priority-bugs.yml @@ -27,7 +27,7 @@ jobs: - uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488 with: project: Android App Team - column: P1 + column: Important Issues & Topics (P1) repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }} P1_issues_to_crypto_team_workboard: diff --git a/CHANGES.md b/CHANGES.md index 4615ec8ff0..518bbd8b67 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,69 @@ +Changes in Element v1.4.36 (2022-09-10) +======================================= + +New App Layout can be enabled in the Labs settings. Please give it a try! + +Features ✨ +---------- + - Adds New App Layout into Labs ([#7038](https://github.com/vector-im/element-android/issues/7038)) + - Try to detect devices that lack Opus encoder support, use bundled libopus library for those. ([#7010](https://github.com/vector-im/element-android/issues/7010)) + - Suggest @room when @channel, @everyone, or @here is typed in composer ([#6529](https://github.com/vector-im/element-android/issues/6529)) + +Bugfixes 🐛 +---------- + - Fix long incremental sync. ([#6917](https://github.com/vector-im/element-android/issues/6917)) + - Fix push with FCM ([#7068](https://github.com/vector-im/element-android/issues/7068)) + - FTUE - Fixes optional email registration step always being mandatory ([#6969](https://github.com/vector-im/element-android/issues/6969)) + - Fixes /addToSpace and /joinSpace commands showing invalid syntax warnings ([#6844](https://github.com/vector-im/element-android/issues/6844)) + - Fix low occurrence crashes. ([#6967](https://github.com/vector-im/element-android/issues/6967)) + - Fix crash when opening an unknown room ([#6978](https://github.com/vector-im/element-android/issues/6978)) + - Fix crash on PIN code settings screen. ([#6979](https://github.com/vector-im/element-android/issues/6979)) + - Fix autoplayed animated stickers ([#6982](https://github.com/vector-im/element-android/issues/6982)) + - Catch race condition crash in voice recording ([#6989](https://github.com/vector-im/element-android/issues/6989)) + - Fix invite to room when in a space buttons not working. ([#7054](https://github.com/vector-im/element-android/issues/7054)) + +In development 🚧 +---------------- + - Create DM room only on first message - Create the DM and navigate to the new room after sending an event ([#5525](https://github.com/vector-im/element-android/issues/5525)) + - [App Layout] New empty states for home screen ([#6835](https://github.com/vector-im/element-android/issues/6835)) + - [App Layout] Bottom navigation tabs are removed for new home screen ([#6565](https://github.com/vector-im/element-android/issues/6565)) + - [App Layout] fixed space switching dialog measured with wrong height sometimes ([#6750](https://github.com/vector-im/element-android/issues/6750)) + - [App Layout] Fabs doesn't go off screen anymore ([#6765](https://github.com/vector-im/element-android/issues/6765)) + - [New Layout] Adds back navigation through spaces ([#6877](https://github.com/vector-im/element-android/issues/6877)) + - [App Layout] new room invites screen ([#6889](https://github.com/vector-im/element-android/issues/6889)) + - [App Layout] - Invites now show empty screen after you reject last invite ([#6876](https://github.com/vector-im/element-android/issues/6876)) + - [App Layout] - space switcher now has empty state ([#6754](https://github.com/vector-im/element-android/issues/6754)) + - [App Layout] - Improves Developer Mode Debug Button UX and adds it to New App Layout ([#6871](https://github.com/vector-im/element-android/issues/6871)) + - [New Layout] Changes space sheet to accordion-style with expandable subspaces ([#6907](https://github.com/vector-im/element-android/issues/6907)) + - [New Layout] Adds space invites ([#6924](https://github.com/vector-im/element-android/issues/6924)) + - [App Layout] fixed invites count badge bottom margin on a home screen ([#6947](https://github.com/vector-im/element-android/issues/6947)) + - [New Layout] Improves talkback accessibility ([#7016](https://github.com/vector-im/element-android/issues/7016)) + - [New Layout] Changes space icon in fab and in release notes screen ([#7039](https://github.com/vector-im/element-android/issues/7039)) + - [New Layout] Adds header to spaces bottom sheet ([#7040](https://github.com/vector-im/element-android/issues/7040)) + - [App Layout] New App Layout is enabled by default (Edit: has to be enabled in Labs) ([#6958](https://github.com/vector-im/element-android/issues/6958)) + - [App Layout] Obsolete settings are not shown when App Layout flag is enabled ([#6646](https://github.com/vector-im/element-android/issues/6646)) + - [Devices Management] Session overview screen ([#6961](https://github.com/vector-im/element-android/issues/6961)) + - [Devices Management] Refactor some code to improve testability ([#7043](https://github.com/vector-im/element-android/issues/7043)) + - [Device Manager] Current Session Section ([#6902](https://github.com/vector-im/element-android/issues/6902)) + - [Device Manager] Other Sessions Section ([#6945](https://github.com/vector-im/element-android/issues/6945)) + - [Device Manager] Render Security Recommendations ([#6964](https://github.com/vector-im/element-android/issues/6964)) + +Improved Documentation 📚 +------------------------ + - Clarify that setting up a FCM Rewrite Proxy is not necessary for use of the UnifiedPush FCM distributor. ([#6727](https://github.com/vector-im/element-android/issues/6727)) + +Other changes +------------- + - Increase sticker size ([#6982](https://github.com/vector-im/element-android/issues/6982)) + - Focus input field when editing homeserver address to speed up login and registration. ([#6926](https://github.com/vector-im/element-android/issues/6926)) + - Log basic Http information in production. ([#6925](https://github.com/vector-im/element-android/issues/6925)) + - Converts the vector module to a library with a parent vector-app application module ([#6407](https://github.com/vector-im/element-android/issues/6407)) + - Creates a dedicated strings module ([#3955](https://github.com/vector-im/element-android/issues/3955)) + - Remove FragmentModule and the Fragment factory. No need to Inject the constructor on your Fragment, just add @AndroidEntryPoint annotation and @Inject class members. ([#6894](https://github.com/vector-im/element-android/issues/6894)) + - Small refactor of UnifiedPushHelper ([#6936](https://github.com/vector-im/element-android/issues/6936)) + - CI: only run sonarqube task when token is known ([#7057](https://github.com/vector-im/element-android/issues/7057)) + + Changes in Element v1.4.34 (2022-08-23) ======================================= diff --git a/build.gradle b/build.gradle index 71875c49f1..a40790d441 100644 --- a/build.gradle +++ b/build.gradle @@ -45,7 +45,7 @@ plugins { id "io.gitlab.arturbosch.detekt" version "1.21.0" // Dependency Analysis - id 'com.autonomousapps.dependency-analysis' version "1.12.0" + id 'com.autonomousapps.dependency-analysis' version "1.13.1" } // https://github.com/jeremylong/DependencyCheck diff --git a/changelog.d/3955.misc b/changelog.d/3955.misc deleted file mode 100644 index 4e8fbeb4d8..0000000000 --- a/changelog.d/3955.misc +++ /dev/null @@ -1 +0,0 @@ -Creates a dedicated strings module diff --git a/changelog.d/5424.bugfix b/changelog.d/5424.bugfix new file mode 100644 index 0000000000..88ebd828f1 --- /dev/null +++ b/changelog.d/5424.bugfix @@ -0,0 +1 @@ +Fix text margin in QR code view when no display name is set \ No newline at end of file diff --git a/changelog.d/5525.wip b/changelog.d/5525.wip deleted file mode 100644 index 0d54c06b6a..0000000000 --- a/changelog.d/5525.wip +++ /dev/null @@ -1 +0,0 @@ -Create DM room only on first message - Create the DM and navigate to the new room after sending an event diff --git a/changelog.d/6407.misc b/changelog.d/6407.misc deleted file mode 100644 index 3f7a27fc01..0000000000 --- a/changelog.d/6407.misc +++ /dev/null @@ -1 +0,0 @@ -Converts the vector module to a library with a parent vector-app application module diff --git a/changelog.d/6565.wip b/changelog.d/6565.wip deleted file mode 100644 index 0e89c63e75..0000000000 --- a/changelog.d/6565.wip +++ /dev/null @@ -1 +0,0 @@ -[App Layout] Bottom navigation tabs are removed for new home screen diff --git a/changelog.d/6646.misc b/changelog.d/6646.misc deleted file mode 100644 index 0f2e3f0881..0000000000 --- a/changelog.d/6646.misc +++ /dev/null @@ -1 +0,0 @@ -[App Layout] Obsolete settings are not shown when App Layout flag is enabled diff --git a/changelog.d/6750.wip b/changelog.d/6750.wip deleted file mode 100644 index 2e18110c97..0000000000 --- a/changelog.d/6750.wip +++ /dev/null @@ -1 +0,0 @@ -[App Layout] fixed space switching dialog measured with wrong height sometimes diff --git a/changelog.d/6754.bugfix b/changelog.d/6754.bugfix deleted file mode 100644 index e9f6960595..0000000000 --- a/changelog.d/6754.bugfix +++ /dev/null @@ -1 +0,0 @@ -[App Layout] - space switcher now has empty state diff --git a/changelog.d/6765.wip b/changelog.d/6765.wip deleted file mode 100644 index ccdc1c025f..0000000000 --- a/changelog.d/6765.wip +++ /dev/null @@ -1 +0,0 @@ -[App Layout] Fabs doesn't go off screen anymore diff --git a/changelog.d/6835.feature b/changelog.d/6835.feature deleted file mode 100644 index e4e610f7e0..0000000000 --- a/changelog.d/6835.feature +++ /dev/null @@ -1 +0,0 @@ -[App Layout] New empty states for home screen diff --git a/changelog.d/6844.bugfix b/changelog.d/6844.bugfix deleted file mode 100644 index a2babaaa6d..0000000000 --- a/changelog.d/6844.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixes /addToSpace and /joinSpace commands showing invalid syntax warnings diff --git a/changelog.d/6871.feature b/changelog.d/6871.feature deleted file mode 100644 index 313be1a602..0000000000 --- a/changelog.d/6871.feature +++ /dev/null @@ -1 +0,0 @@ -Improves Developer Mode Debug Button UX and adds it to New App Layout diff --git a/changelog.d/6876.feature b/changelog.d/6876.feature deleted file mode 100644 index 12a2b78a1e..0000000000 --- a/changelog.d/6876.feature +++ /dev/null @@ -1 +0,0 @@ -[App Layout] - Invites now show empty screen after you reject last invite diff --git a/changelog.d/6877.wip b/changelog.d/6877.wip deleted file mode 100644 index d1e1c7c82d..0000000000 --- a/changelog.d/6877.wip +++ /dev/null @@ -1 +0,0 @@ -[New Layout] Adds back navigation through spaces diff --git a/changelog.d/6889.wip b/changelog.d/6889.wip deleted file mode 100644 index 067973aad9..0000000000 --- a/changelog.d/6889.wip +++ /dev/null @@ -1 +0,0 @@ -[App Layout] new room invites screen diff --git a/changelog.d/6894.misc b/changelog.d/6894.misc deleted file mode 100644 index abb1a69a71..0000000000 --- a/changelog.d/6894.misc +++ /dev/null @@ -1 +0,0 @@ -Remove FragmentModule and the Fragment factory. No need to Inject the constructor on your Fragment, just add @AndroidEntryPoint annotation and @Inject class members. diff --git a/changelog.d/6902.wip b/changelog.d/6902.wip deleted file mode 100644 index 8c982cc9ae..0000000000 --- a/changelog.d/6902.wip +++ /dev/null @@ -1 +0,0 @@ -[Device Manager] Current Session Section diff --git a/changelog.d/6907.wip b/changelog.d/6907.wip deleted file mode 100644 index a8d887c66b..0000000000 --- a/changelog.d/6907.wip +++ /dev/null @@ -1 +0,0 @@ -[New Layout] Changes space sheet to accordion-style with expandable subspaces diff --git a/changelog.d/6917.bugfix b/changelog.d/6917.bugfix deleted file mode 100644 index 7ddcc16d9a..0000000000 --- a/changelog.d/6917.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix long incremental sync. diff --git a/changelog.d/6924.wip b/changelog.d/6924.wip deleted file mode 100644 index 11ff4a1eb2..0000000000 --- a/changelog.d/6924.wip +++ /dev/null @@ -1 +0,0 @@ -[New Layout] Adds space invites diff --git a/changelog.d/6925.misc b/changelog.d/6925.misc deleted file mode 100644 index f494b76b56..0000000000 --- a/changelog.d/6925.misc +++ /dev/null @@ -1 +0,0 @@ -Log basic Http information in production. diff --git a/changelog.d/6926.misc b/changelog.d/6926.misc deleted file mode 100644 index dc1330d9fc..0000000000 --- a/changelog.d/6926.misc +++ /dev/null @@ -1 +0,0 @@ -Focus input field when editing homeserver address to speed up login and registration. \ No newline at end of file diff --git a/changelog.d/6945.wip b/changelog.d/6945.wip deleted file mode 100644 index 6f5916a8c2..0000000000 --- a/changelog.d/6945.wip +++ /dev/null @@ -1 +0,0 @@ -[Device Manager] Other Sessions Section diff --git a/changelog.d/6947.wip b/changelog.d/6947.wip deleted file mode 100644 index 9a3e13cddb..0000000000 --- a/changelog.d/6947.wip +++ /dev/null @@ -1 +0,0 @@ -[App Layout] fixed invites count badge bottom margin on a home screen diff --git a/changelog.d/6958.feature b/changelog.d/6958.feature deleted file mode 100644 index b508ff19a9..0000000000 --- a/changelog.d/6958.feature +++ /dev/null @@ -1 +0,0 @@ -[App Layout] New App Layout is enabled by default diff --git a/changelog.d/6961.wip b/changelog.d/6961.wip deleted file mode 100644 index 2d271da8c1..0000000000 --- a/changelog.d/6961.wip +++ /dev/null @@ -1 +0,0 @@ -[Devices Management] Session overview screen diff --git a/changelog.d/6964.wip b/changelog.d/6964.wip deleted file mode 100644 index f96dfe41ed..0000000000 --- a/changelog.d/6964.wip +++ /dev/null @@ -1 +0,0 @@ -[Device Manager] Render Security Recommendations diff --git a/changelog.d/6967.bugfix b/changelog.d/6967.bugfix deleted file mode 100644 index e2a1f70532..0000000000 --- a/changelog.d/6967.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix low occurrence crashes. diff --git a/changelog.d/6969.bugfix b/changelog.d/6969.bugfix deleted file mode 100644 index 4f3a161b41..0000000000 --- a/changelog.d/6969.bugfix +++ /dev/null @@ -1 +0,0 @@ -FTUE - Fixes optional email registration step always being mandatory diff --git a/changelog.d/6978.bugfix b/changelog.d/6978.bugfix deleted file mode 100644 index 878730062b..0000000000 --- a/changelog.d/6978.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix crash when opening an unknown room diff --git a/changelog.d/6979.bugfix b/changelog.d/6979.bugfix deleted file mode 100644 index ee43e83e96..0000000000 --- a/changelog.d/6979.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix crash on PIN code settings screen. diff --git a/changelog.d/6982.bugfix b/changelog.d/6982.bugfix deleted file mode 100644 index baa75d9c15..0000000000 --- a/changelog.d/6982.bugfix +++ /dev/null @@ -1,2 +0,0 @@ -Fix autoplayed animated stickers -Increase sticker size diff --git a/changelog.d/6989.bugfix b/changelog.d/6989.bugfix deleted file mode 100644 index cf740ca741..0000000000 --- a/changelog.d/6989.bugfix +++ /dev/null @@ -1 +0,0 @@ -Catch race condition crash in voice recording diff --git a/changelog.d/7010.feature b/changelog.d/7010.feature deleted file mode 100644 index d6c7c85b3e..0000000000 --- a/changelog.d/7010.feature +++ /dev/null @@ -1 +0,0 @@ -Try to detect devices that lack Opus encoder support, use bundled libopus library for those. diff --git a/changelog.d/7016.wip b/changelog.d/7016.wip deleted file mode 100644 index 6918991a86..0000000000 --- a/changelog.d/7016.wip +++ /dev/null @@ -1 +0,0 @@ -[New Layout] Improves talkback accessibility diff --git a/changelog.d/7035.misc b/changelog.d/7035.misc new file mode 100644 index 0000000000..0a446b09d5 --- /dev/null +++ b/changelog.d/7035.misc @@ -0,0 +1 @@ +Ensure that we do not expect all the Event fields when requesting `rooms/{roomId}/hierarchy` endpoint. diff --git a/dependencies.gradle b/dependencies.gradle index e25e7b42cb..c7b441738b 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -22,7 +22,7 @@ def markwon = "4.6.2" def moshi = "1.13.0" def lifecycle = "2.5.1" def flowBinding = "1.2.0" -def flipper = "0.162.0" +def flipper = "0.164.0" def epoxy = "4.6.2" def mavericks = "2.7.0" def glide = "4.13.2" @@ -86,7 +86,7 @@ ext.libs = [ 'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution", 'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution", // Phone number https://github.com/google/libphonenumber - 'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.54" + 'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.55" ], dagger : [ 'dagger' : "com.google.dagger:dagger:$dagger", diff --git a/docs/unifiedpush.md b/docs/unifiedpush.md index 2851644e66..9f44c6b2f9 100644 --- a/docs/unifiedpush.md +++ b/docs/unifiedpush.md @@ -18,7 +18,7 @@ The recently started UnifiedPush project is an Android protocol and library for The *F-Droid* and *Gplay* flavors of Element Android support UnifiedPush, so the user can use any distributor installed on their devices. This would make it possible to have push notifications without depending on Google services or libraries. Currently, the main distributors are [ntfy](https://ntfy.sh) which does not require any setup (like manual registration) to use the public server and [NextPush](https://github.com/UP-NextPush/android), available as a nextcloud application. -The *Gplay* variant uses a UnifiedPush library which basically embed a FCM distributor built into the application (so a user doesn't need to do anything other than install the app to get FCM notifications). This variant uses Google Services to receive notifications if the user has not installed any distributor. +The *Gplay* variant uses a UnifiedPush library which basically embed a FCM distributor built into the application (so a user doesn't need to do anything other than install the app to get FCM notifications). This variant uses Google Services to receive notifications if the user has not installed any distributor. A [FCM Rewrite Proxy](https://unifiedpush.org/developers/embedded_fcm/#fcm-rewrite-proxy) is not required for Element Android's implementation of the FCM distributor - it will work with an existing Matrix push provider, such as [Sygnal](https://github.com/matrix-org/sygnal). The *F-Droid* variant does not use this library to avoid any proprietary blob. It will use a polling service if the user has not installed any distributor. diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104340.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104340.txt new file mode 100644 index 0000000000..578549ce6c --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/de-DE/changelogs/40104340.txt new file mode 100644 index 0000000000..50b5647608 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40104340.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/en-US/changelogs/40104360.txt b/fastlane/metadata/android/en-US/changelogs/40104360.txt new file mode 100644 index 0000000000..da03f28760 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/40104360.txt @@ -0,0 +1,3 @@ +New App Layout can be enabled in the Labs settings. Please give it a try! +Fix issues about missing notification, and long incremental sync. +Full changelog: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/et/changelogs/40104340.txt b/fastlane/metadata/android/et/changelogs/40104340.txt new file mode 100644 index 0000000000..1df5ac4176 --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/fa/changelogs/40104340.txt new file mode 100644 index 0000000000..29efb95925 --- /dev/null +++ b/fastlane/metadata/android/fa/changelogs/40104340.txt @@ -0,0 +1,2 @@ +تغییرات عمده در این نگارش: رفع اشکال‌های مختلف و بهبودهای پایداری. +گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/fr-FR/changelogs/40104340.txt b/fastlane/metadata/android/fr-FR/changelogs/40104340.txt new file mode 100644 index 0000000000..fe61fd021c --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/40104340.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/hu-HU/changelogs/40104100.txt b/fastlane/metadata/android/hu-HU/changelogs/40104100.txt new file mode 100644 index 0000000000..97746bdcc6 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104100.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Görgetés a hangüzenetben. Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104110.txt b/fastlane/metadata/android/hu-HU/changelogs/40104110.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104110.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104120.txt b/fastlane/metadata/android/hu-HU/changelogs/40104120.txt new file mode 100644 index 0000000000..79df59cf5e --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104120.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Lehetővé teszi a felhasználók számára, hogy offline jelenjenek meg, és audio lejátszót ad hozzá a hangmellékletekhez. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104130.txt b/fastlane/metadata/android/hu-HU/changelogs/40104130.txt new file mode 100644 index 0000000000..79df59cf5e --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104130.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Lehetővé teszi a felhasználók számára, hogy offline jelenjenek meg, és audio lejátszót ad hozzá a hangmellékletekhez. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104140.txt b/fastlane/metadata/android/hu-HU/changelogs/40104140.txt new file mode 100644 index 0000000000..2ea8acda97 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104140.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: A figyelmen kívül hagyott felhasználók kezelésének javítása. Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104160.txt b/fastlane/metadata/android/hu-HU/changelogs/40104160.txt new file mode 100644 index 0000000000..d92018adb0 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104160.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: A titkosított üzenetek jobb kezelése. Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104180.txt b/fastlane/metadata/android/hu-HU/changelogs/40104180.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104180.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104190.txt b/fastlane/metadata/android/hu-HU/changelogs/40104190.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104190.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104200.txt b/fastlane/metadata/android/hu-HU/changelogs/40104200.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104200.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104220.txt b/fastlane/metadata/android/hu-HU/changelogs/40104220.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104220.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104230.txt b/fastlane/metadata/android/hu-HU/changelogs/40104230.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104230.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104240.txt b/fastlane/metadata/android/hu-HU/changelogs/40104240.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104240.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104250.txt b/fastlane/metadata/android/hu-HU/changelogs/40104250.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104250.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104260.txt b/fastlane/metadata/android/hu-HU/changelogs/40104260.txt new file mode 100644 index 0000000000..54d881323f --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104260.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: UnifiedPush használata, és lehetővé teszi a felhasználó számára, hogy FCM nélkül tolja. +Teljes változásnapló: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104270.txt b/fastlane/metadata/android/hu-HU/changelogs/40104270.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104270.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104280.txt b/fastlane/metadata/android/hu-HU/changelogs/40104280.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104280.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104300.txt b/fastlane/metadata/android/hu-HU/changelogs/40104300.txt new file mode 100644 index 0000000000..9882e09368 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104300.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Lehetővé teszi a továbbfejlesztett bejelentkezési és regisztrációs utakat. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104310.txt b/fastlane/metadata/android/hu-HU/changelogs/40104310.txt new file mode 100644 index 0000000000..9882e09368 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104310.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Lehetővé teszi a továbbfejlesztett bejelentkezési és regisztrációs utakat. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104320.txt b/fastlane/metadata/android/hu-HU/changelogs/40104320.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104320.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104340.txt b/fastlane/metadata/android/hu-HU/changelogs/40104340.txt new file mode 100644 index 0000000000..25772a8ea1 --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40104340.txt @@ -0,0 +1,2 @@ +Főbb változások ebben a verzióban: Különböző hibajavítások és stabilitásjavítások. +Teljes változásjegyzék: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/id/changelogs/40104340.txt b/fastlane/metadata/android/id/changelogs/40104340.txt new file mode 100644 index 0000000000..1017951d47 --- /dev/null +++ b/fastlane/metadata/android/id/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/it-IT/changelogs/40104340.txt new file mode 100644 index 0000000000..556a6fc7ea --- /dev/null +++ b/fastlane/metadata/android/it-IT/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/pl-PL/changelogs/40104340.txt new file mode 100644 index 0000000000..e175a61725 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/40104340.txt @@ -0,0 +1,2 @@ +Główne zmiany w tej wersji: Rozmaite poprawki błędów i usprawnienia stabilności. +Pełna lista zmian: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104340.txt b/fastlane/metadata/android/pt-BR/changelogs/40104340.txt new file mode 100644 index 0000000000..6e11e92579 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/sk/changelogs/40104340.txt new file mode 100644 index 0000000000..50670f18c2 --- /dev/null +++ b/fastlane/metadata/android/sk/changelogs/40104340.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/40104340.txt b/fastlane/metadata/android/uk/changelogs/40104340.txt new file mode 100644 index 0000000000..9664c615c1 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/40104340.txt @@ -0,0 +1,2 @@ +Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність. +Перелік усіх змін: https://github.com/vector-im/element-android/releases diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104340.txt b/fastlane/metadata/android/zh-TW/changelogs/40104340.txt new file mode 100644 index 0000000000..4bcca9a0b8 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/changelogs/40104340.txt @@ -0,0 +1,2 @@ +此版本中的主要變動:多個臭蟲修復與穩定性改善。 +完整的變更紀錄:https://github.com/vector-im/element-android/releases diff --git a/library/ui-strings/src/main/res/values-ca/strings.xml b/library/ui-strings/src/main/res/values-ca/strings.xml index 0c61cdf6c6..13a5b6c119 100644 --- a/library/ui-strings/src/main/res/values-ca/strings.xml +++ b/library/ui-strings/src/main/res/values-ca/strings.xml @@ -2619,4 +2619,21 @@ Mostra totes les sessions (V2, WIP) Crea sala Inicia xat + Verifica la teva sessió actual per a missatges segurs millorats. + Verificada · Última activitat %1$s + No verificada · Última activitat %1$s + Veure-ho tot (%1$d) + Sessió actual + Veure detalls + Verifica sessió + La sessió actual està llesta per la missatgeria segura. + Sessió no verificada + Sessió verificada + Tipus de dispositiu desconegut + Ordinador + Web + Mòbil + Aquesta sala no s\'ha trobat. +\nTorna-ho a provar més tard.%s + Invitacions diff --git a/library/ui-strings/src/main/res/values-cs/strings.xml b/library/ui-strings/src/main/res/values-cs/strings.xml index 200480ffa2..b7bfeac444 100644 --- a/library/ui-strings/src/main/res/values-cs/strings.xml +++ b/library/ui-strings/src/main/res/values-cs/strings.xml @@ -2669,4 +2669,21 @@ Prozkoumat místnosti Vytvořit místnost Zahájit konverzaci + Neověřeno · Poslední aktivita %1$s + Ověřeno · Poslední aktivita %1$s + Zobrazit všechny (%1$d) + Aktuální relace + Zobrazit podrobnosti + Ověřit relaci + Ověřte svou aktuální relaci pro vylepšené zabezpečené zasílání zpráv. + Vaše aktuální relace je připravena pro bezpečné zasílání zpráv. + Neověřená relace + Ověřená relace + Neznámý typ zařízení + Desktop + Web + Mobil + Je nám líto, tato místnost nebyla nalezena. +\nZkuste to prosím později.%s + Pozvánky diff --git a/library/ui-strings/src/main/res/values-de/strings.xml b/library/ui-strings/src/main/res/values-de/strings.xml index 527b21ad56..8e502a6392 100644 --- a/library/ui-strings/src/main/res/values-de/strings.xml +++ b/library/ui-strings/src/main/res/values-de/strings.xml @@ -834,9 +834,9 @@ \nSitzungsname: %1$s \nZuletzt gesehen: %2$s \nWenn du nicht mit einer anderen Sitzung angemeldet bist, ignoriere diese Anfrage. - Eine unverifizierte Sitzung fordert Verschlüsselungs-Schlüssel an. -\nSitzungsname: %1$s -\nZuletzt gesehen: %2$s + Eine nicht verifizierte Sitzung fordert Verschlüsselungs-Schlüssel an. +\nSitzungsname: %1$s +\nZuletzt gesehen: %2$s \nWenn du nicht eine andere Sitzung angemeldet hast, ignoriere diese Anfrage. Teilen Ignorieren @@ -1426,7 +1426,7 @@ Wähle deinen Wiederherstellungsschlüssel, gib ihn ein oder füge ihn aus der Zwischenablage ein Konnte nicht auf gesicherten Speicher zugreifen Unverschlüsselt - Verschlüsselt von einem unbekannten Gerät + Verschlüsselt von einem nicht verifiziertem Gerät Überprüfe, wo du angemeldet bist Verifiziere alle deine Sitzungen, um sicherzustellen, dass dein Konto und deine Nachrichten sicher sind Bestätige neue Anmeldung zu deinem Konto: %1$s @@ -2614,4 +2614,12 @@ 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\? + Web + Mobil + Entschuldigung, dieser Raum wurde nicht gefunden. +\nBitte versuche es später erneut.%s + Einladungen + Nicht verifiziert · Letzte Aktivität %1$s + Verifiziere deine aktuelle Sitzung für besonders sichere Nachrichtenübertragung. + Nicht verifizierte Sitzung \ No newline at end of file diff --git a/library/ui-strings/src/main/res/values-et/strings.xml b/library/ui-strings/src/main/res/values-et/strings.xml index a476ec4b3a..55fb9dfef0 100644 --- a/library/ui-strings/src/main/res/values-et/strings.xml +++ b/library/ui-strings/src/main/res/values-et/strings.xml @@ -2610,4 +2610,21 @@ Tutvu jututubadega Loo jututuba Alusta vestlust + Verifitseerimata · Viimati kasutusel %1$s + Verifitseeritud · Viimati kasutusel %1$s + Näita kõiki (%1$d) + Praegune sessioon + Vaata lisateavet + Verifitseeri sessioon + Turvalise sõnumivahetuse nimel palun verifitseeri oma praegune sessioon. + Sinu praegune sessioon on valmis turvaliseks sõnumivahetuseks. + Verifitseerimata sessioon + Verifitseeritud sessioon + Tundmatu seadme tüüp + Töölauarakendus + Veebiliides + Mobiiltelefon + Vabandust, aga seda jututuba ei õnnestu leida. +\nPalun proovi hiljem uuesti.%s + Kutsed diff --git a/library/ui-strings/src/main/res/values-fa/strings.xml b/library/ui-strings/src/main/res/values-fa/strings.xml index d1dbb57593..e104225389 100644 --- a/library/ui-strings/src/main/res/values-fa/strings.xml +++ b/library/ui-strings/src/main/res/values-fa/strings.xml @@ -2619,4 +2619,21 @@ کاوش اتاق‌ها ایجاد اتاق آغاز گپ + تأیید نشده · آخرین فعّالیت %1$s + تأیید شده · آخرین فعّالیت %1$s + دیدن همه (%1$d) + نشست کنونی + دیدن جزییات + تأیید نشست + نشست کنونیتان را برای پیام‌رسانی امن بهبود یافته تأیید کنید. + نشست کنونیتان برای پیام‌رسانی امن آماده است. + نشست تأیید نشده + نشست تأیید شده + گونهٔ افزاره ناشناخته + میزکار + وب + تلفن همراه + متأسفانه این اتاق پیدا نشد. +\nلطفاً بعداً دوباره تلاش کنید.%s + دعوت‌ها diff --git a/library/ui-strings/src/main/res/values-fr/strings.xml b/library/ui-strings/src/main/res/values-fr/strings.xml index 0bc033c93a..55b5f88134 100644 --- a/library/ui-strings/src/main/res/values-fr/strings.xml +++ b/library/ui-strings/src/main/res/values-fr/strings.xml @@ -2619,4 +2619,21 @@ Parcourir les salons Créer un salon Commencer une discussion + Non vérifiée · Dernière activité %1$s + Vérifié · Dernière activité %1$s + Tout voir (%1$d) + Cette session + Voir les détails + Vérifier la session + Vérifiez votre session pour une sécurité renforcée de votre messagerie. + Votre session est prête pour l’envoi de messages sécurisés. + Session non vérifiée + Session vérifiée + Type de périphérique inconnu + Ordinateur + Web + Portable + Désolé, impossible de trouver ce salon. +\nVeuillez réessayer plus tard.%s + Invitations diff --git a/library/ui-strings/src/main/res/values-hu/strings.xml b/library/ui-strings/src/main/res/values-hu/strings.xml index a35595fb36..af8bf26b2e 100644 --- a/library/ui-strings/src/main/res/values-hu/strings.xml +++ b/library/ui-strings/src/main/res/values-hu/strings.xml @@ -157,7 +157,7 @@ %s megváltoztatta a szerver ACL-eket ehhez a szobához. • IP címet hosztnévként használó szerverek tiltva vannak. • IP címet hosztnévként használó szerverek engedélyezve vannak. - • Engedélyezve vannak azok a szerverek, amik illeszkednek erre: %s + • Engedélyezve vannak azok a szerverek, amik illeszkednek erre: %s. • Tiltva vannak azok a szerverek, amik illeszkednek erre: %s Beállítottad a szerver ACL-eket ehhez a szobához. %s beállította a szerver ACL-eket ehhez a szobához. @@ -2600,4 +2600,40 @@ A Visszaállítási Kulcsot tartsd biztonságos helyen, mint pl. egy jelszókeze %1$s és %2$s Minden beszélgetés + Nem ellenőrzött - Utolsó aktivitás %1$s + Ellenőrzött - Utolsó tevékenység %1$s + Összes megtekintése (%1$d) + Jelenlegi munkamenet + Részletek megtekintése + Munkamenet hitelesítése + Az aktuális munkamenet készen áll a biztonságos üzenetküldésre. + Az aktuális munkamenet készen áll a biztonságos üzenetküldésre. + Ellenőrizetlen munkamenet + Ellenőrzött munkamenet + Ismeretlen eszköztípus + Asztali + Web + Mobil + Minden munkamenet megjelenítése (V2, WIP) + A legjobb biztonság érdekében ellenőrizd a munkameneteket, és jelentkezz ki minden olyan munkamenetből, melyet már nem ismersz fel vagy nem használsz. + Más munkamenetek + Munkamenetek + Nyitott területek listája + Új beszélgetés vagy szoba létrehozása + Résztvevők + Kedvencek + Olvasatlan + Mind + Sajnáljuk, ez a szoba nem található. +\nKérjük, próbáld meg később újra.%s + Meghívók + A - Z + Aktivitás + Rendezés + Legfrissebbek megjelenítése + Szűrők megjelenítése + Elrendezési beállítások + Szobák felfedezése + Szoba létrehozása + Chat indítása diff --git a/library/ui-strings/src/main/res/values-in/strings.xml b/library/ui-strings/src/main/res/values-in/strings.xml index 031e13ed63..d1e68b4529 100644 --- a/library/ui-strings/src/main/res/values-in/strings.xml +++ b/library/ui-strings/src/main/res/values-in/strings.xml @@ -47,8 +47,8 @@ Hanya kontak Matrix Ruangan Laporan kutu - Aplikasi gagal saat terakhir digunakan. Apakah Anda ingin membuka halaman laporan kegagalan\? - Gabung di Ruangan + Aplikasi mogok saat terakhir digunakan. Apakah Anda ingin membuka halaman laporan kemogokan\? + Bergabung ke Ruangan Mulai Panggilan Suara Masuk Mulai Panggilan Video @@ -69,7 +69,7 @@ TIDAK Lanjut Hapus - Gabung + Bergabung Tolak Nanti Kirim catatan gangguan @@ -88,7 +88,7 @@ Kirim tampilan layar Mohon uraikan kutu tersebut. Apa yang Anda lakukan\? Apa yang Anda harapkan terjadi\? Apa yang sebenarnya terjadi\? Catatan dari klien akan dikirim bersama laporan gangguan ini untuk mendalami kendala yang Anda temukan. Laporan gangguan ini, termasuk catatan dan tangkapan layar, tidak akan terlihat secara umum. Jika Anda hanya ingin mengirimkan tulisan di atas, silakan hapus centang: - Sepertinya Anda mengguncang ponsel akibat frustrasi. Apakah Anda ingin membuka halaman laporan kutu\? + Sepertinya Anda mengguncang ponsel akibat emosi. Apakah Anda ingin membuka halaman laporan kutu\? Pengiriman laporan kutu gagal (%s) Kemajuan (%s%%) Nama Pengguna @@ -122,9 +122,9 @@ Kirim Sticker Ambil foto Ambil video - Saat ini Anda belum memiliki pak stiker. + Saat ini Anda belum memiliki paket stiker apa pun. \n -\nMau tambah sekarang\? +\nIngin tambah sekarang\? Maaf, tidak ada aplikasi eksternal yang mendukung apa yang ingin dilakukan. Meminta ulang kunci enkripsi dari perangkat Anda yang lain. Jalankan ${app_name} di perangkat yang dapat mendekripsi pesan tersebut agar kunci dapat dikirim ke perangkat ini. @@ -146,8 +146,8 @@ Sembunyikan semua pesan dari pengguna ini Tunjukkan semua pesan dari pengguna ini Sebut - Anda tidak akan dapat mengembalikan perubahan ini setelah Anda mengangkat pengguna ini agar memiliki kuasa yang setara dengan Anda. -\nApakah anda yakin untuk melanjutkan\? + Anda tidak akan dapat mengembalikan perubahan ini setelah Anda mengangkat pengguna ini agar memiliki daya yang setara dengan Anda. +\nApakah Anda yakin untuk melanjutkan\? Melakukan pencekalan pengguna akan mengeluarkannya dari ruangan ini dan mencegahnya untuk kembali masuk. Gagal terjawab oleh pihak lain. %s sedang mengetik… @@ -210,7 +210,7 @@ Tidak dapat membuat widget. Gagal mengirim permohonan. Tingkat energi harus bilangan positif. - Anda tidak tergabung dengan ruangan ini. + Anda tidak di ruangan ini. Anda tidak memiliki permisi untuk melakukan itu di ruangan ini. Tidak ada room_id dalam permohonan. Tidak ada user_id dalam permohonan. @@ -228,7 +228,7 @@ Menghapus cekalan pengguna dengan id berikut Tentukan tingkat kuasa seorang pengguna Undang pengguna dengan id berikut bergabung ke ruangan ini - Gabung ke ruangan dengan alamat berikut + Bergabung ke ruangan dengan alamat berikut Tinggalkan ruang Tentukan topik ruang Keluarkan pengguna dengan id berikut @@ -251,10 +251,10 @@ Nonaktifkan Akun Ini akan mengakibatkan akun Anda tidak dapat digunakan secara permanen. Anda tidak akan dapat masuk dan orang lain tidak dapat mendaftar ulang dengan ID pengguna yang sama. Ini akan mengakibatkan akun Anda keluar dari semua ruangan tempat Anda berpartisipasi serta menghapus semua detail akun dari server identitas Anda. Tindakan ini tidak dapat diubah. \n -\nMenonaktifkan akun Anda tidak membuat kami melupakan pesan-pesan yang Anda kirim secara default. Jika Anda ingin kami melupakan pesan-pesan Anda, mohon centang kotak berikut. +\nMenonaktifkan akun Anda tidak membuat kami melupakan pesan-pesan yang Anda kirim secara bawaan. Jika Anda ingin kami melupakan pesan-pesan Anda, mohon centang kotak berikut. \n \nKeterbacaan pesan di Matrix serupa dengan email. Dengan kami melupakan pesan-pesan Anda berarti pesan-pesan yang Anda kirim tidak akan dibagikan kepada pengguna baru ataupun yang belum terdaftar, tetapi pengguna yang terdaftar yang mempunyai mengakses pesan-pesan tersebut masih dapat mengakses salinan mereka. - Mohon lupakan semua pesan yang telah saya kirim ketika akun saya dideaktivasi (Peringatan: ini akan mengakibatkan pengguna di masa depan melihat percakapan yang tidak lengkap) + Mohon lupakan semua pesan yang telah saya kirim ketika akun saya dinonaktifkan (Peringatan: ini akan mengakibatkan pengguna di masa depan melihat percakapan yang tidak lengkap) Nonaktifkan Akun Mohon masukkan kata sandi Anda. Ruangan ini telah berubah dan tidak lagi aktif. @@ -276,7 +276,7 @@ Jangan kirim pesan terenkripsi ke perangkat yang tidak terverifikasi dari perangkat ini. TIDAK terverifikasi Verifikasi - Untuk memastikan perangkat dapat dipercaya, mohon kontak pengguna dengan medium lain (misalnya tatap muka atau panggilan telepon) dan tanya apakah kunci yang mereka lihat di Pengaturan Pengguna untuk perangkat ini cocok dengan kunci berikut: + Konfirmasi dengan membandingkan berikut ini dengan Pengaturan Pengguna di sesi Anda yang lain: Apabila cocok, tekan tombol verifikasi berikut. Apabila tidak, seseorang sedang menyadap perangkat ini dan mungkin perlu diblokir. Di masa mendatang proses verifikasi ini akan dimutakhirkan. @@ -290,7 +290,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Siapa pun Hanya anggota (dimulai sejak opsi ini dipilih) Hanya anggota (dimulai sejak mereka diundang) - Hanya anggota (dimulai sejak mereka bergabung) + Hanya anggota (sejak mereka bergabung) Pengguna yang dicekal Lanjutan ID internal ruangan ini @@ -378,11 +378,11 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Keluarkan Periksa Keadaan Pemberitahuan Hasil diagnosa pemeriksaan keadaan - Lansungkan Ujicoba + Jalankan Pengujian Berlangsung… (%1$d of %2$d) Diagnosa dasar berlangsung lancar. Apabila Anda masih belum dapat menerima pemberitahuan, mohon kirim laporan kutu untuk kami selidiki. - Satu atau beberapa ujicoba gagal, coba sugesti yang kami tawarkan. - Satu atau beberapa ujicoba gagal, mohon kirim laporan kutu untuk kami selidiki. + Satu atau beberapa ujian gagal, coba saran yang kami tawarkan. + Satu atau beberapa ujian gagal, mohon kirim laporan kutu untuk kami selidiki. Pengaturan Sistem. Pemberitahuan diperbolehkan dalam pengaturan sistem. Notifikasi dinonaktifkan dalam pengaturan sistem. @@ -400,7 +400,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Perbolehkan Pemeriksaan Layanan Google Play APK Layanan Google Play ditemukan dan telah diperbaharui. - ${app_name} menggunakan Layanan Google Play untuk mendorong pesan tapi tampaknya tidak diatur sebagaimana harusnya. + ${app_name} menggunakan Layanan Google Play untuk mendorong pesan tapi tampaknya tidak diatur sebagaimana harusnya: \n%1$s Perbaiki Layanan Google Play Token Firebase @@ -417,7 +417,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Layanan tidak akan mulai ketika perangkat dinyalakan kembali, Anda tidak akan menerima pemberitahuan hingga Anda membuka ${app_name}. Perbolehkan memulai ketika perangkat dinyalakan Periksa halangan di balik layar - Larangan background dinonaktifkan untuk ${app_name}. Percobaan ini sebaiknya dijalankan menggunakan jaringan mobile data (bukan WIFI). + Larangan latar belakang dinonaktifkan untuk ${app_name}. Percobaan ini sebaiknya dijalankan menggunakan jaringan data ponsel (bukan WiFi). \n%1$s Larangan background dinonaktifkan untuk ${app_name}. \nAktivitas yang dilakukan aplikasi ini akan terhalang ketika beroperasi di balik layar, dan ini dapat mempengaruhi pemunculan notifikasi. @@ -446,7 +446,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. [%1$s] \nError ini di luar kendali ${app_name} dan menurut Google, error ini muncul ketika terlalu banyak aplikasi terdaftar dengan FCM pada perangkat tersebut. Error ini tidak seharusnya mempengaruhi pengguna biasa. [%1$s] -\nError ini di luar kendali ${app_name}, dan dapat muncul karena berbagai alasan. Coba lagi nanti, atau Anda juga dapat memeriksa apabila penggunaan jaringan data Layanan Google Play tidak terhalang oleh sistem, atau waktu pada perangkat sudah benar, atau ini dapat terjadi pada ROM tidak resmi. +\nKesalahan ini di luar kendali ${app_name}, dan dapat muncul karena berbagai alasan. Coba lagi nanti, atau Anda juga dapat memeriksa apabila penggunaan jaringan data Layanan Google Play tidak terhalang oleh sistem, atau waktu pada perangkat sudah benar, atau ini dapat terjadi pada ROM tidak resmi. [%1$s] \nError ini di luar kendali ${app_name}. Tidak terdapat akun Google pada perangkat. Mohon buka pengelola akun dan tambahkan akun Google. Tambah Akun @@ -493,7 +493,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. %s melakukan panggilan suara. Anda melakukan panggilan video. %s melakukan panggilan video. - Anda mengubah nama kamar menjadi: %1$s + Anda mengubah nama ruangan menjadi: %1$s %1$s mengubah nama ruangan menjadi: %2$s Anda mengubah avatar ruangan ini %1$s mengubah avatar ruangan ini @@ -546,7 +546,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Aplikasi ini sedang menunggu push Aplikasi ini menerima push Gagal menerima push. Solusinya adalah untuk menginstal ulang aplikasi. - Percobaan Push + Percobaan Dorongan Pastikan Anda mengeklik tautan di email yang telah kami kirimkan kepada Anda. Hapus %s\? Tidak ada nomor telepon yang ditambahkan ke akun Anda @@ -578,7 +578,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Batalkan pencekalan pengguna Alasan untuk mencekal Cekal pengguna - Pengguna yang dikeluarkan akan menghilangkannya dari ruangan ini. + Pengguna akan dikeluarkan dari ruangan ini. \n \nUntuk mencegah mereka bergabung lagi, Anda seharusnya mencekalnya. Alasan untuk mengeluarkan @@ -657,7 +657,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Gagal menambahkan widget Anda tidak dapat melakukan panggilan dengan diri sendiri, tunggu untuk peserta untuk menerima undangan Anda tidak dapat melakukan panggilan dengan diri sendiri - Pertemuan menggunakan kebijakan keamanan dan izin Jitsi. Semua orang saat ini berada di ruangan akan melihat undangan untuk bergabung saat pertemuan Anda sedang berlangsung. + Pertemuan menggunakan kebijakan keamanan dan perizinan Jitsi. Semua orang saat ini berada di ruangan akan melihat undangan untuk bergabung saat pertemuan Anda sedang berlangsung. Mulai rapat video Mulai rapat audio Anda tidak memiliki izin untuk memulai panggilan @@ -675,19 +675,19 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Putuskan Batalkan Tidak Ada - Standar Sistem + Bawaan Sistem Anda mengaktifkan enkripsi ujung-ke-ujung. (algoritma tidak dikenali %1$s). %1$s mengaktifkan enkripsi ujung-ke-ujung. (algoritma tidak dikenali %2$s). Anda mengaktifkan enkripsi ujung-ke-ujung. %1$s mengaktifkan enkripsi ujung-ke-ujung. - Anda telah mencegah para tamu untuk bergabung ruangan. - %1$s telah mencegah para tamu untuk bergabung ruangan. - Anda telah mencegah para tamu untuk bergabung ruangan. - %1$s telah mencegah para tamu untuk bergabung ruangan. - %1$s telah mengizinkan para tamu untuk bergabung ruangan. - Anda telah mengizinkan para tamu untuk bergabung ruangan. - Anda telah mengizinkan para tamu untuk bergabung disini. - %1$s telah mengizinkan para tamu untuk bergabung disini. + Anda telah mencegah para tamu untuk bergabung ke ruangan. + %1$s telah mencegah para tamu untuk bergabung ke ruangan. + Anda telah mencegah para tamu untuk bergabung ke ruangan. + %1$s telah mencegah para tamu untuk bergabung ke ruangan. + %1$s telah mengizinkan para tamu untuk bergabung ke ruangan. + Anda telah mengizinkan para tamu untuk bergabung ke ruangan. + Anda telah mengizinkan para tamu untuk bergabung di sini. + %1$s telah mengizinkan para tamu untuk bergabung di sini. Anda mengubah alamat untuk ruangan ini. %1$s mengubah alamat untuk ruangan ini. Anda mengubah alamat utama dan alamat alternatif untuk ruangan ini. @@ -740,12 +740,12 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. %1$s meninggalkan ruangan. Alasan: %2$s Anda meninggalkan ruangan. Alasan: %1$s %1$s meninggalkan ruangan. Alasan: %2$s - Anda bergabung. Alasan %1$s - %1$s bergabung. Alasan %2$s - %1$s bergabung ruangan. Alasan: %2$s + Anda bergabung. Alasan: %1$s + %1$s bergabung. Alasan: %2$s + %1$s bergabung ke ruangan. Alasan: %2$s %1$s mengundang Anda. Alasan: %2$s Anda mengundang %1$s. Alasan: %2$s - Anda bergabung ruangan. Alasan %1$s + Anda bergabung ke ruangan. Alasan: %1$s %1$s mengundang %2$s. Alasan: %3$s Undangan Anda. Alasan: %1$s Undangan %1$s. Alasan: %2$s @@ -800,12 +800,12 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. %1$s menerima undangan untuk %2$s Anda membatalkan undangan untuk %1$s %1$s membatalkan undangan untuk %2$s - Anda membatalkan undangan untuk %1$s untuk bergabung ruangan - %1$s membatalkan undangan untuk %2$s untuk bergabung ruangan + Anda membatalkan undangan untuk %1$s untuk bergabung ke ruangan + %1$s membatalkan undangan untuk %2$s untuk bergabung ke ruangan Anda mengundang %1$s %1$s mengundang %2$s - Anda mengirimkan undangan ke %1$s untuk bergabung ruangan - %1$s mengirimkan undangan ke %2$s untuk bergabung ruangan + Anda mengirimkan undangan ke %1$s untuk bergabung ke ruangan + %1$s mengirimkan undangan ke %2$s untuk bergabung ke ruangan Anda menghapus avatar ruangan %1$s menghapus avatar ruangan Anda menghapus topik ruangan @@ -833,8 +833,8 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Maaf, terjadi kesalahan Mohon masukkan nama pengguna. Diam - Penurunan harga telah dinonaktifkan. - Penurunan harga telah diaktifkan. + Markdown telah dinonaktifkan. + Markdown telah diaktifkan. Perintah \"%s\" membutuhkan parameter tambahan, atau beberapa parameter salah. Abaikan Permintaan Pembagian Kunci @@ -965,9 +965,9 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Beritahu saya untuk Putar suara rana Pilih - Sumber media default + Sumber media bawaan Pilih - Kompresi default + Kompresi bawaan Media Kelola email dan nomor telepon yang ditautkan ke akun Matrix Anda Email dan nomor telepon @@ -992,7 +992,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Gunakan perintah /confetti atau kirim pesan yang berisi ❄️ atau 🎉 Tampilkan efek chat Gunakan pengelola integrasi untuk mengelola bot, jembatan, widget, dan paket stiker. -\nPengelola integrasi menerima data konfigurasi, dan dapat memodifikasi widget, mengirim undangan ruang, dan mengatur tingkat daya dengan sepengetahuan Anda. +\nPengelola integrasi menerima data konfigurasi, dan dapat memodifikasi widget, mengirim undangan ruang, dan mengatur tingkat daya dengan pengetahuan Anda. Integrasi %d detik @@ -1047,11 +1047,11 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Email ini tidak terkait dengan akun apa pun. Aplikasi tidak dapat membuat akun di homeserver ini. \n -\nApakah Anda ingin mendaftar menggunakan client web\? +\nApakah Anda ingin mendaftar menggunakan klien web\? Maaf, server ini tidak menerima akun baru. Aplikasi tidak dapat masuk ke homeserver ini. Homeserver mendukung jenis masuk berikut: %1$s. \n -\nApakah Anda ingin masuk menggunakan client web\? +\nApakah Anda ingin masuk menggunakan klien web\? Ada kesalahan terjadi saat memuat halaman: %1$s (%2$d) Masukkan alamat server yang ingin Anda gunakan Masukkan alamat Modular Element atau Server yang ingin Anda gunakan @@ -1076,7 +1076,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Lainnya Pelajari lebih lanjut Hosting premium untuk organisasi - Bergabunglah dengan jutaan orang secara gratis di server publik terbesar + Bergabung dengan jutaan orang secara gratis di server publik terbesar Sama seperti email, akun memiliki satu tempat, tetapi Anda dapat berkomunikasi dengan siapa saja Pilih server Mulai @@ -1374,7 +1374,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. BUAT Pesan Langsung Ruangan - Ruangan ini tidak dapat ditampilkan. Apakah Anda masih mau bergabung\? + Ruangan ini tidak dapat ditampilkan. Apakah Anda masih ingin bergabung\? Ruangan ini tidak dapat di akses di waktu ini. \nCoba lagi nanti, atau tanya admin ruangan untuk memeriksa jika Anda punya akses. Ruangan ini tidak dapat di tampilkan @@ -1424,7 +1424,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Tidak ada informasi cryptographic unstable stable - Versi Default + Versi Bawaan Versi Ruangan 👓 Batas tidak diketahui. Homeserver Anda menerima lampiran (file, media, dsb.) dengan ukuran hingga %s. @@ -1435,7 +1435,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Kelola Sesi Tampilkan Semua Sesi Sesi Aktif - Admin server Anda telah menonaktifkan enkripsi ujung-ke-ujung secara default di kamar pribadi & pesan langsung. + Admin server Anda telah menonaktifkan enkripsi ujung-ke-ujung secara bawaan di ruangan & Pesan Langsung privat. Tanda Tangan Silang dinonaktifkan Tanda Tangan Silang diaktifkan. \nKunci dipercaya. @@ -1710,7 +1710,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Tambahkan ruangan dan space yang sudah ada Anda adalah admin satu-satunya di space ini. Meninggalkannya berarti siapa saja tidak akan mempunyai kontrol atas space-nya. Anda tidak akan dapat bergabung lagi kecuali jika Anda diundang lagi. - Anda orang satu-satunya di sini. Jika Anda tinggalkan, siapa saja tidak dapat bergabung di masa depan, termasuk Anda. + Anda adalah orang satu-satunya di sini. Jika Anda tinggalkan, siapa saja tidak dapat bergabung di masa depan, termasuk Anda. Apakah Anda yakin untuk meninggalkan %s\? Tinggalkan Tambahkan ruangan @@ -2015,7 +2015,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Gagal mengimpor kunci Menunggu untuk %s… Hampir selesai! Menunggu untuk konfirmasi… - Hampir selesai! Apakah perangkat yang lain menunjukkan centang yang sama\? + Hampir selesai! Apakah perangkat yang lain menunjukkan sebuah centang\? "Topik: " Tambahkan topik %s untuk memberi tahu orang-orang tentang ruangan ini. @@ -2043,7 +2043,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Mengsinkronisasikan Kunci Penandatanganan Diri Mengsinkronisasikan Kunci Pengguna Mengsinkronisasikan Kunci Utama - Mendefinisikan Kunci SSSS default + Mendefinisikan Kunci SSSS bawaan Membuat kunci aman dari frasa sandi Mempublikasikan kunci identitas yang telah dibuat Selesai @@ -2071,7 +2071,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Jika Anda batalkan, Anda tidak dapat membaca pesan terenkripsi di perangkat ini dan pengguna lain tidak akan mempercayainya Akun Anda mungkin dikompromikan Ini bukan saya - Login baru. Apakah itu Anda\? + Pemasukan baru. Apakah itu Anda\? Segarkan Akses riwayat pesan terenkripsi Ekspor Audit @@ -2091,13 +2091,13 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Kirim gambar dengan ukuran asli - Apakah Anda mau mengirim lampiran ini ke %1$s\? + Apakah Anda ingin mengirim lampiran ini ke %1$s\? Hapus… Tidak dapat menemukan rahasia di penyimpanan Jika Anda tidak dapat mengakses sesi yang sudah ada Peringatan tingkat kepercayaan Level kepercayaan peringatan - Level kepercayaan default + Level kepercayaan bawaan Dipilih Video mempunyai draf yang belum dikirim @@ -2109,7 +2109,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Buka widget Tangkap layar Gagal mengotentikasi - ${app_name} meminta Anda untuk memasukkan kredential untuk melakukan aksi ini. + ${app_name} meminta Anda untuk memasukkan kredensial untuk melakukan tindakan ini. Otentikasi Ulang Dibutuhkan Geser untuk mengakhirkan panggilan Orang tak dikenal @@ -2155,7 +2155,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Koneksi ke server telah hilang Tidak Ya - Hampir selesai! Apakah %s menampilkan centang yang sama\? + Hampir selesai! Apakah %s menampilkan sebuah centang\? Kode QR Atur Ulang Kunci Memulai Tanda Tangan Silang @@ -2186,9 +2186,9 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Izin space Menghapus cekalan akan mengizinkan pengguna untuk bergabung ke space lagi. Mencekal pengguna akan mengeluarkan pengguna dari space ini dan mencegah pengguna untuk bergabung lagi. - mengeluarkan pengguna akan mengeluarkannya dari space ini. + Pengguna akan dikeluarkan dari space ini. \n -\nUntuk mencegah pengguna untuk bergabung lagi, Anda seharusnya cekal pengguna itu saja. +\nUntuk mencegah mereka untuk bergabung lagi, Anda seharusnya mencekalnya. Berhenti Merekam Menambahkan ( ͡° ͜ʖ ͡°) ke pesan teks biasa Tidak ada kebijakan yang disediakan oleh server identitasnya @@ -2571,4 +2571,21 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan. Jelajahi Ruangan Buat Ruangan Mulai Obrolan + Maaf, ruangan ini tidak ditemukan. +\nMohon coba lagi nanti.%s + Belum diverifikasi · Aktivitas terakhir %1$s + Terverifikasi · Aktivitas terakhir %1$s + Tampilkan Semua (%1$d) + Sesi Saat Ini + Tampilkan Detail + Verifikasi Sesi + Verifikasi sesi Anda saat ini untuk perpesanan yang aman. + Sesi Anda saat ini siap untuk perpesanan yang aman. + Sesi belum diverifikasi + Sesi terverifikasi + Tipe perangkat tidak diketahui + Desktop + Web + Ponsel + Undangan diff --git a/library/ui-strings/src/main/res/values-it/strings.xml b/library/ui-strings/src/main/res/values-it/strings.xml index 5dd17d5cbe..ecb29d1586 100644 --- a/library/ui-strings/src/main/res/values-it/strings.xml +++ b/library/ui-strings/src/main/res/values-it/strings.xml @@ -2610,4 +2610,21 @@ Esplora le stanze Crea una stanza Inizia una chat + Non verificata · Ultima attività %1$s + Verificata · Ultima attività %1$s + Vedi tutte (%1$d) + Sessione attuale + Vedi dettagli + Verifica la sessione + Verifica la tua sessione attuale per messaggi più sicuri. + La tua sessione attuale è pronta per i messaggi sicuri. + Sessione non verificata + Sessione verificata + Tipo di dispositivo sconosciuto + Desktop + Web + Mobile + Spiacenti, questa stanza non è stata trovata. +\nRiprova più tardi.%s + Inviti diff --git a/library/ui-strings/src/main/res/values-lt/strings.xml b/library/ui-strings/src/main/res/values-lt/strings.xml index 454bf8a4db..c33f8257c6 100644 --- a/library/ui-strings/src/main/res/values-lt/strings.xml +++ b/library/ui-strings/src/main/res/values-lt/strings.xml @@ -447,4 +447,238 @@ %d praleistų balso skambučių Skambutis baigtas - + ${app_name} reikia leidimo prieiti prie jūsų mikrofono, kad galėtumėte atlikti garso skambučius. + Baigiamas skambutis… + Nuotolinio ryšio pusėje nepavyko prisijungti. + Jokio atsakymo + Naudotojas, kuriam skambinote, yra užimtas. + Naudotojas užimtas + Sulaikėte skambutį + %s sulaikė skambutį + Sulaikyti + Tęsti + Balso skambutis su %s + Vaizdo skambutis su %s + Vaizdo skambutis vyksta… + Skambutis vyksta… + Įeinantis balso skambutis + Įeinantis vaizdo skambutis + + Praleistas vaizdo skambutis + %d praleisti vaizdo skambučiai + %d praleistų vaizdo skambučių + + Skambutis skamba… + Jungiamasi prie skambučio… + Pasirinkite skambučių melodiją: + Įeinančio skambučio melodija + Įeinantiems skambučiams naudoti numatytąją ${app_name} melodiją + Prieš pradedant skambutį prašyti patvirtinimo + Užkirsti kelią atsitiktiniam skambučiui + Mažas + Vidutinis + Didelis + Originalas + + %d narystės pokytis + %d narystės pokyčiai + %d narystės pokyčių + + Prašome paleisti ${app_name} kitame įrenginyje, kuris gali iššifruoti žinutę, kad galėtų išsiųsti raktus į šią sesiją. + Pakartotinai paprašykite šifravimo raktų iš kitų seansų. + Išsiųsta per daug užklausų + Nebuvo tinkamo JSON + Klaidingas JSON + Neautorizuotas, trūksta galiojančių tapatumo duomenų + SSL klaida. + SSL klaida: bendrakeleivio tapatybė nepatvirtinta. + Pasirinkti namų serverį + Nepavyko pasiekti namų serverio URL adresu %s. Patikrinkite nuorodą arba pasirinkite namų serverį rankiniu būdu. + Nepavyko pasiekti namų serverio šiuo URL adresu, prašome jį patikrinti + Tai nėra galiojantis \"Matrix\" serverio adresas + Prašome įvesti tinkamą URL adresą + Peržiūrėkite ir sutikite su šio namų serverio taisyklėmis: + %1$s išėjo iš kambario. Priežastis: %2$s + Prisijungėte. Priežastis: %1$s + %1$s prisijungė. Priežastis: %2$s + Prisijungėte prie kambario. Priežastis: %1$s + %1$s prisijungė prie kambario. Priežastis: %2$s + Siunčiama žinutė… + Žinutė išsiųsta + - Kai kurie naudotojai nebeignoruojami + ${app_name} turi išvalyti talpyklą, kad ji būtų atnaujinta dėl šios priežasties: +\n%s +\n +\nAtkreipkite dėmesį, kad atlikus šį veiksmą programa bus paleista iš naujo ir tai gali šiek tiek užtrukti. + Pradinio sinchronizavimo užklausa + Pradinė sinchronizacija: +\nImportuojame paskyros duomenis + Pradinė sinchronizacija: +\nImportuojame išeitus kambarius + Pradinė sinchronizacija: +\nImportuojame kambarių kvietimus + Pradinė sinchronizacija: +\nĮkeliame jūsų pokalbius +\nJei prisijungėte prie daugybės kambarių, tai gali užtrukti + Pradinė sinchronizacija: +\nImportuojame kambarius + Pradinė sinchronizacija: +\nImportuojame kriptografija + Pradinė sinchronizacija: +\nImportuojame paskyrą… + Pradinė sinchronizacija: +\nLaukiame serverio atsakymo… + Pradinė sinchronizacija: +\nAtsisiunčiame duomenis… + Tuščias kambarys (buvo %s) + Tuščias kambarys + + %1$s, %2$s, %3$s ir %4$d kitas + %1$s, %2$s, %3$s ir %4$d kiti + %1$s, %2$s, %3$s ir %4$d kitų + + %1$s, %2$s, %3$s ir %4$s + %1$s, %2$s ir %3$s + %1$s ir %2$s + Kvietimas į kambarį + Telefono numeris + El. pašto adresas + Jums neleidžiama prisijungti prie šio kambario + Sukurti kambarį + Naršyti kambarius + Jūs atnaujinote čia. + El. paštas nepatvirtintas, patikrinkite savo pašto dėžutę + Nepavyko patvirtinti el. pašto adreso: įsitikinkite, kad paspaudėte el. laiške esančią nuorodą + Šis namų serveris norėtų įsitikinti, kad nesate robotas + Pamiršote slaptažodį\? + Šis telefono numeris jau yra įrašytas. + Šis el. pašto adresas jau yra įrašytas. + Tai neatrodo kaip tinkamas el. pašto adresas + Neteisingas naudotojo vardas ir (arba) slaptažodis + Pateikti + Prisijungimas vienkartiniu prisijungimu + Prisijungti + Atsiprašome, nerastos jokios išorinės programos šiam veiksmui atlikti. + Šiuo metu nėra įjungti jokie lipdukų paketai. +\n +\nAr norite pridėti keletą dabar\? + Naudoti kaip numatytąjį ir daugiau neklausti + Filmuoti + Fotografuoti + Fotografuoti arba filmuoti + Siųsti lipduką + Siųsti failus + Sustabdyti ekrano bendrinimą + Bendrinti ekraną + Įjungti HD + Išjungti HD + Atgalinė + Priekinė + Perjungti kamerą + Pasirinkite garso įrenginį + Kvietimai + A - Z + Veikla + Rikiuoti pagal + Rodyti naujausius + Rodyti filtrus + Išdėstymo parinktys + Kitas + min + val + %1$s pakeitė alternatyvius šio kambario adresus. + + Pašalinote alternatyvų šio kambario adresą %1$s. + Pašalinote alternatyvius šio kambario adresus %1$s. + Pašalinote alternatyvius šio kambario adresus %1$s. + + + %1$s pašalino alternatyvų šio kambario adresą %2$s. + %1$s pašalino alternatyvius šio kambario adresus %2$s. + %1$s pašalino alternatyvius šio kambario adresus %2$s. + + + Pridėjote alternatyvų šio kambario adresą %1$s. + Pridėjote alternatyvius šio kambario adresus %1$s. + Pridėjote alternatyvius šio kambario adresus %1$s. + + + %1$s pridėjo alternatyvų šio kambario adresą %2$s. + %1$s pridėjo alternatyvius šio kambario adresus %2$s. + %1$s pridėjo alternatyvius šio kambario adresus %2$s. + + Pašalinote pagrindinį šio kambario adresą. + %1$s pašalino pagrindinį šio kambario adresą. + Nustatėte pagrindinį šio kambario adresą į %1$s. + %1$s nustatė pagrindinį šio kambario adresą į %2$s. + Pridėjote %1$s ir pašalinote %2$s kaip šio kambario adresus. + %1$s pridėjo %2$s ir pašalino %3$s kaip šio kambario adresus. + + Pašalinote %1$s kaip šio kambario adresą. + Pašalinote %1$s iš šio kambario adresų. + Pašalinote %1$s iš šio kambario adresų. + + + %1$s pašalino %2$s kaip šio kambario adresą. + %1$s pašalino %2$s iš šio kambario adresų. + %1$s pašalino %2$s iš šio kambario adresų. + + + Pridėjote %1$s kaip šio kambario adresą. + Pridėjote %1$s kaip šio kambario adresus. + Pridėjote %1$s kaip šio kambario adresus. + + + %1$s pridėjo %2$s kaip šio kambario adresą. + %1$s pridėjo %2$s kaip šio kambario adresus. + %1$s pridėjo %2$s kaip šio kambario adresus. + + Atšaukėte %1$s kvietimą. Priežastis: %2$s + %1$s atšaukė %2$s kvietimą. Priežastis: %3$s + Priėmėte %1$s kvietimą. Priežastis: %2$s + %1$s priėmė %2$s kvietimą. Priežastis: %3$s + Jūs užblokavote %1$s. Priežastis: %2$s + %1$s užblokavo %2$s. Priežastis: %3$s + Atblokavote %1$s. Priežastis: %2$s + %1$s atblokavo %2$s. Priežastis: %3$s + Pašalinote %1$s. Priežastis: %2$s + %1$s pašalino %2$s. Priežastis: %3$s + Kvietimą atmetėte. Priežastis: %1$s + %1$s atmetė kvietimą. Priežastis: %2$s + Išėjote. Priežastis: %1$s + %1$s išėjo. Priežastis: %2$s + Išėjote iš kambario. Priežastis: %1$s + Visi pokalbiai + Matricos klaida + Nepavyksta išsiųsti žinutės + Siuntėjo įrenginys neatsiuntė mums šios žinutės raktų. + ** Nepavyksta iššifruoti: %s ** + %1$s nuo %2$s iki %3$s + %1$s pakeitė %2$s galios lygį. + Pakeitėte %1$s galios lygį. + Pasirinktinis + Pasirinktinis (%1$d) + Standartinis + Moderatorius + Adminas + Pakeitėte %1$s valdiklį + %1$s pakeitė %2$s valdiklį + Pašalinote %1$s valdiklį + %1$s pašalino %2$s valdiklį + Pridėjote %1$s valdiklį + %1$s pridėjo %2$s valdiklį + %1$s išsiuntė kvietimą %2$s prisijungti prie kambario + %1$s atšaukė %2$s kvietimą prisijungti prie kambario + Priėmėte kvietimą į %1$s + %1$s priėmė kvietimą į %2$s + Atšaukėte kvietimą %1$s + %1$s atšaukė %2$s kvietimą + Atšaukėte %1$s kvietimą prisijungti prie kambario + Pakeitimų nėra. + • Serveriai atitinkantys %s buvo pašalinti iš leidžiamų sąrašo. + • Serveriai atitinkantys %s dabar yra leidžiami. + • Serveriai atitinkantys %s buvo pašalinti iš draudimų sąrašo. + • Serveriai atitinkantys %s dabar yra uždrausti. + • Serveriai atitinkantys %s yra leidžiami. + • Serveriai atitinkantys %s yra uždrausti. + \ No newline at end of file diff --git a/library/ui-strings/src/main/res/values-pl/strings.xml b/library/ui-strings/src/main/res/values-pl/strings.xml index 682fd1df1e..18b0de078c 100644 --- a/library/ui-strings/src/main/res/values-pl/strings.xml +++ b/library/ui-strings/src/main/res/values-pl/strings.xml @@ -735,7 +735,7 @@ Ustal jak inni mogą odnaleść twoje konto. Media Domyślne źródło mediów - Odzyskiwanie zaszyforwanych wiadomości + Odzyskiwanie zaszyfrowanych wiadomości %1$s: %2$d wiadomość %1$s: %2$d wiadomości @@ -1058,12 +1058,12 @@ Zaakceptowałeś(-łaś) Żądanie weryfikacji wysłane Żądanie weryfikacji - Zweryfikuj tą sesję + Zweryfikuj tę sesję Zeskanuj kod z urządzenia innego użytkownika aby bezpiecznie zweryfikować siebie nawzajem Zeskanuj ich kod Nie można zeskanować Jeżeli nie jesteś z tą osobą, zamiast tego porównaj emoji - Zweryfikuj porównując emoji + Zweryfikuj porównując emotikony Zweryfikuj %s Zweryfikowano %s Oczekiwanie na %s… @@ -1099,7 +1099,7 @@ Aktywować szyfrowanie\? Raz włączone szyfrowanie w pokoju nie może zostać wyłączone. Wiadomości wysłane w zaszyfrowanym pokoju nie są widziane przez serwer, a jedynie przez uczestników w pokoju. Aktywowanie szyfrowania może uniemożliwić wielu botom i mostkom prawidłowe działanie. Aktywuj szyfrowanie - Aby być bezpiecznym, zweryfikuj %s poprzez sprawdzenie jednorazowego kodu. + Aby zachować bezpieczeństwo, zweryfikuj %s poprzez sprawdzenie jednorazowego kodu. Aby być bezpiecznym, zrób to osobiście lub użyj innej metody komunikacji. Porównaj unikalny ciąg emoji, upewniając się, że pojawiają się w identycznym porządku. Porównaj kod wyświetlany na ekranie innego użytkownika. @@ -1120,7 +1120,7 @@ Wyloguj z tej sesji Brak dostępnej informacji o kryptografii Ta sesja jest zaufana dla bezpiecznej wymiany wiadomości, ponieważ ją zweryfikowałeś(-łaś): - Zweryfikuj tą sesję aby oznaczyć ją jako zaufaną i przyznać jej dostęp do zaszyfrowanych wiadomości. Jeżeli nie logowałeś(-łaś) się do tej sesji, twoje konto mogło zostać naruszone: + Zweryfikuj tę sesję aby oznaczyć ją jako zaufaną i przyznać jej dostęp do zaszyfrowanych wiadomości. Jeżeli nie logowałeś(-łaś) się do tej sesji, twoje konto mogło zostać zaatakowane: %d aktywna sesja %d aktywne sesje @@ -1330,12 +1330,12 @@ Hasło odzyskiwania Weryfikacja anulowana Weryfikacja anulowana. Możesz rozpocząć jej proces ponownie. - Jedno z poniższych mogło zostać skompromitowane: + Jedno z poniższych może być zagrożone: \n -\n-Twoje hasło -\n-Twój serwer domowy -\n-To urządzenie albo inne urządzenie -\n-Połączenie internetowe używane przez urządzenie +\n- Twoje hasło +\n- Twój serwer domowy +\n- To lub drugie urządzenie +\n- Połączenie internetowe używane przez dowolne z urządzeń \n \nZalecamy natychmiastową zmianę Twojego hasła oraz klucza odzyskiwania w Ustawieniach. Jeżeli anulujesz, nie będziesz w stanie czytać zaszyfrowanych wiadomości na nowym urządzeniu, a inni użytkownicy nie będą mu ufali @@ -1388,7 +1388,7 @@ Zablokuj wszystkich nie będących członkami %s przed dołączeniem do tego pokoju Ukryj zaawansowane Pokaż zaawansowane - Nie można znaleźć właściwego serwera domowego. Zweryfikuj swój identyfikator + Nie można znaleźć właściwego serwera domowego. Sprawdź swój identyfikator To nie jest prawidłowy identyfikator użytkownika. Oczekiwany format: \"@user:homeserver.org\" Jeżeli nie pamiętasz hasła, cofnij się aby je zresetować. Matrix ID @@ -1492,7 +1492,7 @@ Włącz \"Zezwalaj na integracje\" w Ustawieniach żeby to zrobić. Integracje są zablokowane To zastąpi obecny Klucz bądź Hasło. - Wygeneruj nowy Klucz Bezpieczeństwa albo Hasło dla istniejącej kopii zapasowej. + Wygeneruj nowy klucz bezpieczeństwa albo hasło dla istniejącej kopii zapasowej. Zabezpiecza przeciwko utracie dostępu do zaszyfrowanych wiadomości oraz danych poprzez zapisanie zaszyfrowanych kluczy na Twoim serwerze. Powiadomienie zostało kliknięte! Proszę kliknąć na powiadomieniu, Jeżeli nie widzisz powiadomienia, sprawdź ustawienia systemowe. @@ -1649,7 +1649,7 @@ Mój kod Udostępnij mój kod Zeskanuj kod QR - Nie możemy zaprosić użytkowników. Zweryfikuj osoby, które chcesz zaprosić i spróbuj ponownie. + Nie udało się zaprosić użytkowników. Sprawdź osoby, które chcesz zaprosić i spróbuj ponownie. Zaproszenia wysłane do %1$s i jeszcze jednej osoby Zaproszenia wysłane do %1$s i %2$d innych osób @@ -1985,7 +1985,7 @@ Udostępnij link Zaproś przez nazwę użytkownika lub email Zaproś przez email - Aktualnie jesteś tylko Ty. %s będzie jeszcze lepsza kiedy dołączą inni. + Aktualnie jesteś tu tylko ty. %s będzie jeszcze lepszą przestrzenią, gdy dołączą do niej inni. Zaproś do %s Zaproś osoby Zaproś osoby do Twojej przestrzeni @@ -2127,7 +2127,7 @@ Limit wielkości pliku na serwerze Wersja serwera Nazwa serwera - Zweryfikuj zgodność wyświetlonych emotikon + Zamiast tego, zweryfikuj porównując emotikony Zeskanuj za pomocą tego urządzenia Zeskanuj kod Twoim drugim urządzeniem lub przełącz się i zeskanuj za pomocą tego urządzenia Głos @@ -2311,8 +2311,8 @@ Zastąp kolor wyświetlanej nazwy Posiadam już konto - Połącz się z każdym. - Ty jesteś w kontroli. + Bezpieczna komunikacja. + Masz wszystko pod kontrolą. Przejmij swoje konwersacje. By odkryć istniejące kontakty, musisz najpierw przesłać swoje dane kontaktowe (adresy e-mail i numer telefonu) do serwera tożsamości. Przed wysłaniem Twoje dane zostaną zaszyfrowane w celu zachowania prywatności. Uzyskaj pomoc w korzystaniu z ${app_name} @@ -2392,12 +2392,12 @@ Społeczności Zespoły Przyjaciele i rodzina - Pomożemy Ci się połączyć + Pomożemy Ci nawiązać kontakt Z kim będziesz najczęściej rozmawiać\? - Szyfrowane od-końca-do-końca i nie wymaga numeru telefonu. Brak reklam i dataminingu. + Szyfrowane od-końca-do-końca, bez konieczności podawania numeru telefonu. Zero reklam i dataminingu. Wybierz, gdzie prowadzone są Twoje rozmowy, dając Ci kontrolę i niezależność. Połączenie przez sieć Matrix. Bezpieczna i niezależna komunikacja, która zapewnia ten sam poziom prywatności, co rozmowa twarzą w twarz we własnym domu. - Wiadomości dla Twojego zespołu. + Komunikacja dla Twojego zespołu. Położenie Zagadnienia prawne Już przeglądasz ten wątek! @@ -2521,7 +2521,7 @@ Każdy w przestrzeni nadrzędnej będzie mógł znaleźć ten pokój i dołączyć do niego — nie ma potrzeby ręcznego zapraszania wszystkich. W każdej chwili możesz to zmienić w ustawieniach pokoju. Automatycznie aktualizuj nadrzędną przestrzeń Twój system automatycznie wyśle dzienniki, gdy wystąpi błąd niemożności odszyfrowania - Błędy automatycznego deszyfrowania raportów. + Automatycznie zgłaszaj błędy deszyfrowania. Opuść pokój o podanym identyfikatorze (lub aktualny pokój, jeśli null) Udostępnili swoją lokalizację Powiadom cały pokój @@ -2718,4 +2718,20 @@ Utwórz pokój Zacznij rozmawiać Wszystkie rozmowy - + Nie zweryfikowano · Ostatnia aktywność %1$s + Zweryfikowano · Ostatnia aktywność %1$s + Pokaż wszystkie (%1$d) + Obecna sesja + Pokaż szczegóły + Zweryfikuj sesję + Twoja obecna sesja jest przygotowana do bezpiecznej komunikacji. + Niezweryfikowana sesja + Zweryfikowana sesja + Nieznany typ urządzenia + Komputer + Przeglądarka + Urządzenie przenośne + Niestety, ten pokój nie został znaleziony. +\nSpróbuj ponownie później.%s + Zaproszenia + \ No newline at end of file diff --git a/library/ui-strings/src/main/res/values-pt-rBR/strings.xml b/library/ui-strings/src/main/res/values-pt-rBR/strings.xml index 23dd6ae75f..08c41db365 100644 --- a/library/ui-strings/src/main/res/values-pt-rBR/strings.xml +++ b/library/ui-strings/src/main/res/values-pt-rBR/strings.xml @@ -2619,4 +2619,21 @@ Explorar Salas Criar Sala Começar Chat + Não-verificada · Última atividade %1$s + Verificada · Última atividade %1$s + Ver Todas (%1$d) + Sessão Atual + Visualizar Detalhes + Verificar Sessão + Verifique sua sessão atual para mensageria segura melhorada. + Sua sessão atual está pronta para mensageria segura. + Sessão não-verificada + Sessão verificada + Tipo de dispositivo desconhecido + Desktop + Mobile + Web + Desculpe, esta sala não tem sido encontrada. +\nPor favor retente mais tarde.%s + Convites diff --git a/library/ui-strings/src/main/res/values-sk/strings.xml b/library/ui-strings/src/main/res/values-sk/strings.xml index 68663b3b9c..2cc2d0280e 100644 --- a/library/ui-strings/src/main/res/values-sk/strings.xml +++ b/library/ui-strings/src/main/res/values-sk/strings.xml @@ -2669,4 +2669,21 @@ Preskúmať miestnosti Vytvoriť miestnosť Začať konverzáciu + Neoverené - Posledná aktivita %1$s + Overené - Posledná aktivita %1$s + Zobraziť všetky (%1$d) + Aktuálna relácia + Zobraziť podrobnosti + Overiť reláciu + Overte svoju aktuálnu reláciu pre vylepšené bezpečné zasielanie správ. + Vaša aktuálna relácia je pripravená na bezpečné zasielanie správ. + Neoverená relácia + Overená relácia + Neznámy typ zariadenia + Stolný počítač + Web + Mobil + Je nám ľúto, táto miestnosť nebola nájdená. +\nProsím, skúste to neskôr.%s + Pozvánky diff --git a/library/ui-strings/src/main/res/values-uk/strings.xml b/library/ui-strings/src/main/res/values-uk/strings.xml index 47f15c9a27..1c809fff3e 100644 --- a/library/ui-strings/src/main/res/values-uk/strings.xml +++ b/library/ui-strings/src/main/res/values-uk/strings.xml @@ -2719,4 +2719,21 @@ Знайти кімнати Створити кімнату Розпочати бесіду + Не звірений · Остання активність %1$s + Звірений · Остання активність %1$s + Переглянути всі (%1$d) + Поточний сеанс + Переглянути подробиці + Звірити сеанс + Звірте свій поточний сеанс для безпечнішого обміну повідомленнями. + Ваш поточний сеанс готовий для безпечного обміну повідомленнями. + Не звірений сеанс + Звірений сеанс + Невідомий тип пристрою + Комп\'ютер + Браузер + Мобільний + Перепрошуємо, цю кімнату не знайдено. +\nСпробуйте пізніше.%s + Запрошення diff --git a/library/ui-strings/src/main/res/values-zh-rCN/strings.xml b/library/ui-strings/src/main/res/values-zh-rCN/strings.xml index 6f7151167f..4e1c8e61c8 100644 --- a/library/ui-strings/src/main/res/values-zh-rCN/strings.xml +++ b/library/ui-strings/src/main/res/values-zh-rCN/strings.xml @@ -1682,7 +1682,7 @@ "话题: " 添加一个话题 %s让人们知道此房间是关于什么的。 - 这是你和 %s 的私聊消息历史记录的开始。 + 这是你和%s的私聊消息历史的开始。 这是此对话的开始。 这是 %s 的开始。 导出审计 @@ -2569,4 +2569,18 @@ 探索房间 创建房间 开始聊天 - + 抱歉,未发现此房间。 +\n请晚些重试。%s + 未验证 · 上次活跃 %1$s + 已验证 · 上次活跃 %1$s + 查看全部(%1$d) + 当前会话 + 查看详情 + 验证会话 + 为了获得增强的安全的消息传送,请验证你当前的会话。 + 你的当前会话已准备好安全地收发消息。 + 未验证的会话 + 已验证的会话 + 未知的设备类型 + 邀请 + \ No newline at end of file diff --git a/library/ui-strings/src/main/res/values-zh-rTW/strings.xml b/library/ui-strings/src/main/res/values-zh-rTW/strings.xml index 93b4a8d4c6..0f5208bcde 100644 --- a/library/ui-strings/src/main/res/values-zh-rTW/strings.xml +++ b/library/ui-strings/src/main/res/values-zh-rTW/strings.xml @@ -2569,4 +2569,21 @@ 探索聊天室 建立聊天室 開始聊天 + 未驗證 · 最後活動 %1$s + 已驗證 · 最後活動 %1$s + 檢視全部 (%1$d) + 目前工作階段 + 檢視詳細資訊 + 驗證工作階段 + 驗證您目前的工作階段以強化安全通訊。 + 您目前的工作階段已準備好進行安全通訊。 + 未驗證的工作階段 + 已驗證的工作階段 + 未知的裝置類型 + 桌面 + 網頁 + 行動裝置 + 抱歉,找不到此聊天室。 +\n請稍後再試。%s + 邀請 diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml index b28c7c638c..cff1aaea1b 100644 --- a/library/ui-strings/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -139,6 +139,7 @@ All Chats Start Chat Create Room + Change Space Explore Rooms Expand %s children @@ -438,6 +439,9 @@ Activity A - Z + Enable new layout + A simplified Element with optional tabs + Invites Low priority diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 7b06edb530..65f8baee7b 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -60,7 +60,7 @@ android { // that the app's state is completely cleared between tests. testInstrumentationRunnerArguments clearPackageData: 'true' - buildConfigField "String", "SDK_VERSION", "\"1.4.36\"" + buildConfigField "String", "SDK_VERSION", "\"1.5.0\"" buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\"" buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\"" diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/SpaceChildInfo.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/SpaceChildInfo.kt index 7d3109fb6e..2388bee0ee 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/SpaceChildInfo.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/SpaceChildInfo.kt @@ -34,5 +34,4 @@ data class SpaceChildInfo( val canonicalAlias: String?, val aliases: List?, val worldReadable: Boolean - ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceHierarchyData.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceHierarchyData.kt index ecc3eb5224..d03f4c42cf 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceHierarchyData.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceHierarchyData.kt @@ -16,13 +16,13 @@ package org.matrix.android.sdk.api.session.space -import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.model.SpaceChildInfo +import org.matrix.android.sdk.api.session.space.model.SpaceChildSummaryEvent data class SpaceHierarchyData( val rootSummary: RoomSummary, val children: List, - val childrenState: List, + val childrenState: List, val nextToken: String? = null ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceService.kt index c7a6405014..5d2a9412d1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/SpaceService.kt @@ -18,10 +18,10 @@ package org.matrix.android.sdk.api.session.space import android.net.Uri import androidx.lifecycle.LiveData -import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.room.RoomSortOrder import org.matrix.android.sdk.api.session.room.RoomSummaryQueryParams import org.matrix.android.sdk.api.session.room.model.RoomSummary +import org.matrix.android.sdk.api.session.space.model.SpaceChildSummaryEvent import org.matrix.android.sdk.api.session.space.peeking.SpacePeekResult typealias SpaceSummaryQueryParams = RoomSummaryQueryParams @@ -75,12 +75,12 @@ interface SpaceService { suggestedOnly: Boolean? = null, limit: Int? = null, from: String? = null, - knownStateList: List? = null + knownStateList: List? = null ): SpaceHierarchyData /** * Get a live list of space summaries. This list is refreshed as soon as the data changes. - * @return the [LiveData] of List[SpaceSummary] + * @return the [LiveData] of List[RoomSummary] */ fun getSpaceSummariesLive( queryParams: SpaceSummaryQueryParams, diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/model/SpaceChildSummaryEvent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/model/SpaceChildSummaryEvent.kt new file mode 100644 index 0000000000..13aa0336e5 --- /dev/null +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/space/model/SpaceChildSummaryEvent.kt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2022 The Matrix.org Foundation C.I.C. + * + * 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 org.matrix.android.sdk.api.session.space.model + +import com.squareup.moshi.Json +import com.squareup.moshi.JsonClass +import org.matrix.android.sdk.api.session.events.model.Content + +@JsonClass(generateAdapter = true) +data class SpaceChildSummaryEvent( + @Json(name = "type") val type: String? = null, + @Json(name = "state_key") val stateKey: String? = null, + @Json(name = "content") val content: Content? = null, + @Json(name = "sender") val senderId: String? = null, + @Json(name = "origin_server_ts") val originServerTs: Long? = null, +) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/DefaultSpaceService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/DefaultSpaceService.kt index d2f1b3202b..cd13b03017 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/DefaultSpaceService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/DefaultSpaceService.kt @@ -21,7 +21,6 @@ import androidx.lifecycle.LiveData import kotlinx.coroutines.withContext import org.matrix.android.sdk.api.MatrixCoroutineDispatchers import org.matrix.android.sdk.api.query.QueryStringValue -import org.matrix.android.sdk.api.session.events.model.Event import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.events.model.toContent import org.matrix.android.sdk.api.session.events.model.toModel @@ -45,6 +44,7 @@ import org.matrix.android.sdk.api.session.space.SpaceHierarchyData import org.matrix.android.sdk.api.session.space.SpaceService import org.matrix.android.sdk.api.session.space.SpaceSummaryQueryParams import org.matrix.android.sdk.api.session.space.model.SpaceChildContent +import org.matrix.android.sdk.api.session.space.model.SpaceChildSummaryEvent import org.matrix.android.sdk.api.session.space.model.SpaceParentContent import org.matrix.android.sdk.api.session.space.peeking.SpacePeekResult import org.matrix.android.sdk.internal.di.UserId @@ -128,7 +128,7 @@ internal class DefaultSpaceService @Inject constructor( suggestedOnly: Boolean?, limit: Int?, from: String?, - knownStateList: List? + knownStateList: List? ): SpaceHierarchyData { val spacesResponse = getSpacesResponse(spaceId, suggestedOnly, limit, from) val spaceRootResponse = spacesResponse.getRoot(spaceId) @@ -180,7 +180,7 @@ internal class DefaultSpaceService @Inject constructor( private fun List?.mapSpaceChildren( spaceId: String, spaceRootResponse: SpaceChildSummaryResponse?, - knownStateList: List?, + knownStateList: List?, ) = this?.filterIdIsNot(spaceId) ?.toSpaceChildInfoList(spaceId, spaceRootResponse, knownStateList) .orEmpty() @@ -190,7 +190,7 @@ internal class DefaultSpaceService @Inject constructor( private fun List.toSpaceChildInfoList( spaceId: String, rootRoomResponse: SpaceChildSummaryResponse?, - knownStateList: List?, + knownStateList: List?, ) = flatMap { spaceChildSummary -> (rootRoomResponse?.childrenState ?: knownStateList) ?.filter { it.isChildOf(spaceChildSummary) } @@ -198,10 +198,14 @@ internal class DefaultSpaceService @Inject constructor( .orEmpty() } - private fun Event.isChildOf(space: SpaceChildSummaryResponse) = stateKey == space.roomId && type == EventType.STATE_SPACE_CHILD + private fun SpaceChildSummaryEvent.isChildOf(space: SpaceChildSummaryResponse): Boolean { + return stateKey == space.roomId && type == EventType.STATE_SPACE_CHILD + } - private fun Event.toSpaceChildInfo(spaceId: String, summary: SpaceChildSummaryResponse) = content.toModel()?.let { content -> - createSpaceChildInfo(spaceId, summary, content) + private fun SpaceChildSummaryEvent.toSpaceChildInfo(spaceId: String, summary: SpaceChildSummaryResponse): SpaceChildInfo? { + return content.toModel()?.let { content -> + createSpaceChildInfo(spaceId, summary, content) + } } private fun createSpaceChildInfo( @@ -255,7 +259,7 @@ internal class DefaultSpaceService @Inject constructor( stateKey = QueryStringValue.IsEmpty ) val powerLevelsContent = powerLevelsEvent?.content?.toModel() - ?: throw UnsupportedOperationException("Cannot add canonical child, missing powerlevel") + ?: throw UnsupportedOperationException("Cannot add canonical child, missing power level") val powerLevelsHelper = PowerLevelsHelper(powerLevelsContent) if (!powerLevelsHelper.isUserAllowedToSend(userId, true, EventType.STATE_SPACE_CHILD)) { throw UnsupportedOperationException("Cannot add canonical child, not enough power level") diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/SpaceChildSummaryResponse.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/SpaceChildSummaryResponse.kt index e3f8977ac5..0419c5acf1 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/SpaceChildSummaryResponse.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/space/SpaceChildSummaryResponse.kt @@ -18,7 +18,7 @@ package org.matrix.android.sdk.internal.session.space import com.squareup.moshi.Json import com.squareup.moshi.JsonClass -import org.matrix.android.sdk.api.session.events.model.Event +import org.matrix.android.sdk.api.session.space.model.SpaceChildSummaryEvent /** * The fields are the same as those returned by /publicRooms (see spec), with the addition of: @@ -36,10 +36,11 @@ internal data class SpaceChildSummaryResponse( */ @Json(name = "room_type") val roomType: String? = null, - /** The m.space.child events of the room. For each event, only the following fields are included: - * type, state_key, content, room_id, sender, with the addition of origin_server_ts. + /** + * The m.space.child events of the room. For each event, only the following fields are included: + * type, state_key, content, sender, and of origin_server_ts. */ - @Json(name = "children_state") val childrenState: List? = null, + @Json(name = "children_state") val childrenState: List? = null, /** * Aliases of the room. May be empty. diff --git a/tools/emojis/emoji_picker_datasource_formatted.json b/tools/emojis/emoji_picker_datasource_formatted.json index 41465a442f..551ec824b7 100644 --- a/tools/emojis/emoji_picker_datasource_formatted.json +++ b/tools/emojis/emoji_picker_datasource_formatted.json @@ -2368,7 +2368,8 @@ "stare", "scared", "frightening", - "embarrassing" + "embarrassing", + "shy" ] }, "shushing-face": { @@ -9662,7 +9663,8 @@ "flower", "wilted", "plant", - "nature" + "nature", + "rose" ] }, "hibiscus": { @@ -11080,7 +11082,8 @@ "tea", "caffeine", "latte", - "espresso" + "espresso", + "mug" ] }, "teapot": { diff --git a/vector-app/build.gradle b/vector-app/build.gradle index a8262fde40..235c92cfc5 100644 --- a/vector-app/build.gradle +++ b/vector-app/build.gradle @@ -32,11 +32,11 @@ knit { // Note: 2 digits max for each value ext.versionMajor = 1 -ext.versionMinor = 4 +ext.versionMinor = 5 // Note: even values are reserved for regular release, odd values for hotfix release. // When creating a hotfix, you should decrease the value, since the current value // is the value for the next regular release. -ext.versionPatch = 36 +ext.versionPatch = 0 static def getGitTimestamp() { def cmd = 'git show -s --format=%ct' diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt b/vector-app/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt index 9434006060..d4878b8dcc 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt @@ -21,6 +21,7 @@ import androidx.test.espresso.IdlingPolicies import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest +import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import im.vector.app.R import im.vector.app.espresso.tools.ScreenshotFailureRule @@ -28,6 +29,7 @@ import im.vector.app.features.MainActivity import im.vector.app.getString import im.vector.app.ui.robot.ElementRobot import im.vector.app.ui.robot.settings.labs.LabFeature +import im.vector.app.ui.robot.settings.labs.LabFeaturesPreferences import im.vector.app.ui.robot.withDeveloperMode import org.junit.Rule import org.junit.Test @@ -49,7 +51,14 @@ class UiAllScreensSanityTest { .around(GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE)) .around(ScreenshotFailureRule()) - private val elementRobot = ElementRobot() + private val elementRobot = ElementRobot( + LabFeaturesPreferences( + InstrumentationRegistry.getInstrumentation() + .targetContext + .resources + .getBoolean(R.bool.settings_labs_new_app_layout_default) + ) + ) // Last passing: // 2020-11-09 @@ -101,11 +110,11 @@ class UiAllScreensSanityTest { val spaceName = UUID.randomUUID().toString() elementRobot.space { - createSpace { + createSpace(true) { createAndCrawl(spaceName) } val publicSpaceName = UUID.randomUUID().toString() - createSpace { + createSpace(false) { createPublicSpace(publicSpaceName) } diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt index 528589d616..b70fcfec25 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/ElementRobot.kt @@ -37,8 +37,6 @@ import im.vector.app.espresso.tools.clickOnPreference import im.vector.app.espresso.tools.waitUntilActivityVisible import im.vector.app.espresso.tools.waitUntilDialogVisible import im.vector.app.espresso.tools.waitUntilViewVisible -import im.vector.app.features.DefaultVectorFeatures -import im.vector.app.features.VectorFeatures import im.vector.app.features.createdirect.CreateDirectRoomActivity import im.vector.app.features.home.HomeActivity import im.vector.app.features.onboarding.OnboardingActivity @@ -46,14 +44,14 @@ import im.vector.app.features.settings.VectorSettingsActivity import im.vector.app.initialSyncIdlingResource import im.vector.app.ui.robot.settings.SettingsRobot import im.vector.app.ui.robot.settings.labs.LabFeature +import im.vector.app.ui.robot.settings.labs.LabFeaturesPreferences import im.vector.app.ui.robot.space.SpaceRobot import im.vector.app.withIdlingResource import timber.log.Timber -class ElementRobot { - - var features: VectorFeatures = DefaultVectorFeatures() - +class ElementRobot( + private val labsPreferences: LabFeaturesPreferences = LabFeaturesPreferences(false) +) { fun onboarding(block: OnboardingRobot.() -> Unit) { block(OnboardingRobot()) } @@ -84,34 +82,57 @@ class ElementRobot { } fun settings(shouldGoBack: Boolean = true, block: SettingsRobot.() -> Unit) { - openDrawer() - clickOn(R.id.homeDrawerHeaderSettingsView) + if (labsPreferences.isNewAppLayoutEnabled) { + onView(withId((R.id.avatar))).perform(click()) + } else { + openDrawer() + clickOn(R.id.homeDrawerHeaderSettingsView) + } + block(SettingsRobot()) if (shouldGoBack) pressBack() waitUntilViewVisible(withId(R.id.roomListContainer)) } fun newDirectMessage(block: NewDirectMessageRobot.() -> Unit) { - clickOn(R.id.bottom_action_people) - clickOn(R.id.createChatRoomButton) + if (labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.newLayoutCreateChatButton) + waitUntilDialogVisible(withId(R.id.start_chat)) + clickOn(R.id.start_chat) + } else { + clickOn(R.id.bottom_action_people) + clickOn(R.id.createChatRoomButton) + } + waitUntilActivityVisible { waitUntilViewVisible(withId(R.id.userListSearch)) } closeSoftKeyboard() block(NewDirectMessageRobot()) pressBack() + if (labsPreferences.isNewAppLayoutEnabled) { + pressBack() // close create dialog + } waitUntilViewVisible(withId(R.id.roomListContainer)) } fun newRoom(block: NewRoomRobot.() -> Unit) { - clickOn(R.id.bottom_action_rooms) - RoomListRobot().newRoom { block() } + if (!labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.bottom_action_rooms) + } + RoomListRobot(labsPreferences).newRoom { block() } + if (labsPreferences.isNewAppLayoutEnabled) { + pressBack() // close create dialog + } waitUntilViewVisible(withId(R.id.roomListContainer)) } fun roomList(block: RoomListRobot.() -> Unit) { - clickOn(R.id.bottom_action_rooms) - block(RoomListRobot()) + if (!labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.bottom_action_rooms) + } + + block(RoomListRobot(labsPreferences)) waitUntilViewVisible(withId(R.id.roomListContainer)) } @@ -152,7 +173,7 @@ class ElementRobot { } fun signout(expectSignOutWarning: Boolean) { - if (features.isNewAppLayoutEnabled()) { + if (labsPreferences.isNewAppLayoutEnabled) { onView(withId((R.id.avatar))) .perform(click()) waitUntilActivityVisible { @@ -202,7 +223,7 @@ class ElementRobot { } fun space(block: SpaceRobot.() -> Unit) { - block(SpaceRobot()) + block(SpaceRobot(labsPreferences)) } } diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/NewRoomRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/NewRoomRobot.kt index 09ff1162c0..0cea26d5cc 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/NewRoomRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/NewRoomRobot.kt @@ -21,10 +21,15 @@ import androidx.test.espresso.matcher.ViewMatchers.withId import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn import im.vector.app.R import im.vector.app.espresso.tools.waitUntilViewVisible +import im.vector.app.features.DefaultVectorFeatures +import im.vector.app.features.VectorFeatures +import im.vector.app.ui.robot.settings.labs.LabFeaturesPreferences class NewRoomRobot( - var createdRoom: Boolean = false + var createdRoom: Boolean = false, + private val labsPreferences: LabFeaturesPreferences ) { + private val features: VectorFeatures = DefaultVectorFeatures() fun createNewRoom(block: CreateNewRoomRobot.() -> Unit) { clickOn(R.string.create_new_room) diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt index e72535c116..1f1a799db3 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/OnboardingRobot.kt @@ -33,7 +33,6 @@ import im.vector.app.features.DefaultVectorFeatures import im.vector.app.waitForView class OnboardingRobot { - private val defaultVectorFeatures = DefaultVectorFeatures() fun crawl() { diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/RoomListRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/RoomListRobot.kt index dc07f06202..e4984aeed0 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/RoomListRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/RoomListRobot.kt @@ -27,9 +27,11 @@ import com.adevinta.android.barista.assertion.BaristaVisibilityAssertions import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn import im.vector.app.R import im.vector.app.espresso.tools.waitUntilActivityVisible +import im.vector.app.espresso.tools.waitUntilDialogVisible import im.vector.app.features.roomdirectory.RoomDirectoryActivity +import im.vector.app.ui.robot.settings.labs.LabFeaturesPreferences -class RoomListRobot { +class RoomListRobot(private val labsPreferences: LabFeaturesPreferences) { fun openRoom(roomName: String, block: RoomDetailRobot.() -> Unit) { clickOn(roomName) @@ -49,11 +51,17 @@ class RoomListRobot { } fun newRoom(block: NewRoomRobot.() -> Unit) { - clickOn(R.id.createGroupRoomButton) - waitUntilActivityVisible { - BaristaVisibilityAssertions.assertDisplayed(R.id.publicRoomsList) + if (labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.newLayoutCreateChatButton) + waitUntilDialogVisible(ViewMatchers.withId(R.id.create_room)) + clickOn(R.id.create_room) + } else { + clickOn(R.id.createGroupRoomButton) + waitUntilActivityVisible { + BaristaVisibilityAssertions.assertDisplayed(R.id.publicRoomsList) + } } - val newRoomRobot = NewRoomRobot() + val newRoomRobot = NewRoomRobot(false, labsPreferences) block(newRoomRobot) if (!newRoomRobot.createdRoom) { pressBack() diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/settings/labs/LabFeaturesPreferences.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/settings/labs/LabFeaturesPreferences.kt new file mode 100644 index 0000000000..8f36e7ae23 --- /dev/null +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/settings/labs/LabFeaturesPreferences.kt @@ -0,0 +1,19 @@ +/* + * 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.ui.robot.settings.labs + +data class LabFeaturesPreferences(val isNewAppLayoutEnabled: Boolean) diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceCreateRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceCreateRobot.kt index 018f3097ba..e5147c2085 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceCreateRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceCreateRobot.kt @@ -31,6 +31,7 @@ import im.vector.app.espresso.tools.waitUntilActivityVisible import im.vector.app.espresso.tools.waitUntilDialogVisible import im.vector.app.espresso.tools.waitUntilViewVisible import im.vector.app.features.home.HomeActivity +import im.vector.app.features.home.room.detail.RoomDetailActivity import im.vector.app.features.spaces.manage.SpaceManageActivity class SpaceCreateRobot { @@ -85,7 +86,9 @@ class SpaceCreateRobot { clickOn(R.id.nextButton) waitUntilViewVisible(withId(R.id.recyclerView)) clickOn(R.id.nextButton) - waitUntilDialogVisible(withId(R.id.inviteByMxidButton)) + waitUntilActivityVisible { + waitUntilDialogVisible(withId(R.id.inviteByMxidButton)) + } // close invite dialog pressBack() waitUntilViewVisible(withId(R.id.timelineRecyclerView)) diff --git a/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceRobot.kt b/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceRobot.kt index b8a2f4313b..e8ff58ba6a 100644 --- a/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceRobot.kt +++ b/vector-app/src/androidTest/java/im/vector/app/ui/robot/space/SpaceRobot.kt @@ -18,6 +18,8 @@ package im.vector.app.ui.robot.space import androidx.recyclerview.widget.RecyclerView import androidx.test.espresso.Espresso +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.action.ViewActions.longClick import androidx.test.espresso.contrib.RecyclerViewActions import androidx.test.espresso.matcher.ViewMatchers import com.adevinta.android.barista.interaction.BaristaClickInteractions.clickOn @@ -26,18 +28,44 @@ import com.adevinta.android.barista.internal.viewaction.ClickChildAction import im.vector.app.R import im.vector.app.espresso.tools.waitUntilDialogVisible import im.vector.app.espresso.tools.waitUntilViewVisible +import im.vector.app.features.DefaultVectorFeatures +import im.vector.app.features.VectorFeatures +import im.vector.app.ui.robot.settings.labs.LabFeaturesPreferences import org.hamcrest.Matchers -class SpaceRobot { +class SpaceRobot(private val labsPreferences: LabFeaturesPreferences) { + private val features: VectorFeatures = DefaultVectorFeatures() - fun createSpace(block: SpaceCreateRobot.() -> Unit) { - openDrawer() - clickOn(R.string.create_space) + fun createSpace(isFirstSpace: Boolean, block: SpaceCreateRobot.() -> Unit) { + if (labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.newLayoutOpenSpacesButton) + if (isFirstSpace) { + waitUntilDialogVisible(ViewMatchers.withId(R.id.spaces_empty_group)) + clickOn(R.id.spaces_empty_button) + } else { + waitUntilDialogVisible(ViewMatchers.withId(R.id.groupListView)) + Espresso.onView(ViewMatchers.withId(R.id.groupListView)) + .perform( + RecyclerViewActions.actionOnItem( + ViewMatchers.hasDescendant(ViewMatchers.withId(R.id.plus)), + click() + ).atPosition(0) + ) + } + } else { + openDrawer() + clickOn(R.string.create_space) + } block(SpaceCreateRobot()) } fun spaceMenu(spaceName: String, block: SpaceMenuRobot.() -> Unit) { - openDrawer() + if (labsPreferences.isNewAppLayoutEnabled) { + clickOn(R.id.newLayoutOpenSpacesButton) + waitUntilDialogVisible(ViewMatchers.withId(R.id.groupListView)) + } else { + openDrawer() + } with(SpaceMenuRobot()) { openMenu(spaceName) block() @@ -46,19 +74,32 @@ class SpaceRobot { fun openMenu(spaceName: String) { waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView)) - Espresso.onView(ViewMatchers.withId(R.id.groupListView)) - .perform( - RecyclerViewActions.actionOnItem( - ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))), - ClickChildAction.clickChildWithId(R.id.groupTmpLeave) - ).atPosition(0) - ) + if (labsPreferences.isNewAppLayoutEnabled) { + Espresso.onView(ViewMatchers.withId(R.id.groupListView)) + .perform( + RecyclerViewActions.actionOnItem( + ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.name), ViewMatchers.withText(spaceName))), + longClick() + ).atPosition(0) + ) + } else { + Espresso.onView(ViewMatchers.withId(R.id.groupListView)) + .perform( + RecyclerViewActions.actionOnItem( + ViewMatchers.hasDescendant(Matchers.allOf(ViewMatchers.withId(R.id.groupNameView), ViewMatchers.withText(spaceName))), + ClickChildAction.clickChildWithId(R.id.groupTmpLeave) + ).atPosition(0) + ) + } + waitUntilDialogVisible(ViewMatchers.withId(R.id.spaceNameView)) } fun selectSpace(spaceName: String) { - openDrawer() - waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView)) + if (!labsPreferences.isNewAppLayoutEnabled) { + openDrawer() + waitUntilViewVisible(ViewMatchers.withId(R.id.groupListView)) + } clickOn(spaceName) } } diff --git a/vector-app/src/gplay/AndroidManifest.xml b/vector-app/src/gplay/AndroidManifest.xml index a5f0eae6be..0ac14f9cd3 100755 --- a/vector-app/src/gplay/AndroidManifest.xml +++ b/vector-app/src/gplay/AndroidManifest.xml @@ -1,5 +1,6 @@ - + @@ -8,18 +9,14 @@ android:name="firebase_analytics_collection_deactivated" android:value="true" /> - - + + - - + - - - + diff --git a/vector-config/src/main/res/values/config-settings.xml b/vector-config/src/main/res/values/config-settings.xml index b2cd21c3de..1701fd45b0 100755 --- a/vector-config/src/main/res/values/config-settings.xml +++ b/vector-config/src/main/res/values/config-settings.xml @@ -38,6 +38,7 @@ false + false true false diff --git a/vector/build.gradle b/vector/build.gradle index 65adc7089c..a5538053fc 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -257,7 +257,7 @@ dependencies { // UnifiedPush implementation 'com.github.UnifiedPush:android-connector:2.0.1' // UnifiedPush gplay flavor only - gplayImplementation('com.github.UnifiedPush:android-embedded_fcm_distributor:2.1.3') { + gplayImplementation('com.google.firebase:firebase-messaging:23.0.8') { exclude group: 'com.google.firebase', module: 'firebase-core' exclude group: 'com.google.firebase', module: 'firebase-analytics' exclude group: 'com.google.firebase', module: 'firebase-measurement-connector' diff --git a/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesStateFactory.kt b/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesStateFactory.kt index c127e3aed6..9b2711a8c3 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesStateFactory.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/features/DebugFeaturesStateFactory.kt @@ -88,7 +88,7 @@ class DebugFeaturesStateFactory @Inject constructor( createBooleanFeature( label = "Enable New App Layout", key = DebugFeatureKeys.newAppLayoutEnabled, - factory = VectorFeatures::isNewAppLayoutEnabled + factory = VectorFeatures::isNewAppLayoutFeatureEnabled ), createBooleanFeature( label = "Enable New Device Management", diff --git a/vector/src/debug/java/im/vector/app/features/debug/features/DebugVectorFeatures.kt b/vector/src/debug/java/im/vector/app/features/debug/features/DebugVectorFeatures.kt index 003b9b8084..bb4cae3201 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/features/DebugVectorFeatures.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/features/DebugVectorFeatures.kt @@ -76,8 +76,8 @@ class DebugVectorFeatures( override fun shouldStartDmOnFirstMessage(): Boolean = read(DebugFeatureKeys.startDmOnFirstMsg) ?: vectorFeatures.shouldStartDmOnFirstMessage() - override fun isNewAppLayoutEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled) - ?: vectorFeatures.isNewAppLayoutEnabled() + override fun isNewAppLayoutFeatureEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled) + ?: vectorFeatures.isNewAppLayoutFeatureEnabled() override fun isNewDeviceManagementEnabled(): Boolean = read(DebugFeatureKeys.newDeviceManagementEnabled) ?: vectorFeatures.isNewDeviceManagementEnabled() diff --git a/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsFragment.kt b/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsFragment.kt index 38253fe7c2..be3d41e0e1 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsFragment.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsFragment.kt @@ -16,6 +16,8 @@ package im.vector.app.features.debug.settings +import android.annotation.SuppressLint +import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -24,6 +26,7 @@ import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.databinding.FragmentDebugPrivateSettingsBinding +import im.vector.app.features.home.room.list.home.release.ReleaseNotesActivity class DebugPrivateSettingsFragment : VectorBaseFragment() { @@ -35,7 +38,6 @@ class DebugPrivateSettingsFragment : VectorBaseFragment viewModel.handle(DebugPrivateSettingsViewActions.SetForceLoginFallbackEnabled(isChecked)) } + views.releaseNotesActivityHasBeenDisplayedReset.setOnClickListener { + viewModel.handle(DebugPrivateSettingsViewActions.ResetReleaseNotesActivityHasBeenDisplayed) + } + views.showReleaseNotesActivity.setOnClickListener { + startActivity(Intent(requireActivity(), ReleaseNotesActivity::class.java)) + } } override fun invalidate() = withState(viewModel) { @@ -57,5 +65,7 @@ class DebugPrivateSettingsFragment : VectorBaseFragment(initialState) { @AssistedFactory @@ -43,6 +45,15 @@ class DebugPrivateSettingsViewModel @AssistedInject constructor( init { observeVectorOverrides() + observeReleaseNotesPreferencesStore() + } + + private fun observeReleaseNotesPreferencesStore() { + releaseNotesPreferencesStore.appLayoutOnboardingShown.setOnEach { + copy( + releaseNotesActivityHasBeenDisplayed = it + ) + } } private fun observeVectorOverrides() { @@ -72,6 +83,13 @@ class DebugPrivateSettingsViewModel @AssistedInject constructor( is DebugPrivateSettingsViewActions.SetForceLoginFallbackEnabled -> handleSetForceLoginFallbackEnabled(action) is SetDisplayNameCapabilityOverride -> handleSetDisplayNameCapabilityOverride(action) is SetAvatarCapabilityOverride -> handleSetAvatarCapabilityOverride(action) + DebugPrivateSettingsViewActions.ResetReleaseNotesActivityHasBeenDisplayed -> handleResetReleaseNotesActivityHasBeenDisplayed() + } + } + + private fun handleResetReleaseNotesActivityHasBeenDisplayed() { + viewModelScope.launch { + releaseNotesPreferencesStore.setAppLayoutOnboardingShown(false) } } diff --git a/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsViewState.kt b/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsViewState.kt index 749b11a744..a390c94942 100644 --- a/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsViewState.kt +++ b/vector/src/debug/java/im/vector/app/features/debug/settings/DebugPrivateSettingsViewState.kt @@ -22,7 +22,8 @@ import im.vector.app.features.debug.settings.OverrideDropdownView.OverrideDropdo data class DebugPrivateSettingsViewState( val dialPadVisible: Boolean = false, val forceLoginFallback: Boolean = false, - val homeserverCapabilityOverrides: HomeserverCapabilityOverrides = HomeserverCapabilityOverrides() + val homeserverCapabilityOverrides: HomeserverCapabilityOverrides = HomeserverCapabilityOverrides(), + val releaseNotesActivityHasBeenDisplayed: Boolean = false, ) : MavericksState data class HomeserverCapabilityOverrides( diff --git a/vector/src/debug/res/layout/fragment_debug_private_settings.xml b/vector/src/debug/res/layout/fragment_debug_private_settings.xml index c42ad68dce..55824930bc 100644 --- a/vector/src/debug/res/layout/fragment_debug_private_settings.xml +++ b/vector/src/debug/res/layout/fragment_debug_private_settings.xml @@ -49,6 +49,27 @@ android:layout_marginEnd="16dp" android:layout_marginBottom="4dp" /> + + +