diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index 38885e9cc7..c1ab98e85d 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -64,9 +64,9 @@ body:
- type: dropdown
id: rageshake
attributes:
- label: Have you submitted a rageshake?
+ label: Will you send logs?
description: |
- Did you know that you can shake your phone to submit logs for this issue? Trigger the defect, then shake your phone and you will see a popup asking if you would like to open the bug report screen. Click YES, and describe the issue, mentioning that you have also filed a bug. Submit the report to send anonymous logs to the developers.
+ Did you know that you can shake your phone to submit logs for this issue? Trigger the defect, then shake your phone and you will see a popup asking if you would like to open the bug report screen. Click YES, and describe the issue, mentioning that you have also filed a bug (it's helpful if you can include a link to the bug). Send the report to submit anonymous logs to the developers.
options:
- 'Yes'
- 'No'
diff --git a/.github/ISSUE_TEMPLATE/release.yml b/.github/ISSUE_TEMPLATE/release.yml
index 903c05c5d3..7ac55427a9 100644
--- a/.github/ISSUE_TEMPLATE/release.yml
+++ b/.github/ISSUE_TEMPLATE/release.yml
@@ -23,8 +23,6 @@ body:
### Do the release
- [ ] Create release with gitflow, branch name `release/1.1.10`
- - [ ] Run `./tools/import_emojis.py` and commit the change if any.
- - [ ] Run `./tools/import_sas_strings.py` and commit the change if any. If there is no change since a while, ping Travis
- [ ] Check the crashes from the PlayStore
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.1.10-dev
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 2048b823f0..eb30c18fcf 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -11,6 +11,6 @@
- [ ] Pull request is based on the develop branch
- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#changelog
- [ ] Pull request includes screenshots or videos if containing UI changes
-- [ ] Pull request includes a [sign off](https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md#sign-off)
+- [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off)
- [ ] You've made a self review of your PR
-- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test [UiAllScreensSanityTest.allScreensTest()](https://github.com/vector-im/element-android/blob/main/vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt#L73)
\ No newline at end of file
+- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test [UiAllScreensSanityTest.allScreensTest()](https://github.com/vector-im/element-android/blob/main/vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt#L73)
diff --git a/.github/workflows/sync-from-external-sources.yml b/.github/workflows/sync-from-external-sources.yml
new file mode 100644
index 0000000000..6a4f8ef147
--- /dev/null
+++ b/.github/workflows/sync-from-external-sources.yml
@@ -0,0 +1,69 @@
+name: Sync Data From External Sources
+on:
+ schedule:
+ # At 00:00 on every Monday UTC
+ - cron: '0 0 * * 1'
+
+jobs:
+ sync-emojis:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ - name: Cache pip
+ uses: actions/cache@v2
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ ${{ runner.os }}-
+ - name: Install Prerequisite dependencies
+ run: |
+ pip install BeautifulSoup4
+ pip install requests
+ - name: Run Emoji script
+ run: ./tools/import_emojis.py
+ - name: Create Pull Request for Emojis
+ uses: peter-evans/create-pull-request@v3
+ with:
+ commit-message: Sync Emojis
+ title: Sync Emojis
+ body: |
+ - Update Emojis from Unicode.org
+ branch: sync-emojis
+ base: develop
+
+ sync-sas-strings:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+ - name: Cache pip
+ uses: actions/cache@v2
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ ${{ runner.os }}-
+ - name: Install Prerequisite dependencies
+ run: |
+ pip install requests
+ - name: Run SAS String script
+ run: ./tools/import_sas_strings.py
+ - name: Create Pull Request for SAS Strings
+ uses: peter-evans/create-pull-request@v3
+ with:
+ commit-message: Sync SAS Strings
+ title: Sync SAS Strings
+ body: |
+ - Update SAS Strings from matrix-doc.
+ branch: sync-sas-strings
+ base: develop
\ No newline at end of file
diff --git a/.github/workflows/triage-incoming.yml b/.github/workflows/triage-incoming.yml
new file mode 100644
index 0000000000..40d5507415
--- /dev/null
+++ b/.github/workflows/triage-incoming.yml
@@ -0,0 +1,15 @@
+name: Move new issues onto Issue triage board
+
+on:
+ issues:
+ types: [opened]
+
+jobs:
+ automate-project-columns:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: alex-page/github-project-automation-plus@v0.8.1
+ with:
+ project: Issue triage
+ column: Incoming
+ repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
diff --git a/.github/workflows/triage-needs-info.yml b/.github/workflows/triage-needs-info.yml
new file mode 100644
index 0000000000..64de7951c6
--- /dev/null
+++ b/.github/workflows/triage-needs-info.yml
@@ -0,0 +1,16 @@
+name: Move X-Needs-Info into Need info column in the Issue triage board
+
+on:
+ issues:
+ types: [labeled]
+
+jobs:
+ Move_Labeled_Issue_On_Project_Board:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: konradpabjan/move-labeled-or-milestoned-issue@v2.0
+ with:
+ action-token: ${{ secrets.GITHUB_TOKEN }}
+ project-url: "https://github.com/vector-im/element-android/projects/4"
+ column-name: "Need info"
+ label-name: "X-Needs-Info"
diff --git a/CHANGES.md b/CHANGES.md
index c545a70671..8de71eae62 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,39 @@
+Changes in Element v1.3.4 (2021-10-20)
+======================================
+
+Features ✨
+----------
+ - Implement /part command, with or without parameter ([#2909](https://github.com/vector-im/element-android/issues/2909))
+ - Handle Presence support, for Direct Message room ([#4090](https://github.com/vector-im/element-android/issues/4090))
+
+Bugfixes 🐛
+----------
+ - Issue #908 Adding trailing space " " or ": " if the user started a sentence by mentioning someone, ([#908](https://github.com/vector-im/element-android/issues/908))
+ - Fixes reappearing notifications when dismissing notifications from slow homeservers or delayed /sync responses ([#3437](https://github.com/vector-im/element-android/issues/3437))
+ - Catching event decryption crash and logging when attempting to markOlmSessionForUnwedging fails ([#3608](https://github.com/vector-im/element-android/issues/3608))
+ - Fixing notification sounds being triggered for every message, now they only trigger for the first, consistent with the vibrations ([#3774](https://github.com/vector-im/element-android/issues/3774))
+ - Voice Message not sendable if recorded while flight mode was on ([#4006](https://github.com/vector-im/element-android/issues/4006))
+ - Fixes push notification emails list not refreshing the first time seeing the notifications page.
+ Also improves the error handling in the email notification toggling by using synchronous flows instead of the WorkManager ([#4106](https://github.com/vector-im/element-android/issues/4106))
+ - Make MegolmBackupAuthData.signatures optional for robustness ([#4162](https://github.com/vector-im/element-android/issues/4162))
+ - Fixing push notifications starting the looping background sync when the push notification causes the application to be created. ([#4167](https://github.com/vector-im/element-android/issues/4167))
+ - Fix random crash when user logs out just after the log in. ([#4193](https://github.com/vector-im/element-android/issues/4193))
+ - Make the font size selection dialog scrollable ([#4201](https://github.com/vector-im/element-android/issues/4201))
+ - Fix conversation notification for sent messages ([#4221](https://github.com/vector-im/element-android/issues/4221))
+ - Fixes the developer sync options being displayed in the home menu when developer mode is disabled ([#4234](https://github.com/vector-im/element-android/issues/4234))
+ - Restore support for Android Auto as sent messages are no longer read aloud ([#4247](https://github.com/vector-im/element-android/issues/4247))
+ - Fix crash on slash commands Exceptions ([#4261](https://github.com/vector-im/element-android/issues/4261))
+
+Other changes
+-------------
+ - Scrub user sensitive data like gps location from images when sending on original quality ([#465](https://github.com/vector-im/element-android/issues/465))
+ - Migrate to MvRx2 (Mavericks) ([#3890](https://github.com/vector-im/element-android/issues/3890))
+ - Implement a new github action workflow to generate two PRs for emoji and sas string sync ([#4216](https://github.com/vector-im/element-android/issues/4216))
+ - Improve wording around rageshakes in the defect issue template. ([#4226](https://github.com/vector-im/element-android/issues/4226))
+ - Add automation to move incoming issues and X-Needs-Info into the right places on the issue triage board. ([#4250](https://github.com/vector-im/element-android/issues/4250))
+ - Uppon sharing image compression fails, return the original image ([#4264](https://github.com/vector-im/element-android/issues/4264))
+
+
Changes in Element v1.3.3 (2021-10-11)
======================================
diff --git a/attachment-viewer/build.gradle b/attachment-viewer/build.gradle
index 064f497dc7..02fbfc794c 100644
--- a/attachment-viewer/build.gradle
+++ b/attachment-viewer/build.gradle
@@ -53,7 +53,6 @@ dependencies {
implementation libs.rx.rxKotlin
implementation libs.rx.rxAndroid
- implementation libs.jetbrains.kotlinStdlib
implementation libs.androidx.core
implementation libs.androidx.appCompat
implementation libs.androidx.recyclerview
diff --git a/dependencies.gradle b/dependencies.gradle
index 92358952db..7fa42a666f 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -7,7 +7,7 @@ ext.versions = [
'targetCompat' : JavaVersion.VERSION_11,
]
-def gradle = "7.0.2"
+def gradle = "7.0.3"
// Ref: https://kotlinlang.org/releases.html
def kotlin = "1.5.31"
def kotlinCoroutines = "1.5.2"
@@ -19,6 +19,7 @@ def moshi = "1.12.0"
def lifecycle = "2.2.0"
def rxBinding = "3.1.0"
def epoxy = "4.6.2"
+def mavericks = "2.4.0"
def glide = "4.12.0"
def bigImageViewer = "1.8.1"
def jjwt = "0.11.2"
@@ -36,8 +37,6 @@ ext.libs = [
'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin"
],
jetbrains : [
- 'kotlinStdlibJdk7' : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin",
- 'kotlinStdlib' : "org.jetbrains.kotlin:kotlin-stdlib:$kotlin",
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinCoroutines"
@@ -98,7 +97,9 @@ ext.libs = [
'epoxyGlide' : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
'epoxyProcessor' : "com.airbnb.android:epoxy-processor:$epoxy",
'epoxyPaging' : "com.airbnb.android:epoxy-paging:$epoxy",
- 'mvrx' : "com.airbnb.android:mvrx:1.5.1"
+ 'mavericks' : "com.airbnb.android:mavericks:$mavericks",
+ 'mavericksRx' : "com.airbnb.android:mavericks-rxjava2:$mavericks",
+ 'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
],
mockk : [
'mockk' : "io.mockk:mockk:$mockk",
@@ -123,10 +124,13 @@ ext.libs = [
'jjwtImpl' : "io.jsonwebtoken:jjwt-impl:$jjwt",
'jjwtOrgjson' : "io.jsonwebtoken:jjwt-orgjson:$jjwt"
],
- vanniktech: [
+ vanniktech : [
'emojiMaterial' : "com.vanniktech:emoji-material:$vanniktechEmoji",
'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji"
],
+ apache : [
+ 'commonsImaging' : "org.apache.sanselan:sanselan:0.97-incubator"
+ ],
tests : [
'kluent' : "org.amshove.kluent:kluent-android:1.68",
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
diff --git a/docs/design.md b/docs/design.md
new file mode 100644
index 0000000000..2e27f00ebf
--- /dev/null
+++ b/docs/design.md
@@ -0,0 +1,104 @@
+# Element Android design
+
+## Introduction
+
+Design at element.io is done using Figma - https://www.figma.com
+
+## How to import from Figma to the Element Android project
+
+Integration should be done using the Android development best practice, and should follow the existing convention in the code.
+
+### Colors
+
+Element Android already contains all the colors which can be used by the designer, in the module `ui-style`.
+Some of them depend on the theme, so ensure to use theme attributes and not colors directly.
+
+### Text
+
+ - click on a text on Figma
+ - on the right panel, information about the style and colors are displayed
+ - in Element Android, text style are already defined, generally you should not create new style
+ - apply the style and the color to the layout
+
+### Dimension, position and margin
+
+ - click on an item on Figma
+ - dimensions of the item will be displayed.
+ - move the mouse to other items to get relative positioning, margin, etc.
+
+### Icons
+
+#### Export drawable from Figma
+
+ - click on the element to export
+ - ensure that the correct layer is selected. Sometimes the parent layer has to be selected on the left panel
+ - on the right panel, click on "export"
+ - select SVG
+ - you can check the preview of what will be exported
+ - click on "export" and save the file locally
+ - unzip the file if necessary
+
+It's also possible for any icon to go to the main component by right-clicking on the icon.
+
+#### Import in Android Studio
+
+ - right click on the drawable folder where the drawable will be created
+ - click on "New"/"Vector Asset"
+ - select the exported file
+ - update the filename if necessary
+ - click on "Next" and click on "Finish"
+ - open the created vector drawable
+ - optionally update the color(s) to "#FF0000" (red) to ensure that the drawable is correctly tinted at runtime.
+
+## Figma links
+
+Figma links can be included in the layout, for future reference, but it is also OK to add a paragraph below here, to centralize the information
+
+Main entry point: https://www.figma.com/files/project/5612863/Element?fuid=779371459522484071
+
+Note: all the Figma links are not publicly available.
+
+### Coumpound
+
+Coumpound contains the theme of the application, with all the components, in Light and Dark theme: palette (colors), typography, iconography, etc.
+
+https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound
+
+### Login
+
+TBD
+
+#### Login v2
+
+https://www.figma.com/file/xdV4PuI3DlzA1EiBvbrggz/Login-Flow-v2
+
+### Room list
+
+TBD
+
+### Timeline
+
+https://www.figma.com/file/x1HYYLYMmbYnhfoz2c2nGD/%5BRiotX%5D-Misc?node-id=0%3A1
+
+### Voice message
+
+https://www.figma.com/file/uaWc62Ux2DkZC4OGtAGcNc/Voice-Messages?node-id=473%3A12
+
+### Room settings
+
+TBD
+
+### VoIP
+
+https://www.figma.com/file/V6m2z0oAtUV1l8MdyIrAep/VoIP?node-id=4254%3A25767
+
+### Presence
+
+https://www.figma.com/file/qmvEskET5JWva8jZJ4jX8o/Presence---User-Status?node-id=114%3A9174
+(Option B is chosen)
+
+### Spaces
+
+https://www.figma.com/file/m7L63aGPW7iHnIYStfdxCe/Spaces?node-id=192%3A30161
+
+### List to be continued...
diff --git a/docs/mavericks_migration.md b/docs/mavericks_migration.md
new file mode 100644
index 0000000000..a36ae8261a
--- /dev/null
+++ b/docs/mavericks_migration.md
@@ -0,0 +1,11 @@
+Useful links:
+- https://airbnb.io/mavericks/#/new-2x
+
+Mavericks 2 is replacing MvRx, by removing usage of Rx by Flow, both internally and in the API.
+See the link ^ to have more intel, but basically, the changes are:
+
+session.rx() => session.flow()
+room.rx() => room.flow()
+subscribe { }.disposeOnClear() => onEach { }.launchIn(viewModelScope)
+
+Only using manually onEach requires to add launchIn,any other methods provided by Mavericks on viewModel and activity/fragment are already taking care of lifecycle.
\ No newline at end of file
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103010.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103010.txt
new file mode 100644
index 0000000000..37f8aaa759
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Uspořádejte si místnosti pomocí Prostorů! Verze 1.3.1 opravuje pády, ke kterým může docházet ve verzi v1.3.0.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103020.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103020.txt
new file mode 100644
index 0000000000..2a9dd4bb10
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Přidání podpory pro Android Auto. Spousta oprav chyb!
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103030.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103030.txt
new file mode 100644
index 0000000000..8faffd36ed
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Umožňuje v nastavení zviditelnit zásady serveru identit. Dočasně odstraňuje podporu pro Android Auto.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/cs-CZ/full_description.txt b/fastlane/metadata/android/cs-CZ/full_description.txt
index 6732b33fe3..a74c58b413 100644
--- a/fastlane/metadata/android/cs-CZ/full_description.txt
+++ b/fastlane/metadata/android/cs-CZ/full_description.txt
@@ -37,3 +37,6 @@ Zprávy, hlasové a videohovory, sdílení souborů, sdílení obrazovky a celá
Navažte tam, kde jste skončili
Zůstaňte v kontaktu, ať jste kdekoli, díky plně synchronizované historii zpráv ve všech zařízeních a na webu https://app.element.io
+
+Open source
+Element Android je projekt s otevřeným zdrojovým kódem, který je hostován na GitHubu. Nahlaste prosím chyby a přispějte k jeho vývoji na adrese https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/en-US/changelogs/40103040.txt b/fastlane/metadata/android/en-US/changelogs/40103040.txt
new file mode 100644
index 0000000000..06b32c8dff
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103040.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Add Presence support, for Direct Message room (note: presence is disabled on matrix.org. Add again Android Auto support.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.4
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
index 853885944c..ef8d4e6a27 100644
--- a/fastlane/metadata/android/en-US/full_description.txt
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -36,4 +36,7 @@ Real end-to-end encryption (only those in the conversation can decrypt messages)
Messaging, voice and video calls, file sharing, screen sharing and a whole bunch of integrations, bots and widgets. Build rooms, communities, stay in touch and get things done.
Pick up where you left off
-Stay in touch wherever you are with fully synchronised message history across all your devices and on the web at https://app.element.io
\ No newline at end of file
+Stay in touch wherever you are with fully synchronised message history across all your devices and on the web at https://app.element.io
+
+Open source
+Element Android is an open source project, hosted by GitHub. Please report bugs and/or contribute to its development at https://github.com/vector-im/element-android
\ No newline at end of file
diff --git a/fastlane/metadata/android/et/changelogs/40103030.txt b/fastlane/metadata/android/et/changelogs/40103030.txt
new file mode 100644
index 0000000000..6293ccab85
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: Isikutuvastusserveri kasutustingimused on leitavad seadistustest ja ajutiselt eemaldasime Android Auto toe.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/et/full_description.txt b/fastlane/metadata/android/et/full_description.txt
index ee0adef9ac..a3a3bc37e2 100644
--- a/fastlane/metadata/android/et/full_description.txt
+++ b/fastlane/metadata/android/et/full_description.txt
@@ -37,3 +37,6 @@ Sõnumid, hääl- ja videokõned, failide jagamine, ekraani jagamine ja terve hu
Jätka sealt, kus pooleli jäid
Saad suhelda kõigis oma seadmetes ja ka veebis aadressil https://app.element.io ning sealjuures täielikult sünkroonitud sõnumite ajalooga.
+
+Avatud lähtekoodiga tarkvara
+Element Android on Github'is hallatud avatud lähtekoodiga tarkvaraprojekt. Palun teata vigadest ja/või osale arenduses https://github.com/vector-im/element-android lehel
diff --git a/fastlane/metadata/android/fa/changelogs/40103030.txt b/fastlane/metadata/android/fa/changelogs/40103030.txt
new file mode 100644
index 0000000000..49efae1951
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+تغییرات اصلی در این نگارش: نمایان کردن سیاست(های) کارساز هویت در تنظیمات. برداشتن موقّتی پشتیبانی اندروید خودرو.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/fa/full_description.txt b/fastlane/metadata/android/fa/full_description.txt
index cd2d4eb4c1..98055857bb 100644
--- a/fastlane/metadata/android/fa/full_description.txt
+++ b/fastlane/metadata/android/fa/full_description.txt
@@ -37,3 +37,6 @@
ادامه از جایی که رها کردهاید
هر کجا که هستید، با همگام سازی کامل تاریخچهٔ پیامها بین همهٔ افزارههایتان و وب روی https://app.element.io در دسترس باشید
+
+نرمافزار آزاد
+المنت اندروید، یک پروژهٔ نرمافزار آزاد میزبانیشده روی گیتهاب است. لطفاً گزارش مشکلات و مشارکتها را به توسهاش به این نشانی بفرستید: https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103010.txt b/fastlane/metadata/android/fr-FR/changelogs/40103010.txt
new file mode 100644
index 0000000000..326319edb0
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Organisez vos salons à l’aide des espaces ! La v1.3.1 corrige également un plantage dans la version v1.3.0
+Liste de tous les changements : https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103020.txt b/fastlane/metadata/android/fr-FR/changelogs/40103020.txt
new file mode 100644
index 0000000000..8a4868cee5
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Ajout du support pour Android Auto. Beaucoup de corrections de bogues !
+Liste de tous les changements : https ://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103030.txt b/fastlane/metadata/android/hu-HU/changelogs/40103030.txt
new file mode 100644
index 0000000000..8795818607
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Azonosítási szerver feltételek megjelenítése a beállításoknál. Ideiglenesen az Android Auto támogatás eltávolítása.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/hu-HU/full_description.txt b/fastlane/metadata/android/hu-HU/full_description.txt
index 032346ccb8..899b4cd978 100644
--- a/fastlane/metadata/android/hu-HU/full_description.txt
+++ b/fastlane/metadata/android/hu-HU/full_description.txt
@@ -38,3 +38,6 @@ Igazi végpontok között titkosítás (csak a beszélgetésben résztvevők tud
Vedd fel a fonalat
Maradj kapcsolatban bárhol minden eszközödön a szinkronizált üzenetekkel és a weben a https://app.element.io oldallal
+
+Nyílt forráskód
+Element Android egy nyílt forráskódú projekt a GitHubon. Küldj hibajegyet és/vagy vegyél részt a fejlesztésében itt: https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/id/changelogs/40103030.txt b/fastlane/metadata/android/id/changelogs/40103030.txt
new file mode 100644
index 0000000000..630593a107
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Membuat kebijakan server identitas terlihat di pengaturan. Menghilangkan dukungan Android Auto untuk sementara.
+Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/id/full_description.txt b/fastlane/metadata/android/id/full_description.txt
index bd357bb161..dfa9c8c826 100644
--- a/fastlane/metadata/android/id/full_description.txt
+++ b/fastlane/metadata/android/id/full_description.txt
@@ -30,10 +30,13 @@ Element menempatkan Anda dalam kendali dengan cara yang berbeda:
Anda dapat mengobrol dengan siapa saja di jaringan Matrix, apakah mereka menggunakan Element, aplikasi Matrix lain atau bahkan jika mereka menggunakan aplikasi perpesanan yang berbeda.
Sangat aman
-Enkripsi ujung-ke-ujung beneran (hanya mereka yang dalam percakapan dapat mendekripsi pesan), dan verifikasi perangkat yang ditanda tangani silang.
+Enkripsi ujung-ke-ujung yang nyata (hanya mereka yang dalam percakapan dapat mendekripsi pesan), dan verifikasi perangkat menggunakan penandatanganan-silang.
Komunikasi dan integrasi lengkap
Perpesanan, panggilan suara dan video, berbagi file, berbagi layar dan banyak integrasi, bot dan widget. Buat ruangan, komunitas, tetap terhubung dan selesaikan hal-hal.
Ambil di mana Anda tinggalkan
Tetap terhubung di mana pun Anda berada dengan riwayat pesan yang sepenuhnya disinkronkan di semua perangkat Anda dan di web di https://app.element.io
+
+Open source
+Element Android adalah proyek sumber terbuka, di-host oleh GitHub. Silakan melaporkan bug dan/atau membuat kontribusi ke pengembangannya di https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103010.txt b/fastlane/metadata/android/it-IT/changelogs/40103010.txt
new file mode 100644
index 0000000000..125cf58137
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: organizza le tue stanze usando gli Spazi! v1.3.1 corregge un errore della v1.3.0.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103020.txt b/fastlane/metadata/android/it-IT/changelogs/40103020.txt
new file mode 100644
index 0000000000..c088edc3b5
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: aggiunto supporto per Android Auto. Corretti molti errori!
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103030.txt b/fastlane/metadata/android/it-IT/changelogs/40103030.txt
new file mode 100644
index 0000000000..e5c12d2b5e
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: rese visibili le informative dei server d'identità nelle impostazioni. Rimosso temporaneamente il supporto per Android Auto.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/it-IT/full_description.txt b/fastlane/metadata/android/it-IT/full_description.txt
index dd7716ffbf..f0e4c04477 100644
--- a/fastlane/metadata/android/it-IT/full_description.txt
+++ b/fastlane/metadata/android/it-IT/full_description.txt
@@ -37,3 +37,6 @@ Messaggi, chiamate audio e video, condivisione file e schermo, un vasto numero d
Riprendi da dove ti eri fermato
Resta in contatto ovunque tu sia con la cronologia dei messaggi sincronizzata tra tutti i tuoi dispositivi e in rete su https://app.element.io
+
+Open source
+Element Android è un progetto open source, ospitato su GitHub. Segnala errori e/o contribuisci al suo sviluppo su https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103030.txt b/fastlane/metadata/android/pt-BR/changelogs/40103030.txt
new file mode 100644
index 0000000000..12ababb2ce
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Fazer política(s) de servidor de identidade visível(is) nas configurações. Remover temporariamente suporte a Android Auto.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/pt-BR/full_description.txt b/fastlane/metadata/android/pt-BR/full_description.txt
index 7bb3d0981d..fe560cdda0 100644
--- a/fastlane/metadata/android/pt-BR/full_description.txt
+++ b/fastlane/metadata/android/pt-BR/full_description.txt
@@ -1,4 +1,4 @@
-Element é tanto um mensageiro seguro como um app de colaboração de time de produtividade que é ideal para chats de grupo enquanto se trabalha remotamente. Este app de chat usa encriptação ponta-a-ponta para prover conferência de vídeo, compartilhamento de arquivo e chamadas de voz poderasos.
+Element é tanto um mensageiro seguro como um app de colaboração de time de produtividade que é ideal para chats de grupo enquanto se trabalha remotamente. Este app de chat usa encriptação ponta-a-ponta para prover conferência de vídeo, compartilhamento de arquivo e chamadas de voz poderosos.
As funções de Element incluem:
- Ferramentas de comunicação online avançadas
@@ -22,9 +22,9 @@ Para permitir mais controle de seus dados e conversas sensíveis, Element pode s
Você decide onde manter seus dados e mensagens. Sem o risco de data mining ou acesso de terceiros.
Element põe você em controle de diferentes maneiras:
-1. Pegar uma conta grátis no servidor público matrix.org hospedado pelos desenvolvedores Matrix, ou escolha de milhares de servidores públicos hospedados por pessoas se voluntariando
-2. Auto-hospedar sua conta ao rodar um servidor em sua própria infraestrutura de TI
-3. Fazer signup para uma conta num servidor personalizado ao simplesmente assinar a plataforma de hospedagem Element Matrix Services
+1. Pegue uma conta grátis no servidor público matrix.org hospedado pelos desenvolvedores Matrix, ou escolha de milhares de servidores públicos hospedados por pessoas se voluntariando
+2. Auto-hospede sua conta ao rodar um servidor em sua própria infraestrutura de TI
+3. Faça signup para uma conta num servidor personalizado ao simplesmente assinar a plataforma de hospedagem Element Matrix Services
Mensageria e colaboração abertos
Você pode fazer chat com qualquer pessoa na rede Matrix, caso ela esteja usando Element, um outro app de Matrix ou mesmo se ela estiver usando um app de mensageria diferente.
@@ -37,3 +37,6 @@ Messageria, chamadas de voz e vídeo, compartilhamento de arquivo, compartilhame
Continue de onde você parou
Fique em contato onde quer que você esteja com histórico de mensagem completamente sincronizado por todos os seus dispositivos e na web em https://app.element.io
+
+Open source
+Element Android é um projeto open source, hospedado por GitHub. Por favor reporte bugs e/ou contribua para seu desenvolvimento em https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103000.txt b/fastlane/metadata/android/ru-RU/changelogs/40103000.txt
new file mode 100644
index 0000000000..7e87ca8524
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103000.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Организуйте свои комнаты с помощью Пространств!
+Весь список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.0
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103010.txt b/fastlane/metadata/android/ru-RU/changelogs/40103010.txt
new file mode 100644
index 0000000000..e3a14e2d93
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Организуйте свои комнаты с помощью Пространств! В версии 1.3.1 исправлен сбой, который мог произойти в версии 1.3.0.
+Весь список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103020.txt b/fastlane/metadata/android/ru-RU/changelogs/40103020.txt
new file mode 100644
index 0000000000..66059d5b92
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Добавлена поддержка Android Auto. Исправлено множество ошибок!
+Весь список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103030.txt b/fastlane/metadata/android/ru-RU/changelogs/40103030.txt
new file mode 100644
index 0000000000..94b43e5f30
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Правила сервера идентификации теперь видимы в настройках. Временно убрана поддержка Android Auto.
+Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/ru-RU/full_description.txt b/fastlane/metadata/android/ru-RU/full_description.txt
index 3d21b20a90..3d8949e466 100644
--- a/fastlane/metadata/android/ru-RU/full_description.txt
+++ b/fastlane/metadata/android/ru-RU/full_description.txt
@@ -37,3 +37,7 @@ Element дает вам возможность контролировать си
Восстанавливайте связь с того места, где остановились.
Оставайтесь на связи, где бы вы ни находились, с полностью синхронизированной историей сообщений на всех ваших устройствах и в Интернете по адресу https://app.element.io
+
+
+Открытый исходный код
+Element Android - это проект с открытым исходным кодом, размещенный на GitHub. Пожалуйста, сообщайте об ошибках и/или вносите вклад в его развитие по адресу https://github.com/vector-im/element-android.
diff --git a/fastlane/metadata/android/sq/changelogs/40103030.txt b/fastlane/metadata/android/sq/changelogs/40103030.txt
new file mode 100644
index 0000000000..e52e91eed4
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Bërje të dukshëm e rregullit(ave) të shërbyesit të identiteteve te rregullimet. Heqje përkohësisht e mbulimit për Android Auto.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/sq/full_description.txt b/fastlane/metadata/android/sq/full_description.txt
index 96cf102272..ff0ea20da7 100644
--- a/fastlane/metadata/android/sq/full_description.txt
+++ b/fastlane/metadata/android/sq/full_description.txt
@@ -1,4 +1,4 @@
-Element-i është si aplikacion shkëmbyes i sigurt mesazhesh, ashtu edhe bashkëpunimi prodhimtar ekipi, i cili është ideal për fjalosje në grup, teksa punohet së largët. Ky aplikacion fjalosjeje përdor fshehtëzim skaj-më-skaj për të furnizuar konferencë video, shkëmbim kartelash dhe thirrje me zë të fuqishme.
+Element-i është si aplikacion shkëmbyes i sigurt mesazhesh, ashtu edhe bashkëpunimi prodhimtar ekipi, i cili është ideal për fjalosje në grup, teksa punohet së largëti. Ky aplikacion fjalosjeje përdor fshehtëzim skaj-më-skaj për të furnizuar konferencë video, shkëmbim kartelash dhe thirrje me zë të fuqishme.
Në veçoritë e Element-it përfshihen:
- Mjete të thelluara komunikimi internetor
@@ -8,7 +8,7 @@ Element-i është si aplikacion shkëmbyes i sigurt mesazhesh, ashtu edhe bashk
- Fjalosje video të llojit VoIP dhe tregim ekrani
- Integrim i kollajtë me mjetet tuaja të parapëlqyera të bashkëpunimit internetor, mjete administrimi projektesh, shërbime VoIP dhe aplikacione të tjera shkëmbimi mesazhesh në ekip
-Element-i është plotësisht i ndryshëm nga aplikacione të tjera shkëmbimi mesazhesh dhe bashkëpunimi. Funksionimi i tij bazohet në Matrix, një rrjet i hapët për mesazhe të siguruar dhe komunikim të decentralizuar. Lejon vetëstrehim, për t’u lejuar përdoruesve pronësi dhe kontroll maksimal të të dhënave dhe mesazheve të tyre.
+Element-i është plotësisht i ndryshëm nga aplikacione të tjera shkëmbimi mesazhesh dhe bashkëpunimi. Funksionimi i tij bazohet në Matrix, një rrjet i hapët për mesazhe të siguruar dhe komunikim të decentralizuar. Lejon vetëstrehim, për t’u dhënë përdoruesve pronësi dhe kontroll maksimal të të dhënave dhe mesazheve të tyre.
Privatësi dhe shkëmbim mesazhesh të fshehtëzuar
Element-i ju mbron nga reklama të padëshiruara, shfrytëzim të dhënash dhe vatha dixhitale. Ai siguron gjithashtu krejt të dhënat tuaja, komunikime tek-për-tek me video dhe me zë, përmes fshehtëzimi skaj-më-skaj dhe verifikim “cross-signed” pajisjesh.
@@ -37,3 +37,6 @@ Shkëmbim mesazhesh, thirrje me zë dhe me video, shkëmbim kartelash, tregim ek
Rifillojani atje ku e latë
Jini në dijeni, kudo ku gjendeni, me historik plotësisht të njëkohësuar mesazhesh nëpër krejt pajisjet tuaja dhe në internet te https://app.element.io
+
+Me burim të hapët
+Element-i për Android është një projekt me burim të hapët, strehuar në GitHub. Ju lutemi, njoftoni të meta dhe/ose jepni ndihmesë në zhvillimin e tij te https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103010.txt b/fastlane/metadata/android/sv-SE/changelogs/40103010.txt
new file mode 100644
index 0000000000..78c2c57ae6
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Organisera dina rum med utrymmen! v1.3.1 fixar en krasch som kan hända i v1.3.0.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103020.txt b/fastlane/metadata/android/sv-SE/changelogs/40103020.txt
new file mode 100644
index 0000000000..4afd54d9be
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Lägg till stöd för Android Auto. Massa buggfixar!
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103030.txt b/fastlane/metadata/android/sv-SE/changelogs/40103030.txt
new file mode 100644
index 0000000000..3d55703e86
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Gör identitetsserverpolicy(er) synliga i inställningarna. Ta tillfälligt bort stöd för Android Auto.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/sv-SE/full_description.txt b/fastlane/metadata/android/sv-SE/full_description.txt
index 5302976ed7..03d837626e 100644
--- a/fastlane/metadata/android/sv-SE/full_description.txt
+++ b/fastlane/metadata/android/sv-SE/full_description.txt
@@ -37,3 +37,6 @@ Meddelanden, röst- och videosamtal, fildelning, skärmdelning och massa integra
Fortsätt där du lämnade
Håll kontakten vart du än är med fullt synkroniserad meddelandehistorik på alla dina enheter och på webben på https://app.element.io
+
+Öppen källkod
+Element Android är projekt baserat på öppen källkod, som ligger på GitHub. Vänligen rapportera buggar och/eller bidra till dess utveckling på https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/uk/changelogs/40103030.txt b/fastlane/metadata/android/uk/changelogs/40103030.txt
new file mode 100644
index 0000000000..af25d23c42
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: додано політику ідентифікації сервера (IES) у налаштуваннях. Тимчасово вилучено автозаповнення Android.
+Усі зміни: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/uk/full_description.txt b/fastlane/metadata/android/uk/full_description.txt
index 285f577452..3c59d860ac 100644
--- a/fastlane/metadata/android/uk/full_description.txt
+++ b/fastlane/metadata/android/uk/full_description.txt
@@ -37,3 +37,6 @@ Element надає такі можливості на вибір:
Продовжуйте, де зупинилися
Залишайтеся на зв'язку, де б ви не знаходились, з повністю синхронізованою історією повідомлень на всіх своїх пристроях та в Інтернеті за адресою https://app.element.io
+
+Відкритий код
+Element для Android це проєкт з відкритим кодом, розміщений GitHub. Будь ласка, повідомте про помилки та/або сприяйте його розвитку на https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/zh-CN/changelogs/40103030.txt b/fastlane/metadata/android/zh-CN/changelogs/40103030.txt
new file mode 100644
index 0000000000..1f6ff391e1
--- /dev/null
+++ b/fastlane/metadata/android/zh-CN/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+此版本中的主要更改:使身份服务器策略在设置中可见。 暂时移除 Android Auto 支持。
+完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/zh-CN/full_description.txt b/fastlane/metadata/android/zh-CN/full_description.txt
index fa6b00f1e4..3dae8deb67 100644
--- a/fastlane/metadata/android/zh-CN/full_description.txt
+++ b/fastlane/metadata/android/zh-CN/full_description.txt
@@ -37,3 +37,6 @@ Element 透过不同的方式让你掌控一切:
从上次离开的地方开始
无论你身在何处,都可以透过在你所有设备与网页 https://app.element.io 间完全同步的信息历史保持联络
+
+开源
+ Element Android 是一个开源项目,由 GitHub 托管。 请在 https://github.com/vector-im/element-android 报告错误和/或为其开发做出贡献
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103010.txt b/fastlane/metadata/android/zh-TW/changelogs/40103010.txt
new file mode 100644
index 0000000000..95dcd59e46
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:使用空間來整理您的聊天室!v1.3.1 修復了在 v1.3.0 中遇到的當機問題。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103020.txt b/fastlane/metadata/android/zh-TW/changelogs/40103020.txt
new file mode 100644
index 0000000000..6a00bed1e7
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:新增對 Android Auto 的支援。以及許多錯誤修復!
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103030.txt b/fastlane/metadata/android/zh-TW/changelogs/40103030.txt
new file mode 100644
index 0000000000..7531d1d4a2
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:讓身份伺服器政策在設定中可見。暫時移除 Android Auto 支援。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/zh-TW/full_description.txt b/fastlane/metadata/android/zh-TW/full_description.txt
index 90c0eb4c4c..eda511c4af 100644
--- a/fastlane/metadata/android/zh-TW/full_description.txt
+++ b/fastlane/metadata/android/zh-TW/full_description.txt
@@ -37,3 +37,6 @@ Element 透過不同的方式讓您掌控一切:
從上次離開的地方開始
無論您身在何處,都可以透過在您所有裝置與網頁 https://app.element.io 間完全同步的訊息歷史保持聯絡
+
+開放原始碼
+Android 版的 Element 是開放原始碼專案,託管於 GitHub 上。請在 https://github.com/vector-im/element-android 上回報臭蟲及/或貢獻其開發
diff --git a/gradle.properties b/gradle.properties
index 98d561815b..23538c5285 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -23,3 +23,6 @@ vector.debugPrivateData=false
# httpLogLevel values: NONE, BASIC, HEADERS, BODY
vector.httpLogLevel=BASIC
+# Note: to debug, you can put and uncomment the following lines in the file ~/.gradle/gradle.properties to override the value above
+#vector.debugPrivateData=true
+#vector.httpLogLevel=BODY
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/colors.xml b/library/ui-styles/src/main/res/values/colors.xml
index b58829bb81..03d1ff69db 100644
--- a/library/ui-styles/src/main/res/values/colors.xml
+++ b/library/ui-styles/src/main/res/values/colors.xml
@@ -133,4 +133,8 @@
@color/palette_black_900
@color/palette_gray_400
+
+
+ @color/palette_gray_100
+ @color/palette_gray_450
diff --git a/library/ui-styles/src/main/res/values/theme_dark.xml b/library/ui-styles/src/main/res/values/theme_dark.xml
index f83953a527..d07e3c5297 100644
--- a/library/ui-styles/src/main/res/values/theme_dark.xml
+++ b/library/ui-styles/src/main/res/values/theme_dark.xml
@@ -42,6 +42,9 @@
- @android:color/black
- #FFFFFFFF
+
+ - @color/vctr_presence_indicator_offline_dark
+
- ?vctr_system
- ?vctr_content_quinary
diff --git a/library/ui-styles/src/main/res/values/theme_light.xml b/library/ui-styles/src/main/res/values/theme_light.xml
index cd5e17d607..14ec372f28 100644
--- a/library/ui-styles/src/main/res/values/theme_light.xml
+++ b/library/ui-styles/src/main/res/values/theme_light.xml
@@ -42,6 +42,9 @@
- #FFEEEEEE
- #FF000000
+
+ - @color/vctr_presence_indicator_offline_light
+
- ?vctr_system
- ?vctr_content_quinary
diff --git a/matrix-sdk-android-flow/.gitignore b/matrix-sdk-android-flow/.gitignore
new file mode 100644
index 0000000000..42afabfd2a
--- /dev/null
+++ b/matrix-sdk-android-flow/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/matrix-sdk-android-flow/build.gradle b/matrix-sdk-android-flow/build.gradle
new file mode 100644
index 0000000000..ea43ce20c8
--- /dev/null
+++ b/matrix-sdk-android-flow/build.gradle
@@ -0,0 +1,47 @@
+
+plugins {
+ id 'com.android.library'
+ id 'org.jetbrains.kotlin.android'
+}
+
+android {
+ compileSdk versions.compileSdk
+
+ defaultConfig {
+ minSdk versions.minSdk
+ targetSdk versions.targetSdk
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ consumerProguardFiles "consumer-rules.pro"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility versions.sourceCompat
+ targetCompatibility versions.targetCompat
+ }
+ kotlinOptions {
+ jvmTarget = "11"
+ }
+}
+
+dependencies {
+
+ implementation project(":matrix-sdk-android")
+ implementation libs.androidx.appCompat
+
+ implementation libs.jetbrains.coroutinesCore
+ implementation libs.jetbrains.coroutinesAndroid
+ implementation libs.androidx.lifecycleLivedata
+
+ // Paging
+ implementation libs.androidx.pagingRuntimeKtx
+
+ // Logging
+ implementation libs.jakewharton.timber
+}
diff --git a/matrix-sdk-android-flow/consumer-rules.pro b/matrix-sdk-android-flow/consumer-rules.pro
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/matrix-sdk-android-flow/proguard-rules.pro b/matrix-sdk-android-flow/proguard-rules.pro
new file mode 100644
index 0000000000..481bb43481
--- /dev/null
+++ b/matrix-sdk-android-flow/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/matrix-sdk-android-flow/src/main/AndroidManifest.xml b/matrix-sdk-android-flow/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..2392c0bfcb
--- /dev/null
+++ b/matrix-sdk-android-flow/src/main/AndroidManifest.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowExt.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowExt.kt
new file mode 100644
index 0000000000..72493325c3
--- /dev/null
+++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowExt.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2021 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 org.matrix.android.sdk.flow
+
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.onStart
+import kotlinx.coroutines.withContext
+
+internal fun Flow.startWith(dispatcher: CoroutineDispatcher, supplier: suspend () -> T): Flow {
+ return onStart {
+ val value = withContext(dispatcher) {
+ supplier()
+ }
+ emit(value)
+ }
+}
diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt
new file mode 100644
index 0000000000..42c1476b79
--- /dev/null
+++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowRoom.kt
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2020 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.flow
+
+import androidx.lifecycle.asFlow
+import kotlinx.coroutines.flow.Flow
+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.room.Room
+import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams
+import org.matrix.android.sdk.api.session.room.model.EventAnnotationsSummary
+import org.matrix.android.sdk.api.session.room.model.ReadReceipt
+import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
+import org.matrix.android.sdk.api.session.room.model.RoomSummary
+import org.matrix.android.sdk.api.session.room.notification.RoomNotificationState
+import org.matrix.android.sdk.api.session.room.send.UserDraft
+import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
+import org.matrix.android.sdk.api.util.Optional
+import org.matrix.android.sdk.api.util.toOptional
+
+class FlowRoom(private val room: Room) {
+
+ fun liveRoomSummary(): Flow> {
+ return room.getRoomSummaryLive().asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.roomSummary().toOptional()
+ }
+ }
+
+ fun liveRoomMembers(queryParams: RoomMemberQueryParams): Flow> {
+ return room.getRoomMembersLive(queryParams).asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getRoomMembers(queryParams)
+ }
+ }
+
+ fun liveAnnotationSummary(eventId: String): Flow> {
+ return room.getEventAnnotationsSummaryLive(eventId).asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getEventAnnotationsSummary(eventId).toOptional()
+ }
+ }
+
+ fun liveTimelineEvent(eventId: String): Flow> {
+ return room.getTimeLineEventLive(eventId).asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getTimeLineEvent(eventId).toOptional()
+ }
+ }
+
+ fun liveStateEvent(eventType: String, stateKey: QueryStringValue): Flow> {
+ return room.getStateEventLive(eventType, stateKey).asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getStateEvent(eventType, stateKey).toOptional()
+ }
+ }
+
+ fun liveStateEvents(eventTypes: Set): Flow> {
+ return room.getStateEventsLive(eventTypes).asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getStateEvents(eventTypes)
+ }
+ }
+
+ fun liveReadMarker(): Flow> {
+ return room.getReadMarkerLive().asFlow()
+ }
+
+ fun liveReadReceipt(): Flow> {
+ return room.getMyReadReceiptLive().asFlow()
+ }
+
+ fun liveEventReadReceipts(eventId: String): Flow> {
+ return room.getEventReadReceiptsLive(eventId).asFlow()
+ }
+
+ fun liveDraft(): Flow> {
+ return room.getDraftLive().asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getDraft().toOptional()
+ }
+ }
+
+ fun liveNotificationState(): Flow {
+ return room.getLiveRoomNotificationState().asFlow()
+ }
+}
+
+fun Room.flow(): FlowRoom {
+ return FlowRoom(this)
+}
diff --git a/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt
new file mode 100644
index 0000000000..13fd097bcd
--- /dev/null
+++ b/matrix-sdk-android-flow/src/main/java/org/matrix/android/sdk/flow/FlowSession.kt
@@ -0,0 +1,180 @@
+/*
+ * Copyright 2020 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.flow
+
+import androidx.lifecycle.asFlow
+import androidx.paging.PagedList
+import kotlinx.coroutines.flow.Flow
+import org.matrix.android.sdk.api.query.QueryStringValue
+import org.matrix.android.sdk.api.session.Session
+import org.matrix.android.sdk.api.session.accountdata.UserAccountDataEvent
+import org.matrix.android.sdk.api.session.crypto.crosssigning.MXCrossSigningInfo
+import org.matrix.android.sdk.api.session.group.GroupSummaryQueryParams
+import org.matrix.android.sdk.api.session.group.model.GroupSummary
+import org.matrix.android.sdk.api.session.identity.ThreePid
+import org.matrix.android.sdk.api.session.pushers.Pusher
+import org.matrix.android.sdk.api.session.room.RoomSummaryQueryParams
+import org.matrix.android.sdk.api.session.room.accountdata.RoomAccountDataEvent
+import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
+import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
+import org.matrix.android.sdk.api.session.room.model.RoomSummary
+import org.matrix.android.sdk.api.session.space.SpaceSummaryQueryParams
+import org.matrix.android.sdk.api.session.sync.SyncState
+import org.matrix.android.sdk.api.session.user.model.User
+import org.matrix.android.sdk.api.session.widgets.model.Widget
+import org.matrix.android.sdk.api.util.Optional
+import org.matrix.android.sdk.api.util.toOptional
+import org.matrix.android.sdk.internal.crypto.model.CryptoDeviceInfo
+import org.matrix.android.sdk.internal.crypto.model.rest.DeviceInfo
+import org.matrix.android.sdk.internal.crypto.store.PrivateKeysInfo
+
+class FlowSession(private val session: Session) {
+
+ fun liveRoomSummaries(queryParams: RoomSummaryQueryParams): Flow> {
+ return session.getRoomSummariesLive(queryParams).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.getRoomSummaries(queryParams)
+ }
+ }
+
+ fun liveGroupSummaries(queryParams: GroupSummaryQueryParams): Flow> {
+ return session.getGroupSummariesLive(queryParams).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.getGroupSummaries(queryParams)
+ }
+ }
+
+ fun liveSpaceSummaries(queryParams: SpaceSummaryQueryParams): Flow> {
+ return session.spaceService().getSpaceSummariesLive(queryParams).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.spaceService().getSpaceSummaries(queryParams)
+ }
+ }
+
+ fun liveBreadcrumbs(queryParams: RoomSummaryQueryParams): Flow> {
+ return session.getBreadcrumbsLive(queryParams).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.getBreadcrumbs(queryParams)
+ }
+ }
+
+ fun liveMyDevicesInfo(): Flow> {
+ return session.cryptoService().getLiveMyDevicesInfo().asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.cryptoService().getMyDevicesInfo()
+ }
+ }
+
+ fun liveSyncState(): Flow {
+ return session.getSyncStateLive().asFlow()
+ }
+
+ fun livePushers(): Flow> {
+ return session.getPushersLive().asFlow()
+ }
+
+ fun liveUser(userId: String): Flow> {
+ return session.getUserLive(userId).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.getUser(userId).toOptional()
+ }
+ }
+
+ fun liveRoomMember(userId: String, roomId: String): Flow> {
+ return session.getRoomMemberLive(userId, roomId).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.getRoomMember(userId, roomId).toOptional()
+ }
+ }
+
+ fun liveUsers(): Flow> {
+ return session.getUsersLive().asFlow()
+ }
+
+ fun liveIgnoredUsers(): Flow> {
+ return session.getIgnoredUsersLive().asFlow()
+ }
+
+ fun livePagedUsers(filter: String? = null, excludedUserIds: Set? = null): Flow> {
+ return session.getPagedUsersLive(filter, excludedUserIds).asFlow()
+ }
+
+ fun liveThreePIds(refreshData: Boolean): Flow> {
+ return session.getThreePidsLive(refreshData).asFlow()
+ .startWith(session.coroutineDispatchers.io) { session.getThreePids() }
+ }
+
+ fun livePendingThreePIds(): Flow> {
+ return session.getPendingThreePidsLive().asFlow()
+ .startWith(session.coroutineDispatchers.io) { session.getPendingThreePids() }
+ }
+
+ fun liveUserCryptoDevices(userId: String): Flow> {
+ return session.cryptoService().getLiveCryptoDeviceInfo(userId).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.cryptoService().getCryptoDeviceInfo(userId)
+ }
+ }
+
+ fun liveCrossSigningInfo(userId: String): Flow> {
+ return session.cryptoService().crossSigningService().getLiveCrossSigningKeys(userId).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.cryptoService().crossSigningService().getUserCrossSigningKeys(userId).toOptional()
+ }
+ }
+
+ fun liveCrossSigningPrivateKeys(): Flow> {
+ return session.cryptoService().crossSigningService().getLiveCrossSigningPrivateKeys().asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.cryptoService().crossSigningService().getCrossSigningPrivateKeys().toOptional()
+ }
+ }
+
+ fun liveUserAccountData(types: Set): Flow> {
+ return session.accountDataService().getLiveUserAccountDataEvents(types).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.accountDataService().getUserAccountDataEvents(types)
+ }
+ }
+
+ fun liveRoomAccountData(types: Set): Flow> {
+ return session.accountDataService().getLiveRoomAccountDataEvents(types).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.accountDataService().getRoomAccountDataEvents(types)
+ }
+ }
+
+ fun liveRoomWidgets(
+ roomId: String,
+ widgetId: QueryStringValue,
+ widgetTypes: Set? = null,
+ excludedTypes: Set? = null
+ ): Flow> {
+ return session.widgetService().getRoomWidgetsLive(roomId, widgetId, widgetTypes, excludedTypes).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.widgetService().getRoomWidgets(roomId, widgetId, widgetTypes, excludedTypes)
+ }
+ }
+
+ fun liveRoomChangeMembershipState(): Flow