mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 13:38:49 +03:00
Merge branch 'vector-im:develop' into develop
This commit is contained in:
commit
341456901d
241 changed files with 4435 additions and 685 deletions
1
changelog.d/5885.bugfix
Normal file
1
changelog.d/5885.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Don't pause timer when call is held.
|
1
changelog.d/5907.sdk
Normal file
1
changelog.d/5907.sdk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Replace usage of `System.currentTimeMillis()` by a `Clock` interface
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Posun přehrávání v hlasových zprávách. Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/es-ES/changelogs/40103030.txt
Normal file
2
fastlane/metadata/android/es-ES/changelogs/40103030.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Cambios principales en esta versión: Hacer la política de servidores de indentidad visible en los ajusted. Temporalmente quitar soporte para Android Auto.
|
||||||
|
Registro de cambios: https://github.com/vector-im/element-android/releases/tag/v1.3.3
|
2
fastlane/metadata/android/es-ES/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/es-ES/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Cambios principales en esta versión: Varias correciones de bugs y mejoras en la estabilidad
|
||||||
|
Registro de cambios: https://github.com/vector-im/element-android/releases
|
|
@ -37,3 +37,6 @@ Mensajería, llamadas de voz y video, uso compartido de archivos, uso compartido
|
||||||
|
|
||||||
<b>Continúa donde lo dejaste</b>
|
<b>Continúa donde lo dejaste</b>
|
||||||
Manténgase en contacto donde quiera que esté con el historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io
|
Manténgase en contacto donde quiera que esté con el historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io
|
||||||
|
|
||||||
|
<b>Código abierto</b>
|
||||||
|
Element Android es un proyecto de código abierto, alojado en GitHub. Porfavor, reporta bugs y problemas en esta dirección: https://github.com/vector-im/element-android
|
||||||
|
|
2
fastlane/metadata/android/et/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: kerimine häälsõnumites ning erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/fa/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: لغزش در پیامهای صوتی. رفع اشکالهای مختلف و بهبودهای امنیتی.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Gulir di pesan suara. Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/it-IT/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: scorrimento nei vocali. Varie correzioni e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/lo/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ສະບັບໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນມີການແກ້ໄຂແລະການປັບປຸງ bug. ຕອນນີ້ການສົ່ງຂໍ້ຄວາມແມ່ນໄວຂຶ້ນຫຼາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
2
fastlane/metadata/android/lo/changelogs/40100110.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ຮຸ່ນໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນປະກອບດ້ວຍໜ້າຕາແອັບແລະການປັບປຸງປະສົບການຂອງຜູ້ໃຊ້. ດຽວນີ້ທ່ານສາມາດເຊີນໝູ່, ແລະສ້າງການສົນທະນາກົງໄດ້ໄວຂຶ້ນໂດຍການສະແກນລະຫັດ QR.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
2
fastlane/metadata/android/lo/changelogs/40100120.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
2
fastlane/metadata/android/lo/changelogs/40100130.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100130.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
2
fastlane/metadata/android/lo/changelogs/40100140.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100140.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂການອະນຸຍາດຫ້ອງ, ຮູບແບບ ແຈ້ງ / ມືດອັດຕະໂນມັດ, ແລະການແກ້ໄຂບັນຫາຈຳນວນໜຶ່ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
2
fastlane/metadata/android/lo/changelogs/40100150.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100150.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
2
fastlane/metadata/android/lo/changelogs/40100160.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100160.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
2
fastlane/metadata/android/lo/changelogs/40100170.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40100170.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
2
fastlane/metadata/android/lo/changelogs/40101000.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບຂອງ VoIP (ໂທສຽງ ແລະໂທວີດີໂອໃນການສົນທະນາກົງ) ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
2
fastlane/metadata/android/lo/changelogs/40101010.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101010.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
2
fastlane/metadata/android/lo/changelogs/40101020.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
2
fastlane/metadata/android/lo/changelogs/40101030.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101030.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
2
fastlane/metadata/android/lo/changelogs/40101040.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101040.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
2
fastlane/metadata/android/lo/changelogs/40101050.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101050.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.4
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
2
fastlane/metadata/android/lo/changelogs/40101060.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101060.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.5
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
2
fastlane/metadata/android/lo/changelogs/40101070.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101070.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮອງຮັບເບຕ້າສຳລັບ Spaces. ບີບອັດວິດີໂອກ່ອນທີ່ຈະສົ່ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
2
fastlane/metadata/android/lo/changelogs/40101080.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101080.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງສໍາລັບ Spaces.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
2
fastlane/metadata/android/lo/changelogs/40101090.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101090.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮັບຮອງສໍາລັບເຄືອຂ່າຍ gitter.im.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
2
fastlane/metadata/android/lo/changelogs/40101100.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
2
fastlane/metadata/android/lo/changelogs/40101110.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ (bugfix ສຳລັບ 1.1.10)
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
2
fastlane/metadata/android/lo/changelogs/40101120.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບ ແລະແກ້ໄຂການຂັດຂ້ອງຫຼັງຈາກການໂທວິດີໂອ
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.12
|
2
fastlane/metadata/android/lo/changelogs/40101130.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101130.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.13
|
2
fastlane/metadata/android/lo/changelogs/40101140.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101140.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວກັບຂໍ້ຄວາມທີ່ຖືກເຂົ້າລະຫັດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.14
|
2
fastlane/metadata/android/lo/changelogs/40101150.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101150.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດຂໍ້ຄວາມສຽງພາຍໃຕ້ການຕັ້ງຄ່າຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.15
|
2
fastlane/metadata/android/lo/changelogs/40101160.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40101160.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດໃນເວລາສົ່ງຂໍ້ຄວາມເຂົ້າລະຫັດຖ້າມີຄົນຢູ່ໃນຫ້ອງອອກຈາກລະບົບ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.16
|
2
fastlane/metadata/android/lo/changelogs/40102000.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40102000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການສົນທະນາດ້ວຍສຽງເປີດໄວ້ໂດຍມາດຕະຖານ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.0
|
2
fastlane/metadata/android/lo/changelogs/40102010.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40102010.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງຫຼາຍຢ່າງກ່ຽວກັບ VoIP ແລະ Spaces (ຍັງຢູ່ໃນເບຕ້າ).
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.1
|
2
fastlane/metadata/android/lo/changelogs/40103000.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.0
|
2
fastlane/metadata/android/lo/changelogs/40103010.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103010.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces! v1.3.1 ກຳລັງແກ້ໄຂບັນແອັບໃຊ້ບໍ່ໄດ້ທີ່ສາມາດເກີດຂຶ້ນໃນ v1.3.0.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.1
|
2
fastlane/metadata/android/lo/changelogs/40103020.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບ Android Auto. ການແກ້ໄຂຍັກຫຼາຍອັນ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.2
|
2
fastlane/metadata/android/lo/changelogs/40103030.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103030.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເຮັດໃຫ້ນະໂຍບາຍຂອງເຄື່ອງແມ່ຂ່າຍຢັ້ງຢືນຕົວຕົນ (ຫຼາຍໜ່ວຍ) ໃຫ້ເຫັນຢູ່ໃນການຕັ້ງຄ່າ. ລຶບການຮອງຮັບ Android Auto ອອກຊົ່ວຄາວ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.3
|
2
fastlane/metadata/android/lo/changelogs/40103040.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103040.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.4
|
2
fastlane/metadata/android/lo/changelogs/40103050.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103050.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.5
|
2
fastlane/metadata/android/lo/changelogs/40103060.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103060.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.6
|
2
fastlane/metadata/android/lo/changelogs/40103070.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103070.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກສ່ວນໃຫຍ່ກ່ຽວກັບການແຈ້ງເຕືອນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
|
2
fastlane/metadata/android/lo/changelogs/40103080.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103080.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.8
|
2
fastlane/metadata/android/lo/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103090.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບສະບັບຮ່າງການສົນທະນາດ້ວຍສຽງ. ແກ້ໄຂບັກຫຼາຍໆອັນ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.09
|
2
fastlane/metadata/android/lo/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບແບບສໍາຫຼວດ (ໃນຫ້ອງທົດລອງ). ການອອກແບບຕົວຢ່າງ URL ໃໝ່.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/lo/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/lo/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/lo/changelogs/40103130.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103130.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.13
|
2
fastlane/metadata/android/lo/changelogs/40103140.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103140.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.14
|
2
fastlane/metadata/android/lo/changelogs/40103150.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103150.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.15
|
2
fastlane/metadata/android/lo/changelogs/40103160.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103160.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.16
|
2
fastlane/metadata/android/lo/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103170.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
2
fastlane/metadata/android/lo/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40103180.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
2
fastlane/metadata/android/lo/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດເບື້ອງຕົ້ນຂອງຂໍ້ຄວາມແບບກະທູ້. ຂໍ້ຄວາມຮູບແບບປຸມເປົ້າ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/lo/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການສະຫນັບສະຫນູນກັບ @room ແລະແບບສໍາຫຼວດທີ່ບໍ່ເປີດເຜີຍໃນບັນດາການປ່ຽນແປງເລັກນ້ອຍອື່ນໆ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/lo/changelogs/40104040.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104040.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວສະແດງການພິມ ແລະປັບປັງ IU. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.4
|
2
fastlane/metadata/android/lo/changelogs/40104060.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104060.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ທາມລາຍກະທູ້ ປະຈຸບັນເປັນແບບຖ່າຍທອດສົດ ແລະໄວຂຶ້ນ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.6
|
2
fastlane/metadata/android/lo/changelogs/40104070.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104070.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.7
|
2
fastlane/metadata/android/lo/changelogs/40104080.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104080.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/lo/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/lo/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/lo/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ໄຂ bug ຕ່າງໆແລະການປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
42
fastlane/metadata/android/lo/full_description.txt
Normal file
42
fastlane/metadata/android/lo/full_description.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
ລະບົບແຊັດນີ້ ມີຄວາມປອດໄພ ແລະເປັນແອັບທີ່ເຮັດຊ່ວຍສົ່ງເສີ່ມການເຮັດວຽກຮ່ວມກັນຢ່າງມີປະສິດທິຜົນໝາະສົມສຳລັບການສົນທະນາກຸ່ມໃນຂະນະທີ່ເຮັດວຽກທາງໄກ. ແອັບສົນທະນານີ້ໃຊ້ການເຂົ້າລະຫັດແບບຕົ້ນທາງຈົນຈົບເພື່ອໃຫ້ການປະຊຸມວິດີໂອທີ່ມີປະສິດທິພາບ, ການແບ່ງປັນໄຟລ໌ ແລະການໂທແບບສຽງ.
|
||||||
|
|
||||||
|
<b>ຄຸນສົມບັດຂອງລະບົບລວມມີ:</b>
|
||||||
|
- ເຄື່ອງມືການສື່ສານອອນໄລນ໌ແບບລຳ້ໜ້າ
|
||||||
|
- ຂໍ້ຄວາມມີການເຂົ້າລະຫັດຢ່າງເຕັມສ່ວນເພື່ອໃຫ້ການສື່ສານຂອງອົງກອນມີຄວາມປອດໄພ, ເຖິງແມ່ນວ່າຈະເຮັດວຽກຈາກທາງໄກ
|
||||||
|
- ລະບົບແຊັດແບບແບ່ງກະຈາຍການຄຸ້ມຄອງໂດຍນຳໃຊ້ນະວັດຕະກຳເປີດຂອງລະບົບ Matrix
|
||||||
|
- ການແບ່ງປັນໄຟລ໌ຢ່າງປອດໄພກັບຂໍ້ມູນທີ່ເຂົ້າລະຫັດໄວ້ໃນຂະນະທີ່ຈັດການໂຄງການ
|
||||||
|
- ວິດີໂອສົນທະນາກັບ Voice over IP ແລະການແບ່ງປັນຫນ້າຈໍ
|
||||||
|
- ການເຊື່ອມໂຍງງ່າຍດາຍກັບເຄື່ອງມືການຮ່ວມມືອອນໄລນ໌ຂອງທ່ານ, ເຄື່ອງມືການຄຸ້ມຄອງໂຄງການ, ການບໍລິການ VoIP ແລະຂໍ້ຄວາມອື່ນໆຂອງທີມ
|
||||||
|
|
||||||
|
ລະບົບນີ້ແມ່ນແຕກຕ່າງກັນຢ່າງສິ້ນເຊີງຈາກແອັບຯສົ່ງຂໍ້ຄວາມ ແລະແອັບສົ່ງເສີມການຮ່ວມມືອື່ນໆ. ມັນດໍາເນີນການຢູ່ໃນ Matrix, ເຄືອຂ່າຍເປີດສໍາລັບການສົ່ງຂໍ້ຄວາມທີ່ປອດໄພແລະການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ທ່ານສາມາດຕັ້ງສະຖານີດ້ວຍຕົນເອງເພື່ອໃຫ້ຜູ້ໃຊ້ເປັນເຈົ້າຂອງສູງສຸດແລະຄຸ້ມຄອງຂໍ້ມູນແລະຂໍ້ຄວາມຂອງຕົນເອງ.
|
||||||
|
|
||||||
|
<b>ຄວາມເປັນສ່ວນຕົວ ແລະຂໍ້ຄວາມເຂົ້າລະຫັດ</b>
|
||||||
|
ລະບົບຈະປົກປ້ອງທ່ານຈາກການໂຄສະນາທີ່ບໍ່ຕ້ອງການ, ການຂຸດຄົ້ນຂໍ້ມູນແລະການສ້າງເງື່ອນໄຂປິດລ້ອມ. ລະບົບຍັງຮັບປະກັນຂໍ້ມູນທັງຫມົດຂອງທ່ານ, ການໂທວິດີໂອແບບຫນຶ່ງຕໍ່ຫນຶ່ງແລະການສື່ສານສຽງໂດຍຜ່ານການເຂົ້າລະຫັດແບບຕົ້ນທາງຫາປາຍທາງ ແລະການກວດສອບອຸປະກອນກ່ອນເຊື່ອມຕໍ່.
|
||||||
|
|
||||||
|
ລະບົບເຮົາໃຫ້ທ່ານຄວບຄຸມຄວາມເປັນສ່ວນຕົວຂອງທ່ານໃນຂະນະທີ່ອະນຸຍາດໃຫ້ທ່ານຕິດຕໍ່ສື່ສານຢ່າງປອດໄພກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ຫຼືເຄື່ອງມືທີ່ທ່ານຄຸ້ນເຄີຍເຊັ່ນ Whatsapp, Slack, Facebook.
|
||||||
|
|
||||||
|
<b>ທ່ານສາມາດສ້າງສະຖານີຂອງຕົນເອງ</b>
|
||||||
|
ເພື່ອໃຫ້ສາມາດຄວບຄຸມຂໍ້ມູນແລະການສົນທະນາທີ່ລະອຽດອ່ອນຂອງທ່ານຫຼາຍຂຶ້ນ, ທ່ານສາມາດຕິດຕັ້ງສະຖານີສື່ສານຂອງຕົນເອງຫຼືທ່ານສາມາດເລືອກຕິດຕັ້ງໄວ້ກັບເຄືອຂ່າຍ Matrix - ມາດຕະຖານສໍາລັບລະບົບເປີດ, ການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ລະບົບພວກເຮົາໃຫ້ທ່ານມີຄວາມເປັນສ່ວນຕົວ, ໄດ້ຕາມມາດຕະຖານຄວາມປອດໄພແລະມີຄວາມຍືດຫຍຸ່ນໃນການເຊື່ອມໂຍງ.
|
||||||
|
|
||||||
|
<b>ເປັນເຈົ້າຂອງຂໍ້ມູນຂອງທ່ານເອງ</b>
|
||||||
|
ທ່ານສາມາດເລືອກໄດ້ວ່າຈະເກັບຂໍ້ມູນ ແລະຂໍ້ຄວາມຂອງທ່ານຢູ່ໃສ. ໂດຍບໍ່ມີຄວາມສ່ຽງຕໍ່ການຂຸດຄົ້ນຂໍ້ມູນຫຼືການເຂົ້າເຖິງຈາກພາກສ່ວນທີສາມ.
|
||||||
|
|
||||||
|
ລະບົບພວກເຮົາເຮັດໃຫ້ທ່ານສາມາດຄວບຄຸມດ້ວຍວິທີຕ່າງໆ:
|
||||||
|
1. ຮັບບັນຊີຟຣີໃນເຊີບເວີສາທາລະນະ matrix.org ທີ່ໂຮສໂດຍຜູ້ພັດທະນາ Matrix, ຫຼືເລືອກຈາກເຄື່ອງແມ່ຂ່າຍສາທາລະນະຫຼາຍພັນເຊີບເວີທີ່ໂຮສໂດຍອາສາສະໝັກ.
|
||||||
|
2. ຈັດການບັນຊີຂອງທ່ານເອງໂດຍການແລ່ນເຊີບເວີໃນໂຄງລ່າງພື້ນຖານ IT ຂອງທ່ານເອງ
|
||||||
|
3. ລົງທະບຽນສໍາລັບບັນຊີຢູ່ໃນເຄື່ອງແມ່ຂ່າຍທີ່ກໍາຫນົດເອງໂດຍພຽງແຕ່ສະຫມັກກັບ Element Matrix Services hosting platform
|
||||||
|
|
||||||
|
<b>ສົ່ງຂໍ້ຄວາມ ແລະການຮ່ວມມືກັບລະບົບອື່ນໆທີ່ທ່ານຄຸ້ນເຄີຍ</b>
|
||||||
|
ທ່ານສາມາດສົນທະນາກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ບໍ່ວ່າເຂົາເຈົ້າກໍາລັງໃຊ້ Element, ແອັບ Matrix ອື່ນ ຫຼືເຖິງແມ່ນວ່າເຂົາເຈົ້າກຳລັງໃຊ້ແອັບສົ່ງຂໍ້ຄວາມອື່ນຢູ່.
|
||||||
|
|
||||||
|
<b>ປອດໄພທີ່ສຸດ</b>
|
||||||
|
ການເຂົ້າລະຫັດຈາກຕົ້ນທາງຫາປາຍທາງ (ມີພຽງແຕ່ຜູ້ທີ່ຢູ່ໃນການສົນທະນາສາມາດຖອດລະຫັດຂໍ້ຄວາມໄດ້), ແລະການຢັ້ງຢືນອຸປະກອນໂດຍການລົງນາມຂ້າມອຸປະກອນ.
|
||||||
|
|
||||||
|
<b>ການສື່ສານແລະການເຊື່ອມໂຍງທີ່ຄົບຖ້ວນສົມບູນ</b>
|
||||||
|
ການສົ່ງຂໍ້ຄວາມ, ການໂທສຽງ ແລະວິດີໂອ, ການແບ່ງປັນໄຟລ໌, ການແບ່ງປັນໜ້າຈໍ ແລະການເຊື່ອມໂຍງທັງໝົດ, ບັອດ ແລະວິດເຈັດ. ສ້າງຫ້ອງ, ຊຸມຊົນ, ຕິດຕໍ່ພົວພັນແລະເຮັດສິ່ງຕ່າງໆ.
|
||||||
|
|
||||||
|
<b>ສືບຕໍ່ຈາກການສົນທະນາລ້າສຸດ</b>
|
||||||
|
ທ່ານສາມາດຕິດຕໍ່ພົວພັນໄດ້ທຸກບ່ອນທີ່ຕ້ອງການ ເຊິ່ງປະຫວັດການສົນທະນາຈະຖືກອັບເດດໄປຫາບັນດາອຸປະກອນຕ່າງໆຂອງທ່ານ ລວມເຖິງໃນເວັບໄຊຕ໌ທີ່ https://app.element.io
|
||||||
|
|
||||||
|
<b>ເຕັກໂນໂລຊີໂອເພິນຊອດ</b>
|
||||||
|
Element ເປັນໂຄງການເຕັກໂນໂລຊີໂອເພິນຊອດ, ເປັນເຈົ້າພາບໂດຍ GitHub. ກະລຸນາລາຍງານຂໍ້ບົກພ່ອງ ແລະ/ຫຼື ປະກອບສ່ວນເຂົ້າໃນການພັດທະນາຂອງລະບົບຢູ່ https://github.com/vector-im/element-android
|
1
fastlane/metadata/android/lo/short_description.txt
Normal file
1
fastlane/metadata/android/lo/short_description.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ສົ່ງຂໍ້ຄວາມກຸ່ມ - ສົ່ງຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດ, ສົນທະນາກຸ່ມ ແລະໂທວິດີໂອ
|
1
fastlane/metadata/android/lo/title.txt
Normal file
1
fastlane/metadata/android/lo/title.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ລະບົບສື່ສານທີ່ມີຄວາມປອດໄພສູງ
|
2
fastlane/metadata/android/pt-BR/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Principais mudanças nesta versão: Rolar em mensagem de voz. Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/sk/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavné zmeny v tejto verzii: Posúvanie v hlasovej správe. Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/sq/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/sq/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Ndryshimet kryesore në këtë version: Rrëshqitje në mesazh zanor. Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
|
||||||
|
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sq/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/sq/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Ndryshimet kryesore në këtë version: Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
|
||||||
|
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Huvudsakliga ändringar i denna version: Scrolla i röstmeddelanden. Diverse buggfixar och förbättrad stabilitet.
|
||||||
|
Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Huvudsakliga ändringar i denna version: Diverse buggfixar och förbättrad stabilitet.
|
||||||
|
Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/uk/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Основні зміни в цій версії: Прокручування в голосових повідомленнях. Усунуто різні вади й поліпшено стабільність.
|
||||||
|
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/uk/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність.
|
||||||
|
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40104100.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
此版本中的主要變動:捲動音訊訊息。多個臭蟲修復與穩定性改善。
|
||||||
|
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40104110.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
此版本中的主要變動:多個臭蟲修復與穩定性改善。
|
||||||
|
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
|
@ -57,7 +57,8 @@ import java.util.concurrent.TimeUnit
|
||||||
class CommonTestHelper(context: Context) {
|
class CommonTestHelper(context: Context) {
|
||||||
|
|
||||||
internal val matrix: TestMatrix
|
internal val matrix: TestMatrix
|
||||||
val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
private val coroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
|
||||||
|
private var accountNumber = 0
|
||||||
|
|
||||||
fun getTestInterceptor(session: Session): MockOkHttpInterceptor? = TestModule.interceptorForSession(session.sessionId) as? MockOkHttpInterceptor
|
fun getTestInterceptor(session: Session): MockOkHttpInterceptor? = TestModule.interceptorForSession(session.sessionId) as? MockOkHttpInterceptor
|
||||||
|
|
||||||
|
@ -167,7 +168,8 @@ class CommonTestHelper(context: Context) {
|
||||||
if (rootThreadEventId != null) {
|
if (rootThreadEventId != null) {
|
||||||
room.relationService().replyInThread(
|
room.relationService().replyInThread(
|
||||||
rootThreadEventId = rootThreadEventId,
|
rootThreadEventId = rootThreadEventId,
|
||||||
replyInThreadText = formattedMessage)
|
replyInThreadText = formattedMessage
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
room.sendService().sendTextMessage(formattedMessage)
|
room.sendService().sendTextMessage(formattedMessage)
|
||||||
}
|
}
|
||||||
|
@ -237,7 +239,7 @@ class CommonTestHelper(context: Context) {
|
||||||
password: String,
|
password: String,
|
||||||
testParams: SessionTestParams): Session {
|
testParams: SessionTestParams): Session {
|
||||||
val session = createAccountAndSync(
|
val session = createAccountAndSync(
|
||||||
userNamePrefix + "_" + System.currentTimeMillis() + UUID.randomUUID(),
|
userNamePrefix + "_" + accountNumber++ + "_" + UUID.randomUUID(),
|
||||||
password,
|
password,
|
||||||
testParams
|
testParams
|
||||||
)
|
)
|
||||||
|
|
|
@ -29,8 +29,10 @@ import org.matrix.android.sdk.api.session.crypto.attachments.toElementToDecrypt
|
||||||
import org.matrix.android.sdk.api.session.crypto.model.EncryptedFileInfo
|
import org.matrix.android.sdk.api.session.crypto.model.EncryptedFileInfo
|
||||||
import org.matrix.android.sdk.api.session.crypto.model.EncryptedFileKey
|
import org.matrix.android.sdk.api.session.crypto.model.EncryptedFileKey
|
||||||
import org.matrix.android.sdk.internal.crypto.attachments.MXEncryptedAttachments
|
import org.matrix.android.sdk.internal.crypto.attachments.MXEncryptedAttachments
|
||||||
|
import org.matrix.android.sdk.internal.util.time.DefaultClock
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
import java.util.UUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unit tests AttachmentEncryptionTest.
|
* Unit tests AttachmentEncryptionTest.
|
||||||
|
@ -48,13 +50,18 @@ class AttachmentEncryptionTest {
|
||||||
inputStream = if (inputAsByteArray.isEmpty()) {
|
inputStream = if (inputAsByteArray.isEmpty()) {
|
||||||
inputAsByteArray.inputStream()
|
inputAsByteArray.inputStream()
|
||||||
} else {
|
} else {
|
||||||
val memoryFile = MemoryFile("file" + System.currentTimeMillis(), inputAsByteArray.size)
|
val memoryFile = MemoryFile("file_" + UUID.randomUUID(), inputAsByteArray.size)
|
||||||
memoryFile.outputStream.write(inputAsByteArray)
|
memoryFile.outputStream.write(inputAsByteArray)
|
||||||
memoryFile.inputStream
|
memoryFile.inputStream
|
||||||
}
|
}
|
||||||
|
|
||||||
val decryptedStream = ByteArrayOutputStream()
|
val decryptedStream = ByteArrayOutputStream()
|
||||||
val result = MXEncryptedAttachments.decryptAttachment(inputStream, encryptedFileInfo.toElementToDecrypt()!!, decryptedStream)
|
val result = MXEncryptedAttachments.decryptAttachment(
|
||||||
|
attachmentStream = inputStream,
|
||||||
|
elementToDecrypt = encryptedFileInfo.toElementToDecrypt()!!,
|
||||||
|
outputStream = decryptedStream,
|
||||||
|
clock = DefaultClock()
|
||||||
|
)
|
||||||
|
|
||||||
assert(result)
|
assert(result)
|
||||||
|
|
||||||
|
@ -117,9 +124,13 @@ class AttachmentEncryptionTest {
|
||||||
url = "dummyUrl"
|
url = "dummyUrl"
|
||||||
)
|
)
|
||||||
|
|
||||||
assertEquals("YWxwaGFudW1lcmljYWxseWFscGhhbnVtZXJpY2FsbHlhbHBoYW51bWVyaWNhbGx5YWxwaGFudW1lcmljYWxseQ",
|
assertEquals(
|
||||||
checkDecryption("zhtFStAeFx0s+9L/sSQO+WQMtldqYEHqTxMduJrCIpnkyer09kxJJuA4K+adQE4w+7jZe/vR9kIcqj9rOhDR8Q",
|
"YWxwaGFudW1lcmljYWxseWFscGhhbnVtZXJpY2FsbHlhbHBoYW51bWVyaWNhbGx5YWxwaGFudW1lcmljYWxseQ",
|
||||||
encryptedFileInfo))
|
checkDecryption(
|
||||||
|
"zhtFStAeFx0s+9L/sSQO+WQMtldqYEHqTxMduJrCIpnkyer09kxJJuA4K+adQE4w+7jZe/vR9kIcqj9rOhDR8Q",
|
||||||
|
encryptedFileInfo
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -138,8 +149,12 @@ class AttachmentEncryptionTest {
|
||||||
url = "dummyUrl"
|
url = "dummyUrl"
|
||||||
)
|
)
|
||||||
|
|
||||||
assertNotEquals("YWxwaGFudW1lcmljYWxseWFscGhhbnVtZXJpY2FsbHlhbHBoYW51bWVyaWNhbGx5YWxwaGFudW1lcmljYWxseQ",
|
assertNotEquals(
|
||||||
checkDecryption("tJVNBVJ/vl36UQt4Y5e5m84bRUrQHhcdLPvS/7EkDvlkDLZXamBB6k8THbiawiKZ5Mnq9PZMSSbgOCvmnUBOMA",
|
"YWxwaGFudW1lcmljYWxseWFscGhhbnVtZXJpY2FsbHlhbHBoYW51bWVyaWNhbGx5YWxwaGFudW1lcmljYWxseQ",
|
||||||
encryptedFileInfo))
|
checkDecryption(
|
||||||
|
"tJVNBVJ/vl36UQt4Y5e5m84bRUrQHhcdLPvS/7EkDvlkDLZXamBB6k8THbiawiKZ5Mnq9PZMSSbgOCvmnUBOMA",
|
||||||
|
encryptedFileInfo
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.matrix.android.sdk.internal.crypto.store.db.RealmCryptoStore
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.RealmCryptoStoreModule
|
import org.matrix.android.sdk.internal.crypto.store.db.RealmCryptoStoreModule
|
||||||
import org.matrix.android.sdk.internal.crypto.store.db.mapper.CrossSigningKeysMapper
|
import org.matrix.android.sdk.internal.crypto.store.db.mapper.CrossSigningKeysMapper
|
||||||
import org.matrix.android.sdk.internal.di.MoshiProvider
|
import org.matrix.android.sdk.internal.di.MoshiProvider
|
||||||
|
import org.matrix.android.sdk.internal.util.time.DefaultClock
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
internal class CryptoStoreHelper {
|
internal class CryptoStoreHelper {
|
||||||
|
@ -34,7 +35,8 @@ internal class CryptoStoreHelper {
|
||||||
.build(),
|
.build(),
|
||||||
crossSigningKeysMapper = CrossSigningKeysMapper(MoshiProvider.providesMoshi()),
|
crossSigningKeysMapper = CrossSigningKeysMapper(MoshiProvider.providesMoshi()),
|
||||||
userId = "userId_" + Random.nextInt(),
|
userId = "userId_" + Random.nextInt(),
|
||||||
deviceId = "deviceId_sample"
|
deviceId = "deviceId_sample",
|
||||||
|
clock = DefaultClock(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.junit.runner.RunWith
|
||||||
import org.matrix.android.sdk.InstrumentedTest
|
import org.matrix.android.sdk.InstrumentedTest
|
||||||
import org.matrix.android.sdk.internal.crypto.model.OlmSessionWrapper
|
import org.matrix.android.sdk.internal.crypto.model.OlmSessionWrapper
|
||||||
import org.matrix.android.sdk.internal.crypto.store.IMXCryptoStore
|
import org.matrix.android.sdk.internal.crypto.store.IMXCryptoStore
|
||||||
|
import org.matrix.android.sdk.internal.util.time.DefaultClock
|
||||||
import org.matrix.olm.OlmAccount
|
import org.matrix.olm.OlmAccount
|
||||||
import org.matrix.olm.OlmManager
|
import org.matrix.olm.OlmManager
|
||||||
import org.matrix.olm.OlmSession
|
import org.matrix.olm.OlmSession
|
||||||
|
@ -37,6 +38,7 @@ private const val DUMMY_DEVICE_KEY = "DeviceKey"
|
||||||
class CryptoStoreTest : InstrumentedTest {
|
class CryptoStoreTest : InstrumentedTest {
|
||||||
|
|
||||||
private val cryptoStoreHelper = CryptoStoreHelper()
|
private val cryptoStoreHelper = CryptoStoreHelper()
|
||||||
|
private val clock = DefaultClock()
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
|
@ -106,7 +108,7 @@ class CryptoStoreTest : InstrumentedTest {
|
||||||
|
|
||||||
// Note: we cannot be sure what will be the result of getLastUsedSessionId() here
|
// Note: we cannot be sure what will be the result of getLastUsedSessionId() here
|
||||||
|
|
||||||
olmSessionWrapper2.onMessageReceived()
|
olmSessionWrapper2.onMessageReceived(clock.epochMillis())
|
||||||
cryptoStore.storeSession(olmSessionWrapper2, DUMMY_DEVICE_KEY)
|
cryptoStore.storeSession(olmSessionWrapper2, DUMMY_DEVICE_KEY)
|
||||||
|
|
||||||
// sessionId2 is returned now
|
// sessionId2 is returned now
|
||||||
|
@ -114,7 +116,7 @@ class CryptoStoreTest : InstrumentedTest {
|
||||||
|
|
||||||
Thread.sleep(2)
|
Thread.sleep(2)
|
||||||
|
|
||||||
olmSessionWrapper1.onMessageReceived()
|
olmSessionWrapper1.onMessageReceived(clock.epochMillis())
|
||||||
cryptoStore.storeSession(olmSessionWrapper1, DUMMY_DEVICE_KEY)
|
cryptoStore.storeSession(olmSessionWrapper1, DUMMY_DEVICE_KEY)
|
||||||
|
|
||||||
// sessionId1 is returned now
|
// sessionId1 is returned now
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.matrix.android.sdk.internal.database.mapper.toEntity
|
||||||
import org.matrix.android.sdk.internal.database.model.ChunkEntity
|
import org.matrix.android.sdk.internal.database.model.ChunkEntity
|
||||||
import org.matrix.android.sdk.internal.database.model.SessionRealmModule
|
import org.matrix.android.sdk.internal.database.model.SessionRealmModule
|
||||||
import org.matrix.android.sdk.internal.session.room.timeline.PaginationDirection
|
import org.matrix.android.sdk.internal.session.room.timeline.PaginationDirection
|
||||||
|
import org.matrix.android.sdk.internal.util.time.DefaultClock
|
||||||
import org.matrix.android.sdk.session.room.timeline.RoomDataHelper.createFakeListOfEvents
|
import org.matrix.android.sdk.session.room.timeline.RoomDataHelper.createFakeListOfEvents
|
||||||
import org.matrix.android.sdk.session.room.timeline.RoomDataHelper.createFakeMessageEvent
|
import org.matrix.android.sdk.session.room.timeline.RoomDataHelper.createFakeMessageEvent
|
||||||
|
|
||||||
|
@ -42,6 +43,7 @@ import org.matrix.android.sdk.session.room.timeline.RoomDataHelper.createFakeMes
|
||||||
internal class ChunkEntityTest : InstrumentedTest {
|
internal class ChunkEntityTest : InstrumentedTest {
|
||||||
|
|
||||||
private lateinit var monarchy: Monarchy
|
private lateinit var monarchy: Monarchy
|
||||||
|
private val clock = DefaultClock()
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
|
@ -59,7 +61,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
|
|
||||||
val fakeEvent = createFakeMessageEvent().toEntity(ROOM_ID, SendState.SYNCED, System.currentTimeMillis()).let {
|
val fakeEvent = createFakeMessageEvent().toEntity(ROOM_ID, SendState.SYNCED, clock.epochMillis()).let {
|
||||||
realm.copyToRealm(it)
|
realm.copyToRealm(it)
|
||||||
}
|
}
|
||||||
chunk.addTimelineEvent(
|
chunk.addTimelineEvent(
|
||||||
|
@ -75,7 +77,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
||||||
fun add_shouldNotAdd_whenAlreadyIncluded() {
|
fun add_shouldNotAdd_whenAlreadyIncluded() {
|
||||||
monarchy.runTransactionSync { realm ->
|
monarchy.runTransactionSync { realm ->
|
||||||
val chunk: ChunkEntity = realm.createObject()
|
val chunk: ChunkEntity = realm.createObject()
|
||||||
val fakeEvent = createFakeMessageEvent().toEntity(ROOM_ID, SendState.SYNCED, System.currentTimeMillis()).let {
|
val fakeEvent = createFakeMessageEvent().toEntity(ROOM_ID, SendState.SYNCED, clock.epochMillis()).let {
|
||||||
realm.copyToRealm(it)
|
realm.copyToRealm(it)
|
||||||
}
|
}
|
||||||
chunk.addTimelineEvent(
|
chunk.addTimelineEvent(
|
||||||
|
@ -153,7 +155,7 @@ internal class ChunkEntityTest : InstrumentedTest {
|
||||||
events: List<Event>,
|
events: List<Event>,
|
||||||
direction: PaginationDirection) {
|
direction: PaginationDirection) {
|
||||||
events.forEach { event ->
|
events.forEach { event ->
|
||||||
val fakeEvent = event.toEntity(roomId, SendState.SYNCED, System.currentTimeMillis()).let {
|
val fakeEvent = event.toEntity(roomId, SendState.SYNCED, clock.epochMillis()).let {
|
||||||
realm.copyToRealm(it)
|
realm.copyToRealm(it)
|
||||||
}
|
}
|
||||||
addTimelineEvent(
|
addTimelineEvent(
|
||||||
|
|
|
@ -26,8 +26,8 @@ internal class FakeGetContextOfEventTask constructor(private val tokenChunkEvent
|
||||||
override suspend fun execute(params: GetContextOfEventTask.Params): TokenChunkEventPersistor.Result {
|
override suspend fun execute(params: GetContextOfEventTask.Params): TokenChunkEventPersistor.Result {
|
||||||
val fakeEvents = RoomDataHelper.createFakeListOfEvents(30)
|
val fakeEvents = RoomDataHelper.createFakeListOfEvents(30)
|
||||||
val tokenChunkEvent = FakeTokenChunkEvent(
|
val tokenChunkEvent = FakeTokenChunkEvent(
|
||||||
Random.nextLong(System.currentTimeMillis()).toString(),
|
Random.nextLong().toString(),
|
||||||
Random.nextLong(System.currentTimeMillis()).toString(),
|
Random.nextLong().toString(),
|
||||||
fakeEvents
|
fakeEvents
|
||||||
)
|
)
|
||||||
return tokenChunkEventPersistor.insertInDb(tokenChunkEvent, params.roomId, PaginationDirection.BACKWARDS)
|
return tokenChunkEventPersistor.insertInDb(tokenChunkEvent, params.roomId, PaginationDirection.BACKWARDS)
|
||||||
|
|
|
@ -25,7 +25,7 @@ internal class FakePaginationTask @Inject constructor(private val tokenChunkEven
|
||||||
|
|
||||||
override suspend fun execute(params: PaginationTask.Params): TokenChunkEventPersistor.Result {
|
override suspend fun execute(params: PaginationTask.Params): TokenChunkEventPersistor.Result {
|
||||||
val fakeEvents = RoomDataHelper.createFakeListOfEvents(30)
|
val fakeEvents = RoomDataHelper.createFakeListOfEvents(30)
|
||||||
val tokenChunkEvent = FakeTokenChunkEvent(params.from, Random.nextLong(System.currentTimeMillis()).toString(), fakeEvents)
|
val tokenChunkEvent = FakeTokenChunkEvent(params.from, Random.nextLong().toString(), fakeEvents)
|
||||||
return tokenChunkEventPersistor.insertInDb(tokenChunkEvent, params.roomId, params.direction)
|
return tokenChunkEventPersistor.insertInDb(tokenChunkEvent, params.roomId, params.direction)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,9 @@ data class IncomingRequestCancellation(
|
||||||
* Factory
|
* Factory
|
||||||
*
|
*
|
||||||
* @param event the event
|
* @param event the event
|
||||||
|
* @param currentTimeMillis the current time in milliseconds
|
||||||
*/
|
*/
|
||||||
fun fromEvent(event: Event): IncomingRequestCancellation? {
|
fun fromEvent(event: Event, currentTimeMillis: Long): IncomingRequestCancellation? {
|
||||||
return event.getClearContent()
|
return event.getClearContent()
|
||||||
.toModel<ShareRequestCancellation>()
|
.toModel<ShareRequestCancellation>()
|
||||||
?.let {
|
?.let {
|
||||||
|
@ -55,7 +56,7 @@ data class IncomingRequestCancellation(
|
||||||
userId = event.senderId,
|
userId = event.senderId,
|
||||||
deviceId = it.requestingDeviceId,
|
deviceId = it.requestingDeviceId,
|
||||||
requestId = it.requestId,
|
requestId = it.requestId,
|
||||||
localCreationTimestamp = event.ageLocalTs ?: System.currentTimeMillis()
|
localCreationTimestamp = event.ageLocalTs ?: currentTimeMillis
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,9 @@ data class IncomingRoomKeyRequest(
|
||||||
* Factory
|
* Factory
|
||||||
*
|
*
|
||||||
* @param event the event
|
* @param event the event
|
||||||
|
* @param currentTimeMillis the current time in milliseconds
|
||||||
*/
|
*/
|
||||||
fun fromEvent(event: Event): IncomingRoomKeyRequest? {
|
fun fromEvent(event: Event, currentTimeMillis: Long): IncomingRoomKeyRequest? {
|
||||||
return event.getClearContent()
|
return event.getClearContent()
|
||||||
.toModel<RoomKeyShareRequest>()
|
.toModel<RoomKeyShareRequest>()
|
||||||
?.let {
|
?.let {
|
||||||
|
@ -74,7 +75,7 @@ data class IncomingRoomKeyRequest(
|
||||||
deviceId = it.requestingDeviceId,
|
deviceId = it.requestingDeviceId,
|
||||||
requestId = it.requestId,
|
requestId = it.requestId,
|
||||||
requestBody = it.body ?: RoomKeyRequestBody(),
|
requestBody = it.body ?: RoomKeyRequestBody(),
|
||||||
localCreationTimestamp = event.ageLocalTs ?: System.currentTimeMillis()
|
localCreationTimestamp = event.ageLocalTs ?: currentTimeMillis
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,9 @@ data class IncomingSecretShareRequest(
|
||||||
* Factory
|
* Factory
|
||||||
*
|
*
|
||||||
* @param event the event
|
* @param event the event
|
||||||
|
* @param currentTimeMillis the current time in milliseconds
|
||||||
*/
|
*/
|
||||||
fun fromEvent(event: Event): IncomingSecretShareRequest? {
|
fun fromEvent(event: Event, currentTimeMillis: Long): IncomingSecretShareRequest? {
|
||||||
return event.getClearContent()
|
return event.getClearContent()
|
||||||
.toModel<SecretShareRequest>()
|
.toModel<SecretShareRequest>()
|
||||||
?.let {
|
?.let {
|
||||||
|
@ -74,7 +75,7 @@ data class IncomingSecretShareRequest(
|
||||||
deviceId = it.requestingDeviceId,
|
deviceId = it.requestingDeviceId,
|
||||||
requestId = it.requestId,
|
requestId = it.requestId,
|
||||||
secretName = it.secretName,
|
secretName = it.secretName,
|
||||||
localCreationTimestamp = event.ageLocalTs ?: System.currentTimeMillis()
|
localCreationTimestamp = event.ageLocalTs ?: currentTimeMillis
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,11 +129,10 @@ interface VerificationService {
|
||||||
private const val TEN_MINUTES_IN_MILLIS = 10 * 60 * 1000
|
private const val TEN_MINUTES_IN_MILLIS = 10 * 60 * 1000
|
||||||
private const val FIVE_MINUTES_IN_MILLIS = 5 * 60 * 1000
|
private const val FIVE_MINUTES_IN_MILLIS = 5 * 60 * 1000
|
||||||
|
|
||||||
fun isValidRequest(age: Long?): Boolean {
|
fun isValidRequest(age: Long?, currentTimeMillis: Long): Boolean {
|
||||||
if (age == null) return false
|
if (age == null) return false
|
||||||
val now = System.currentTimeMillis()
|
val tooInThePast = currentTimeMillis - TEN_MINUTES_IN_MILLIS
|
||||||
val tooInThePast = now - TEN_MINUTES_IN_MILLIS
|
val tooInTheFuture = currentTimeMillis + FIVE_MINUTES_IN_MILLIS
|
||||||
val tooInTheFuture = now + FIVE_MINUTES_IN_MILLIS
|
|
||||||
return age in tooInThePast..tooInTheFuture
|
return age in tooInThePast..tooInTheFuture
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.matrix.android.sdk.internal.crypto.store.IMXCryptoStore
|
||||||
import org.matrix.android.sdk.internal.crypto.tasks.SendToDeviceTask
|
import org.matrix.android.sdk.internal.crypto.tasks.SendToDeviceTask
|
||||||
import org.matrix.android.sdk.internal.crypto.tasks.createUniqueTxnId
|
import org.matrix.android.sdk.internal.crypto.tasks.createUniqueTxnId
|
||||||
import org.matrix.android.sdk.internal.session.SessionComponent
|
import org.matrix.android.sdk.internal.session.SessionComponent
|
||||||
|
import org.matrix.android.sdk.internal.util.time.Clock
|
||||||
import org.matrix.android.sdk.internal.worker.SessionSafeCoroutineWorker
|
import org.matrix.android.sdk.internal.worker.SessionSafeCoroutineWorker
|
||||||
import org.matrix.android.sdk.internal.worker.SessionWorkerParams
|
import org.matrix.android.sdk.internal.worker.SessionWorkerParams
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -65,6 +66,7 @@ internal class CancelGossipRequestWorker(context: Context, params: WorkerParamet
|
||||||
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
||||||
@Inject lateinit var cryptoStore: IMXCryptoStore
|
@Inject lateinit var cryptoStore: IMXCryptoStore
|
||||||
@Inject lateinit var credentials: Credentials
|
@Inject lateinit var credentials: Credentials
|
||||||
|
@Inject lateinit var clock: Clock
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
injector.inject(this)
|
injector.inject(this)
|
||||||
|
@ -85,7 +87,7 @@ internal class CancelGossipRequestWorker(context: Context, params: WorkerParamet
|
||||||
content = toDeviceContent.toContent(),
|
content = toDeviceContent.toContent(),
|
||||||
senderId = credentials.userId
|
senderId = credentials.userId
|
||||||
).also {
|
).also {
|
||||||
it.ageLocalTs = System.currentTimeMillis()
|
it.ageLocalTs = clock.epochMillis()
|
||||||
})
|
})
|
||||||
|
|
||||||
params.recipients.forEach { userToDeviceMap ->
|
params.recipients.forEach { userToDeviceMap ->
|
||||||
|
|
|
@ -103,6 +103,7 @@ import org.matrix.android.sdk.internal.task.TaskThread
|
||||||
import org.matrix.android.sdk.internal.task.configureWith
|
import org.matrix.android.sdk.internal.task.configureWith
|
||||||
import org.matrix.android.sdk.internal.task.launchToCallback
|
import org.matrix.android.sdk.internal.task.launchToCallback
|
||||||
import org.matrix.android.sdk.internal.util.JsonCanonicalizer
|
import org.matrix.android.sdk.internal.util.JsonCanonicalizer
|
||||||
|
import org.matrix.android.sdk.internal.util.time.Clock
|
||||||
import org.matrix.olm.OlmManager
|
import org.matrix.olm.OlmManager
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
|
@ -130,6 +131,7 @@ internal class DefaultCryptoService @Inject constructor(
|
||||||
private val userId: String,
|
private val userId: String,
|
||||||
@DeviceId
|
@DeviceId
|
||||||
private val deviceId: String?,
|
private val deviceId: String?,
|
||||||
|
private val clock: Clock,
|
||||||
private val myDeviceInfoHolder: Lazy<MyDeviceInfoHolder>,
|
private val myDeviceInfoHolder: Lazy<MyDeviceInfoHolder>,
|
||||||
// the crypto store
|
// the crypto store
|
||||||
private val cryptoStore: IMXCryptoStore,
|
private val cryptoStore: IMXCryptoStore,
|
||||||
|
@ -701,11 +703,11 @@ internal class DefaultCryptoService @Inject constructor(
|
||||||
}
|
}
|
||||||
val safeAlgorithm = alg
|
val safeAlgorithm = alg
|
||||||
if (safeAlgorithm != null) {
|
if (safeAlgorithm != null) {
|
||||||
val t0 = System.currentTimeMillis()
|
val t0 = clock.epochMillis()
|
||||||
Timber.tag(loggerTag.value).v("encryptEventContent() starts")
|
Timber.tag(loggerTag.value).v("encryptEventContent() starts")
|
||||||
runCatching {
|
runCatching {
|
||||||
val content = safeAlgorithm.encryptEventContent(eventContent, eventType, userIds)
|
val content = safeAlgorithm.encryptEventContent(eventContent, eventType, userIds)
|
||||||
Timber.tag(loggerTag.value).v("## CRYPTO | encryptEventContent() : succeeds after ${System.currentTimeMillis() - t0} ms")
|
Timber.tag(loggerTag.value).v("## CRYPTO | encryptEventContent() : succeeds after ${clock.epochMillis() - t0} ms")
|
||||||
MXEncryptEventContentResult(content, EventType.ENCRYPTED)
|
MXEncryptEventContentResult(content, EventType.ENCRYPTED)
|
||||||
}.foldToCallback(callback)
|
}.foldToCallback(callback)
|
||||||
} else {
|
} else {
|
||||||
|
@ -1022,9 +1024,9 @@ internal class DefaultCryptoService @Inject constructor(
|
||||||
return withContext(coroutineDispatchers.crypto) {
|
return withContext(coroutineDispatchers.crypto) {
|
||||||
Timber.tag(loggerTag.value).v("importRoomKeys starts")
|
Timber.tag(loggerTag.value).v("importRoomKeys starts")
|
||||||
|
|
||||||
val t0 = System.currentTimeMillis()
|
val t0 = clock.epochMillis()
|
||||||
val roomKeys = MXMegolmExportEncryption.decryptMegolmKeyFile(roomKeysAsArray, password)
|
val roomKeys = MXMegolmExportEncryption.decryptMegolmKeyFile(roomKeysAsArray, password)
|
||||||
val t1 = System.currentTimeMillis()
|
val t1 = clock.epochMillis()
|
||||||
|
|
||||||
Timber.tag(loggerTag.value).v("importRoomKeys : decryptMegolmKeyFile done in ${t1 - t0} ms")
|
Timber.tag(loggerTag.value).v("importRoomKeys : decryptMegolmKeyFile done in ${t1 - t0} ms")
|
||||||
|
|
||||||
|
@ -1032,7 +1034,7 @@ internal class DefaultCryptoService @Inject constructor(
|
||||||
.adapter<List<MegolmSessionData>>(Types.newParameterizedType(List::class.java, MegolmSessionData::class.java))
|
.adapter<List<MegolmSessionData>>(Types.newParameterizedType(List::class.java, MegolmSessionData::class.java))
|
||||||
.fromJson(roomKeys)
|
.fromJson(roomKeys)
|
||||||
|
|
||||||
val t2 = System.currentTimeMillis()
|
val t2 = clock.epochMillis()
|
||||||
|
|
||||||
Timber.tag(loggerTag.value).v("importRoomKeys : JSON parsing ${t2 - t1} ms")
|
Timber.tag(loggerTag.value).v("importRoomKeys : JSON parsing ${t2 - t1} ms")
|
||||||
|
|
||||||
|
@ -1224,7 +1226,7 @@ internal class DefaultCryptoService @Inject constructor(
|
||||||
// val deviceKey = deviceInfo.identityKey()
|
// val deviceKey = deviceInfo.identityKey()
|
||||||
//
|
//
|
||||||
// val lastForcedDate = lastNewSessionForcedDates.getObject(senderId, deviceKey) ?: 0
|
// val lastForcedDate = lastNewSessionForcedDates.getObject(senderId, deviceKey) ?: 0
|
||||||
// val now = System.currentTimeMillis()
|
// val now = clock.epochMillis()
|
||||||
// if (now - lastForcedDate < CRYPTO_MIN_FORCE_SESSION_PERIOD_MILLIS) {
|
// if (now - lastForcedDate < CRYPTO_MIN_FORCE_SESSION_PERIOD_MILLIS) {
|
||||||
// Timber.d("## CRYPTO | markOlmSessionForUnwedging: New session already forced with device at $lastForcedDate. Not forcing another")
|
// Timber.d("## CRYPTO | markOlmSessionForUnwedging: New session already forced with device at $lastForcedDate. Not forcing another")
|
||||||
// return
|
// return
|
||||||
|
|
|
@ -31,19 +31,23 @@ import org.matrix.android.sdk.internal.session.SessionScope
|
||||||
import org.matrix.android.sdk.internal.session.sync.SyncTokenStore
|
import org.matrix.android.sdk.internal.session.sync.SyncTokenStore
|
||||||
import org.matrix.android.sdk.internal.task.TaskExecutor
|
import org.matrix.android.sdk.internal.task.TaskExecutor
|
||||||
import org.matrix.android.sdk.internal.util.logLimit
|
import org.matrix.android.sdk.internal.util.logLimit
|
||||||
|
import org.matrix.android.sdk.internal.util.time.Clock
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
// Legacy name: MXDeviceList
|
// Legacy name: MXDeviceList
|
||||||
@SessionScope
|
@SessionScope
|
||||||
internal class DeviceListManager @Inject constructor(private val cryptoStore: IMXCryptoStore,
|
internal class DeviceListManager @Inject constructor(
|
||||||
private val olmDevice: MXOlmDevice,
|
private val cryptoStore: IMXCryptoStore,
|
||||||
private val syncTokenStore: SyncTokenStore,
|
private val olmDevice: MXOlmDevice,
|
||||||
private val credentials: Credentials,
|
private val syncTokenStore: SyncTokenStore,
|
||||||
private val downloadKeysForUsersTask: DownloadKeysForUsersTask,
|
private val credentials: Credentials,
|
||||||
private val cryptoSessionInfoProvider: CryptoSessionInfoProvider,
|
private val downloadKeysForUsersTask: DownloadKeysForUsersTask,
|
||||||
coroutineDispatchers: MatrixCoroutineDispatchers,
|
private val cryptoSessionInfoProvider: CryptoSessionInfoProvider,
|
||||||
private val taskExecutor: TaskExecutor) {
|
coroutineDispatchers: MatrixCoroutineDispatchers,
|
||||||
|
private val taskExecutor: TaskExecutor,
|
||||||
|
private val clock: Clock,
|
||||||
|
) {
|
||||||
|
|
||||||
interface UserDevicesUpdateListener {
|
interface UserDevicesUpdateListener {
|
||||||
fun onUsersDeviceUpdate(userIds: List<String>)
|
fun onUsersDeviceUpdate(userIds: List<String>)
|
||||||
|
@ -310,9 +314,9 @@ internal class DeviceListManager @Inject constructor(private val cryptoStore: IM
|
||||||
stored
|
stored
|
||||||
} else {
|
} else {
|
||||||
Timber.v("## CRYPTO | downloadKeys() : starts")
|
Timber.v("## CRYPTO | downloadKeys() : starts")
|
||||||
val t0 = System.currentTimeMillis()
|
val t0 = clock.epochMillis()
|
||||||
val result = doKeyDownloadForUsers(downloadUsers)
|
val result = doKeyDownloadForUsers(downloadUsers)
|
||||||
Timber.v("## CRYPTO | downloadKeys() : doKeyDownloadForUsers succeeds after ${System.currentTimeMillis() - t0} ms")
|
Timber.v("## CRYPTO | downloadKeys() : doKeyDownloadForUsers succeeds after ${clock.epochMillis() - t0} ms")
|
||||||
result.also {
|
result.also {
|
||||||
it.addEntriesFromMap(stored)
|
it.addEntriesFromMap(stored)
|
||||||
}
|
}
|
||||||
|
@ -475,8 +479,10 @@ internal class DeviceListManager @Inject constructor(private val cryptoStore: IM
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isVerified) {
|
if (!isVerified) {
|
||||||
Timber.e("## CRYPTO | validateDeviceKeys() : Unable to verify signature on device " + userId + ":" +
|
Timber.e(
|
||||||
deviceKeys.deviceId + " with error " + errorMessage)
|
"## CRYPTO | validateDeviceKeys() : Unable to verify signature on device " + userId + ":" +
|
||||||
|
deviceKeys.deviceId + " with error " + errorMessage
|
||||||
|
)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -486,9 +492,11 @@ internal class DeviceListManager @Inject constructor(private val cryptoStore: IM
|
||||||
// best off sticking with the original keys.
|
// best off sticking with the original keys.
|
||||||
//
|
//
|
||||||
// Should we warn the user about it somehow?
|
// Should we warn the user about it somehow?
|
||||||
Timber.e("## CRYPTO | validateDeviceKeys() : WARNING:Ed25519 key for device " + userId + ":" +
|
Timber.e(
|
||||||
deviceKeys.deviceId + " has changed : " +
|
"## CRYPTO | validateDeviceKeys() : WARNING:Ed25519 key for device " + userId + ":" +
|
||||||
previouslyStoredDeviceKeys.fingerprint() + " -> " + signKey)
|
deviceKeys.deviceId + " has changed : " +
|
||||||
|
previouslyStoredDeviceKeys.fingerprint() + " -> " + signKey
|
||||||
|
)
|
||||||
|
|
||||||
Timber.e("## CRYPTO | validateDeviceKeys() : $previouslyStoredDeviceKeys -> $deviceKeys")
|
Timber.e("## CRYPTO | validateDeviceKeys() : $previouslyStoredDeviceKeys -> $deviceKeys")
|
||||||
Timber.e("## CRYPTO | validateDeviceKeys() : ${previouslyStoredDeviceKeys.keys} -> ${deviceKeys.keys}")
|
Timber.e("## CRYPTO | validateDeviceKeys() : ${previouslyStoredDeviceKeys.keys} -> ${deviceKeys.keys}")
|
||||||
|
|
|
@ -36,6 +36,7 @@ import org.matrix.android.sdk.internal.crypto.store.IMXCryptoStore
|
||||||
import org.matrix.android.sdk.internal.crypto.tasks.SendToDeviceTask
|
import org.matrix.android.sdk.internal.crypto.tasks.SendToDeviceTask
|
||||||
import org.matrix.android.sdk.internal.extensions.foldToCallback
|
import org.matrix.android.sdk.internal.extensions.foldToCallback
|
||||||
import org.matrix.android.sdk.internal.session.SessionScope
|
import org.matrix.android.sdk.internal.session.SessionScope
|
||||||
|
import org.matrix.android.sdk.internal.util.time.Clock
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -47,6 +48,7 @@ private val loggerTag = LoggerTag("CryptoSyncHandler", LoggerTag.CRYPTO)
|
||||||
internal class EventDecryptor @Inject constructor(
|
internal class EventDecryptor @Inject constructor(
|
||||||
private val cryptoCoroutineScope: CoroutineScope,
|
private val cryptoCoroutineScope: CoroutineScope,
|
||||||
private val coroutineDispatchers: MatrixCoroutineDispatchers,
|
private val coroutineDispatchers: MatrixCoroutineDispatchers,
|
||||||
|
private val clock: Clock,
|
||||||
private val roomDecryptorProvider: RoomDecryptorProvider,
|
private val roomDecryptorProvider: RoomDecryptorProvider,
|
||||||
private val messageEncrypter: MessageEncrypter,
|
private val messageEncrypter: MessageEncrypter,
|
||||||
private val sendToDeviceTask: SendToDeviceTask,
|
private val sendToDeviceTask: SendToDeviceTask,
|
||||||
|
@ -153,7 +155,7 @@ internal class EventDecryptor @Inject constructor(
|
||||||
// we should force start a new session for those
|
// we should force start a new session for those
|
||||||
Timber.tag(loggerTag.value).v("Unwedging: ${wedgedDevices.size} are wedged")
|
Timber.tag(loggerTag.value).v("Unwedging: ${wedgedDevices.size} are wedged")
|
||||||
// get the one that should be retried according to rate limit
|
// get the one that should be retried according to rate limit
|
||||||
val now = System.currentTimeMillis()
|
val now = clock.epochMillis()
|
||||||
val toUnwedge = wedgedDevices.filter {
|
val toUnwedge = wedgedDevices.filter {
|
||||||
val lastForcedDate = lastNewSessionForcedDates[it] ?: 0
|
val lastForcedDate = lastNewSessionForcedDates[it] ?: 0
|
||||||
if (now - lastForcedDate < DefaultCryptoService.CRYPTO_MIN_FORCE_SESSION_PERIOD_MILLIS) {
|
if (now - lastForcedDate < DefaultCryptoService.CRYPTO_MIN_FORCE_SESSION_PERIOD_MILLIS) {
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.matrix.android.sdk.internal.di.WorkManagerProvider
|
||||||
import org.matrix.android.sdk.internal.session.SessionScope
|
import org.matrix.android.sdk.internal.session.SessionScope
|
||||||
import org.matrix.android.sdk.internal.util.CancelableWork
|
import org.matrix.android.sdk.internal.util.CancelableWork
|
||||||
import org.matrix.android.sdk.internal.worker.startChain
|
import org.matrix.android.sdk.internal.worker.startChain
|
||||||
|
import java.util.UUID
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -44,8 +45,8 @@ internal class GossipingWorkManager @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent sending queue to stay broken after app restart
|
// Prevent sending queue to stay broken after app restart
|
||||||
// The unique queue id will stay the same as long as this object is instanciated
|
// The unique queue id will stay the same as long as this object is instantiated
|
||||||
val queueSuffixApp = System.currentTimeMillis()
|
private val queueSuffixApp = UUID.randomUUID()
|
||||||
|
|
||||||
fun postWork(workRequest: OneTimeWorkRequest, policy: ExistingWorkPolicy = ExistingWorkPolicy.APPEND): Cancelable {
|
fun postWork(workRequest: OneTimeWorkRequest, policy: ExistingWorkPolicy = ExistingWorkPolicy.APPEND): Cancelable {
|
||||||
workManagerProvider.workManager
|
workManagerProvider.workManager
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue