diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml
index c4eccd5b1f..a7daaac14b 100644
--- a/.github/ISSUE_TEMPLATE/bug.yml
+++ b/.github/ISSUE_TEMPLATE/bug.yml
@@ -57,8 +57,9 @@ body:
id: homeserver
attributes:
label: Homeserver
- description: Which server is your account registered on?
- placeholder: e.g. matrix.org
+ description: |
+ Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version.
+ placeholder: e.g. matrix.org or Synapse 1.50.0rc1
validations:
required: false
- type: dropdown
diff --git a/.github/ISSUE_TEMPLATE/release.yml b/.github/ISSUE_TEMPLATE/release.yml
index 7ac55427a9..582998d492 100644
--- a/.github/ISSUE_TEMPLATE/release.yml
+++ b/.github/ISSUE_TEMPLATE/release.yml
@@ -1,6 +1,6 @@
name: Release checklist
description: Checklist for each release. This template is only for the core team.
-title: "[Release] Element Android v"
+title: "[Release] Element Android v"
labels: [🚀 Release]
assignees:
- bmarty
@@ -10,7 +10,7 @@ body:
id: checklist
attributes:
label: Release checklist
- description: For the template example, we are releasing the version 1.1.10. Replace 1.1.10 with the version in the issue body.
+ description: For the template example, we are releasing the version 1.2.3. Replace 1.2.3 with the version in the issue body.
placeholder: |
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
value: |
@@ -22,35 +22,41 @@ body:
### Do the release
- - [ ] Create release with gitflow, branch name `release/1.1.10`
+ - [ ] Create release with gitflow, branch name `release/1.2.3`
- [ ] 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
+ - [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
- - [ ] Create an account on matrix.org
- - [ ] Run towncrier: `towncrier --version v1.1.10 --draft` (remove `--draft` do write the file CHANGES.md)
+ - [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
+ - [ ] Run towncrier: `towncrier --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
+ - [ ] Check that the folder `changelog.d` is empty. It can happen that some remaining files stay here
+ - [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
- - [ ] Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
- - [ ] Finish release with gitflow, delete the draft PR
- - [ ] Push `main` and the new tag `v1.1.10` to origin
+ - [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
+ - [ ] Finish release with gitflow, delete the draft PR (if created)
+ - [ ] Push `main` and the new tag `v1.2.3` to origin
- [ ] Checkout `develop`
- - [ ] Increase version in `./vector/build.gradle`
+ - [ ] Increase version (versionPatch + 2) in `./vector/build.gradle`
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
- [ ] Commit and push `develop`
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
- [ ] Run the script `~/scripts/releaseElement.sh`. It will download the APKs from Buildkite check them and sign them.
- [ ] Install the APK on your phone to check that the upgrade went well (no init sync, etc.)
+ - [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
+ - [ ] Add the 4 signed APKs to the GitHub release
+ - [ ] Ping the Android Internal room
+
+ ### Once tested and validated internally
+
- [ ] Create a new beta release on the GooglePlay console and upload the 4 signed Apks.
- [ ] Check that the version codes are correct
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
- [ ] Push to beta release to 100% of the users
- - [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
- - [ ] Add the 4 signed APKs to the GitHub release
- - [ ] Ping the Android Internal room
- - [ ] Add an entry in the internal diary
+ - [ ] Notify the F-Droid team so that they can schedule the publication on F-Droid
### Once Live on PlayStore
- [ ] Ping the Android public room and update its topic
+ - [ ] Add an entry in the internal diary
### After at least 2 days
@@ -62,6 +68,8 @@ body:
### Android SDK2
+ The SDK2 and the sample app are released only when Element has been pushed to production.
+
- [ ] Checkout the `main` branch on Element Android project
#### On the SDK2 project
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index eb30c18fcf..7096e6bdb5 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,9 +1,41 @@
-### Pull Request Checklist
+
+
+## Type of change
-
+- [ ] Feature
+- [ ] Bugfix
+- [ ] Technical
+- [ ] Other :
+
+## Content
+
+
+
+## Motivation and context
+
+
+
+## Screenshots / GIFs
+
+
+
+## Tests
+
+
+
+- Step 1
+- Step 2
+- Step ...
+
+## Tested devices
+
+- [ ] Physical
+- [ ] Emulator
+- OS version(s):
+
+## Checklist
+
+
- [ ] Changes has been tested on an Android device or Android emulator with API 21
- [ ] UI change has been tested on both light and dark themes
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 8c2f1041e0..0573461e7a 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -10,6 +10,8 @@ updates:
directory: "/"
schedule:
interval: "weekly"
+ ignore:
+ - dependency-name: "*github-script*"
# Updates for Gradle dependencies used in the app
- package-ecosystem: gradle
directory: "/"
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 91dc6d830b..1ba71c1f61 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -20,6 +20,10 @@ jobs:
fail-fast: false
matrix:
target: [ Gplay, Fdroid ]
+ # Allow all jobs on develop. Just one per PR.
+ concurrency:
+ group: ${{ github.ref == 'refs/heads/develop' && format('integration-tests-develop-{0}-{1}', matrix.target, github.sha) || format('build-debug-{0}-{1}', matrix.target, github.ref) }}
+ cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
@@ -43,6 +47,7 @@ jobs:
name: Build unsigned GPlay APKs
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
+ # Only runs on main, no concurrency.
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml
index 405a2b3065..ee4a87293f 100644
--- a/.github/workflows/gradle-wrapper-validation.yml
+++ b/.github/workflows/gradle-wrapper-validation.yml
@@ -5,6 +5,7 @@ jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
+ # No concurrency required, this is a prerequisite to other actions and should run every time.
steps:
- uses: actions/checkout@v2
- uses: gradle/wrapper-validation-action@v1
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
deleted file mode 100644
index c18ca69fde..0000000000
--- a/.github/workflows/integration.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-name: Integration Test
-
-on:
- pull_request: { }
- push:
- branches: [ main, develop ]
-
-# Enrich gradle.properties for CI/CD
-env:
- CI_GRADLE_ARG_PROPERTIES: >
- -Porg.gradle.jvmargs=-Xmx2g
- -Porg.gradle.parallel=false
-
-jobs:
- # Temporary add build of Android tests, which cannot be run on the CI right now, but they need to at least compile
- # So it will be mandatory for this action to be successful on every PRs
- compile-android-test:
- name: Compile Android tests
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Compile Android tests
- run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
-
- integration-tests:
- name: Integration Tests (Synapse)
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- api-level: [28]
- steps:
- - uses: actions/checkout@v2
- - uses: gradle/wrapper-validation-action@v1
- - uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: 11
- - 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 }}-
- - uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Start synapse server
- run: |
- python3 -m venv .synapse
- source .synapse/bin/activate
- pip install synapse matrix-synapse
- curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh --no-rate-limit \
- | sed s/127.0.0.1/0.0.0.0/g | bash
- - name: Run integration tests on API ${{ matrix.api-level }}
- uses: reactivecircus/android-emulator-runner@v2
- with:
- api-level: ${{ matrix.api-level }}
- #arch: x86_64
- #disable-animations: true
- # script: ./gradlew -PallWarningsAsErrors=false vector:connectedAndroidTest matrix-sdk-android:connectedAndroidTest
- arch: x86
- profile: Nexus 5X
- force-avd-creation: false
- emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
- emulator-build: 7425822
- script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedCheck --stacktrace
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
new file mode 100644
index 0000000000..0a12587e84
--- /dev/null
+++ b/.github/workflows/nightly.yml
@@ -0,0 +1,329 @@
+name: Nightly Tests
+
+on:
+ push:
+ branches: [ release/* ]
+ schedule:
+ # At 20:00 every day UTC
+ - cron: '0 20 * * *'
+ workflow_dispatch:
+
+# Enrich gradle.properties for CI/CD
+env:
+ CI_GRADLE_ARG_PROPERTIES: >
+ -Porg.gradle.jvmargs=-Xmx4g
+ -Porg.gradle.parallel=false
+ -PallWarningsAsErrors=false
+
+jobs:
+ # Build Android Tests [Matrix SDK]
+ build-android-test-matrix-sdk:
+ name: Matrix SDK - Build Android Tests
+ runs-on: macos-latest
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-java@v2
+ with:
+ distribution: 'adopt'
+ java-version: 11
+ - uses: actions/cache@v2
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - name: Build Android Tests for matrix-sdk-android
+ run: ./gradlew clean matrix-sdk-android:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace
+
+ # Build Android Tests [Matrix APP]
+ build-android-test-app:
+ name: App - Build Android Tests
+ runs-on: macos-latest
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-java@v2
+ with:
+ distribution: 'adopt'
+ java-version: 11
+ - uses: actions/cache@v2
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - name: Build Android Tests for vector
+ run: ./gradlew clean vector:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace
+
+ # Run Android Tests
+ integration-tests:
+ name: Matrix SDK - Running Integration Tests
+ runs-on: macos-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ api-level: [ 28 ]
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: actions/checkout@v2
+ - uses: gradle/wrapper-validation-action@v1
+ - uses: actions/setup-java@v2
+ with:
+ distribution: 'adopt'
+ java-version: 11
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v3
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v2
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - name: Start synapse server
+ run: |
+ pip install matrix-synapse
+ curl https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh -o start.sh
+ chmod 777 start.sh
+ ./start.sh --no-rate-limit
+ # package: org.matrix.android.sdk.session
+ - name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator-session.log
+ chmod 777 emulator-session.log
+ adb logcat >> emulator-session.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.session' matrix-sdk-android:connectedDebugAndroidTest
+ - name: Read Results [org.matrix.android.sdk.session]
+ if: always()
+ id: get-comment-body-session
+ run: python3 ./tools/ci/render_test_output.py session ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
+ - name: Remove adb logcat
+ if: always()
+ run: pkill -9 adb
+ - name: Run integration tests for Matrix SDK [org.matrix.android.sdk.account] API[${{ matrix.api-level }}]
+ if: always()
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator-account.log
+ chmod 777 emulator-account.log
+ adb logcat >> emulator-account.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.account' matrix-sdk-android:connectedDebugAndroidTest
+ - name: Read Results [org.matrix.android.sdk.account]
+ if: always()
+ id: get-comment-body-account
+ run: python3 ./tools/ci/render_test_output.py account ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
+ - name: Remove adb logcat
+ if: always()
+ run: pkill -9 adb
+ # package: org.matrix.android.sdk.internal
+ - name: Run integration tests for Matrix SDK [org.matrix.android.sdk.internal] API[${{ matrix.api-level }}]
+ if: always()
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator-internal.log
+ chmod 777 emulator-internal.log
+ adb logcat >> emulator-internal.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.internal' matrix-sdk-android:connectedDebugAndroidTest
+ - name: Read Results [org.matrix.android.sdk.internal]
+ if: always()
+ id: get-comment-body-internal
+ run: python3 ./tools/ci/render_test_output.py internal ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
+ - name: Remove adb logcat
+ if: always()
+ run: pkill -9 adb
+ # package: org.matrix.android.sdk.ordering
+ - name: Run integration tests for Matrix SDK [org.matrix.android.sdk.ordering] API[${{ matrix.api-level }}]
+ if: always()
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator-ordering.log
+ chmod 777 emulator-ordering.log
+ adb logcat >> emulator-ordering.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.ordering' matrix-sdk-android:connectedDebugAndroidTest
+ - name: Read Results [org.matrix.android.sdk.ordering]
+ if: always()
+ id: get-comment-body-ordering
+ run: python3 ./tools/ci/render_test_output.py ordering ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
+ - name: Remove adb logcat
+ if: always()
+ run: pkill -9 adb
+ # package: class PermalinkParserTest
+ - name: Run integration tests for Matrix SDK class [org.matrix.android.sdk.PermalinkParserTest] API[${{ matrix.api-level }}]
+ if: always()
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator-permalink.log
+ chmod 777 emulator-permalink.log
+ adb logcat >> emulator-permalink.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class='org.matrix.android.sdk.PermalinkParserTest' matrix-sdk-android:connectedDebugAndroidTest
+ - name: Read Results [org.matrix.android.sdk.PermalinkParserTest]
+ if: always()
+ id: get-comment-body-permalink
+ run: python3 ./tools/ci/render_test_output.py permalink ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
+ - name: Remove adb logcat
+ if: always()
+ run: pkill -9 adb
+ # package: class PermalinkParserTest
+ - name: Find Comment
+ if: always() && github.event_name == 'pull_request'
+ uses: peter-evans/find-comment@v1
+ id: fc
+ with:
+ issue-number: ${{ github.event.pull_request.number }}
+ comment-author: 'github-actions[bot]'
+ body-includes: Integration Tests Results
+ - name: Publish results to PR
+ if: always() && github.event_name == 'pull_request'
+ uses: peter-evans/create-or-update-comment@v1
+ with:
+ comment-id: ${{ steps.fc.outputs.comment-id }}
+ issue-number: ${{ github.event.pull_request.number }}
+ body: |
+ ### Matrix SDK
+ ## Integration Tests Results:
+ - `[org.matrix.android.sdk.session]`
${{ steps.get-comment-body-session.outputs.session }}
+ - `[org.matrix.android.sdk.account]`
${{ steps.get-comment-body-account.outputs.account }}
+ - `[org.matrix.android.sdk.internal]`
${{ steps.get-comment-body-internal.outputs.internal }}
+ - `[org.matrix.android.sdk.ordering]`
${{ steps.get-comment-body-ordering.outputs.ordering }}
+ - `[org.matrix.android.sdk.PermalinkParserTest]`
${{ steps.get-comment-body-permalink.outputs.permalink }}
+ edit-mode: replace
+ - name: Upload Test Report Log
+ uses: actions/upload-artifact@v2
+ if: always()
+ with:
+ name: integrationtest-error-results
+ path: |
+ emulator-permalink.log
+ emulator-internal.log
+ emulator-ordering.log
+ emulator-account.log
+ emulator-session.log
+
+ ui-tests:
+ name: UI Tests (Synapse)
+ runs-on: macos-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ api-level: [ 28 ]
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ ref: develop
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v3
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v2
+ with:
+ path: |
+ ~/.gradle/caches
+ ~/.gradle/wrapper
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - name: Start synapse server
+ run: |
+ pip install matrix-synapse
+ curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh \
+ | sed s/127.0.0.1/0.0.0.0/g | sed 's/http:\/\/localhost/http:\/\/10.0.2.2/g' | bash -s -- --no-rate-limit
+ - uses: actions/setup-java@v2
+ with:
+ distribution: 'adopt'
+ java-version: '11'
+ - name: Run sanity tests on API ${{ matrix.api-level }}
+ uses: reactivecircus/android-emulator-runner@v2
+ with:
+ api-level: ${{ matrix.api-level }}
+ arch: x86
+ profile: Nexus 5X
+ force-avd-creation: false
+ emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
+ emulator-build: 7425822 # workaround to emulator bug: https://github.com/ReactiveCircus/android-emulator-runner/issues/160
+ script: |
+ adb root
+ adb logcat -c
+ touch emulator.log
+ chmod 777 emulator.log
+ adb logcat >> emulator.log &
+ ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest || (adb pull storage/emulated/0/Pictures/failure_screenshots && exit 1 )
+ - name: Upload Test Report Log
+ uses: actions/upload-artifact@v2
+ if: always()
+ with:
+ name: uitest-error-results
+ path: |
+ emulator.log
+ failure_screenshots/
+
+# Notify the channel about scheduled runs, do not notify for manually triggered runs
+ notify:
+ runs-on: ubuntu-latest
+ needs:
+ - integration-tests
+ - ui-tests
+ if: always() && github.event_name != 'workflow_dispatch'
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: michaelkaye/matrix-hookshot-action@v0.3.0
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
+ matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
+ text_template: "Nightly test run: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
+ html_template: "Nightly test run results: {{#each job_statuses }}{{#with this }}{{#if completed }}
{{name}} {{conclusion}} at {{completed_at}} [details]{{/if}}{{/with}}{{/each}}"
diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml
index 5ccd00a02b..02827e7f17 100644
--- a/.github/workflows/quality.yml
+++ b/.github/workflows/quality.yml
@@ -14,24 +14,87 @@ jobs:
- name: Run code quality check suite
run: ./tools/check/check_code_quality.sh
+# ktlint for all the modules
ktlint:
name: Kotlin Linter
runs-on: ubuntu-latest
+ # Allow all jobs on main and develop. Just one per PR.
+ concurrency:
+ group: ${{ github.ref == 'refs/heads/main' && format('ktlint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('ktlint-develop-{0}', github.sha) || format('ktlint-{0}', github.ref) }}
+ cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- name: Run ktlint
run: |
./gradlew ktlintCheck --continue
- name: Upload reports
+ if: always()
uses: actions/upload-artifact@v2
with:
name: ktlinting-report
- path: vector/build/reports/ktlint/*.*
+ path: |
+ */build/reports/ktlint/ktlint*/ktlint*.txt
+ - name: Handle Results
+ if: always()
+ id: ktlint-results
+ run: |
+ results="$(cat */*/build/reports/ktlint/ktlint*/ktlint*.txt */build/reports/ktlint/ktlint*/ktlint*.txt | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g")"
+ if [ -z "$results" ]; then
+ echo "::set-output name=add_comment::false"
+ else
+ body="👎\`Failed${results}\`"
+ body="${body//'%'/'%25'}"
+ body="${body//$'\n'/'%0A'}"
+ body="${body//$'\r'/'%0D'}"
+ body="$( echo $body | sed 's/\/home\/runner\/work\/element-android\/element-android\//\`
\`/g')"
+ body="$( echo $body | sed 's/\/src\/main\/java\// 🔸 /g')"
+ body="$( echo $body | sed 's/im\/vector\/app\///g')"
+ body="$( echo $body | sed 's/im\/vector\/lib\/attachmentviewer\///g')"
+ body="$( echo $body | sed 's/im\/vector\/lib\/multipicker\///g')"
+ body="$( echo $body | sed 's/im\/vector\/lib\///g')"
+ body="$( echo $body | sed 's/org\/matrix\/android\/sdk\///g')"
+ body="$( echo $body | sed 's/\/src\/androidTest\/java\// 🔸 /g')"
+ echo "::set-output name=add_comment::true"
+ echo "::set-output name=body::$body"
+ fi
+ - name: Find Comment
+ if: always() && github.event_name == 'pull_request'
+ uses: peter-evans/find-comment@v1
+ id: fc
+ with:
+ issue-number: ${{ github.event.pull_request.number }}
+ comment-author: 'github-actions[bot]'
+ body-includes: Ktlint Results
+ - name: Add comment if needed
+ if: always() && github.event_name == 'pull_request' && steps.ktlint-results.outputs.add_comment == 'true'
+ uses: peter-evans/create-or-update-comment@v1
+ with:
+ comment-id: ${{ steps.fc.outputs.comment-id }}
+ issue-number: ${{ github.event.pull_request.number }}
+ body: |
+ ### Ktlint Results
-# Lint for main module and all the other modules
+ ${{ steps.ktlint-results.outputs.body }}
+ edit-mode: replace
+ - name: Delete comment if needed
+ if: always() && github.event_name == 'pull_request' && steps.fc.outputs.comment-id != '' && steps.ktlint-results.outputs.add_comment == 'false'
+ uses: actions/github-script@v3
+ with:
+ script: |
+ github.issues.deleteComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ comment_id: ${{ steps.fc.outputs.comment-id }}
+ })
+
+# Lint for main module
android-lint:
name: Android Linter
runs-on: ubuntu-latest
+ # Allow all jobs on main and develop. Just one per PR.
+ concurrency:
+ group: ${{ github.ref == 'refs/heads/main' && format('android-lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('android-lint-develop-{0}', github.sha) || format('android-lint-{0}', github.ref) }}
+ cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
@@ -45,6 +108,7 @@ jobs:
- name: Lint analysis
run: ./gradlew clean :vector:lint --stacktrace
- name: Upload reports
+ if: always()
uses: actions/upload-artifact@v2
with:
name: lint-report
@@ -60,6 +124,10 @@ jobs:
fail-fast: false
matrix:
target: [ Gplay, Fdroid ]
+ # Allow all jobs on develop. Just one per PR.
+ concurrency:
+ group: ${{ github.ref == 'refs/heads/develop' && format('apk-lint-develop-{0}-{1}', matrix.target, github.sha) || format('apk-lint-{0}-{1}', matrix.target, github.ref) }}
+ cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
@@ -73,8 +141,8 @@ jobs:
- name: Lint ${{ matrix.target }} release
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace
- name: Upload ${{ matrix.target }} linting report
- uses: actions/upload-artifact@v2
if: always()
+ uses: actions/upload-artifact@v2
with:
name: release-lint-report-${{ matrix.target }}
path: |
diff --git a/.github/workflows/sanity_test.yml b/.github/workflows/sanity_test.yml
deleted file mode 100644
index 213c43b716..0000000000
--- a/.github/workflows/sanity_test.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-name: Sanity Test
-
-on:
- schedule:
- # At 20:00 every day UTC
- - cron: '0 20 * * *'
-
-# Enrich gradle.properties for CI/CD
-env:
- CI_GRADLE_ARG_PROPERTIES: >
- -Porg.gradle.jvmargs=-Xmx2g
- -Porg.gradle.parallel=false
-
-jobs:
- integration-tests:
- name: Sanity Tests (Synapse)
- runs-on: macos-latest
- strategy:
- fail-fast: false
- matrix:
- api-level: [ 29 ]
- steps:
- - uses: actions/checkout@v2
- with:
- ref: develop
- - 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 }}-
- - uses: actions/cache@v2
- with:
- path: |
- ~/.gradle/caches
- ~/.gradle/wrapper
- key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Start synapse server
- run: |
- python3 -m venv .synapse
- source .synapse/bin/activate
- pip install synapse matrix-synapse
- curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh \
- | sed s/127.0.0.1/0.0.0.0/g | sed 's/http:\/\/localhost/http:\/\/10.0.2.2/g' | bash -s -- --no-rate-limit
- - uses: actions/setup-java@v2
- with:
- distribution: 'adopt'
- java-version: '11'
- - name: Run sanity tests on API ${{ matrix.api-level }}
- uses: reactivecircus/android-emulator-runner@v2
- with:
- emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
- api-level: ${{ matrix.api-level }}
- profile: 24 # Pixel 5
- emulator-build: 7425822 # workaround to emulator bug: https://github.com/ReactiveCircus/android-emulator-runner/issues/160
- script: |
- adb root
- adb logcat -c
- touch emulator.log
- chmod 777 emulator.log
- adb logcat >> emulator.log &
- ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest || adb pull storage/emulated/0/Pictures/failure_screenshots && exit 1
- - name: Upload Failing Test Report Log
- uses: actions/upload-artifact@v2
- if: failure()
- with:
- name: sanity-error-results
- path: |
- emulator.log
- failure_screenshots/
\ No newline at end of file
diff --git a/.github/workflows/sync-from-external-sources.yml b/.github/workflows/sync-from-external-sources.yml
index 2da8e10542..55873c9112 100644
--- a/.github/workflows/sync-from-external-sources.yml
+++ b/.github/workflows/sync-from-external-sources.yml
@@ -9,20 +9,13 @@ jobs:
runs-on: ubuntu-latest
# Skip in forks
if: github.repository == 'vector-im/element-android'
+ # No concurrency required, runs every time on a schedule.
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v3
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
@@ -43,20 +36,13 @@ jobs:
runs-on: ubuntu-latest
# Skip in forks
if: github.repository == 'vector-im/element-android'
+ # No concurrency required, runs every time on a schedule.
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v3
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
@@ -70,4 +56,28 @@ jobs:
body: |
- Update SAS Strings from matrix-doc.
branch: sync-sas-strings
+ base: develop
+
+ sync-analytics-plan:
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
+ # No concurrency required, runs every time on a schedule.
+ steps:
+ - uses: actions/checkout@v2
+ - name: Run analytics import script
+ run: ./tools/import_analytic_plan.sh
+ - name: Create Pull Request for analytics plan
+ uses: peter-evans/create-pull-request@v3
+ with:
+ commit-message: Sync analytics plan
+ title: Sync analytics plan
+ body: |
+ ### Update analytics plan
+ Reviewers:
+ - [ ] Please remove usage of Event or Enum which may have been removed or updated
+ - [ ] please ensure new Events or new Enums are used to send analytics by pushing new commit(s) to this PR.
+
+ *Note*: Change are coming from [this project](https://github.com/matrix-org/matrix-analytics-events)
+ branch: sync-analytics-plan
base: develop
\ No newline at end of file
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 50195638de..d6e194916b 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -15,6 +15,10 @@ jobs:
unit-tests:
name: Run Unit Tests
runs-on: ubuntu-latest
+ # Allow all jobs on main and develop. Just one per PR.
+ concurrency:
+ group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }}
+ cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
diff --git a/.github/workflows/triage-incoming.yml b/.github/workflows/triage-incoming.yml
index 4ecc824424..6a22bf5223 100644
--- a/.github/workflows/triage-incoming.yml
+++ b/.github/workflows/triage-incoming.yml
@@ -7,6 +7,8 @@ on:
jobs:
automate-project-columns:
runs-on: ubuntu-latest
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
steps:
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
with:
diff --git a/.github/workflows/triage-labelled.yml b/.github/workflows/triage-labelled.yml
new file mode 100644
index 0000000000..eeddf2e785
--- /dev/null
+++ b/.github/workflows/triage-labelled.yml
@@ -0,0 +1,254 @@
+name: Move labelled issues to correct boards and columns
+
+on:
+ issues:
+ types: [labeled]
+
+jobs:
+ apply_Z-Labs_label:
+ name: Add Z-Labs label for features behind labs flags
+ runs-on: ubuntu-latest
+ if: >
+ contains(github.event.issue.labels.*.name, 'A-Maths') ||
+ contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
+ contains(github.event.issue.labels.*.name, 'A-Threads') ||
+ contains(github.event.issue.labels.*.name, 'A-Polls') ||
+ contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
+ contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
+ contains(github.event.issue.labels.*.name, 'Z-IA') ||
+ contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
+ contains(github.event.issue.labels.*.name, 'A-Tags')
+ steps:
+ - uses: actions/github-script@v5
+ with:
+ script: |
+ github.rest.issues.addLabels({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ labels: ['Z-Labs']
+ })
+
+ move_needs_info_issues:
+ name: X-Needs-Info issues to Need info column on triage board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: github.repository == 'vector-im/element-android'
+ steps:
+ - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
+ with:
+ action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
+ project-url: "https://github.com/vector-im/element-android/projects/4"
+ column-name: "Need info"
+ label-name: "X-Needs-Info"
+
+ add_priority_design_issues_to_project:
+ name: P1 X-Needs-Design to Design project board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
+ (contains(github.event.issue.labels.*.name, 'S-Critical') &&
+ (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
+ contains(github.event.issue.labels.*.name, 'S-Major') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ contains(github.event.issue.labels.*.name, 'A11y') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent'))
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ id: add_to_project
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc0sUA"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ add_product_issues:
+ name: X-Needs-Product to Design project board
+ runs-on: ubuntu-latest
+ if: >
+ contains(github.event.issue.labels.*.name, 'X-Needs-Product')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ id: add_to_project
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ delight_issues_to_board:
+ name: Spaces issues to Delight project board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ (contains(github.event.issue.labels.*.name, 'A-Spaces') ||
+ contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
+ contains(github.event.issue.labels.*.name, 'A-Subspaces') ||
+ contains(github.event.issue.labels.*.name, 'Z-IA'))
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc1HvQ"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_voice-message_issues:
+ name: A-Voice Messages to voice message board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'A-Voice Messages')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc2KCw"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_threads_issues:
+ name: A-Threads to Thread board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'A-Threads')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc0rRA"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_message_bubbles_issues:
+ name: A-Message-Bubbles to Message bubbles board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'A-Message-Bubbles')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc3m-g"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_ftue_issues:
+ name: Z-FTUE to Mobile FTUE board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'Z-FTUE')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc4AAqVx"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ move_WTF_issues:
+ name: Z-WTF to WTF board
+ runs-on: ubuntu-latest
+ # Skip in forks
+ if: >
+ github.repository == 'vector-im/element-android' &&
+ contains(github.event.issue.labels.*.name, 'Z-WTF')
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!,$contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.issue.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc4AArk0"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
diff --git a/.github/workflows/triage-move-labelled.yml b/.github/workflows/triage-move-labelled.yml
deleted file mode 100644
index f910cdf7ea..0000000000
--- a/.github/workflows/triage-move-labelled.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-name: Move labelled issues to correct boards and columns
-
-on:
- issues:
- types: [labeled]
-
-jobs:
- move_needs_info_issues:
- name: Move X-Needs-Info issues to Need info on triage board
- runs-on: ubuntu-latest
- steps:
- - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
- with:
- action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
- project-url: "https://github.com/vector-im/element-android/projects/4"
- column-name: "Need info"
- label-name: "X-Needs-Info"
-
- add_priority_design_issues_to_project:
- name: Move priority X-Needs-Design issues to Design project board
- runs-on: ubuntu-latest
- if: >
- contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
- (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
- contains(github.event.issue.labels.*.name, 'O-Occasional')) &&
- (contains(github.event.issue.labels.*.name, 'S-Critical') ||
- contains(github.event.issue.labels.*.name, 'S-Major') ||
- contains(github.event.issue.labels.*.name, 'S-Minor'))
- steps:
- - uses: octokit/graphql-action@v2.x
- id: add_to_project
- with:
- headers: '{"GraphQL-Features": "projects_next_graphql"}'
- query: |
- mutation add_to_project($projectid:String!,$contentid:String!) {
- addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
- projectNextItem {
- id
- }
- }
- }
- projectid: ${{ env.PROJECT_ID }}
- contentid: ${{ github.event.issue.node_id }}
- env:
- PROJECT_ID: "PN_kwDOAM0swc0sUA"
- GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
-
- move_spaces_issues:
- name: Move Spaces issues to Delight project board
- runs-on: ubuntu-latest
- if: >
- contains(github.event.issue.labels.*.name, 'A-Spaces') ||
- contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
- contains(github.event.issue.labels.*.name, 'A-Subspaces')
- steps:
- - uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
- with:
- action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
- project-url: "https://github.com/orgs/vector-im/projects/6"
- column-name: "📥 Inbox"
- label-name: "A-Spaces"
- - uses: octokit/graphql-action@v2.x
- id: add_to_delight2
- with:
- headers: '{"GraphQL-Features": "projects_next_graphql"}'
- query: |
- mutation add_to_project($projectid:String!,$contentid:String!) {
- addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
- projectNextItem {
- id
- }
- }
- }
- projectid: ${{ env.PROJECT_ID }}
- contentid: ${{ github.event.issue.node_id }}
- env:
- PROJECT_ID: "PN_kwDOAM0swc1HvQ"
- GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
-
- move_voice-message_issues:
- name: Move A-Voice Messages to Voice message board
- runs-on: ubuntu-latest
- if: >
- contains(github.event.issue.labels.*.name, 'A-Voice Messages')
- steps:
- - uses: octokit/graphql-action@v2.x
- with:
- headers: '{"GraphQL-Features": "projects_next_graphql"}'
- query: |
- mutation add_to_project($projectid:String!,$contentid:String!) {
- addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
- projectNextItem {
- id
- }
- }
- }
- projectid: ${{ env.PROJECT_ID }}
- contentid: ${{ github.event.issue.node_id }}
- env:
- PROJECT_ID: "PN_kwDOAM0swc2KCw"
- GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
-
- move_threads_issues:
- name: Move A-Threads to Thread board
- runs-on: ubuntu-latest
- if: >
- contains(github.event.issue.labels.*.name, 'A-Threads')
- steps:
- - uses: octokit/graphql-action@v2.x
- with:
- headers: '{"GraphQL-Features": "projects_next_graphql"}'
- query: |
- mutation add_to_project($projectid:String!,$contentid:String!) {
- addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
- projectNextItem {
- id
- }
- }
- }
- projectid: ${{ env.PROJECT_ID }}
- contentid: ${{ github.event.issue.node_id }}
- env:
- PROJECT_ID: "PN_kwDOAM0swc0rRA"
- GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
diff --git a/.github/workflows/triage-move-review-requests.yml b/.github/workflows/triage-move-review-requests.yml
new file mode 100644
index 0000000000..75738a53a9
--- /dev/null
+++ b/.github/workflows/triage-move-review-requests.yml
@@ -0,0 +1,139 @@
+name: Move pull requests asking for review to the relevant project
+on:
+ pull_request_target:
+ types: [review_requested]
+
+jobs:
+ add_design_pr_to_project:
+ name: Move PRs asking for design review to the design board
+ runs-on: ubuntu-latest
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ id: find_team_members
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ query find_team_members($team: String!) {
+ organization(login: "vector-im") {
+ team(slug: $team) {
+ members {
+ nodes {
+ login
+ }
+ }
+ }
+ }
+ }
+ team: ${{ env.TEAM }}
+ env:
+ TEAM: "design"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+ - id: any_matching_reviewers
+ run: |
+ # Fetch requested reviewers, and people who are on the team
+ echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
+ echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
+ jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
+ jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
+
+ # Fetch requested team reviewers, and the name of the team
+ echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
+ jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
+ echo '${{ env.TEAM }}' | tee /tmp/team.txt
+
+ # If either a reviewer matches a team member, or a team matches our team, say "true"
+ if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
+ echo "::set-output name=match::true"
+ elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
+ echo "::set-output name=match::true"
+ else
+ echo "::set-output name=match::false"
+ fi
+ env:
+ TEAM: "design"
+ - uses: octokit/graphql-action@v2.x
+ id: add_to_project
+ if: steps.any_matching_reviewers.outputs.match == 'true'
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!, $contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.pull_request.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc0sUA"
+ TEAM: "design"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ add_product_pr_to_project:
+ name: Move PRs asking for product review to the product board
+ runs-on: ubuntu-latest
+ steps:
+ - uses: octokit/graphql-action@v2.x
+ id: find_team_members
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ query find_team_members($team: String!) {
+ organization(login: "vector-im") {
+ team(slug: $team) {
+ members {
+ nodes {
+ login
+ }
+ }
+ }
+ }
+ }
+ team: ${{ env.TEAM }}
+ env:
+ TEAM: "product"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
+ - id: any_matching_reviewers
+ run: |
+ # Fetch requested reviewers, and people who are on the team
+ echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
+ echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
+ jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
+ jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
+
+ # Fetch requested team reviewers, and the name of the team
+ echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
+ jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
+ echo '${{ env.TEAM }}' | tee /tmp/team.txt
+
+ # If either a reviewer matches a team member, or a team matches our team, say "true"
+ if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
+ echo "::set-output name=match::true"
+ elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
+ echo "::set-output name=match::true"
+ else
+ echo "::set-output name=match::false"
+ fi
+ env:
+ TEAM: "product"
+ - uses: octokit/graphql-action@v2.x
+ id: add_to_project
+ if: steps.any_matching_reviewers.outputs.match == 'true'
+ with:
+ headers: '{"GraphQL-Features": "projects_next_graphql"}'
+ query: |
+ mutation add_to_project($projectid:ID!, $contentid:ID!) {
+ addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
+ projectNextItem {
+ id
+ }
+ }
+ }
+ projectid: ${{ env.PROJECT_ID }}
+ contentid: ${{ github.event.pull_request.node_id }}
+ env:
+ PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
+ TEAM: "product"
+ GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
diff --git a/.github/workflows/triage-priority-bugs.yml b/.github/workflows/triage-priority-bugs.yml
index 018bb8bb55..70c337e748 100644
--- a/.github/workflows/triage-priority-bugs.yml
+++ b/.github/workflows/triage-priority-bugs.yml
@@ -1,4 +1,4 @@
-name: Move P1 issues into the P1 column for the App Team and Crypto team
+name: Move P1 bugs to boards
on:
issues:
@@ -7,23 +7,25 @@ on:
jobs:
p1_issues_to_team_workboard:
runs-on: ubuntu-latest
+ # Skip in forks
if: >
- (!contains(github.event.issue.labels.*.name, 'A-E2EE') &&
- !contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
- !contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
- !contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
- !contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
- !contains(github.event.issue.labels.*.name, 'A-Spaces') &&
- !contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') &&
- !contains(github.event.issue.labels.*.name, 'A-Subspaces')) &&
- (contains(github.event.issue.labels.*.name, 'T-Defect') &&
- contains(github.event.issue.labels.*.name, 'S-Critical') &&
- (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ github.repository == 'vector-im/element-android' &&
+ (!contains(github.event.issue.labels.*.name, 'A-E2EE') &&
+ !contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
+ !contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
+ !contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
+ !contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
+ !contains(github.event.issue.labels.*.name, 'A-Spaces') &&
+ !contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') &&
+ !contains(github.event.issue.labels.*.name, 'A-Subspaces')) &&
+ (contains(github.event.issue.labels.*.name, 'T-Defect') &&
+ contains(github.event.issue.labels.*.name, 'S-Critical') &&
+ (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
- contains(github.event.issue.labels.*.name, 'S-Major') &&
- contains(github.event.issue.labels.*.name, 'O-Frequent') ||
- contains(github.event.issue.labels.*.name, 'A11y') &&
- contains(github.event.issue.labels.*.name, 'O-Frequent'))
+ contains(github.event.issue.labels.*.name, 'S-Major') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ contains(github.event.issue.labels.*.name, 'A11y') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent'))
steps:
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
with:
@@ -33,20 +35,23 @@ jobs:
P1_issues_to_crypto_team_workboard:
runs-on: ubuntu-latest
+ # Skip in forks
if: >
+ github.repository == 'vector-im/element-android' &&
+ (contains(github.event.issue.labels.*.name, 'Z-UISI') ||
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
- contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
- contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
- contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') ||
- contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) &&
- (contains(github.event.issue.labels.*.name, 'T-Defect') &&
- contains(github.event.issue.labels.*.name, 'S-Critical') &&
- (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) &&
+ (contains(github.event.issue.labels.*.name, 'T-Defect') &&
+ contains(github.event.issue.labels.*.name, 'S-Critical') &&
+ (contains(github.event.issue.labels.*.name, 'O-Frequent') ||
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
- contains(github.event.issue.labels.*.name, 'S-Major') &&
- contains(github.event.issue.labels.*.name, 'O-Frequent') ||
- contains(github.event.issue.labels.*.name, 'A11y') &&
- contains(github.event.issue.labels.*.name, 'O-Frequent'))
+ contains(github.event.issue.labels.*.name, 'S-Major') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent') ||
+ contains(github.event.issue.labels.*.name, 'A11y') &&
+ contains(github.event.issue.labels.*.name, 'O-Frequent')))
steps:
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
with:
diff --git a/.github/workflows/triage-move-unlabelled.yml b/.github/workflows/triage-unlabelled.yml
similarity index 53%
rename from .github/workflows/triage-move-unlabelled.yml
rename to .github/workflows/triage-unlabelled.yml
index 94bd049b91..06df286d09 100644
--- a/.github/workflows/triage-move-unlabelled.yml
+++ b/.github/workflows/triage-unlabelled.yml
@@ -3,14 +3,15 @@ name: Move unlabelled from needs info columns to triaged
on:
issues:
types: [unlabeled]
-
+
jobs:
Move_Unabeled_Issue_On_Project_Board:
name: Move no longer X-Needs-Info issues to Triaged
runs-on: ubuntu-latest
+ # Skip in forks
if: >
- ${{
- !contains(github.event.issue.labels.*.name, 'X-Needs-Info') }}
+ github.repository == 'vector-im/element-android' &&
+ !contains(github.event.issue.labels.*.name, 'X-Needs-Info')
env:
BOARD_NAME: "Issue triage"
OWNER: ${{ github.repository_owner }}
@@ -33,3 +34,29 @@ jobs:
project: Issue triage
column: Triaged
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
+
+ remove_Z-Labs_label:
+ name: Remove Z-Labs label when features behind labs flags are removed
+ runs-on: ubuntu-latest
+ if: >
+ !(contains(github.event.issue.labels.*.name, 'A-Maths') ||
+ contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
+ contains(github.event.issue.labels.*.name, 'A-Threads') ||
+ contains(github.event.issue.labels.*.name, 'A-Polls') ||
+ contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
+ contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
+ contains(github.event.issue.labels.*.name, 'Z-IA') ||
+ contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
+ contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
+ contains(github.event.issue.labels.*.name, 'A-Tags')) &&
+ contains(github.event.issue.labels.*.name, 'Z-Labs')
+ steps:
+ - uses: actions/github-script@v5
+ with:
+ script: |
+ github.rest.issues.removeLabel({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ name: ['Z-Labs']
+ })
diff --git a/.idea/dictionaries/bmarty.xml b/.idea/dictionaries/bmarty.xml
index e143720aa9..ed572b573f 100644
--- a/.idea/dictionaries/bmarty.xml
+++ b/.idea/dictionaries/bmarty.xml
@@ -24,9 +24,11 @@
pbkdf
pids
pkcs
+ posthog
previewable
previewables
pstn
+ rageshake
riotx
signin
signout
@@ -35,6 +37,7 @@
ssss
sygnal
threepid
+ uisi
unpublish
unwedging
vctr
diff --git a/.idea/icon.png b/.idea/icon.png
new file mode 100644
index 0000000000..6f7872211b
Binary files /dev/null and b/.idea/icon.png differ
diff --git a/CHANGES.md b/CHANGES.md
index 561bae9b9f..318290107a 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,315 @@
+Changes in Element v1.4.2 (2022-02-22 Palindrome Day!)
+======================================================
+
+Features ✨
+----------
+ - Open the room when user accepts an invite from the room list ([#3771](https://github.com/vector-im/element-android/issues/3771))
+ - Add completion for @room to notify everyone in a room ([#5123](https://github.com/vector-im/element-android/issues/5123))
+ - Improve UI of reactions in timeline, including quick add reaction. ([#5204](https://github.com/vector-im/element-android/issues/5204))
+ - Support creating disclosed polls ([#5290](https://github.com/vector-im/element-android/issues/5290))
+
+Bugfixes 🐛
+----------
+ - Remove redundant highlight on add poll option button ([#5178](https://github.com/vector-im/element-android/issues/5178))
+ - Reliably display crash report prompt ([#5195](https://github.com/vector-im/element-android/issues/5195))
+ - Fix for rooms with virtual rooms not showing call status events in the timeline. ([#5198](https://github.com/vector-im/element-android/issues/5198))
+ - Fix for call transfer with consult failing to make outgoing consultation call. ([#5201](https://github.com/vector-im/element-android/issues/5201))
+ - Fix crash during account registration when redirecting to Web View ([#5218](https://github.com/vector-im/element-android/issues/5218))
+ - Analytics: Fixes missing use case identity values from within the onboarding flow ([#5234](https://github.com/vector-im/element-android/issues/5234))
+ - Fixing crash when adding room by QR code after accepting the camera permission for the first time ([#5295](https://github.com/vector-im/element-android/issues/5295))
+
+SDK API changes ⚠️
+------------------
+ - `join` and `leave` methods moved from MembershipService to RoomService and SpaceService to split logic for rooms and spaces ([#5183](https://github.com/vector-im/element-android/issues/5183))
+ - Deprecates Matrix.initialize and Matrix.getInstance in favour of the client providing its own singleton instance via Matrix.createInstance ([#5185](https://github.com/vector-im/element-android/issues/5185))
+ - Adds support for MSC3283, additional homeserver capabilities ([#5207](https://github.com/vector-im/element-android/issues/5207))
+
+Other changes
+-------------
+ - Right align the notifications badge in the rooms list (and DMs) so that it's always in a consistent place on the screen. ([#4640](https://github.com/vector-im/element-android/issues/4640))
+ - Collapse successive ACLs events in room timeline ([#2782](https://github.com/vector-im/element-android/issues/2782))
+ - Home screen: Replacing search icon by filter icon in the top right menu ([#4643](https://github.com/vector-im/element-android/issues/4643))
+ - Make Space creation screens more consistent ([#5104](https://github.com/vector-im/element-android/issues/5104))
+ - Defensive coding to ensure encryption when room was once e2e ([#5136](https://github.com/vector-im/element-android/issues/5136))
+ - Reduce verbosity of debug logging, ([#5209](https://github.com/vector-im/element-android/issues/5209))
+ - Standardise emulator versions of GHA integration tests. ([#5210](https://github.com/vector-im/element-android/issues/5210))
+ - Replacing color "vctr_unread_room_badge" by "vctr_content_secondary" ([#5225](https://github.com/vector-im/element-android/issues/5225))
+ - Change preferred jitsi domain from `jitsi.riot.im` to `meet.element.io` ([#5254](https://github.com/vector-im/element-android/issues/5254))
+ - Analytics screen events are now tracked on screen enter instead of screen leave ([#5256](https://github.com/vector-im/element-android/issues/5256))
+ - Improves bitmap memory usage by caching the shortcut images ([#5276](https://github.com/vector-im/element-android/issues/5276))
+ - Changes unread marker in room list from green to grey ([#5294](https://github.com/vector-im/element-android/issues/5294))
+ - Improve some internal realm usages. ([#5297](https://github.com/vector-im/element-android/issues/5297))
+
+Translations 🗣
+--------------
+ - Improved Japanese translations (special thanks to Suguru Hirahara!)
+
+
+Changes in Element v1.4.0 (2022-02-09)
+======================================
+
+Features ✨
+----------
+ - Initial implementation of thread messages ([#4746](https://github.com/vector-im/element-android/issues/4746))
+ - Support message bubbles in timeline. ([#4937](https://github.com/vector-im/element-android/issues/4937))
+ - Support generic location pin ([#5146](https://github.com/vector-im/element-android/issues/5146))
+ - Retrieve map style url from .well-known ([#5175](https://github.com/vector-im/element-android/issues/5175))
+
+Bugfixes 🐛
+----------
+ - Fixes non sans-serif font weights being ignored ([#3907](https://github.com/vector-im/element-android/issues/3907))
+ - Fixing missing/intermittent notifications on the google play variant when wifi is enabled ([#5038](https://github.com/vector-im/element-android/issues/5038))
+ - Fixes call statuses in the timeline for missed/rejected calls and connected calls. ([#5088](https://github.com/vector-im/element-android/issues/5088))
+ - Fix fallback permalink when threads are disabled ([#5128](https://github.com/vector-im/element-android/issues/5128))
+ - Analytics: aligns use case identifying with iOS implementation ([#5142](https://github.com/vector-im/element-android/issues/5142))
+ - Fix location rendering in timeline if map cannot be loaded ([#5143](https://github.com/vector-im/element-android/issues/5143))
+
+Other changes
+-------------
+ - "Invite users to space" dialog now closed when user choose invite method ([#4295](https://github.com/vector-im/element-android/issues/4295))
+ - Changed layout for space card and room card used at "explore room" screen and space/room invite dialogs ([#4304](https://github.com/vector-im/element-android/issues/4304))
+ - Removed spaces restricted search hint dialogs ([#4315](https://github.com/vector-im/element-android/issues/4315))
+ - Remove Search from room options if not available ([#4641](https://github.com/vector-im/element-android/issues/4641))
+ - Qr code scanning fragments merged into one ([#4873](https://github.com/vector-im/element-android/issues/4873))
+ - Fix CI/CD errors after merges for quality and integration tests ([#5118](https://github.com/vector-im/element-android/issues/5118))
+ - Added automation for the Z-FTUE label to add issues to the FTUE Project Board ([#5120](https://github.com/vector-im/element-android/issues/5120))
+ - Added automation for WTF labels to move to WTF project board ([#5148](https://github.com/vector-im/element-android/issues/5148))
+ - Update WTF automation to fix it ([#5173](https://github.com/vector-im/element-android/issues/5173))
+
+
+Changes in Element v1.3.18 (2022-02-03)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Avoid deleting root event of CurrentState on gappy sync. In order to restore lost Events an initial sync may be triggered. ([#5137](https://github.com/vector-im/element-android/issues/5137))
+
+
+Changes in Element v1.3.17 (2022-01-31)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Display static map images in the timeline and improve Location sharing feature ([#5084](https://github.com/vector-im/element-android/issues/5084))
+ - Show the legal mention of mapbox when sharing location ([#5062](https://github.com/vector-im/element-android/issues/5062))
+ - Poll cannot end in some unencrypted rooms ([#5067](https://github.com/vector-im/element-android/issues/5067))
+ - Selecting Transfer in a call should immediately put the other person on hold until the call connects or the Transfer is cancelled. ([#5081](https://github.com/vector-im/element-android/issues/5081))
+ - Fixing crashes when quickly scrolling or restoring the room timeline ([#5091](https://github.com/vector-im/element-android/issues/5091))
+
+
+Changes in Element 1.3.16 (2022-01-25)
+======================================
+
+Features ✨
+----------
+ - Static location sharing and rendering ([#2210](https://github.com/vector-im/element-android/issues/2210))
+ - Enables the FTUE splash carousel ([#4584](https://github.com/vector-im/element-android/issues/4584))
+ - Allow editing polls ([#5036](https://github.com/vector-im/element-android/issues/5036))
+
+Bugfixes 🐛
+----------
+ - Fixing missing notifications in FDroid variants using `optimised for battery` background sync mode ([#5003](https://github.com/vector-im/element-android/issues/5003))
+ - Fix for stuck local event messages at the bottom of the screen ([#516](https://github.com/vector-im/element-android/issues/516))
+ - Notification does not take me to the room when another space was last viewed ([#3839](https://github.com/vector-im/element-android/issues/3839))
+ - Explore Rooms overflow menu - content update include "Create room" ([#3932](https://github.com/vector-im/element-android/issues/3932))
+ - Fix sync timeout after returning from background ([#4669](https://github.com/vector-im/element-android/issues/4669))
+ - Fix a wrong network error issue in the Legals screen ([#4935](https://github.com/vector-im/element-android/issues/4935))
+ - Prevent Alerts to be displayed in the automatically displayed analytics opt-in screen ([#4948](https://github.com/vector-im/element-android/issues/4948))
+ - EmojiPopupDismissListener not being triggered after dismissing the EmojiPopup ([#4991](https://github.com/vector-im/element-android/issues/4991))
+ - Fix an error in string resource ([#4997](https://github.com/vector-im/element-android/issues/4997))
+ - Big messages taking inappropriately long to evaluate .m.rule.roomnotif push rules ([#5008](https://github.com/vector-im/element-android/issues/5008))
+ - Improve auto rageshake lab feature ([#5021](https://github.com/vector-im/element-android/issues/5021))
+
+In development 🚧
+----------------
+ - Updates the onboarding carousel images, copy and improves the handling of different device sizes ([#4880](https://github.com/vector-im/element-android/issues/4880))
+ - Disabling onboarding automatic carousel transitions on user interaction ([#4914](https://github.com/vector-im/element-android/issues/4914))
+ - Locking phones to portrait during the FTUE onboarding ([#4918](https://github.com/vector-im/element-android/issues/4918))
+ - Adds a messaging use case screen to the FTUE onboarding ([#4927](https://github.com/vector-im/element-android/issues/4927))
+ - Updating the FTUE use case icons ([#5025](https://github.com/vector-im/element-android/issues/5025))
+ - Support undisclosed polls ([#5037](https://github.com/vector-im/element-android/issues/5037))
+
+Other changes
+-------------
+ - Enabling native support for window resizing ([#4811](https://github.com/vector-im/element-android/issues/4811))
+ - Analytics: send more Events ([#4734](https://github.com/vector-im/element-android/issues/4734))
+ - Fix integration tests and add a comment with results (still not perfect due to github actions resource limitations) ([#4842](https://github.com/vector-im/element-android/issues/4842))
+ - "/kick" command is replaced with "/remove". Also replaced all occurrences in string resources ([#4865](https://github.com/vector-im/element-android/issues/4865))
+ - Toolbar management rework. Toolbar title's and subtitle's text appearance now controlled by theme without local overrides. Helper class introduced to
+ help with toolbar configuration. Toolbar title, subtitle and navigation button widgets are removed where it is possible and replaced with built-in
+ toolbar widgets. ([#4884](https://github.com/vector-im/element-android/issues/4884))
+ - Add signing config for the release buildType. No secret added ([#4926](https://github.com/vector-im/element-android/issues/4926))
+ - Remove unused module matrix-sdk-android-rx and do some cleanup ([#4942](https://github.com/vector-im/element-android/issues/4942))
+ - Sync issue automation with element-web ([#4949](https://github.com/vector-im/element-android/issues/4949))
+ - Improves local echo blinking when non room events received ([#4960](https://github.com/vector-im/element-android/issues/4960))
+ - Including onboarding server options in the all screen sanity test suite ([#4975](https://github.com/vector-im/element-android/issues/4975))
+ - Exclude dependabot upgrade for @github-script@v3 ([#4988](https://github.com/vector-im/element-android/issues/4988))
+ - Small iteration on command parser and unit test it. ([#4998](https://github.com/vector-im/element-android/issues/4998))
+
+SDK API changes ⚠️
+------------------
+ - `StateService.sendStateEvent()` now takes a non-nullable String for the parameter `stateKey`. If null was used, just now use an empty string. ([#4895](https://github.com/vector-im/element-android/issues/4895))
+ - 429 are not automatically retried anymore in case of too long retry delay ([#4995](https://github.com/vector-im/element-android/issues/4995))
+
+
+Changes in Element v1.3.15 (2022-01-18)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Fix crash when viewing source which contains an emoji ([#4796](https://github.com/vector-im/element-android/issues/4796))
+ - Prevent crash in Timeline and add more logs. ([#4959](https://github.com/vector-im/element-android/issues/4959))
+ - Fix crash on API <24 and make sure this error will not occur again. ([#4962](https://github.com/vector-im/element-android/issues/4962))
+ - Fixes sign in/up crash when selecting ems and other server types which use SSO ([#4969](https://github.com/vector-im/element-android/issues/4969))
+
+
+Changes in Element v1.3.14 (2022-01-12)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Fix sending events in encrypted rooms broken, and incremental sync broken in 1.3.13 ([#4924](https://github.com/vector-im/element-android/issues/4924))
+
+
+Changes in Element v1.3.13 (2022-01-11)
+=======================================
+
+Features ✨
+----------
+ - Updates onboarding splash screen to have a dedicated sign in button and removes the dual purpose sign in/up stage ([#4382](https://github.com/vector-im/element-android/issues/4382))
+ - Display Analytics opt-in screen at first start-up of the app ([#4892](https://github.com/vector-im/element-android/issues/4892))
+ - New attachment picker UI ([#3444](https://github.com/vector-im/element-android/issues/3444))
+ - Add labs support for rendering LaTeX maths (MSC2191) ([#2133](https://github.com/vector-im/element-android/issues/2133))
+ - Allow changing nick colors from the member detail screen ([#2614](https://github.com/vector-im/element-android/issues/2614))
+ - Analytics: Track Errors ([#4719](https://github.com/vector-im/element-android/issues/4719))
+ - Change internal timeline management. ([#4405](https://github.com/vector-im/element-android/issues/4405))
+ - Translate the error observed when the user is not allowed to join a room ([#4847](https://github.com/vector-im/element-android/issues/4847))
+
+Bugfixes 🐛
+----------
+ - Stop using CharSequence as EpoxyAttribute because it can lead to crash if the CharSequence mutates during rendering. ([#4837](https://github.com/vector-im/element-android/issues/4837))
+ - Better handling of misconfigured room encryption ([#4711](https://github.com/vector-im/element-android/issues/4711))
+ - Fix message replies/quotes to respect newlines. ([#4540](https://github.com/vector-im/element-android/issues/4540))
+ - Polls: unable to create a poll with more than 10 answers ([#4735](https://github.com/vector-im/element-android/issues/4735))
+ - Fix for broken unread message indicator on the room list when there are no messages in the room. ([#4749](https://github.com/vector-im/element-android/issues/4749))
+ - Fixes newer emojis rendering strangely when inserting from the system keyboard ([#4756](https://github.com/vector-im/element-android/issues/4756))
+ - Fixing unable to change change avatar in some scenarios ([#4767](https://github.com/vector-im/element-android/issues/4767))
+ - Tentative fix for the speaker being used instead of earpiece for the outgoing call ringtone on lineage os ([#4781](https://github.com/vector-im/element-android/issues/4781))
+ - Fixing crashes when quickly scrolling or restoring the room timeline ([#4789](https://github.com/vector-im/element-android/issues/4789))
+ - Fixing encrypted non message events showing up as notification messages (eg when a participant joins, mutes or leaves a voice call) ([#4804](https://github.com/vector-im/element-android/issues/4804))
+
+SDK API changes ⚠️
+------------------
+ - Introduce method onStateUpdated on Timeline.Callback ([#4405](https://github.com/vector-im/element-android/issues/4405))
+ - Support tagged events in Room Account Data (MSC2437) ([#4753](https://github.com/vector-im/element-android/issues/4753))
+
+Other changes
+-------------
+ - Workaround to fetch all the pending toDevice events from a Synapse homeserver ([#4612](https://github.com/vector-im/element-android/issues/4612))
+ - Toolbar is added to a views with QR code scan ([#4644](https://github.com/vector-im/element-android/issues/4644))
+ - Open share UI provides by the system when sharing media or text. ([#4745](https://github.com/vector-im/element-android/issues/4745))
+ - Cleaning rendering of state events in timeline ([#4747](https://github.com/vector-im/element-android/issues/4747))
+ - Enabling new FTUE Auth onboarding base, includes the "I already have an account" button in the splash ([#4872](https://github.com/vector-im/element-android/issues/4872))
+ - Olm lib is now hosted in MavenCentral - upgrade to 3.2.10 ([#4882](https://github.com/vector-im/element-android/issues/4882))
+ - Remove deprecated experimental restricted space lab option ([#4889](https://github.com/vector-im/element-android/issues/4889))
+ - Add ktlint results on github as a comment only on fail ([#4888](https://github.com/vector-im/element-android/issues/4888))
+ - Fix github actions ktlint reports and publish results on PR as comment ([#4864](https://github.com/vector-im/element-android/issues/4864))
+
+
+Changes in Element v1.3.12 (2021-12-20)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Fixing emoji related crashes on android 8.1.1 and below ([#4769](https://github.com/vector-im/element-android/issues/4769))
+
+
+Changes in Element v1.3.11 (2021-12-17)
+=======================================
+
+Bugfixes 🐛
+----------
+ - Fixing proximity sensor still being active after a call ([#2467](https://github.com/vector-im/element-android/issues/2467))
+ - Fix name and shield are truncated in the room detail screen ([#4700](https://github.com/vector-im/element-android/issues/4700))
+ - Call banner: center text vertically ([#4710](https://github.com/vector-im/element-android/issues/4710))
+ - Fixes unable to render messages by allowing them to render whilst the emoji library is initialising ([#4733](https://github.com/vector-im/element-android/issues/4733))
+ - Fix app crash uppon long press on a reply event ([#4742](https://github.com/vector-im/element-android/issues/4742))
+ - Fixes crash when launching rooms which contain emojis in the emote content on android 12+ ([#4743](https://github.com/vector-im/element-android/issues/4743))
+
+Other changes
+-------------
+ - Avoids leaking the activity windows when loading dialogs are displaying ([#4713](https://github.com/vector-im/element-android/issues/4713))
+
+
+Changes in Element v1.3.10 (2021-12-14)
+=======================================
+
+Features ✨
+----------
+ - Poll Feature - Render in timeline ([#4653](https://github.com/vector-im/element-android/issues/4653))
+ - Updates URL previews to match latest designs ([#4278](https://github.com/vector-im/element-android/issues/4278))
+ - Setup Analytics framework using PostHog. Analytics are disabled by default. Opt-in screen not automatically displayed yet. ([#4559](https://github.com/vector-im/element-android/issues/4559))
+ - Create a legal screen in the setting to group all the different policies. ([#4660](https://github.com/vector-im/element-android/issues/4660))
+ - Add a help section in the settings. ([#4638](https://github.com/vector-im/element-android/issues/4638))
+ - MSC2732: Olm fallback keys ([#3473](https://github.com/vector-im/element-android/issues/3473))
+
+Bugfixes 🐛
+----------
+ - Fixes message menu showing when copying message urls ([#4324](https://github.com/vector-im/element-android/issues/4324))
+ - Fix lots of integration tests by introducing TestMatrix class and MatrixWorkerFactory. ([#4546](https://github.com/vector-im/element-android/issues/4546))
+ - Fix empty Dev Tools screen issue. ([#4592](https://github.com/vector-im/element-android/issues/4592))
+ - Fix for outgoing voip call via sip bridge failing after 1 minute. ([#4621](https://github.com/vector-im/element-android/issues/4621))
+ - Update log warning for call selection during voip calls. ([#4636](https://github.com/vector-im/element-android/issues/4636))
+ - Fix possible crash when having identical subspaces in multiple root spaces ([#4693](https://github.com/vector-im/element-android/issues/4693))
+ - Fix a crash in the timeline with some Emojis. Also migrate to androidx.emoji2 ([#4698](https://github.com/vector-im/element-android/issues/4698))
+ - At the very first room search after opening the app sometimes no results are displayed ([#4600](https://github.com/vector-im/element-android/issues/4600))
+
+Other changes
+-------------
+ - Upgrade OLM to v3.2.7 and get it from our maven repository. ([#4647](https://github.com/vector-im/element-android/issues/4647))
+ - Add explicit dependency location, regarding the several maven repository. Also update some libraries (flexbox and alerter), and do some cleanup. ([#4670](https://github.com/vector-im/element-android/issues/4670))
+ - Introducing feature flagging to the login and notification settings flows ([#4626](https://github.com/vector-im/element-android/issues/4626))
+ - There is no need to call job.cancel() when we are using viewModelScope() ([#4602](https://github.com/vector-im/element-android/issues/4602))
+ - Debounce some clicks ([#4645](https://github.com/vector-im/element-android/issues/4645))
+ - Improve issue automation workflows ([#4617](https://github.com/vector-im/element-android/issues/4617))
+ - Add automation to move message bubbles issues to message bubbles board. ([#4666](https://github.com/vector-im/element-android/issues/4666))
+ - Fix graphql warning in issue workflow automation ([#4671](https://github.com/vector-im/element-android/issues/4671))
+ - Cleanup the layout files ([#4604](https://github.com/vector-im/element-android/issues/4604))
+ - Cleanup id ref. Use type views instead ([#4650](https://github.com/vector-im/element-android/issues/4650))
+
+
+Changes in Element v1.3.9 (2021-12-01)
+======================================
+
+Features ✨
+----------
+ - Voice messages: Persist drafts of voice messages when navigating between rooms ([#3922](https://github.com/vector-im/element-android/issues/3922))
+ - Make Element Android Thread aware ([#4246](https://github.com/vector-im/element-android/issues/4246))
+ - Iterate on the consent dialog of the identity server. ([#4577](https://github.com/vector-im/element-android/issues/4577))
+
+Bugfixes 🐛
+----------
+ - Fixes left over text when inserting emojis via the ':' menu and replaces the last typed ':' rather than the one at the end of the message ([#3449](https://github.com/vector-im/element-android/issues/3449))
+ - Fixing queued voice message failing to send or retry ([#3833](https://github.com/vector-im/element-android/issues/3833))
+ - Keeping device screen on whilst recording and playing back voice messages ([#4022](https://github.com/vector-im/element-android/issues/4022))
+ - Allow voice messages to continue recording during device rotation ([#4067](https://github.com/vector-im/element-android/issues/4067))
+ - Allowing users to hang up VOIP calls during the initialisation phase (avoids getting stuck in the call screen if something goes wrong) ([#4144](https://github.com/vector-im/element-android/issues/4144))
+ - Make the verification shields the same in Element Web and Element Android ([#4338](https://github.com/vector-im/element-android/issues/4338))
+ - Fix a display issue in the composer when the replied message is changed. ([#4343](https://github.com/vector-im/element-android/issues/4343))
+ - Dismissing the Fdroid variant Listening for notifications on sign out, fixes crash when tapping the notification when signed out ([#4488](https://github.com/vector-im/element-android/issues/4488))
+ - Fix a crash when displaying the bootstrap bottom sheet ([#4520](https://github.com/vector-im/element-android/issues/4520))
+ - Remove duplicated settings declaration ([#4539](https://github.com/vector-im/element-android/issues/4539))
+ - Fixes .ogg files failing to upload to rooms ([#4552](https://github.com/vector-im/element-android/issues/4552))
+ - Add robustness when getting data from cursors ([#4605](https://github.com/vector-im/element-android/issues/4605))
+
+Other changes
+-------------
+ - Upgrade Jitsi lib (and so webrtc) from Jitsi android-sdk-3.1.0 to android-sdk-3.10.0 ([#4504](https://github.com/vector-im/element-android/issues/4504))
+ - Improve crypto logs to help debug decryption failures ([#4507](https://github.com/vector-im/element-android/issues/4507))
+ - Voice recording mic button refactor with small animation tweaks in preparation for voice drafts ([#4515](https://github.com/vector-im/element-android/issues/4515))
+ - Remove requestModelBuild() from epoxy Controllers init{} block ([#4591](https://github.com/vector-im/element-android/issues/4591))
+
+
Changes in Element v1.3.8 (2021-11-17)
======================================
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index dbc0ce9b72..2512052953 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -61,8 +61,9 @@ Supported filename extensions are:
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
- ``.bugfix``: Signifying a bug fix.
+- ``.wip``: Signifying a work in progress change, typically a component of a larger feature which will be enabled once all tasks are complete.
- ``.doc``: Signifying a documentation improvement.
-- ``.removal``: Signifying a deprecation or removal of public API. Can be used to notifying about API change in the Matrix SDK
+- ``.sdk``: Signifying a change to the Matrix SDK, this could be an addition, deprecation or removal of a public API.
- ``.misc``: Any other changes.
See https://github.com/twisted/towncrier#news-fragments if you need more details.
@@ -139,7 +140,7 @@ If a string is not used anymore, it should be removed from the resource, but ple
Instead, please comment the original string with:
```xml
-
+
```
The string will be removed during the next sync with Weblate.
diff --git a/README.md b/README.md
index a085bf7da1..8306fd8593 100644
--- a/README.md
+++ b/README.md
@@ -7,14 +7,15 @@
# Element Android
-Element Android is an Android Matrix Client provided by [Element](https://element.io/).
+Element Android is an Android Matrix Client provided by [Element](https://element.io/). The app can be run on every Android devices with Android OS Lollipop and more (API 21).
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience.
[](https://play.google.com/store/apps/details?id=im.vector.app)
[](https://f-droid.org/app/im.vector.app)
-Nightly build: [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
+Nightly build: [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nighly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
+
# New Android SDK
@@ -46,3 +47,9 @@ If you would like to receive releases more quickly (bearing in mind that they ma
Please refer to [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) if you want to contribute on Matrix Android projects!
Come chat with the community in the dedicated Matrix [room](https://matrix.to/#/#element-android:matrix.org).
+
+## Triaging issues
+
+Issues are triaged by community members and the Android App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
+
+We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
diff --git a/build.gradle b/build.gradle
index 4c3734892d..0055fa5c8f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,12 +1,11 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
-
apply from: 'dependencies.gradle'
+ apply from: 'dependencies_groups.gradle'
repositories {
google()
- jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
@@ -20,8 +19,8 @@ buildscript {
classpath libs.gradle.hiltPlugin
classpath 'com.google.gms:google-services:4.3.10'
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
- classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
- classpath "com.likethesalad.android:string-reference:1.2.2"
+ classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
+ classpath "com.likethesalad.android:stem-plugin:2.0.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -30,58 +29,55 @@ buildscript {
// ktlint Plugin
plugins {
- id "org.jlleitschuh.gradle.ktlint" version "10.2.0"
+ id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
}
allprojects {
apply plugin: "org.jlleitschuh.gradle.ktlint"
repositories {
- // For olm library. This has to be declared first, to ensure that Olm library is not downloaded from another repo
+ mavenCentral {
+ content {
+ groups.mavenCentral.regex.each { includeGroupByRegex it }
+ groups.mavenCentral.group.each { includeGroup it }
+ }
+ }
maven {
url 'https://jitpack.io'
content {
- // Use this repo only for olm library
- includeGroupByRegex "org\\.matrix\\.gitlab\\.matrix-org"
- // And also for FilePicker
- includeGroupByRegex "com\\.github\\.jaiselrahman"
- // And monarchy
- includeGroupByRegex "com\\.github\\.Zhuinden"
- // And ucrop
- includeGroupByRegex "com\\.github\\.yalantis"
- // JsonViewer
- includeGroupByRegex 'com\\.github\\.BillCarsonFr'
- // PhotoView
- includeGroupByRegex 'com\\.github\\.chrisbanes'
- // PFLockScreen-Android
- includeGroupByRegex 'com\\.github\\.vector-im'
- // DraggableView
- includeGroupByRegex 'com\\.github\\.hyuwah'
-
- // Chat effects
- includeGroupByRegex 'com\\.github\\.jetradarmobile'
- includeGroupByRegex 'nl\\.dionsegijn'
-
- // Voice RecordView
- includeGroupByRegex 'com\\.github\\.Armen101'
+ groups.jitpack.regex.each { includeGroupByRegex it }
+ groups.jitpack.group.each { includeGroup it }
}
}
- maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
// Jitsi repo
maven {
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-3.10.0"
// Note: to test Jitsi release you can use a local file like this:
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-3.10.0"
+ content {
+ groups.jitsi.regex.each { includeGroupByRegex it }
+ groups.jitsi.group.each { includeGroup it }
+ }
+ }
+ google {
+ content {
+ groups.google.regex.each { includeGroupByRegex it }
+ groups.google.group.each { includeGroup it }
+ }
+ }
+ //noinspection JcenterRepositoryObsolete
+ jcenter {
+ content {
+ groups.jcenter.regex.each { includeGroupByRegex it }
+ groups.jcenter.group.each { includeGroup it }
+ }
}
- google()
- mavenCentral()
- jcenter()
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
// Warnings are potential errors, so stop ignoring them
// You can override by passing `-PallWarningsAsErrors=false` in the command line
- kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
+ kotlinOptions.allWarningsAsErrors = false//project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
}
// Fix "Java heap space" issue
@@ -142,7 +138,7 @@ project(":vector") {
}
}
-project(":diff-match-patch") {
+project(":library:diff-match-patch") {
sonarqube {
skipProject = true
}
@@ -157,13 +153,3 @@ project(":diff-match-patch") {
// }
// }
//}
-//
-//project(":matrix-sdk-android-rx") {
-// sonarqube {
-// properties {
-// property "sonar.sources", project(":matrix-sdk-android-rx").android.sourceSets.main.java.srcDirs
-// // exclude source code from analyses separated by a colon (:)
-// // property "sonar.exclusions", "**/*.*"
-// }
-// }
-//}
diff --git a/changelog.d/3296.bugfix b/changelog.d/3296.bugfix
new file mode 100644
index 0000000000..e5f8799f21
--- /dev/null
+++ b/changelog.d/3296.bugfix
@@ -0,0 +1 @@
+Typing notifications moved from the header to the bottom of the timeline.
\ No newline at end of file
diff --git a/changelog.d/3449.bugfix b/changelog.d/3449.bugfix
deleted file mode 100644
index a4385fda2e..0000000000
--- a/changelog.d/3449.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixes left over text when inserting emojis via the ':' menu and replaces the last typed ':' rather than the one at the end of the message
\ No newline at end of file
diff --git a/changelog.d/3833.bugfix b/changelog.d/3833.bugfix
deleted file mode 100644
index 7d25fb2aad..0000000000
--- a/changelog.d/3833.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixing queued voice message failing to send or retry
\ No newline at end of file
diff --git a/changelog.d/4022.bugfix b/changelog.d/4022.bugfix
deleted file mode 100644
index 517926e018..0000000000
--- a/changelog.d/4022.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Keeping device screen on whilst recording and playing back voice messages
\ No newline at end of file
diff --git a/changelog.d/4067.bugfix b/changelog.d/4067.bugfix
deleted file mode 100644
index 63d62df840..0000000000
--- a/changelog.d/4067.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Allow voice messages to continue recording during device rotation
\ No newline at end of file
diff --git a/changelog.d/4144.bugfix b/changelog.d/4144.bugfix
deleted file mode 100644
index 1168245ecc..0000000000
--- a/changelog.d/4144.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Allowing users to hang up VOIP calls during the initialisation phase (avoids getting stuck in the call screen if something goes wrong)
\ No newline at end of file
diff --git a/changelog.d/4246.feature b/changelog.d/4246.feature
deleted file mode 100644
index 6695edf590..0000000000
--- a/changelog.d/4246.feature
+++ /dev/null
@@ -1 +0,0 @@
-Make Element Android Thread aware
diff --git a/changelog.d/4319.bugfix b/changelog.d/4319.bugfix
new file mode 100644
index 0000000000..da42c864c6
--- /dev/null
+++ b/changelog.d/4319.bugfix
@@ -0,0 +1 @@
+Open direct message screen when clicking on DM button in the space members list
diff --git a/changelog.d/4338.bugfix b/changelog.d/4338.bugfix
deleted file mode 100644
index 539c32672c..0000000000
--- a/changelog.d/4338.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Make the verification shields the same in Element Web and Element Android
\ No newline at end of file
diff --git a/changelog.d/4343.bugfix b/changelog.d/4343.bugfix
deleted file mode 100644
index a516af351b..0000000000
--- a/changelog.d/4343.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a display issue in the composer when the replied message is changed.
diff --git a/changelog.d/4488.bugfix b/changelog.d/4488.bugfix
deleted file mode 100644
index a0b4aa661e..0000000000
--- a/changelog.d/4488.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Dismissing the Fdroid variant Listening for notifications on sign out, fixes crash when tapping the notification when signed out
\ No newline at end of file
diff --git a/changelog.d/4498.misc b/changelog.d/4498.misc
new file mode 100644
index 0000000000..78493b5d77
--- /dev/null
+++ b/changelog.d/4498.misc
@@ -0,0 +1 @@
+Override task affinity to prevent unknown activities running in our app tasks.
\ No newline at end of file
diff --git a/changelog.d/4504.misc b/changelog.d/4504.misc
deleted file mode 100644
index 1f7741618e..0000000000
--- a/changelog.d/4504.misc
+++ /dev/null
@@ -1 +0,0 @@
-Upgrade Jitsi lib (and so webrtc) from Jitsi android-sdk-3.1.0 to android-sdk-3.10.0
\ No newline at end of file
diff --git a/changelog.d/4507.misc b/changelog.d/4507.misc
deleted file mode 100644
index a1f231c82c..0000000000
--- a/changelog.d/4507.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve crypto logs to help debug decryption failures
\ No newline at end of file
diff --git a/changelog.d/4515.misc b/changelog.d/4515.misc
deleted file mode 100644
index f47ace25d4..0000000000
--- a/changelog.d/4515.misc
+++ /dev/null
@@ -1 +0,0 @@
-Voice recording mic button refactor with small animation tweaks in preparation for voice drafts
\ No newline at end of file
diff --git a/changelog.d/4520.bugfix b/changelog.d/4520.bugfix
deleted file mode 100644
index 58314025f1..0000000000
--- a/changelog.d/4520.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix a crash when displaying the bootstrap bottom sheet
\ No newline at end of file
diff --git a/changelog.d/4539.bugfix b/changelog.d/4539.bugfix
deleted file mode 100644
index 0e133cbadc..0000000000
--- a/changelog.d/4539.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Remove duplicated settings declaration
diff --git a/changelog.d/4552.bugfix b/changelog.d/4552.bugfix
deleted file mode 100644
index 188e5fb1f6..0000000000
--- a/changelog.d/4552.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fixes .ogg files failing to upload to rooms
\ No newline at end of file
diff --git a/changelog.d/5005.feature b/changelog.d/5005.feature
new file mode 100644
index 0000000000..ce3b2ad1f9
--- /dev/null
+++ b/changelog.d/5005.feature
@@ -0,0 +1 @@
+Add possibility to save media from Gallery + reorder choices in message context menu
diff --git a/changelog.d/5158.wip b/changelog.d/5158.wip
new file mode 100644
index 0000000000..67a3d83a7a
--- /dev/null
+++ b/changelog.d/5158.wip
@@ -0,0 +1 @@
+Starts the FTUE account personalisation flow by adding an account created screen behind a feature flag
\ No newline at end of file
diff --git a/changelog.d/5269.misc b/changelog.d/5269.misc
new file mode 100644
index 0000000000..699ddfd3dd
--- /dev/null
+++ b/changelog.d/5269.misc
@@ -0,0 +1 @@
+Tentatively fixing the UI sanity test being unable to click on the space menu items
\ No newline at end of file
diff --git a/changelog.d/5303.misc b/changelog.d/5303.misc
new file mode 100644
index 0000000000..dbad0b738d
--- /dev/null
+++ b/changelog.d/5303.misc
@@ -0,0 +1 @@
+Improve Bubble layouts rendering.
\ No newline at end of file
diff --git a/changelog.d/5309.misc b/changelog.d/5309.misc
new file mode 100644
index 0000000000..83771995af
--- /dev/null
+++ b/changelog.d/5309.misc
@@ -0,0 +1 @@
+Moves attachment-viewer, diff-match-patch, and multipicker modules to subfolders under library
\ No newline at end of file
diff --git a/changelog.d/5312.misc b/changelog.d/5312.misc
new file mode 100644
index 0000000000..d724f1ba3f
--- /dev/null
+++ b/changelog.d/5312.misc
@@ -0,0 +1 @@
+Log the `since` token used and `next_batch` token returned when doing an incremental sync.
diff --git a/changelog.d/5313.misc b/changelog.d/5313.misc
new file mode 100644
index 0000000000..efc225a0a4
--- /dev/null
+++ b/changelog.d/5313.misc
@@ -0,0 +1 @@
+Update reaction button layout.
\ No newline at end of file
diff --git a/changelog.d/5314.misc b/changelog.d/5314.misc
new file mode 100644
index 0000000000..35fed08a61
--- /dev/null
+++ b/changelog.d/5314.misc
@@ -0,0 +1 @@
+Notify element-android channel each time a nightly build completes.
diff --git a/changelog.d/5318.misc b/changelog.d/5318.misc
new file mode 100644
index 0000000000..d724f1ba3f
--- /dev/null
+++ b/changelog.d/5318.misc
@@ -0,0 +1 @@
+Log the `since` token used and `next_batch` token returned when doing an incremental sync.
diff --git a/changelog.d/5325.feature b/changelog.d/5325.feature
new file mode 100644
index 0000000000..23754c790d
--- /dev/null
+++ b/changelog.d/5325.feature
@@ -0,0 +1 @@
+Adds forceLoginFallback feature flag and usages to FTUE login and registration
\ No newline at end of file
diff --git a/changelog.d/5326.misc b/changelog.d/5326.misc
new file mode 100644
index 0000000000..5ffa732d53
--- /dev/null
+++ b/changelog.d/5326.misc
@@ -0,0 +1 @@
+[Export e2ee keys] use appName instead of element
\ No newline at end of file
diff --git a/changelog.d/5330.misc b/changelog.d/5330.misc
new file mode 100644
index 0000000000..6315ad536c
--- /dev/null
+++ b/changelog.d/5330.misc
@@ -0,0 +1 @@
+Continue improving realm usage.
\ No newline at end of file
diff --git a/changelog.d/5330.sdk b/changelog.d/5330.sdk
new file mode 100644
index 0000000000..3f6d46401c
--- /dev/null
+++ b/changelog.d/5330.sdk
@@ -0,0 +1 @@
+Change name of getTimeLineEvent and getTimeLineEventLive methods to getTimelineEvent and getTimelineEventLive.
\ No newline at end of file
diff --git a/changelog.d/5348.misc b/changelog.d/5348.misc
new file mode 100644
index 0000000000..f5ee8627ce
--- /dev/null
+++ b/changelog.d/5348.misc
@@ -0,0 +1 @@
+Upgrade the plugin which generate strings with template from 1.2.2 to 2.0.0
\ No newline at end of file
diff --git a/changelog.d/5352.misc b/changelog.d/5352.misc
new file mode 100644
index 0000000000..956de682d8
--- /dev/null
+++ b/changelog.d/5352.misc
@@ -0,0 +1 @@
+Remove about 700 unused strings and their translations
\ No newline at end of file
diff --git a/changelog.d/5361.misc b/changelog.d/5361.misc
new file mode 100644
index 0000000000..d49554c7e7
--- /dev/null
+++ b/changelog.d/5361.misc
@@ -0,0 +1 @@
+Creates dedicated VectorOverrides for forcing behaviour for local testing/development
\ No newline at end of file
diff --git a/changelog.d/5379.misc b/changelog.d/5379.misc
new file mode 100644
index 0000000000..d485636f10
--- /dev/null
+++ b/changelog.d/5379.misc
@@ -0,0 +1 @@
+Cleanup unused threads build configurations
\ No newline at end of file
diff --git a/changelog.d/5392.misc b/changelog.d/5392.misc
new file mode 100644
index 0000000000..54d7dba992
--- /dev/null
+++ b/changelog.d/5392.misc
@@ -0,0 +1 @@
+Upgrades material dependency version from 1.4.0 to 1.5.0
diff --git a/changelog.d/5394.bugfix b/changelog.d/5394.bugfix
new file mode 100644
index 0000000000..f8c5311492
--- /dev/null
+++ b/changelog.d/5394.bugfix
@@ -0,0 +1 @@
+Fix incorrect media cache size in settings
\ No newline at end of file
diff --git a/dependencies.gradle b/dependencies.gradle
index 19fd5b441b..87b8e3c12f 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -7,11 +7,11 @@ ext.versions = [
'targetCompat' : JavaVersion.VERSION_11,
]
-def gradle = "7.0.3"
+def gradle = "7.0.4"
// Ref: https://kotlinlang.org/releases.html
def kotlin = "1.5.31"
def kotlinCoroutines = "1.5.2"
-def dagger = "2.40.2"
+def dagger = "2.40.5"
def retrofit = "2.9.0"
def arrow = "0.8.2"
def markwon = "4.6.2"
@@ -19,7 +19,7 @@ def moshi = "1.12.0"
def lifecycle = "2.4.0"
def flowBinding = "1.2.0"
def epoxy = "4.6.2"
-def mavericks = "2.4.0"
+def mavericks = "2.5.0"
def glide = "4.12.0"
def bigImageViewer = "1.8.1"
def jjwt = "0.11.2"
@@ -29,6 +29,7 @@ def vanniktechEmoji = "0.8.0"
def mockk = "1.12.1"
def espresso = "3.4.0"
def androidxTest = "1.4.0"
+def androidxOrchestrator = "1.4.1"
ext.libs = [
@@ -41,7 +42,6 @@ ext.libs = [
jetbrains : [
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
- 'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinCoroutines",
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
],
androidx : [
@@ -63,7 +63,7 @@ ext.libs = [
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
'testCore' : "androidx.test:core:$androidxTest",
- 'orchestrator' : "androidx.test:orchestrator:$androidxTest",
+ 'orchestrator' : "androidx.test:orchestrator:$androidxOrchestrator",
'testRunner' : "androidx.test:runner:$androidxTest",
'testRules' : "androidx.test:rules:$androidxTest",
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
@@ -71,7 +71,7 @@ ext.libs = [
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
],
google : [
- 'material' : "com.google.android.material:material:1.4.0"
+ 'material' : "com.google.android.material:material:1.5.0"
],
dagger : [
'dagger' : "com.google.dagger:dagger:$dagger",
@@ -86,8 +86,7 @@ ext.libs = [
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
],
rx : [
- 'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0",
- 'rxAndroid' : "io.reactivex.rxjava2:rxandroid:2.1.1"
+ 'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0"
],
arrow : [
'core' : "io.arrow-kt:arrow-core:$arrow",
@@ -95,6 +94,8 @@ ext.libs = [
],
markwon : [
'core' : "io.noties.markwon:core:$markwon",
+ 'extLatex' : "io.noties.markwon:ext-latex:$markwon",
+ 'inlineParser' : "io.noties.markwon:inline-parser:$markwon",
'html' : "io.noties.markwon:html:$markwon"
],
airbnb : [
diff --git a/dependencies_groups.gradle b/dependencies_groups.gradle
new file mode 100644
index 0000000000..723941157d
--- /dev/null
+++ b/dependencies_groups.gradle
@@ -0,0 +1,205 @@
+ext.groups = [
+ jitpack : [
+ regex: [
+ ],
+ group: [
+ 'com.github.Armen101',
+ 'com.github.chrisbanes',
+ 'com.github.hyuwah',
+ 'com.github.jetradarmobile',
+ 'com.github.tapadoo',
+ 'com.github.vector-im',
+ 'com.github.yalantis',
+ 'com.github.Zhuinden',
+ ]
+ ],
+ jitsi : [
+ regex: [
+ ],
+ group: [
+ 'com.facebook.react',
+ 'org.jitsi.react',
+ 'org.webkit',
+ ]
+ ],
+ google : [
+ regex: [
+ 'androidx\\..*',
+ 'com\\.android\\.tools\\..*',
+ 'com\\.google\\.android\\..*',
+ ],
+ group: [
+ 'com.android',
+ 'com.android.tools',
+ 'com.google.firebase',
+ 'com.google.testing.platform',
+ ]
+ ],
+ mavenCentral: [
+ regex: [
+ ],
+ group: [
+ 'com.adevinta.android',
+ 'com.airbnb.android',
+ 'com.almworks.sqlite4java',
+ 'com.arthenica',
+ 'com.atlassian.commonmark',
+ 'com.atlassian.pom',
+ 'com.beust',
+ 'com.davemorrissey.labs',
+ 'com.dropbox.core',
+ 'com.facebook.fresco',
+ 'com.facebook.infer.annotation',
+ 'com.facebook.soloader',
+ 'com.facebook.stetho',
+ 'com.fasterxml',
+ 'com.fasterxml.jackson',
+ 'com.fasterxml.jackson.core',
+ 'com.gabrielittner.threetenbp',
+ 'com.getkeepsafe.relinker',
+ 'com.github.bumptech.glide',
+ 'com.github.filippudak',
+ 'com.github.filippudak.progresspieview',
+ 'com.github.javaparser',
+ 'com.github.piasy',
+ 'com.github.shyiko.klob',
+ 'com.google',
+ 'com.google.android',
+ 'com.google.api.grpc',
+ 'com.google.auto.service',
+ 'com.google.auto.value',
+ 'com.google.code.findbugs',
+ 'com.google.code.gson',
+ 'com.google.dagger',
+ 'com.google.devtools.ksp',
+ 'com.google.errorprone',
+ 'com.google.googlejavaformat',
+ 'com.google.guava',
+ 'com.google.j2objc',
+ 'com.google.jimfs',
+ 'com.google.protobuf',
+ 'com.google.zxing',
+ 'com.googlecode.htmlcompressor',
+ 'com.googlecode.json-simple',
+ 'com.googlecode.libphonenumber',
+ 'com.ibm.icu',
+ 'com.jakewharton.android.repackaged',
+ 'com.jakewharton.timber',
+ 'com.linkedin.dexmaker',
+ 'com.mapbox.mapboxsdk',
+ 'com.nulab-inc',
+ 'com.otaliastudios.opengl',
+ 'com.parse.bolts',
+ 'com.pinterest',
+ 'com.pinterest.ktlint',
+ 'com.posthog.android',
+ 'com.squareup',
+ 'com.squareup.duktape',
+ 'com.squareup.moshi',
+ 'com.squareup.okhttp3',
+ 'com.squareup.okio',
+ 'com.squareup.retrofit2',
+ 'com.sun.activation',
+ 'com.sun.istack',
+ 'com.sun.xml.bind',
+ 'com.sun.xml.bind.mvn',
+ 'com.sun.xml.fastinfoset',
+ 'com.thoughtworks.qdox',
+ 'com.vanniktech',
+ 'commons-cli',
+ 'commons-codec',
+ 'commons-io',
+ 'commons-logging',
+ 'info.picocli',
+ 'io.arrow-kt',
+ 'io.github.detekt.sarif4k',
+ 'io.github.reactivecircus.flowbinding',
+ 'io.grpc',
+ 'io.jsonwebtoken',
+ 'io.kindedj',
+ 'io.mockk',
+ 'io.netty',
+ 'io.noties.markwon',
+ 'io.opencensus',
+ 'io.reactivex.rxjava2',
+ 'io.realm',
+ 'it.unimi.dsi',
+ 'jakarta.activation',
+ 'jakarta.xml.bind',
+ 'javax.annotation',
+ 'javax.inject',
+ 'jline',
+ 'jp.wasabeef',
+ 'junit',
+ 'me.leolin',
+ 'me.saket',
+ 'net.bytebuddy',
+ 'net.java',
+ 'net.java.dev.jna',
+ 'net.lachlanmckee',
+ 'net.ltgt.gradle.incap',
+ 'net.sf.jopt-simple',
+ 'net.sf.kxml',
+ 'nl.dionsegijn',
+ 'org.amshove.kluent',
+ 'org.apache',
+ 'org.apache.ant',
+ 'org.apache.commons',
+ 'org.apache.httpcomponents',
+ 'org.apache.sanselan',
+ 'org.bouncycastle',
+ 'org.checkerframework',
+ 'org.codehaus',
+ 'org.codehaus.groovy',
+ 'org.codehaus.mojo',
+ 'org.eclipse.ee4j',
+ 'org.ec4j.core',
+ 'org.glassfish.jaxb',
+ 'org.hamcrest',
+ 'org.jetbrains',
+ 'org.jetbrains.intellij.deps',
+ 'org.jetbrains.kotlin',
+ 'org.jetbrains.kotlinx',
+ 'org.json',
+ 'org.jsoup',
+ 'org.junit',
+ 'org.junit.jupiter',
+ 'org.junit.platform',
+ 'org.jvnet.staxex',
+ 'org.maplibre.gl',
+ 'org.matrix.android',
+ 'org.mockito',
+ 'org.mongodb',
+ 'org.objenesis',
+ 'org.opentest4j',
+ 'org.ow2',
+ 'org.ow2.asm',
+ 'org.ow2.asm',
+ 'org.reactivestreams',
+ 'org.robolectric',
+ 'org.slf4j',
+ 'org.sonatype.oss',
+ 'org.testng',
+ 'org.threeten',
+ 'org.webjars',
+ 'ru.noties',
+ 'xerces',
+ 'xml-apis',
+ ]
+ ],
+ jcenter : [
+ regex: [
+ ],
+ group: [
+ 'com.amulyakhare',
+ 'com.otaliastudios',
+ 'com.yqritc',
+ // https://github.com/cmelchior/realmfieldnameshelper/issues/42
+ 'dk.ilios',
+ 'im.dlg',
+ 'me.dm7.barcodescanner',
+ 'me.gujun.android',
+ ]
+ ]
+]
+
diff --git a/docs/analytics.md b/docs/analytics.md
new file mode 100644
index 0000000000..135ace81b0
--- /dev/null
+++ b/docs/analytics.md
@@ -0,0 +1,16 @@
+# Analytics in Element
+
+## Solution
+
+Element is using PostHog to send analytics event.
+We ask for the user to give consent before sending any analytics data.
+
+## How to add a new Event
+
+The analytics plan is shared between all Element clients. To add an Event, please open a PR to this project: https://github.com/matrix-org/matrix-analytics-events
+
+Then, once the PR has been merged, you can run the tool `import_analytic_plan.sh` to import the plan to Element, and then you can use the new Event. Note that this tool is run by Github action once a week.
+
+## Forks of Element
+
+Analytics on forks are disabled by default. Please refer to AnalyticsConfig and there implementation to setup analytics on your project.
diff --git a/docs/design.md b/docs/design.md
index 2e27f00ebf..a79f19cf3e 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -50,6 +50,17 @@ It's also possible for any icon to go to the main component by right-clicking on
- open the created vector drawable
- optionally update the color(s) to "#FF0000" (red) to ensure that the drawable is correctly tinted at runtime.
+### Images
+
+Android 4.3 (18+) fully supports the WebP image format which can often provide smaller image sizes without drastically impacting image quality (depending on the output encoding quality).
+When importing non vector images, WebP is the preferred format.
+
+Images can be converted to the WebP within Android Studio by
+ - right clicking the image file within the project file explorer
+ - select `Convert to WebP`
+
+https://developer.android.com/studio/write/convert-webp
+
## 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
diff --git a/docs/ui-tests.md b/docs/ui-tests.md
index 6ebb52abe8..05eb50f525 100644
--- a/docs/ui-tests.md
+++ b/docs/ui-tests.md
@@ -104,3 +104,76 @@ fun initAccount() {
existingSession = createAccountAndSync(matrix, userName, password, true)
}
```
+
+### Contributing to the UiAllScreensSanityTest
+
+The `UiAllScreensSanityTest` makes use of the Robot pattern in order to model pages, components and interactions.
+Each Robot aims to return the UI back to its original state after the interaction, allowing for a reusable and consistent DSL.
+
+```kotlin
+// launches and closes settings after executing the block
+elementRobot.settings {
+ // whilst in the settings, launches and closes the advanced settings sub screen
+ advancedSettings {
+ // crawls all the pages within the advanced settings
+ crawl()
+ }
+}
+
+// enables developer mode by navigating to the settings, enabling the toggle and then returning to the starting point to execute the block
+// on block completion the Robot disables developer mode by navigating back to the settings and finally returning to the original starting point
+elementRobot.withDeveloperMode {
+ // the same starting point as the example above
+ settings {
+ advancedSettings { crawlDeveloperOptions() }
+ }
+}
+```
+
+The Robots used in the example above...
+
+```kotlin
+class ElementRobot {
+ fun settings(block: SettingsRobot.() -> Unit) {
+ // double check we're where we think we are
+ waitUntilViewVisible(withId(R.id.bottomNavigationView))
+
+ // navigate to the settings
+ openDrawer()
+ clickOn(R.id.homeDrawerHeaderSettingsView)
+
+ // execute the robot with the context of the settings screen
+ block(SettingsRobot())
+
+ // close the settings and ensure we're back at the starting point
+ pressBack()
+ waitUntilViewVisible(withId(R.id.bottomNavigationView))
+ }
+
+ fun withDeveloperMode(block: ElementRobot.() -> Unit) {
+ settings { toggleDeveloperMode() }
+ block()
+ settings { toggleDeveloperMode() }
+ }
+}
+
+class SettingsRobot {
+ fun toggleDeveloperMode() {
+ advancedSettings {
+ toggleDeveloperMode()
+ }
+ }
+
+ fun advancedSettings(block: SettingsAdvancedRobot.() -> Unit) {
+ clickOn(R.string.settings_advanced_settings)
+ block(SettingsAdvancedRobot())
+ pressBack()
+ }
+}
+
+class SettingsAdvancedRobot {
+ fun toggleDeveloperMode() {
+ clickOn(R.string.settings_developer_mode_summary)
+ }
+}
+```
\ No newline at end of file
diff --git a/fastlane/README.md b/fastlane/README.md
index dc33f422d6..7fea7afdd5 100644
--- a/fastlane/README.md
+++ b/fastlane/README.md
@@ -1,49 +1,64 @@
fastlane documentation
-================
+----
+
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
-```
+```sh
xcode-select --install
```
-Install _fastlane_ using
-```
-[sudo] gem install fastlane -NV
-```
-or alternatively using `brew install fastlane`
+For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
+
## Android
+
### android test
+
+```sh
+[bundle exec] fastlane android test
```
-fastlane android test
-```
+
Runs all the tests
+
### android beta
+
+```sh
+[bundle exec] fastlane android beta
```
-fastlane android beta
-```
+
Submit a new Beta Build to Crashlytics Beta
+
### android deploy
+
+```sh
+[bundle exec] fastlane android deploy
```
-fastlane android deploy
-```
+
Deploy a new version to the Google Play
+
### android deployMeta
+
+```sh
+[bundle exec] fastlane android deployMeta
```
-fastlane android deployMeta
-```
+
Deploy Google Play metadata
+
### android getVersionCode
+
+```sh
+[bundle exec] fastlane android getVersionCode
```
-fastlane android getVersionCode
-```
+
Get version code
----
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
-More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
-The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
+
+More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
+
+The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40101150.txt b/fastlane/metadata/android/cs-CZ/changelogs/40101150.txt
index e82655d352..93093cb1a7 100644
--- a/fastlane/metadata/android/cs-CZ/changelogs/40101150.txt
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40101150.txt
@@ -1,2 +1,2 @@
-Hlavní změny v této verzi: implementace hlasových zpráv dosupných v rámci laboratoře.
+Hlavní změny v této verzi: implementace hlasových zpráv dosupných v experimentálních funkcích.
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.15
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103070.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103070.txt
new file mode 100644
index 0000000000..8e64ade8ab
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy chyb týkající se především oznámení.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103080.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103080.txt
new file mode 100644
index 0000000000..4932a59d1f
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy chyb!
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103090.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103090.txt
new file mode 100644
index 0000000000..fe61a48d12
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Přidání podpory pro návrh hlasové zprávy. Opravy mnoha chyb!
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103100.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
new file mode 100644
index 0000000000..02eb5b59ef
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Přidání podpory pro hlasování (v experimentálních funkcích). Nový design náhledu URL.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103110.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
new file mode 100644
index 0000000000..e765e1667d
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy chyb!
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103120.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
new file mode 100644
index 0000000000..81437c716b
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Opravy chyb!
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103130.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103130.txt
new file mode 100644
index 0000000000..dab96ddd72
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Změna na úvodních obrazovkách, včetně přihlášení do služby Analytics. V experimentálních funkcích byla přidána podpora pro události s matematikou.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103140.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103140.txt
new file mode 100644
index 0000000000..8d07600bc1
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Změna na úvodních obrazovkách, včetně přihlášení do služby Analytics. V experimentálních funkcích byla přidána podpora pro události s matematikou.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103150.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103150.txt
new file mode 100644
index 0000000000..260011b49d
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Změna na úvodních obrazovkách, včetně přihlášení do služby Analytics. V experimentálních funkcích byla přidána podpora pro události s matematikou.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103160.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103160.txt
new file mode 100644
index 0000000000..3701cfe4ac
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Odeslání vlastní polohy do libovolné místnosti. Možnost úpravy hlasování.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103170.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103170.txt
new file mode 100644
index 0000000000..73ec686cb1
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: odeslání svojí polohy do libovolné místnosti. Úpravy anket.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40103180.txt b/fastlane/metadata/android/cs-CZ/changelogs/40103180.txt
new file mode 100644
index 0000000000..502b318b3e
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: odeslání svojí polohy do libovolné místnosti. Úpravy anket.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104000.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104000.txt
new file mode 100644
index 0000000000..eafc30cc4c
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: Počáteční implementace vláken zpráv. Bubliny zpráv.
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40104020.txt b/fastlane/metadata/android/cs-CZ/changelogs/40104020.txt
new file mode 100644
index 0000000000..13f615f21f
--- /dev/null
+++ b/fastlane/metadata/android/cs-CZ/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Hlavní změny v této verzi: přidána podpora pro @room a tajné hlasování a mnoho dalších drobných změn
+Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103050.txt b/fastlane/metadata/android/de-DE/changelogs/40103050.txt
new file mode 100644
index 0000000000..a3e40e9e03
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+Änderungen in dieser Version: Unterstützung für Anwesenheitsstatus in Direktnachrichten (Momentan auf matrix.org deaktiviert), Android Auto funktioniert wieder.
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103060.txt b/fastlane/metadata/android/de-DE/changelogs/40103060.txt
new file mode 100644
index 0000000000..dcd8d3634d
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+Änderungen in dieser Version: Unterstützung für Anwesenheitsstatus in Direktnachrichten (Momentan auf matrix.org deaktiviert), Android Auto funktioniert wieder.
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103070.txt b/fastlane/metadata/android/de-DE/changelogs/40103070.txt
new file mode 100644
index 0000000000..cc1bb7d0ac
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Fehler bei Benachrichtigungen gefixt
+Ganze Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103080.txt b/fastlane/metadata/android/de-DE/changelogs/40103080.txt
new file mode 100644
index 0000000000..de326e35f8
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Änderungen: Verschiedene Fehler behoben
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103090.txt b/fastlane/metadata/android/de-DE/changelogs/40103090.txt
new file mode 100644
index 0000000000..028df4942f
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Verbesserungen bei Sprachnachrichten, Bugfixes.
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103100.txt b/fastlane/metadata/android/de-DE/changelogs/40103100.txt
new file mode 100644
index 0000000000..8daa7b51a5
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Änderungen: Die Websitevorschau hat ein neues Design erhalten. Außerdem gibt es in den experimentellen Einstellungen Abstimmungen.
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103110.txt b/fastlane/metadata/android/de-DE/changelogs/40103110.txt
new file mode 100644
index 0000000000..a3d6aad6ca
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Bugfixes!
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103120.txt b/fastlane/metadata/android/de-DE/changelogs/40103120.txt
new file mode 100644
index 0000000000..6930764750
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Bugfixes!
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103130.txt b/fastlane/metadata/android/de-DE/changelogs/40103130.txt
new file mode 100644
index 0000000000..82aaadd5f3
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Neues Onboarding, Unterstützung für Mathematische Ausdrücke in Labs
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103140.txt b/fastlane/metadata/android/de-DE/changelogs/40103140.txt
new file mode 100644
index 0000000000..6032784f64
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Neues Onboarding, Unterstützung für Mathematische Ausdrücke in Labs
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103150.txt b/fastlane/metadata/android/de-DE/changelogs/40103150.txt
new file mode 100644
index 0000000000..6e324d4ef5
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Neues Onboarding, Unterstützung für Mathematische Ausdrücke in Labs
+Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103160.txt b/fastlane/metadata/android/de-DE/changelogs/40103160.txt
new file mode 100644
index 0000000000..78fac9a7c2
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Hauptänderungen: Du kannst ab sofort deinen Standort an deine Räume senden und Abstimmungen bearbeiten.
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103170.txt b/fastlane/metadata/android/de-DE/changelogs/40103170.txt
new file mode 100644
index 0000000000..4a93cfca52
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Wichtigste Änderungen in dieser Version: Versende deinen Standort an jeden Raum deiner Wahl. Bearbeite Umfragen.
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/de-DE/changelogs/40103180.txt b/fastlane/metadata/android/de-DE/changelogs/40103180.txt
new file mode 100644
index 0000000000..28c954f326
--- /dev/null
+++ b/fastlane/metadata/android/de-DE/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Wichtigste Änderungen in dieser Version: Versende deinen Standort an jeden Raum deiner Wahl. Bearbeite Umfragen.
+Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/en-US/changelogs/40103090.txt b/fastlane/metadata/android/en-US/changelogs/40103090.txt
new file mode 100644
index 0000000000..908f7e7359
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Add support for voice message draft. Many bugfixes!
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.9
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103100.txt b/fastlane/metadata/android/en-US/changelogs/40103100.txt
new file mode 100644
index 0000000000..d3e7f6eb4a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Add support for polls (in labs). New URL preview design.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.10
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103110.txt b/fastlane/metadata/android/en-US/changelogs/40103110.txt
new file mode 100644
index 0000000000..c28b303a35
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Bug fixes!
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.11
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103120.txt b/fastlane/metadata/android/en-US/changelogs/40103120.txt
new file mode 100644
index 0000000000..90d55f5f48
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Bug fixes!
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.12
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103130.txt b/fastlane/metadata/android/en-US/changelogs/40103130.txt
new file mode 100644
index 0000000000..1c0b5da2ee
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.13
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103140.txt b/fastlane/metadata/android/en-US/changelogs/40103140.txt
new file mode 100644
index 0000000000..c8467d68fe
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.14
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103150.txt b/fastlane/metadata/android/en-US/changelogs/40103150.txt
new file mode 100644
index 0000000000..2b5fbe76ca
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.15
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103160.txt b/fastlane/metadata/android/en-US/changelogs/40103160.txt
new file mode 100644
index 0000000000..900abee127
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Main changes in this version: send your location to any room. Edit poll.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.16
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103170.txt b/fastlane/metadata/android/en-US/changelogs/40103170.txt
new file mode 100644
index 0000000000..2d0062bb23
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Main changes in this version: send your location to any room. Edit poll.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.17
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40103180.txt b/fastlane/metadata/android/en-US/changelogs/40103180.txt
new file mode 100644
index 0000000000..66e51f422a
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Main changes in this version: send your location to any room. Edit poll.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.18
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40104000.txt b/fastlane/metadata/android/en-US/changelogs/40104000.txt
new file mode 100644
index 0000000000..4492b78882
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Main changes in this version: Initial implementation of thread messages. Message bubbles.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.0
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/40104020.txt b/fastlane/metadata/android/en-US/changelogs/40104020.txt
new file mode 100644
index 0000000000..82d3197db3
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Main changes in this version: add support to @room and undisclosed polls among many other little changes.
+Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.2
\ No newline at end of file
diff --git a/fastlane/metadata/android/et/changelogs/40103070.txt b/fastlane/metadata/android/et/changelogs/40103070.txt
new file mode 100644
index 0000000000..95bdc3c0c5
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: erinevad veaparandused, neist enamus on seotud teavitustega.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/et/changelogs/40103080.txt b/fastlane/metadata/android/et/changelogs/40103080.txt
new file mode 100644
index 0000000000..8b95682f70
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: pinu veaparandusi!
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/et/changelogs/40103090.txt b/fastlane/metadata/android/et/changelogs/40103090.txt
new file mode 100644
index 0000000000..e931ba5386
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: Häälsõnumite võimalus. Palju veaparandusi!
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/et/changelogs/40103100.txt b/fastlane/metadata/android/et/changelogs/40103100.txt
new file mode 100644
index 0000000000..2cb2ae0d88
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: katseline küsitluste tugi ja linkide eelvaate uus visuaal.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/et/changelogs/40103110.txt b/fastlane/metadata/android/et/changelogs/40103110.txt
new file mode 100644
index 0000000000..6271372e2b
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: pinu veaparandusi!
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/et/changelogs/40103120.txt b/fastlane/metadata/android/et/changelogs/40103120.txt
new file mode 100644
index 0000000000..c1cc3ff696
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: pinu veaparandusi!
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/et/changelogs/40103130.txt b/fastlane/metadata/android/et/changelogs/40103130.txt
new file mode 100644
index 0000000000..b2c8054559
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: liitumisvaate täiendused, võimalus saata meile analüütikat. Katsete alla on lisandunud üritused ning matemaatiliste valemite kirjutamise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/et/changelogs/40103140.txt b/fastlane/metadata/android/et/changelogs/40103140.txt
new file mode 100644
index 0000000000..14c34169d0
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: liitumisvaate täiendused, võimalus saata meile analüütikat. Katsete alla on lisandunud üritused ning matemaatiliste valemite kirjutamise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/et/changelogs/40103150.txt b/fastlane/metadata/android/et/changelogs/40103150.txt
new file mode 100644
index 0000000000..ce86924106
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: liitumisvaate täiendused, võimalus saata meile analüütikat. Katsete alla on lisandunud üritused ning matemaatiliste valemite kirjutamise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/et/changelogs/40103160.txt b/fastlane/metadata/android/et/changelogs/40103160.txt
new file mode 100644
index 0000000000..76f1abbeca
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: oma asukoha saatmine jututuppa ja küsitluste muutmise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/et/changelogs/40103170.txt b/fastlane/metadata/android/et/changelogs/40103170.txt
new file mode 100644
index 0000000000..0dda39444a
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: oma asukoha saatmine jututuppa ja küsitluste muutmise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/et/changelogs/40103180.txt b/fastlane/metadata/android/et/changelogs/40103180.txt
new file mode 100644
index 0000000000..55f251f454
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: oma asukoha saatmine jututuppa ja küsitluste muutmise võimalus.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/et/changelogs/40104000.txt b/fastlane/metadata/android/et/changelogs/40104000.txt
new file mode 100644
index 0000000000..df868601a8
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: jutulõngade esmane lahendus ja jutumullid.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/et/changelogs/40104020.txt b/fastlane/metadata/android/et/changelogs/40104020.txt
new file mode 100644
index 0000000000..000e384c52
--- /dev/null
+++ b/fastlane/metadata/android/et/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Põhilised muutused selles versioonis: @jututuba tugi, mitteavalikud küsitlused ning pisiparandused.
+Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/et/title.txt b/fastlane/metadata/android/et/title.txt
index b0bf39ba23..907f907f99 100644
--- a/fastlane/metadata/android/et/title.txt
+++ b/fastlane/metadata/android/et/title.txt
@@ -1 +1 @@
-Element - turvaline sõnumiklient
+Element
diff --git a/fastlane/metadata/android/fa/changelogs/40103050.txt b/fastlane/metadata/android/fa/changelogs/40103050.txt
new file mode 100644
index 0000000000..fa905b14cb
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+تغییرات اصلی در این نگارش: افزودن پشتیبانی حضور برای اتاقهای پیام مستقیم (یادداشت: حضور روی matrix.org از کار افتاده است). افزودن دوبارهٔ پشتیبانی اندروید خودرو.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/fa/changelogs/40103060.txt b/fastlane/metadata/android/fa/changelogs/40103060.txt
new file mode 100644
index 0000000000..f4e997dc88
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+تغییرات اصلی در این نگارش: افزودن پشتیبانی حضور برای اتاقهای پیام مستقیم (یادداشت: حضور روی matrix.org از کار افتاده است). افزودن دوبارهٔ پشتیبانی اندروید خودرو.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/fa/changelogs/40103070.txt b/fastlane/metadata/android/fa/changelogs/40103070.txt
new file mode 100644
index 0000000000..12579d830a
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+تغییرات اصلی در این نگارش: رفع اشکالهایی عمدتاً مربوط به آگاهیها.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/fa/changelogs/40103080.txt b/fastlane/metadata/android/fa/changelogs/40103080.txt
new file mode 100644
index 0000000000..597ce33e48
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: رفع مشکلها!
+گزارش دگرکونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/fa/changelogs/40103090.txt b/fastlane/metadata/android/fa/changelogs/40103090.txt
new file mode 100644
index 0000000000..75810a0e23
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: افزودن پشتیبان از چرکنویسهای صوتی. رفع چندین مشکل!
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/fa/changelogs/40103100.txt b/fastlane/metadata/android/fa/changelogs/40103100.txt
new file mode 100644
index 0000000000..99c4e3faec
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: افزودن پشتیبانی نظرسنجیها (در آزمایشگاهها). طرّاحی جدید پیشنمای نشانی.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/fa/changelogs/40103110.txt b/fastlane/metadata/android/fa/changelogs/40103110.txt
new file mode 100644
index 0000000000..56d8ba6b91
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: تعمیر مشکلات!
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/fa/changelogs/40103120.txt b/fastlane/metadata/android/fa/changelogs/40103120.txt
new file mode 100644
index 0000000000..67976a2024
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: تعمیر مشکلات!
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/fa/changelogs/40103130.txt b/fastlane/metadata/android/fa/changelogs/40103130.txt
new file mode 100644
index 0000000000..9a67eebd44
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارشنخستین تغییر در صفحههای راهاندازی شامل وارد شدن به تجزیهها. پشتیبانی از رویدادهایی با ریاضیات افزوده در آزمایشگاهها.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/fa/changelogs/40103140.txt b/fastlane/metadata/android/fa/changelogs/40103140.txt
new file mode 100644
index 0000000000..e4b01ecd11
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارشنخستین تغییر در صفحههای راهاندازی شامل وارد شدن به تجزیهها. پشتیبانی از رویدادهایی با ریاضیات افزوده در آزمایشگاهها.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/fa/changelogs/40103150.txt b/fastlane/metadata/android/fa/changelogs/40103150.txt
new file mode 100644
index 0000000000..e10ddf156c
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارشنخستین تغییر در صفحههای راهاندازی شامل وارد شدن به تجزیهها. پشتیبانی از رویدادهایی با ریاضیات افزوده در آزمایشگاهها.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/fa/changelogs/40103160.txt b/fastlane/metadata/android/fa/changelogs/40103160.txt
new file mode 100644
index 0000000000..0699f4536d
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: فرستادن مکانتان به هر اتاقی. ویرایش نظرسنجی.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/fa/changelogs/40103170.txt b/fastlane/metadata/android/fa/changelogs/40103170.txt
new file mode 100644
index 0000000000..55769b8a12
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: فرستادن مکانتان به هر اتاقی. ویرایش نظرسنجی.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/fa/changelogs/40103180.txt b/fastlane/metadata/android/fa/changelogs/40103180.txt
new file mode 100644
index 0000000000..529da3f5a4
--- /dev/null
+++ b/fastlane/metadata/android/fa/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+تغییرات عمده در این نگارش: فرستادن مکانتان به هر اتاقی. ویرایش نظرسنجی.
+گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103070.txt b/fastlane/metadata/android/fr-FR/changelogs/40103070.txt
new file mode 100644
index 0000000000..7cbf8396c0
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : corrections de problèmes, principalement sur les notifications
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103080.txt b/fastlane/metadata/android/fr-FR/changelogs/40103080.txt
new file mode 100644
index 0000000000..681168bab8
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : corrections de bugs !
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103090.txt b/fastlane/metadata/android/fr-FR/changelogs/40103090.txt
new file mode 100644
index 0000000000..3394e5ccfa
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Ajout du support pour les brouillons de messages vocaux. Beaucoup de corrections de bugs !
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103100.txt b/fastlane/metadata/android/fr-FR/changelogs/40103100.txt
new file mode 100644
index 0000000000..b6484603d4
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : prise en charge des sondages (dans les labs). Nouvel affichage des prévisualisations d’URL
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103110.txt b/fastlane/metadata/android/fr-FR/changelogs/40103110.txt
new file mode 100644
index 0000000000..aef05c238d
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : corrections de bugs !
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103120.txt b/fastlane/metadata/android/fr-FR/changelogs/40103120.txt
new file mode 100644
index 0000000000..18cba17990
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : corrections de bugs !
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103130.txt b/fastlane/metadata/android/fr-FR/changelogs/40103130.txt
new file mode 100644
index 0000000000..ba950fe819
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Premier changement dans l’écran de bienvenue, y compris l’adhésion aux données d’analyses. Support des événements avec opération mathématiques ajoutées dans les labs.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103140.txt b/fastlane/metadata/android/fr-FR/changelogs/40103140.txt
new file mode 100644
index 0000000000..24779bc59e
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Premier changement dans l’écran de bienvenue, y compris l’adhésion aux données d’analyses. Support des événements avec opération mathématiques ajoutées dans les labs.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103150.txt b/fastlane/metadata/android/fr-FR/changelogs/40103150.txt
new file mode 100644
index 0000000000..32fe3f6593
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : Premier changement dans l’écran de bienvenue, y compris l’adhésion aux données d’analyses. Support des événements avec opération mathématiques ajoutées dans les labs.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/fr-FR/changelogs/40103160.txt b/fastlane/metadata/android/fr-FR/changelogs/40103160.txt
new file mode 100644
index 0000000000..a7437a1f10
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Principaux changements pour cette version : envoi de votre position dans n’importe quelle salon. Édition des sondage.
+Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103070.txt b/fastlane/metadata/android/hu-HU/changelogs/40103070.txt
new file mode 100644
index 0000000000..861e35e864
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Értesítési hibajavítások
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103080.txt b/fastlane/metadata/android/hu-HU/changelogs/40103080.txt
new file mode 100644
index 0000000000..d29d9061b7
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Főbb változtatások ebben a verzióban: Hibajavítások
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103090.txt b/fastlane/metadata/android/hu-HU/changelogs/40103090.txt
new file mode 100644
index 0000000000..d4189121bb
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Hang üzenet piszkozat támogatás. Sok egyéb hibajavítás.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103100.txt b/fastlane/metadata/android/hu-HU/changelogs/40103100.txt
new file mode 100644
index 0000000000..9e3cb21611
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Szavazások támogatása (a laborok között). Új URL előnézet.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103110.txt b/fastlane/metadata/android/hu-HU/changelogs/40103110.txt
new file mode 100644
index 0000000000..86cb418a6c
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Hibajavítások!
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103120.txt b/fastlane/metadata/android/hu-HU/changelogs/40103120.txt
new file mode 100644
index 0000000000..33fa44248d
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Hibajavítások!
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103130.txt b/fastlane/metadata/android/hu-HU/changelogs/40103130.txt
new file mode 100644
index 0000000000..4c39f156f9
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Első változások a bemutató képernyőn, beleértve az analitikai adatküldés engedélyezésének lehetőségét. Matematikai formulák támogatása a Laborok között.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103140.txt b/fastlane/metadata/android/hu-HU/changelogs/40103140.txt
new file mode 100644
index 0000000000..b53f857896
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Első változások a bemutató képernyőn, beleértve az analitikai adatküldés engedélyezésének lehetőségét. Matematikai formulák támogatása a Laborok között.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103150.txt b/fastlane/metadata/android/hu-HU/changelogs/40103150.txt
new file mode 100644
index 0000000000..abb4bf336a
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Első változások a bemutató képernyőn, beleértve az analitikai adatküldés engedélyezésének lehetőségét. Matematikai formulák támogatása a Laborok között.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103160.txt b/fastlane/metadata/android/hu-HU/changelogs/40103160.txt
new file mode 100644
index 0000000000..204a224222
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: földrajzi helyzet küldése bármely szobába. Szavazás szerkesztése
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103170.txt b/fastlane/metadata/android/hu-HU/changelogs/40103170.txt
new file mode 100644
index 0000000000..7882ee3eed
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: földrajzi helyzet elküldése bármelyik szobába. Szavazás szerkesztése.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40103180.txt b/fastlane/metadata/android/hu-HU/changelogs/40103180.txt
new file mode 100644
index 0000000000..0630b8ba11
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: földrajzi helyzet elküldése bármelyik szobába. Szavazás szerkesztése.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104000.txt b/fastlane/metadata/android/hu-HU/changelogs/40104000.txt
new file mode 100644
index 0000000000..2bb375321e
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: Üzenetszálak kezdeti implementációja. Buborék üzenetek.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/hu-HU/changelogs/40104020.txt b/fastlane/metadata/android/hu-HU/changelogs/40104020.txt
new file mode 100644
index 0000000000..30dad79a3a
--- /dev/null
+++ b/fastlane/metadata/android/hu-HU/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Fő változás ebben a verzióban: @room támogatás és nem nyilvános szavazások mellett kisebb változtatások.
+Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/hu-HU/title.txt b/fastlane/metadata/android/hu-HU/title.txt
index c463dea393..907f907f99 100644
--- a/fastlane/metadata/android/hu-HU/title.txt
+++ b/fastlane/metadata/android/hu-HU/title.txt
@@ -1 +1 @@
-Element - Biztonságos üzenetküldő
+Element
diff --git a/fastlane/metadata/android/id/changelogs/40100100.txt b/fastlane/metadata/android/id/changelogs/40100100.txt
index 96a8f506b3..d4294758d8 100644
--- a/fastlane/metadata/android/id/changelogs/40100100.txt
+++ b/fastlane/metadata/android/id/changelogs/40100100.txt
@@ -1,2 +1,2 @@
Versi baru ini terutama berisi perbaikan bug dan peningkatan. Mengirim pesan sekarang jauh lebih cepat.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.10
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.10
diff --git a/fastlane/metadata/android/id/changelogs/40100110.txt b/fastlane/metadata/android/id/changelogs/40100110.txt
index 9f86005d8b..07e969581c 100644
--- a/fastlane/metadata/android/id/changelogs/40100110.txt
+++ b/fastlane/metadata/android/id/changelogs/40100110.txt
@@ -1,2 +1,2 @@
Versi baru ini terutama berisi antarmuka pengguna dan peningkatan pengalaman pengguna. Sekarang Anda dapat mengundang teman, dan membuat sebuah DM sangat cepat dengan memindai kode QR.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.11
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.11
diff --git a/fastlane/metadata/android/id/changelogs/40100120.txt b/fastlane/metadata/android/id/changelogs/40100120.txt
index 3067b6367d..18adabfdcd 100644
--- a/fastlane/metadata/android/id/changelogs/40100120.txt
+++ b/fastlane/metadata/android/id/changelogs/40100120.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.12
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.12
diff --git a/fastlane/metadata/android/id/changelogs/40100130.txt b/fastlane/metadata/android/id/changelogs/40100130.txt
index df52988b6c..f94db4d7cd 100644
--- a/fastlane/metadata/android/id/changelogs/40100130.txt
+++ b/fastlane/metadata/android/id/changelogs/40100130.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.13
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.13
diff --git a/fastlane/metadata/android/id/changelogs/40100140.txt b/fastlane/metadata/android/id/changelogs/40100140.txt
index 5243adc1a8..e1ef504cd9 100644
--- a/fastlane/metadata/android/id/changelogs/40100140.txt
+++ b/fastlane/metadata/android/id/changelogs/40100140.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Edit izin ruangan, tema cahaya/gelap otomatis, dan banyak perbaikan bug.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.14
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.14
diff --git a/fastlane/metadata/android/id/changelogs/40100150.txt b/fastlane/metadata/android/id/changelogs/40100150.txt
index 54c307b9b6..eaf8e1a715 100644
--- a/fastlane/metadata/android/id/changelogs/40100150.txt
+++ b/fastlane/metadata/android/id/changelogs/40100150.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Dukungan login sosial.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15
diff --git a/fastlane/metadata/android/id/changelogs/40100160.txt b/fastlane/metadata/android/id/changelogs/40100160.txt
index 3e357db352..0a6d42f8f6 100644
--- a/fastlane/metadata/android/id/changelogs/40100160.txt
+++ b/fastlane/metadata/android/id/changelogs/40100160.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Dukungan login sosial.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15 dan https://github.com/vector-im/element-android/releases/tag/v1.0.16
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15 dan https://github.com/vector-im/element-android/releases/tag/v1.0.16
diff --git a/fastlane/metadata/android/id/changelogs/40100170.txt b/fastlane/metadata/android/id/changelogs/40100170.txt
index 77f638a7fd..a2bd48f2c3 100644
--- a/fastlane/metadata/android/id/changelogs/40100170.txt
+++ b/fastlane/metadata/android/id/changelogs/40100170.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.17
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.17
diff --git a/fastlane/metadata/android/id/changelogs/40101000.txt b/fastlane/metadata/android/id/changelogs/40101000.txt
index acfe661354..737f9b63ac 100644
--- a/fastlane/metadata/android/id/changelogs/40101000.txt
+++ b/fastlane/metadata/android/id/changelogs/40101000.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: perbaikan VoIP (panggilan audio dan video dalam DM) dan perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.0
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.0
diff --git a/fastlane/metadata/android/id/changelogs/40101010.txt b/fastlane/metadata/android/id/changelogs/40101010.txt
index a9903a90bd..be22d21c32 100644
--- a/fastlane/metadata/android/id/changelogs/40101010.txt
+++ b/fastlane/metadata/android/id/changelogs/40101010.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.1
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.1
diff --git a/fastlane/metadata/android/id/changelogs/40101020.txt b/fastlane/metadata/android/id/changelogs/40101020.txt
index d654bda4fe..394f48c171 100644
--- a/fastlane/metadata/android/id/changelogs/40101020.txt
+++ b/fastlane/metadata/android/id/changelogs/40101020.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.2
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.2
diff --git a/fastlane/metadata/android/id/changelogs/40101030.txt b/fastlane/metadata/android/id/changelogs/40101030.txt
index 283c201b2f..aa1e725b46 100644
--- a/fastlane/metadata/android/id/changelogs/40101030.txt
+++ b/fastlane/metadata/android/id/changelogs/40101030.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.3
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.3
diff --git a/fastlane/metadata/android/id/changelogs/40101040.txt b/fastlane/metadata/android/id/changelogs/40101040.txt
index fdb94db53d..97eddf643d 100644
--- a/fastlane/metadata/android/id/changelogs/40101040.txt
+++ b/fastlane/metadata/android/id/changelogs/40101040.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.4
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.4
diff --git a/fastlane/metadata/android/id/changelogs/40101050.txt b/fastlane/metadata/android/id/changelogs/40101050.txt
index 856530c703..fe745e06d1 100644
--- a/fastlane/metadata/android/id/changelogs/40101050.txt
+++ b/fastlane/metadata/android/id/changelogs/40101050.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.4
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.5
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.5
diff --git a/fastlane/metadata/android/id/changelogs/40101060.txt b/fastlane/metadata/android/id/changelogs/40101060.txt
index 1810ecc3aa..2e01d640f7 100644
--- a/fastlane/metadata/android/id/changelogs/40101060.txt
+++ b/fastlane/metadata/android/id/changelogs/40101060.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.5
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.6
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.6
diff --git a/fastlane/metadata/android/id/changelogs/40101070.txt b/fastlane/metadata/android/id/changelogs/40101070.txt
index 0087d51703..7449ef81c2 100644
--- a/fastlane/metadata/android/id/changelogs/40101070.txt
+++ b/fastlane/metadata/android/id/changelogs/40101070.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: dukungan beta untuk Spaces. Kompres video sebelum mengirim.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.7
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.7
diff --git a/fastlane/metadata/android/id/changelogs/40101080.txt b/fastlane/metadata/android/id/changelogs/40101080.txt
index cb98796449..737298a081 100644
--- a/fastlane/metadata/android/id/changelogs/40101080.txt
+++ b/fastlane/metadata/android/id/changelogs/40101080.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: perbaikan untuk Spaces.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.8
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.8
diff --git a/fastlane/metadata/android/id/changelogs/40101090.txt b/fastlane/metadata/android/id/changelogs/40101090.txt
index f6f535fe64..040cbac3b0 100644
--- a/fastlane/metadata/android/id/changelogs/40101090.txt
+++ b/fastlane/metadata/android/id/changelogs/40101090.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: menambahkan dukungan untuk jaringan gitter.im.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.9
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.9
diff --git a/fastlane/metadata/android/id/changelogs/40101100.txt b/fastlane/metadata/android/id/changelogs/40101100.txt
index 121d84ca50..2c13314610 100644
--- a/fastlane/metadata/android/id/changelogs/40101100.txt
+++ b/fastlane/metadata/android/id/changelogs/40101100.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur-fitur baru untuk Spaces.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.10
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.10
diff --git a/fastlane/metadata/android/id/changelogs/40101110.txt b/fastlane/metadata/android/id/changelogs/40101110.txt
index 63c97253c4..7930471cb9 100644
--- a/fastlane/metadata/android/id/changelogs/40101110.txt
+++ b/fastlane/metadata/android/id/changelogs/40101110.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur baru untuk spaces (perbaikan bug untuk 1.1.10)
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.11
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.11
diff --git a/fastlane/metadata/android/id/changelogs/40101120.txt b/fastlane/metadata/android/id/changelogs/40101120.txt
index b8f23c530b..6fd0e25502 100644
--- a/fastlane/metadata/android/id/changelogs/40101120.txt
+++ b/fastlane/metadata/android/id/changelogs/40101120.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan perbaiki crash setelah panggilan video
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.12
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.12
diff --git a/fastlane/metadata/android/id/changelogs/40101130.txt b/fastlane/metadata/android/id/changelogs/40101130.txt
index 51c532725b..0fca5b3563 100644
--- a/fastlane/metadata/android/id/changelogs/40101130.txt
+++ b/fastlane/metadata/android/id/changelogs/40101130.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: terutama pembaruan stabilitas dan perbaikan bug.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.13
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.13
diff --git a/fastlane/metadata/android/id/changelogs/40101140.txt b/fastlane/metadata/android/id/changelogs/40101140.txt
index af1e203dde..60b041b8e7 100644
--- a/fastlane/metadata/android/id/changelogs/40101140.txt
+++ b/fastlane/metadata/android/id/changelogs/40101140.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: memperbaiki masalah tentang pesan terenkripsi.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.14
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.14
diff --git a/fastlane/metadata/android/id/changelogs/40101150.txt b/fastlane/metadata/android/id/changelogs/40101150.txt
index f3aec557d0..2411b62b5f 100644
--- a/fastlane/metadata/android/id/changelogs/40101150.txt
+++ b/fastlane/metadata/android/id/changelogs/40101150.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: implementasi pesan suara dalam pengaturan labs.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.15
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.15
diff --git a/fastlane/metadata/android/id/changelogs/40101160.txt b/fastlane/metadata/android/id/changelogs/40101160.txt
index 19209bacf2..0a829a9262 100644
--- a/fastlane/metadata/android/id/changelogs/40101160.txt
+++ b/fastlane/metadata/android/id/changelogs/40101160.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Memperbaiki kesalahan saat mengirim pesan terenkripsi jika seseorang yang ada di ruangan keluar.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.16
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.16
diff --git a/fastlane/metadata/android/id/changelogs/40102000.txt b/fastlane/metadata/android/id/changelogs/40102000.txt
index f7d93e2e4f..745c46dc18 100644
--- a/fastlane/metadata/android/id/changelogs/40102000.txt
+++ b/fastlane/metadata/android/id/changelogs/40102000.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Pesan Suara diaktifkan secara default
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.2.0
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.2.0
diff --git a/fastlane/metadata/android/id/changelogs/40102010.txt b/fastlane/metadata/android/id/changelogs/40102010.txt
index e77f0327b0..e68a571226 100644
--- a/fastlane/metadata/android/id/changelogs/40102010.txt
+++ b/fastlane/metadata/android/id/changelogs/40102010.txt
@@ -1,2 +1,2 @@
Perubahan utama di versi ini: Banyak perbaikan di VoIP dan Space (masih beta).
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.2.1
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.2.1
diff --git a/fastlane/metadata/android/id/changelogs/40103000.txt b/fastlane/metadata/android/id/changelogs/40103000.txt
index bf7b5d8d5d..7192c3ba30 100644
--- a/fastlane/metadata/android/id/changelogs/40103000.txt
+++ b/fastlane/metadata/android/id/changelogs/40103000.txt
@@ -1,2 +1,2 @@
Perubahan utama di versi ini: Organisir ruangan Anda menggunakan sebuah Space!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.0
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.0
diff --git a/fastlane/metadata/android/id/changelogs/40103020.txt b/fastlane/metadata/android/id/changelogs/40103020.txt
index 4f46881d68..2eb358b980 100644
--- a/fastlane/metadata/android/id/changelogs/40103020.txt
+++ b/fastlane/metadata/android/id/changelogs/40103020.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Penambahan dukungan untuk Android Auto. Banyak perbaikan bug!
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.2
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/id/changelogs/40103030.txt b/fastlane/metadata/android/id/changelogs/40103030.txt
index 630593a107..9324b44a3a 100644
--- a/fastlane/metadata/android/id/changelogs/40103030.txt
+++ b/fastlane/metadata/android/id/changelogs/40103030.txt
@@ -1,2 +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
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/id/changelogs/40103040.txt b/fastlane/metadata/android/id/changelogs/40103040.txt
index 0641f72ffd..00987013ac 100644
--- a/fastlane/metadata/android/id/changelogs/40103040.txt
+++ b/fastlane/metadata/android/id/changelogs/40103040.txt
@@ -1,2 +1,2 @@
Perubahan utama di versi ini: Tambahkan dukungan presensi, untuk ruangan Pesan Langsung (diingat bahwa presensi dinonaktifkan di matrix.org). Tambahkan lagi dukungan Android Auto.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.4
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.4
diff --git a/fastlane/metadata/android/id/changelogs/40103050.txt b/fastlane/metadata/android/id/changelogs/40103050.txt
index ec7c9423bf..dbca8cc0db 100644
--- a/fastlane/metadata/android/id/changelogs/40103050.txt
+++ b/fastlane/metadata/android/id/changelogs/40103050.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Tambahkan dukungan presensi, untuk ruangan Pesan Langsung (diingat bahwa presensi dinonaktifkan di matrix.org). Tambahkan lagi dukungan Android Auto.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.5
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/id/changelogs/40103060.txt b/fastlane/metadata/android/id/changelogs/40103060.txt
index 4265699d2f..18f81838ff 100644
--- a/fastlane/metadata/android/id/changelogs/40103060.txt
+++ b/fastlane/metadata/android/id/changelogs/40103060.txt
@@ -1,2 +1,2 @@
Perubahan utama dalam versi ini: Tambahkan dukungan presensi, untuk ruangan Pesan Langsung (catatan: presensi dinonaktifkan di matrix.org). Tambahkan lagi dukungan Android Auto.
-Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.6
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/id/changelogs/40103070.txt b/fastlane/metadata/android/id/changelogs/40103070.txt
new file mode 100644
index 0000000000..907fde9375
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Perubahan utama di versi ini: Perbaikan bug terutama untuk notifikasinya.
+Changelog lengkap: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/id/changelogs/40103080.txt b/fastlane/metadata/android/id/changelogs/40103080.txt
new file mode 100644
index 0000000000..2c7e2e5050
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Perubahan utama di versi ini: Beberapa perbaikan bug!
+Changelog lengkap: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/id/changelogs/40103090.txt b/fastlane/metadata/android/id/changelogs/40103090.txt
new file mode 100644
index 0000000000..b371ba9fab
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Perubahan utama di versi ini: Tambahkan dukungan untuk draf pesan suara. Banyak perbaikan bug!
+Changelog lengkap: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/id/changelogs/40103100.txt b/fastlane/metadata/android/id/changelogs/40103100.txt
new file mode 100644
index 0000000000..0254c176ee
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Dukungan untuk fitur poll (dalam Uji Coba), dan desain tampilan URL baru.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/id/changelogs/40103110.txt b/fastlane/metadata/android/id/changelogs/40103110.txt
new file mode 100644
index 0000000000..3b325f7f03
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Perbaikan bug!
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/id/changelogs/40103120.txt b/fastlane/metadata/android/id/changelogs/40103120.txt
new file mode 100644
index 0000000000..c765575ad7
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Perbaikan bug!
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/id/changelogs/40103130.txt b/fastlane/metadata/android/id/changelogs/40103130.txt
new file mode 100644
index 0000000000..2b81855beb
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Perubahan pertama di layar permulaan, termasuk analitik opt-in. Dukungan untuk Peristiwa dengan Matematika ditambahkan di Uji Coba.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/id/changelogs/40103140.txt b/fastlane/metadata/android/id/changelogs/40103140.txt
new file mode 100644
index 0000000000..cabf0750e0
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Perubahan pertama di layar permulaan, termasuk analitik opt-in. Dukungan untuk Peristiwa dengan Matematika ditambahkan di Uji Coba.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/id/changelogs/40103150.txt b/fastlane/metadata/android/id/changelogs/40103150.txt
new file mode 100644
index 0000000000..27fc93215b
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Perubahan pertama di layar permulaan, termasuk analitik opt-in. Dukungan untuk Peristiwa dengan Matematika ditambahkan di Uji Coba.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/id/changelogs/40103160.txt b/fastlane/metadata/android/id/changelogs/40103160.txt
new file mode 100644
index 0000000000..418853bb2c
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Kirim lokasi Anda ke ruangan apa saja. Pengeditan pemungutan suara.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/id/changelogs/40103170.txt b/fastlane/metadata/android/id/changelogs/40103170.txt
new file mode 100644
index 0000000000..eebdcf5858
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: kirim lokasi Anda ke ruangan apa saja. Pengeditan pemungutan suara.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/id/changelogs/40103180.txt b/fastlane/metadata/android/id/changelogs/40103180.txt
new file mode 100644
index 0000000000..6ec4c2c1bc
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: kirim lokasi Anda ke ruangan apa saja. Pengeditan pemungutan suara.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/id/changelogs/40104000.txt b/fastlane/metadata/android/id/changelogs/40104000.txt
new file mode 100644
index 0000000000..88e8e3ddf3
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: Implementasi awal perpesanan utasan. Gelembung pesan.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/id/changelogs/40104020.txt b/fastlane/metadata/android/id/changelogs/40104020.txt
new file mode 100644
index 0000000000..cb6b4165e0
--- /dev/null
+++ b/fastlane/metadata/android/id/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Perubahan utama dalam versi ini: tambahkan dukungan untuk @room dan pemungutan suara tertutup dan banyak perubahan kecil lainnya.
+Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/id/full_description.txt b/fastlane/metadata/android/id/full_description.txt
index d28ae8b004..d3bed0bf6b 100644
--- a/fastlane/metadata/android/id/full_description.txt
+++ b/fastlane/metadata/android/id/full_description.txt
@@ -26,7 +26,7 @@ Element menempatkan Anda dalam kendali dengan cara yang berbeda:
2. Host sendiri akun Anda dengan menjalankan server pada infrastruktur IT Anda sendiri
3. Daftar untuk akun di server khusus dengan berlangganan platform hosting Layanan Matrix Element
-Pesan terbuka dan kolaborasi
+Perpesanan dan kolaborasi terbuka
Anda dapat mengobrol dengan siapa saja di jaringan Matrix, jika mereka menggunakan Element, aplikasi Matrix lain atau bahkan menggunakan aplikasi perpesanan yang berbeda.
Sangat aman
diff --git a/fastlane/metadata/android/id/short_description.txt b/fastlane/metadata/android/id/short_description.txt
index 1cd770dd73..72c520403c 100644
--- a/fastlane/metadata/android/id/short_description.txt
+++ b/fastlane/metadata/android/id/short_description.txt
@@ -1 +1 @@
-Perpesanan grup - perpesanan, panggilan suara dan video grup terenkripsi
+Perpesanan grup — perpesanan, panggilan suara dan video grup terenkripsi
diff --git a/fastlane/metadata/android/id/title.txt b/fastlane/metadata/android/id/title.txt
index aec5dc9351..08ad7afa67 100644
--- a/fastlane/metadata/android/id/title.txt
+++ b/fastlane/metadata/android/id/title.txt
@@ -1 +1 @@
-Element - Perpesanan Aman
+Element — Perpesanan Aman
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103070.txt b/fastlane/metadata/android/it-IT/changelogs/40103070.txt
new file mode 100644
index 0000000000..d4d9551c54
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: correzioni riguardo le notifiche.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103080.txt b/fastlane/metadata/android/it-IT/changelogs/40103080.txt
new file mode 100644
index 0000000000..52d0093b3f
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: correzioni di errori!
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103090.txt b/fastlane/metadata/android/it-IT/changelogs/40103090.txt
new file mode 100644
index 0000000000..d91ecfe530
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: aggiunto supporto per le bozze dei vocali. Molte correzioni!
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103100.txt b/fastlane/metadata/android/it-IT/changelogs/40103100.txt
new file mode 100644
index 0000000000..d6036ff048
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: aggiunto supporto per i sondaggi (in labs). Nuovo design anteprime URL.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103110.txt b/fastlane/metadata/android/it-IT/changelogs/40103110.txt
new file mode 100644
index 0000000000..2db15676dc
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: correzioni di errori!
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103120.txt b/fastlane/metadata/android/it-IT/changelogs/40103120.txt
new file mode 100644
index 0000000000..7756f8f186
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: correzioni di errori!
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103130.txt b/fastlane/metadata/android/it-IT/changelogs/40103130.txt
new file mode 100644
index 0000000000..d113b7ac66
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: prima modifica nelle schermate onboarding, incluso l'opt-in di Analytics. Supporto agli eventi con Math aggiunto nei laboratori.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103140.txt b/fastlane/metadata/android/it-IT/changelogs/40103140.txt
new file mode 100644
index 0000000000..b875832368
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: prima modifica nelle schermate onboarding, incluso l'opt-in di Analytics. Supporto agli eventi con Math aggiunto nei laboratori.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103150.txt b/fastlane/metadata/android/it-IT/changelogs/40103150.txt
new file mode 100644
index 0000000000..0e7586be19
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: prima modifica nelle schermate onboarding, incluso l'opt-in di Analytics. Supporto agli eventi con Math aggiunto nei laboratori.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103160.txt b/fastlane/metadata/android/it-IT/changelogs/40103160.txt
new file mode 100644
index 0000000000..fae2b8f1f9
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: invia la tua posizione in qualsiasi stanza. Modifica sondaggi.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103170.txt b/fastlane/metadata/android/it-IT/changelogs/40103170.txt
new file mode 100644
index 0000000000..f490bc3f0d
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: invia la tua posizione in qualsiasi stanza. Modifica dei sondaggi.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/it-IT/changelogs/40103180.txt b/fastlane/metadata/android/it-IT/changelogs/40103180.txt
new file mode 100644
index 0000000000..9872ddcb9b
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: invia la tua posizione in qualsiasi stanza. Modifica dei sondaggi.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104000.txt b/fastlane/metadata/android/it-IT/changelogs/40104000.txt
new file mode 100644
index 0000000000..f22a00901c
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: prima implementazione delle discussioni. Messaggi a bolla.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/it-IT/changelogs/40104020.txt b/fastlane/metadata/android/it-IT/changelogs/40104020.txt
new file mode 100644
index 0000000000..89535acf2e
--- /dev/null
+++ b/fastlane/metadata/android/it-IT/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Modifiche principali in questa versione: aggiunto supporto a @stanza e sondaggi non divulgati, molte altre modifiche.
+Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/iw-IL/changelogs/40103180.txt b/fastlane/metadata/android/iw-IL/changelogs/40103180.txt
new file mode 100644
index 0000000000..9649c6839c
--- /dev/null
+++ b/fastlane/metadata/android/iw-IL/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+שינויים עיקריים בגרסה זו: שלח את המיקום שלך לכל חדר. ערוך סקר.
+יומן שינויים מלא: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/iw-IL/full_description.txt b/fastlane/metadata/android/iw-IL/full_description.txt
index fe3bc16661..1545634b33 100644
--- a/fastlane/metadata/android/iw-IL/full_description.txt
+++ b/fastlane/metadata/android/iw-IL/full_description.txt
@@ -28,3 +28,6 @@
תקשורת מלאה : הודעות, שיחות קול ווידאו, שיתוף קבצים, שיתוף מסך וחבורה שלמה של אינטגרציות, בוטים ווידג'טים. לבנות חדרים, קהילות, לשמור על קשר ולעשות דברים.
בכל מקום שאתה נמצא : הישאר בקשר בכל מקום שאתה נמצא עם היסטוריית הודעות מסונכרנת לחלוטין בכל המכשירים שלך באינטרנט בכתובת https://app.element.io.
+
+קוד פתוח:
+Element Android הוא פרויקט קוד פתוח, המתארח על ידי GitHub. נא לדווח על באגים ו/או לתרום לפיתוחה בכתובת https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100100.txt b/fastlane/metadata/android/ja-JP/changelogs/40100100.txt
index 8359a12964..48af96d216 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100100.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100100.txt
@@ -1,2 +1,2 @@
今回の新バージョンでは、主にバグの修正と改善が行われています。メッセージの送信がより速くなりました。
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.10
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.10
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100110.txt b/fastlane/metadata/android/ja-JP/changelogs/40100110.txt
index c93db421af..b8b9798fcd 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100110.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100110.txt
@@ -1,2 +1,2 @@
今回の新バージョンでは、主にUI(ユーザーインターフェース)とUX(ユーザーエクスペリエンス)の向上が図られています。友達を招待したり、QRコードを読み取って素早くDMを作成できるようになりました。
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.11
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.11
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100120.txt b/fastlane/metadata/android/ja-JP/changelogs/40100120.txt
index aace2ef79f..01c33c5d52 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100120.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100120.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.12
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.12
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100130.txt b/fastlane/metadata/android/ja-JP/changelogs/40100130.txt
index 97633621c5..941a052239 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100130.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100130.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.13
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.13
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100140.txt b/fastlane/metadata/android/ja-JP/changelogs/40100140.txt
index c340663127..6dc536cdcf 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100140.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100140.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: 部屋の許可、自動のテーマ切替、そして多くのバグを修正しました。
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.14
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.14
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100150.txt b/fastlane/metadata/android/ja-JP/changelogs/40100150.txt
index 42f28c7bea..caded1b8ed 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100150.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100150.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: ソーシャルログインに対応しました。
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.15
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.15
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100160.txt b/fastlane/metadata/android/ja-JP/changelogs/40100160.txt
index 8b5196998a..1b1a2092b0 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100160.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100160.txt
@@ -1,2 +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
+全ての変更履歴はこちら: 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
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40100170.txt b/fastlane/metadata/android/ja-JP/changelogs/40100170.txt
index 586b01cb2b..a0cc7b107d 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40100170.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40100170.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: バグの修正!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.17
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.17
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40101000.txt b/fastlane/metadata/android/ja-JP/changelogs/40101000.txt
index 25bbd7ab87..d0900f38c2 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40101000.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40101000.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.0
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.0
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40101010.txt b/fastlane/metadata/android/ja-JP/changelogs/40101010.txt
index 35ba933069..cb204e5696 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40101010.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40101010.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.1
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.1
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40101020.txt b/fastlane/metadata/android/ja-JP/changelogs/40101020.txt
index 88e3c79ca8..bb6ab66525 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40101020.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40101020.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.2
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.2
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40101030.txt b/fastlane/metadata/android/ja-JP/changelogs/40101030.txt
index 87d191b226..e7ecc05a0f 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40101030.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40101030.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.3
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.3
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40101160.txt b/fastlane/metadata/android/ja-JP/changelogs/40101160.txt
index a498487f46..985ea10510 100644
--- a/fastlane/metadata/android/ja-JP/changelogs/40101160.txt
+++ b/fastlane/metadata/android/ja-JP/changelogs/40101160.txt
@@ -1,2 +1,2 @@
このバージョンの主な変更点:ルームにて誰かがログアウトした際に発生するエラーを修正しました。
-すべての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.16
+全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.16
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40103160.txt b/fastlane/metadata/android/ja-JP/changelogs/40103160.txt
new file mode 100644
index 0000000000..5475828623
--- /dev/null
+++ b/fastlane/metadata/android/ja-JP/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+このバージョンの主な変更点:ルームへのロケーションの送信。投票機能の変更。
+更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40103170.txt b/fastlane/metadata/android/ja-JP/changelogs/40103170.txt
new file mode 100644
index 0000000000..61b91b54c0
--- /dev/null
+++ b/fastlane/metadata/android/ja-JP/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+このバージョンの主な変更点:ルームへのロケーションの送信。投票機能の変更。
+更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/ja-JP/changelogs/40103180.txt b/fastlane/metadata/android/ja-JP/changelogs/40103180.txt
new file mode 100644
index 0000000000..ae4f1a0a0f
--- /dev/null
+++ b/fastlane/metadata/android/ja-JP/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+このバージョンの主な変更点:ルームへのロケーションの送信。投票機能の変更。
+更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/ja-JP/full_description.txt b/fastlane/metadata/android/ja-JP/full_description.txt
index 4e7b01cce3..6014938cce 100644
--- a/fastlane/metadata/android/ja-JP/full_description.txt
+++ b/fastlane/metadata/android/ja-JP/full_description.txt
@@ -1,39 +1,42 @@
-Elementはセキュアなメッセンジャーであると同時に、リモートワークでのグループチャットにも最適です。エンドツーエンドの暗号化を使用して、強力なビデオ会議、ファイル共有、音声通話を提供します。
+Elementは、安全なメッセンジャー、リモートワーク中のグループチャットに適したチームコラボレーションアプリです。エンドツーエンドの暗号化を使用して、強力なビデオ会議、ファイル共有、音声通話を提供します。
Elementの特徴
- 高度なオンラインコミュニケーションツール
-- 完全に暗号化されたメッセージ
+- 完全に暗号化されたメッセージにより、リモートワーカーでも、より安全な企業コミュニケーションが可能
- Matrixオープンソースフレームワークをベースにした分散型のチャット
- プロジェクトを管理しながら、暗号化されたデータで安全にファイル共有
- Voice over IPによるビデオチャットと画面共有
-- お気に入りのオンラインコラボレーションツール、プロジェクト管理ツール、VoIPサービス、その他のチームメッセージングアプリと統合可能
+- お気に入りのオンラインコラボレーションツール、プロジェクト管理ツール、VoIPサービス、その他のチームメッセージングアプリと簡単に統合可能
-Elementは他のメッセージングアプリやコラボレーションアプリとは異なります。安全なメッセージングと分散型(非中央集権)コミュニケーションのためのオープンネットワークであるMatrixで動作します。また、ユーザーが自分のデータやメッセージを最大限にコントロールできるように、セルフホスティングも可能です。
+Elementは他のメッセージングアプリやコラボレーションアプリとは全く異なります。安全なメッセージングと分散型(非中央集権)コミュニケーションのためのオープンネットワークであるMatrixで動作します。ユーザーが自分のデータやメッセージを最大限にコントロールできるように、セルフホスティングも可能です。
-プライバシーと暗号化されたやりとり
-Elementは、望ましくない広告、データマイニング、ウォールドガーデンからユーザーを保護します。また、エンド・ツー・エンドの暗号化と相互署名されたデバイスの検証により、すべてのデータ、1対1のビデオおよび音声通信を保護します。
+プライバシーと暗号化されたコミュニケーション
+Elementは、望ましくない広告、データマイニング、ウォールドガーデンからユーザーを保護します。また、エンド・ツー・エンドの暗号化と相互署名された端末の検証により、全てのデータ、1対1のビデオおよび音声通信を保護します。
-Elementは、Slackなどのアプリと統合することで、Matrixネットワーク上の誰とでも安全にコミュニケーションをとることができると同時に、プライバシーをコントロールすることができます。
+Elementは、Slackなどのアプリと統合することで、Matrixネットワーク上の誰とでも安全にコミュニケーションを取ることができると同時に、プライバシーをコントロールすることができます。
Elementはセルフホスティングが可能
-機密データや会話の管理を強化するために、Elementはセルフホスティングが可能で、オープンソースの分散型コミュニケーションの標準であるマトリックスベースのホストを選択することもできます。Elementは、プライバシー、セキュリティコンプライアンス、および統合の柔軟性を提供します。
+機密データや会話の管理を強化するために、Elementはセルフホスティングが可能です。または、オープンソースの分散型コミュニケーションの標準であるMatrixベースのホストを選択することもできます。Elementは、プライバシー、セキュリティーコンプライアンス、および統合の柔軟性を提供します。
-データを所有する
-データやメッセージをどこに保管するかは、お客様が決めることができます。データマイニングやサードパーティからのアクセスされません。
+自分のデータを所有する
+データやメッセージをどこに保管するかは、ユーザー自身が決めることができます。データマイニングやサードパーティからのアクセスのリスクはありません。
-Elementではどのサーバーを使うか決めることができます。さまざまな方法で選択できます。
+Elementでは、どのサーバーを使うかを、ご自身で決めることができます。
1. 開発者がホストする matrix.org のパブリックサーバーで無料アカウントを取得するか、ボランティアがホストしているパブリックサーバーから選択する。
-2. 自分でサーバを実行することにより、アカウントをセルフホストする。
-3. Element Matrix Servicesのホスティングプラットフォームに加入しカスタムサーバー上でアカウントを作る。
+2. あなた自身がサーバーを運営し、アカウントを管理する。
+3. Element Matrix Servicesのホスティングプラットフォームに加入し、カスタムサーバー上でアカウントを作る。
オープンなメッセージングとコラボレーション
-Matrixネットワーク上の誰とでも、相手がElementを使っているか、他のMatrixアプリを使っていてもコミュニケーションすることができます。
+Matrixネットワーク上の誰とでも、相手がElementや他のMatrixアプリを使っているか、さらには他のメッセージングアプリを使っているかに関わらず、チャットをすることができます。
-すごく安全
-本物のエンド・ツー・エンドの暗号化(会話に参加している人だけがメッセージを復号化できる)と、相互署名されたデバイスの検証を行います。
+非常に安全
+本物のエンド・ツー・エンドの暗号化(会話に参加している人だけがメッセージを復号化できる)と、相互署名された端末の検証を行います。
包括的なコミュニケーションと統合
-メッセージング、音声およびビデオ通話、ファイル共有、画面共有、その他多くの統合、ボット、ウィジェットを提供します。部屋やコミュニティを作り、連絡を取り合い、物事を成し遂げることができます。
+メッセージング、音声およびビデオ通話、ファイル共有、画面共有、その他多くのインテグレーション、ボット、ウィジェットを提供します。ルームやコミュニティーを立ち上げて連絡を取り合い、物事をスムーズに成し遂げることができます。
-中断からの再開は
-すべてのデバイスとウェブで完全に同期されたメッセージにより、どこにいても連絡を取り合うことができます。https://app.element.io
+中断からの再開
+メッセージの履歴は全ての端末とウェブ(https://app.element.io)で完全に同期されるので、どこからでも連絡を取り合うことができます。
+
+オープンソース
+Element AndroidはGitHubで開発されているオープンソースのプロジェクトです。 バグの報告や開発への貢献は https://github.com/vector-im/element-android にて受け付けています。
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103070.txt b/fastlane/metadata/android/nl-NL/changelogs/40103070.txt
new file mode 100644
index 0000000000..c2496fa34d
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Bugfixes voornamelijk met betrekking tot de meldingen.
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103080.txt b/fastlane/metadata/android/nl-NL/changelogs/40103080.txt
new file mode 100644
index 0000000000..8ed093a460
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Bugfixes!
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103090.txt b/fastlane/metadata/android/nl-NL/changelogs/40103090.txt
new file mode 100644
index 0000000000..e4a7f63089
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Ondersteuning toevoegen voor spraakberichtconcept. Veel bugfixes!
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103100.txt b/fastlane/metadata/android/nl-NL/changelogs/40103100.txt
new file mode 100644
index 0000000000..883c656577
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Ondersteuning toevoegen voor polls (in labs). Nieuw URL-voorbeeldontwerp.
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103110.txt b/fastlane/metadata/android/nl-NL/changelogs/40103110.txt
new file mode 100644
index 0000000000..ae1685270b
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Bugfixes!
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/nl-NL/changelogs/40103120.txt b/fastlane/metadata/android/nl-NL/changelogs/40103120.txt
new file mode 100644
index 0000000000..39d3f5fb43
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Belangrijkste wijzigingen in deze versie: Bugfixes!
+Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/nl-NL/short_description.txt b/fastlane/metadata/android/nl-NL/short_description.txt
new file mode 100644
index 0000000000..107e30f48d
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/short_description.txt
@@ -0,0 +1 @@
+Groepsberichten - versleutelde berichten, groepschat en videogesprekken
diff --git a/fastlane/metadata/android/nl-NL/title.txt b/fastlane/metadata/android/nl-NL/title.txt
new file mode 100644
index 0000000000..7b5a887213
--- /dev/null
+++ b/fastlane/metadata/android/nl-NL/title.txt
@@ -0,0 +1 @@
+Element - Veilige Berichten
diff --git a/fastlane/metadata/android/pl-PL/changelogs/40103070.txt b/fastlane/metadata/android/pl-PL/changelogs/40103070.txt
new file mode 100644
index 0000000000..2cb20a9570
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Główne zmiany w tej wersji: Poprawki błędów dotyczące głównie powiadomień
+Pełny changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.7
diff --git a/fastlane/metadata/android/pl-PL/full_description.txt b/fastlane/metadata/android/pl-PL/full_description.txt
new file mode 100644
index 0000000000..77c13cebc1
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/full_description.txt
@@ -0,0 +1,42 @@
+Element jest bezpiecznym komunikatorem oraz narzędziem do komunikacji w zespole które jest idealna do pracy zdalnej. Nasza aplikacja korzysta z szyfrowania end-to-end aby rozmowy wideo, udostępnianie plików oraz rozmowy głosowe były bezpieczne.
+
+Funkcje Element'a:
+- Zaawansowane narzędzia komunikacji online
+- W pełni szyfrowane wiadomości które umożliwiają bezpieczniejszą komunikacje dla firm, a nawet dla pracowników zdalnych.
+- Zdecentralizowany czat bazowany na otwartym protokole Matrix
+- Bezpieczne udostępnianie plików wraz z szyfrowaniem danych podczas zarządzania projektami
+- Rozmowy z Voice over IP wraz z udostępnianiem ekranu
+- Prosta konfiguracja z ulubionymi narzędziami do kolaboracji, narzędziami do zarządzania projektami usługami VoIP oraz innymi aplikacjami do komunikacji w grupie
+
+Element jest całkowicie inny od innych komunikatorów i aplikacji do kolaboracji. Pracuje na protokole Matrix, otwarto źródłowej sieci stworzonej dla bezpiecznych wiadomości i zdecentralizowanej komunikacji. Pozwala ona na własny hosting serwera dla maksymalnej własności i kontroli nad danymi oraz wiadomościami.
+
+Prywatność i szyfrowane wiadomości
+Element broni cie przez niechcianymi wiadomościami, kopaniem informacji oraz cenzurą. Zabezpiecza wszystkie twoje dane, wideo które pozostaje wiadome tylko dla rozmawiających przez szyfrowanie end-to-end i weryfikacją krzyżową urządzeń.
+
+Element daje kontrole nad twoją prywatnością i umożliwia bezpieczną komunikacje z kimkolwiek w sieci Matrix, lub z innymi firmami przez narzędzia do komunikacji integrując aplikacje takie jak Slack.
+
+Element może być hostowany samemu
+Pozwala to na kontrolę nad twoimi wrażliwymi danymi oraz rozmowami, Element może być hostowany samemu lub pozwala wybrać dowolnego hosta bazowanego na Matrix'ie - otwarto-źródłowym standardzie, dla zdecentralizowanej komunikacji. Element daje tobie prywatność, bezpieczeństwo oraz elastyczność w integracji.
+
+Posiadaj naprawdę swoje dane
+Ty decydujesz gdzie trzymasz swoje dane i wiadomości. Bez ryzyka wycieku lub dostępu firm trzecich.
+
+Element daje ci kontrolę na wiele sposobów:
+1. Utwórz darmowe konto na publicznym serwerze matrix.org hostowanym przez twórców Matrix'a lub wybierz którykolwiek z tysięcy serwerów hostowanych przez wolontariuszy
+2. Hostuj samemu swoje konto przez własny serwer na twojej infrastrukturze
+3. Zarejestruj się na specjalnym serwerze poprzez subskrybowanie hostingu na platformie Element Martix Services
+
+Otwarte wiadomości i kolaboracja
+Możesz rozmawiać z kimkolwiek w sieci Matrix, nie ważne czy korzystają z Element'a, czy z innej aplikacji wspierającej protokół Matrix, a nawet z osobami korzystającymi z innych komunikatorów.
+
+Niesamowicie bezpieczny
+Prawdziwe szyfrowanie end-to-end (tylko osoby w konwersacji mogą odszyfrować wiadomości), a także krzyżowa weryfikacja urządzeń.
+
+Pełna komunikacja i integracja
+Wiadomości, rozmowy głosowe i wideo, udostępnianie plików, ekranu, a nawet integracja z botami i widżetami. Twórz pokoje, społeczności, pozostań w kontakcie i załatwiaj to co chcesz.
+
+Kontynuuj gdzie skończyłeś
+Pozostań zawsze w kontakcie poprzez pełną synchornizację między urządzeniami oraz w sieci na https://app.element.io
+
+Otwarto źródłowy
+Element Android jest otwarto-źródłowym projektem, hostowanym na platformie GitHub. Prosimy o zgłaszanie wszelkich błędów i/lub wsparcie w tworzeniu naszego projektu na https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/pl-PL/short_description.txt b/fastlane/metadata/android/pl-PL/short_description.txt
new file mode 100644
index 0000000000..ce473af2a9
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/short_description.txt
@@ -0,0 +1 @@
+Grupowy komunikator - szyfrowane wiadomosci, grupowe czaty oraz rozmowy wideo
diff --git a/fastlane/metadata/android/pl-PL/title.txt b/fastlane/metadata/android/pl-PL/title.txt
new file mode 100644
index 0000000000..907f907f99
--- /dev/null
+++ b/fastlane/metadata/android/pl-PL/title.txt
@@ -0,0 +1 @@
+Element
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103070.txt b/fastlane/metadata/android/pt-BR/changelogs/40103070.txt
new file mode 100644
index 0000000000..a2b326d8a1
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Consertos de bugs principalmente quanto às notificações.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103080.txt b/fastlane/metadata/android/pt-BR/changelogs/40103080.txt
new file mode 100644
index 0000000000..0f2fbc2180
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Consertos de bugs!
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103090.txt b/fastlane/metadata/android/pt-BR/changelogs/40103090.txt
new file mode 100644
index 0000000000..9f67fd2d62
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Adicionar suporte para rascunho de mensagem de voz. Muitos consertos de bugs!
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103100.txt b/fastlane/metadata/android/pt-BR/changelogs/40103100.txt
new file mode 100644
index 0000000000..9912e2ccf1
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Adicionar suporte para sondagens (em labs). Novo design de previsualização de URL.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103110.txt b/fastlane/metadata/android/pt-BR/changelogs/40103110.txt
new file mode 100644
index 0000000000..a1f4d11acf
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Consertos de bugs!
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103120.txt b/fastlane/metadata/android/pt-BR/changelogs/40103120.txt
new file mode 100644
index 0000000000..b511348152
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Consertos de bugs!
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103130.txt b/fastlane/metadata/android/pt-BR/changelogs/40103130.txt
new file mode 100644
index 0000000000..6f4975d01c
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Primeira mudança em telas de onboarding, incluindo opt-in de Analítica. Suporte para Eventos com Matemática adicionado nos labs.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103140.txt b/fastlane/metadata/android/pt-BR/changelogs/40103140.txt
new file mode 100644
index 0000000000..ab7470b96b
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Primeira mudança em telas de onboarding, incluindo opt-in de Analítica. Suporte para Eventos com Matemática adicionado nos labs.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103150.txt b/fastlane/metadata/android/pt-BR/changelogs/40103150.txt
new file mode 100644
index 0000000000..40439e3f94
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Primeira mudança em telas de onboarding, incluindo opt-in de Analítica. Suporte para Eventos com Matemática adicionado nos labs.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103160.txt b/fastlane/metadata/android/pt-BR/changelogs/40103160.txt
new file mode 100644
index 0000000000..59ade40e9e
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: envie sua localização para qualquer sala. Editar sondagem.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103170.txt b/fastlane/metadata/android/pt-BR/changelogs/40103170.txt
new file mode 100644
index 0000000000..1266131db7
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: envie sua localização para qualquer sala. Editar sondagem.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40103180.txt b/fastlane/metadata/android/pt-BR/changelogs/40103180.txt
new file mode 100644
index 0000000000..56e23a2be4
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: envie sua localização para qualquer sala. Editar sondagem.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104000.txt b/fastlane/metadata/android/pt-BR/changelogs/40104000.txt
new file mode 100644
index 0000000000..990d98af76
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: Implementação inicial de mensagens de thread. Bolhas de mensagem.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/pt-BR/changelogs/40104020.txt b/fastlane/metadata/android/pt-BR/changelogs/40104020.txt
new file mode 100644
index 0000000000..4784c4fb38
--- /dev/null
+++ b/fastlane/metadata/android/pt-BR/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Principais mudanças nesta versão: adicionar suporte para @room e sondagens não-divulgadas entre muitas outras pequenas mudanças.
+Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103050.txt b/fastlane/metadata/android/ru-RU/changelogs/40103050.txt
new file mode 100644
index 0000000000..6f864e59dc
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Добавлена поддержка присутствия для комнаты личных сообщений (примечание: присутствие отключено на matrix.org). Добавьте снова поддержку Android Auto.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103060.txt b/fastlane/metadata/android/ru-RU/changelogs/40103060.txt
new file mode 100644
index 0000000000..975b92ef9b
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Добавлена поддержка присутствия для комнаты личных сообщений (примечание: присутствие отключено на matrix.org). Добавьте снова поддержку Android Auto.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103070.txt b/fastlane/metadata/android/ru-RU/changelogs/40103070.txt
new file mode 100644
index 0000000000..8ba9ea6417
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Исправлены ошибки, в основном касающиеся уведомлений.
+Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103080.txt b/fastlane/metadata/android/ru-RU/changelogs/40103080.txt
new file mode 100644
index 0000000000..bf47216dfb
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Исправлены ошибки!
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103090.txt b/fastlane/metadata/android/ru-RU/changelogs/40103090.txt
new file mode 100644
index 0000000000..95a482a48c
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Добавлена поддержка черновика голосового сообщения. Много исправлений!
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103100.txt b/fastlane/metadata/android/ru-RU/changelogs/40103100.txt
new file mode 100644
index 0000000000..73aab13115
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Исправлены ошибки!
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103110.txt b/fastlane/metadata/android/ru-RU/changelogs/40103110.txt
new file mode 100644
index 0000000000..836fd5131e
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Исправлены ошибки!
+Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103120.txt b/fastlane/metadata/android/ru-RU/changelogs/40103120.txt
new file mode 100644
index 0000000000..fb1bf5cb37
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Первое изменение экранов регистрации, включая подписку на Analytics. Добавлена поддержка событий с математикой в лабораториях.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103130.txt b/fastlane/metadata/android/ru-RU/changelogs/40103130.txt
new file mode 100644
index 0000000000..fb1bf5cb37
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Первое изменение экранов регистрации, включая подписку на Analytics. Добавлена поддержка событий с математикой в лабораториях.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103140.txt b/fastlane/metadata/android/ru-RU/changelogs/40103140.txt
new file mode 100644
index 0000000000..f1144e7022
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Первое изменение экранов регистрации, включая подписку на Analytics. Добавлена поддержка событий с математикой в лабораториях.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103150.txt b/fastlane/metadata/android/ru-RU/changelogs/40103150.txt
new file mode 100644
index 0000000000..87becb7910
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: Первое изменение экранов регистрации, включая подписку на Analytics. Добавлена поддержка событий с математикой в лабораториях.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103160.txt b/fastlane/metadata/android/ru-RU/changelogs/40103160.txt
new file mode 100644
index 0000000000..fb8e01c009
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: отправьте свое местоположение в любую комнату. Редактирование опроса.
+Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103170.txt b/fastlane/metadata/android/ru-RU/changelogs/40103170.txt
new file mode 100644
index 0000000000..08286401e2
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: отправка вашего местоположения в любую комнату. Изменить опрос.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/ru-RU/changelogs/40103180.txt b/fastlane/metadata/android/ru-RU/changelogs/40103180.txt
new file mode 100644
index 0000000000..08286401e2
--- /dev/null
+++ b/fastlane/metadata/android/ru-RU/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Основные изменения в этой версии: отправка вашего местоположения в любую комнату. Изменить опрос.
+Полный журнал изменений: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/ru-RU/title.txt b/fastlane/metadata/android/ru-RU/title.txt
index b7b25082a4..907f907f99 100644
--- a/fastlane/metadata/android/ru-RU/title.txt
+++ b/fastlane/metadata/android/ru-RU/title.txt
@@ -1 +1 @@
-Element - Безопасный мессенджер
+Element
diff --git a/fastlane/metadata/android/sk/changelogs/40101000.txt b/fastlane/metadata/android/sk/changelogs/40101000.txt
new file mode 100644
index 0000000000..5d267bd7dc
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101000.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Vylepšenie VoIP (audio a video hovory v priamych správach) a opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.0
diff --git a/fastlane/metadata/android/sk/changelogs/40101010.txt b/fastlane/metadata/android/sk/changelogs/40101010.txt
new file mode 100644
index 0000000000..164166fba8
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101010.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: zlepšenie výkonu a opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.1
diff --git a/fastlane/metadata/android/sk/changelogs/40101020.txt b/fastlane/metadata/android/sk/changelogs/40101020.txt
new file mode 100644
index 0000000000..379db42cca
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101020.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: zlepšenie výkonu a opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.2
diff --git a/fastlane/metadata/android/sk/changelogs/40101030.txt b/fastlane/metadata/android/sk/changelogs/40101030.txt
new file mode 100644
index 0000000000..b99ebb9e99
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101030.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: zlepšenie výkonu a opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.3
diff --git a/fastlane/metadata/android/sk/changelogs/40101040.txt b/fastlane/metadata/android/sk/changelogs/40101040.txt
new file mode 100644
index 0000000000..884305c478
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101040.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: zlepšenie výkonu a opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.4
diff --git a/fastlane/metadata/android/sk/changelogs/40101050.txt b/fastlane/metadata/android/sk/changelogs/40101050.txt
new file mode 100644
index 0000000000..22dc095371
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101050.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: rýchle opravy pre verziu 1.1.4
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.5
diff --git a/fastlane/metadata/android/sk/changelogs/40101060.txt b/fastlane/metadata/android/sk/changelogs/40101060.txt
new file mode 100644
index 0000000000..70ac5cad57
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101060.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: rýchle opravy pre verziu 1.1.5
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.6
diff --git a/fastlane/metadata/android/sk/changelogs/40101070.txt b/fastlane/metadata/android/sk/changelogs/40101070.txt
new file mode 100644
index 0000000000..87eccd8f45
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101070.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: beta podpora pre priestory Spaces. Kompresia videa pred odoslaním.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.7
diff --git a/fastlane/metadata/android/sk/changelogs/40101080.txt b/fastlane/metadata/android/sk/changelogs/40101080.txt
new file mode 100644
index 0000000000..9484062b47
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101080.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: vylepšenie pre Priestory.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.8
diff --git a/fastlane/metadata/android/sk/changelogs/40101090.txt b/fastlane/metadata/android/sk/changelogs/40101090.txt
new file mode 100644
index 0000000000..5778db23a9
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101090.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: pridanie podpory pre sieť gitter.im.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.9
diff --git a/fastlane/metadata/android/sk/changelogs/40101100.txt b/fastlane/metadata/android/sk/changelogs/40101100.txt
new file mode 100644
index 0000000000..a23198c88b
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101100.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: aktualizácia témy a štýlu a nové funkcie pre priestory.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.10
diff --git a/fastlane/metadata/android/sk/changelogs/40101110.txt b/fastlane/metadata/android/sk/changelogs/40101110.txt
new file mode 100644
index 0000000000..45a095f0a8
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101110.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: aktualizácia témy a štýlu a nové funkcie pre priestory (oprava chyby pre verziu 1.1.10)
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.11
diff --git a/fastlane/metadata/android/sk/changelogs/40101120.txt b/fastlane/metadata/android/sk/changelogs/40101120.txt
new file mode 100644
index 0000000000..ba345c3150
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101120.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: aktualizácia témy a štýlu a oprava pádu po videohovore
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.12
diff --git a/fastlane/metadata/android/sk/changelogs/40101130.txt b/fastlane/metadata/android/sk/changelogs/40101130.txt
new file mode 100644
index 0000000000..6daf3e789b
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101130.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: hlavne aktualizácia stability a opravy chýb.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.13
diff --git a/fastlane/metadata/android/sk/changelogs/40101140.txt b/fastlane/metadata/android/sk/changelogs/40101140.txt
new file mode 100644
index 0000000000..c93fe1bb15
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101140.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: oprava problému so šifrovanými správami.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.14
diff --git a/fastlane/metadata/android/sk/changelogs/40101150.txt b/fastlane/metadata/android/sk/changelogs/40101150.txt
new file mode 100644
index 0000000000..87256269ab
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101150.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: implementácia hlasových správ v rámci nastavení laboratórií.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.15
diff --git a/fastlane/metadata/android/sk/changelogs/40101160.txt b/fastlane/metadata/android/sk/changelogs/40101160.txt
new file mode 100644
index 0000000000..5e12aab282
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40101160.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Oprava chyby pri odosielaní zašifrovanej správy, ak sa niekto v miestnosti odhlási.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.1.16
diff --git a/fastlane/metadata/android/sk/changelogs/40102000.txt b/fastlane/metadata/android/sk/changelogs/40102000.txt
new file mode 100644
index 0000000000..4d0093469b
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40102000.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Hlasová správa je predvolene povolená.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.2.0
diff --git a/fastlane/metadata/android/sk/changelogs/40102010.txt b/fastlane/metadata/android/sk/changelogs/40102010.txt
new file mode 100644
index 0000000000..ac1cbc4509
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40102010.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Mnohé vylepšenia v oblasti VoIP a Priestorov (stále v beta verzii).
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.2.1
diff --git a/fastlane/metadata/android/sk/changelogs/40103000.txt b/fastlane/metadata/android/sk/changelogs/40103000.txt
new file mode 100644
index 0000000000..2a669aa744
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103000.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Usporiadajte svoje miestnosti pomocou Priestorov!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.0
diff --git a/fastlane/metadata/android/sk/changelogs/40103010.txt b/fastlane/metadata/android/sk/changelogs/40103010.txt
new file mode 100644
index 0000000000..3a12a5910e
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Usporiadajte svoje miestnosti pomocou Priestorov! Verzia v1.3.1 opravuje pád, ktorý sa môže vyskytnúť vo verzii v1.3.0.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/sk/changelogs/40103020.txt b/fastlane/metadata/android/sk/changelogs/40103020.txt
new file mode 100644
index 0000000000..96cefe73ed
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory pre Android Auto. Množstvo opráv chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/sk/changelogs/40103030.txt b/fastlane/metadata/android/sk/changelogs/40103030.txt
new file mode 100644
index 0000000000..a14dba2c9d
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Zviditeľnite zásad servera totožností v nastaveniach. Dočasne odstránenie podpory Android Auto.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/sk/changelogs/40103040.txt b/fastlane/metadata/android/sk/changelogs/40103040.txt
new file mode 100644
index 0000000000..e2e6a98b07
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103040.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory prítomnosti pre miestnosť s priamymi správami (poznámka: prítomnosť je na matrix.org vypnutá). Opätovné pridanie podpory Android Auto.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.4
diff --git a/fastlane/metadata/android/sk/changelogs/40103050.txt b/fastlane/metadata/android/sk/changelogs/40103050.txt
new file mode 100644
index 0000000000..f5cc73a4e2
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory prítomnosti pre miestnosť s priamymi správami (poznámka: prítomnosť je na matrix.org vypnutá). Opätovné pridanie podpory Android Auto.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/sk/changelogs/40103060.txt b/fastlane/metadata/android/sk/changelogs/40103060.txt
new file mode 100644
index 0000000000..c9a3b8bb75
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory prítomnosti pre miestnosť s priamymi správami (poznámka: prítomnosť je na matrix.org vypnutá). Opätovné pridanie podpory Android Auto.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/sk/changelogs/40103070.txt b/fastlane/metadata/android/sk/changelogs/40103070.txt
new file mode 100644
index 0000000000..a048c03b17
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Opravy chýb týkajúce sa najmä oznámení.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/sk/changelogs/40103080.txt b/fastlane/metadata/android/sk/changelogs/40103080.txt
new file mode 100644
index 0000000000..7534c37681
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/sk/changelogs/40103090.txt b/fastlane/metadata/android/sk/changelogs/40103090.txt
new file mode 100644
index 0000000000..d719d5055c
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory pre návrh hlasovej správy. Oprava mnohých chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/sk/changelogs/40103100.txt b/fastlane/metadata/android/sk/changelogs/40103100.txt
new file mode 100644
index 0000000000..14a667c78d
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Pridanie podpory pre ankety (v laboratóriách). Nový dizajn náhľadu URL.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/sk/changelogs/40103110.txt b/fastlane/metadata/android/sk/changelogs/40103110.txt
new file mode 100644
index 0000000000..2c2ee1aa6d
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/sk/changelogs/40103120.txt b/fastlane/metadata/android/sk/changelogs/40103120.txt
new file mode 100644
index 0000000000..363e4aef24
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Opravy chýb!
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/sk/changelogs/40103130.txt b/fastlane/metadata/android/sk/changelogs/40103130.txt
new file mode 100644
index 0000000000..31f6cf31db
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Prvá zmena v obrazovkách pri vstupe do systému vrátane prihlásenia do služby Analytics. Pridanie podpory pre udalosti s matematikou v laboratóriách.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/sk/changelogs/40103140.txt b/fastlane/metadata/android/sk/changelogs/40103140.txt
new file mode 100644
index 0000000000..8e21829163
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Prvá zmena v obrazovkách pri vstupe do systému vrátane prihlásenia do služby Analytics. Pridanie podpory pre udalosti s matematikou v laboratóriách.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/sk/changelogs/40103150.txt b/fastlane/metadata/android/sk/changelogs/40103150.txt
new file mode 100644
index 0000000000..7016270d76
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Prvá zmena v obrazovkách pri vstupe do systému vrátane prihlásenia do služby Analytics. Pridanie podpory pre udalosti s matematikou v laboratóriách.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/sk/changelogs/40103160.txt b/fastlane/metadata/android/sk/changelogs/40103160.txt
new file mode 100644
index 0000000000..9d2ad76715
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: odoslanie polohy do ľubovoľnej miestnosti. Úprava ankety.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/sk/changelogs/40103170.txt b/fastlane/metadata/android/sk/changelogs/40103170.txt
new file mode 100644
index 0000000000..58e5f1fa61
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: odoslanie polohy do ľubovoľnej miestnosti. Úprava ankety.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/sk/changelogs/40103180.txt b/fastlane/metadata/android/sk/changelogs/40103180.txt
new file mode 100644
index 0000000000..b5649471cb
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: odoslanie polohy do ľubovoľnej miestnosti. Úprava ankety.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/sk/changelogs/40104000.txt b/fastlane/metadata/android/sk/changelogs/40104000.txt
new file mode 100644
index 0000000000..7b1d0ffaa5
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: Počiatočná implementácia správ vo vláknach. Správy v bublinách.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/sk/changelogs/40104020.txt b/fastlane/metadata/android/sk/changelogs/40104020.txt
new file mode 100644
index 0000000000..93a07082ba
--- /dev/null
+++ b/fastlane/metadata/android/sk/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Hlavné zmeny v tejto verzii: pridanie podpory pre @miestnost a nezverejnené ankety a mnoho ďalších drobných zmien.
+Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/sk/full_description.txt b/fastlane/metadata/android/sk/full_description.txt
index b4c9e98777..d653933c48 100644
--- a/fastlane/metadata/android/sk/full_description.txt
+++ b/fastlane/metadata/android/sk/full_description.txt
@@ -1,30 +1,42 @@
-Element je inovatívny kolaboračný komunikátor a messenger ktorý:
+Element je bezpečný messenger a zároveň aplikácia na tímovú spoluprácu, ktorá je ideálna na skupinové konverzácie pri práci na diaľku. Táto komunikačná aplikácia využíva end-to-end šifrovanie na poskytovanie výkonných videokonferencií, zdieľania súborov a hlasových hovorov.
-1. Ponecháva kontrolu nad vaším súkromím
-2. Umožňuje komunikovať s kýmkoľvek v sieti Matrix a vďaka integráciám aj s rôznymi inými aplikáciami ako napríklad Slack
-3. Chráni vás pred reklamami, zhromažďovaním údajov a uzavretými platformami
-4. Posilňuje vašu bezpečnosť vďaka E2E šifrovaniu a krížovému podpisovaniu určenému na overovanie ostatných
+Funkcie aplikácie Element zahŕňajú:
+- Pokročilé nástroje na online komunikáciu
+- Plne šifrované správy umožňujúce bezpečnejšiu firemnú komunikáciu aj pre pracovníkov na diaľku
+- Decentralizované konverzácie založené na open source frameworku Matrix
+- Bezpečné zdieľanie súborov so šifrovanými údajmi pri správe projektov
+- Videochaty s funkciou Voice over IP a zdieľaním obrazovky
+- Jednoduchá integrácia s obľúbenými nástrojmi na online spoluprácu, nástrojmi na riadenie projektov, službami VoIP a inými aplikáciami na tímovú komunikáciu
-Element sa od ostatných komunikačných a kolaboračných aplikácií odlišuje tým, že je decentralizovaný a open-source.
+Element sa úplne líši od ostatných aplikácií na zasielanie správ a spoluprácu. Funguje na Matrixe, otvorenej sieti na bezpečné posielanie správ a decentralizovanú komunikáciu. Umožňuje vlastný hosting, aby používatelia získali maximálne vlastníctvo a kontrolu nad svojimi údajmi a správami.
-S Elementom sa môžete pripojiť k vlastnému serveru alebo si môžete vybrať server s dôveryhodným poskytovateľom, čím si zachováte súkromie, vlastníctvo a kontrolu nad vašimi konverzáciami a údajmi. Získate tak prístup do otvorenej siete a teda nie ste limitovaní na komunikáciu len s ostatnými Element používateľmi. A samozrejme je vaša komunikácia dobre zabezpečná.
+Súkromie a šifrovanie správ
+Element vás chráni pred nežiaducimi reklamami, ťažbou údajov a tzv. walled gardens. Zabezpečuje tiež všetky vaše údaje, video a hlasovú komunikáciu jeden na jedného prostredníctvom end-to-end šifrovania a overovania zariadení krížovým podpisovaním.
-Element všetko toto dokáže vďaka tomu, že pracuje podľa protokolu Matrix - štandardu na otvorenú, decentralizovanú komunikáciu.
+Element vám poskytuje kontrolu nad vaším súkromím a zároveň vám umožňuje bezpečne komunikovať s kýmkoľvek v sieti Matrix alebo s inými nástrojmi na podnikovú spoluprácu vďaka integrácii s aplikáciami, ako je napríklad Slack.
-Element vám dáva kontrolu tým, že si samy vyberiete, ako budete spravovať (ang. host) vaše konverzácie. Priamo v aplikácii Element si môžete vybrať z rôznych spôsobov hostovania:
+Element môže byť na vašom vlastnom serveri
+Aby ste mali väčšiu kontrolu nad svojimi citlivými údajmi a konverzáciami, Element môže byť na vašom vlastnom serveri alebo si môžete vybrať ľubovoľný hosting založený na systéme Matrix - štandarde pre decentralizovanú komunikáciu s otvoreným zdrojovým kódom. Element vám poskytuje súkromie, súlad s bezpečnostnými predpismi a flexibilitu integrácie.
-1. Získajte účet zdarma na verejnom servery matrix.org od vývojárov protokolu Matrix alebo si vyberte z tísíce iných serverov hostovaných dobrovoľníkmi
-2. Hostujte si účet spustením vlastného servera použitím vlastného hardvéru
-3. Prihláste sa k účtu na vlastnom servery objednaním služieb na platforme Element Matrix Services
+Vlastnite svoje údaje
+Vy rozhodujete o tom, kde budú vaše údaje a správy uložené. Bez rizika získavania údajov alebo prístupu tretích strán.
-Prečo si vybrať Element?
+Element vám dáva kontrolu rôznymi spôsobmi:
+1. Získajte bezplatné konto na verejnom serveri matrix.org, ktorý hostia vývojári Matrixu, alebo si vyberte z tisícov verejných serverov, ktoré hostia dobrovoľníci.
+2. Vlastný hosting účtu spustením servera na vlastnej IT infraštruktúre.
+3. Zaregistrujte si účet na vlastnom serveri tak, že si jednoducho predplatíte hostingovú platformu Element Matrix Services.
-PONECHAJTE SI VAŠE ÚDAJE: Len vy rozhodujete o tom, kde si budete uchovávať vaše správy a ostatné údaje. Len vy vlastníte vaše údaje a riadite zaobchádzanie s nimi, nie nejaká megakorporácia, ktorá z nich ťaží alebo ich poskytuje tretím stranám.
+Otvorené zasielanie správ a spolupráca
+Môžete komunikovať s kýmkoľvek v sieti Matrix, či už používa aplikáciu Element, inú aplikáciu Matrix alebo dokonca ak používa inú aplikáciu na zasielanie správ.
-OTVORENÁ KOMUNIKÁCIA a KOLABORÁCIA: Konverzovať môžete s kýmkoľvek v otvorenej sieti Matrix nezávisle na tom, či používa Element, inú kompatibilnú aplikáciu, ba dokkonca aj s tými, ktorí používajú úplne inú platformu určenú na okamžitú komunikáciu ako sú Slack, IRC alebo XMPP.
+Vynikajúce zabezpečenie
+Skutočné end-to-end šifrovanie (správy môžu dešifrovať len účastníci konverzácie) a krížové overovanie zariadení.
-VEĽMI VYSOKÉ ZABEZPEČENIE: Skutočné šifrovanie od zariadenia k zariadeniu (len diskutujúci môžu dešifrovať správy) a krížové podpisovanie určené na overovanie jednotlivých zariadení členov konverzácií.
+Kompletná komunikácia a integrácia
+Správy, hlasové a video hovory, zdieľanie súborov, zdieľanie obrazovky a celý rad integrácií, botov a widgetov. Vytvárajte miestnosti, komunity, zostaňte v kontakte a vybavte veci.
-KOMPLETNÁ KOMUNIKÁCIA: Okamžité správy, telefonáty a video hovory, zdieľanie súborov, zdieľanie obrazovky a veľké množstvo integrácií, botov a widgetov. Vytvorte si vlastné miestnosti, založte komunity, ostante v kontakte a vyriešte problémy.
+Nadviažte tam, kde ste skončili
+Buďte v kontakte, nech ste kdekoľvek, vďaka plne synchronizovanej histórii správ vo všetkých zariadeniach a na webe na adrese https://app.element.io.
-KDEKOĽVEK SA NACHÁDZATE: Ostante v kontakte kdekoľvek ste s plne synchronizovanou históriou konverzácií naprieč všetkými vašimi zariadeniami a aj cez web na adrese https://app.element.io.
+Otvorený zdroj
+Element Android je projekt s otvoreným zdrojovým kódom, ktorého hostiteľom je GitHub. Nahláste prosím chyby a/alebo prispejte k jeho vývoju na https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/sk/short_description.txt b/fastlane/metadata/android/sk/short_description.txt
index 0744f4a617..942bd27ca8 100644
--- a/fastlane/metadata/android/sk/short_description.txt
+++ b/fastlane/metadata/android/sk/short_description.txt
@@ -1 +1 @@
-Zabezpečené konverzácie a VoIP. Ochráňte vaše údaje pred tretími stranami.
+Skupinový messenger - šifrované správy, skupinové konverzácie a videohovory
diff --git a/fastlane/metadata/android/sk/title.txt b/fastlane/metadata/android/sk/title.txt
index dd02c784e8..fa7155e82e 100644
--- a/fastlane/metadata/android/sk/title.txt
+++ b/fastlane/metadata/android/sk/title.txt
@@ -1 +1 @@
-Element (kedysi Riot.im)
+Element - Bezpečný messenger
diff --git a/fastlane/metadata/android/sq/changelogs/40103070.txt b/fastlane/metadata/android/sq/changelogs/40103070.txt
new file mode 100644
index 0000000000..400188a8b3
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash të lidhura kryesisht me njoftimet.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/sq/changelogs/40103080.txt b/fastlane/metadata/android/sq/changelogs/40103080.txt
new file mode 100644
index 0000000000..24d719c14c
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash!
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/sq/changelogs/40103090.txt b/fastlane/metadata/android/sq/changelogs/40103090.txt
new file mode 100644
index 0000000000..2dae814fc1
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Shtim mbulimi për skica mesazhesh zanore. Mjaft ndreqje të metash!
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/sq/changelogs/40103100.txt b/fastlane/metadata/android/sq/changelogs/40103100.txt
new file mode 100644
index 0000000000..c6916fa0ab
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Shtim mbulimi për anketime (në zhvillim). Skemë e re grafike për paraprje URL-sh.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/sq/changelogs/40103110.txt b/fastlane/metadata/android/sq/changelogs/40103110.txt
new file mode 100644
index 0000000000..f66779b5ef
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash!
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/sq/changelogs/40103120.txt b/fastlane/metadata/android/sq/changelogs/40103120.txt
new file mode 100644
index 0000000000..279c523a82
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndreqje të metash!
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/sq/changelogs/40103130.txt b/fastlane/metadata/android/sq/changelogs/40103130.txt
new file mode 100644
index 0000000000..abae5b8206
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndryshimi i parë te skena e mirëseardhjeve, përfshi zgjedhje për pjesëmarrje në Analizime. Mbulim për Akte dhe Formula Matematikore të shtuara te laboratorë.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/sq/changelogs/40103140.txt b/fastlane/metadata/android/sq/changelogs/40103140.txt
new file mode 100644
index 0000000000..b8231bdf78
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndryshimi i parë në skenat e mirëseardhjes, përfshi zgjedhje për pjesëmarrje në Analiza. Në laboratorë u shtua mbulim për Akte me Formula Matematikore.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/sq/changelogs/40103150.txt b/fastlane/metadata/android/sq/changelogs/40103150.txt
new file mode 100644
index 0000000000..510fbab96e
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: Ndryshimi i parë në skenat e mirëseardhjes, përfshi zgjedhje për pjesëmarrje në Analiza. Në laboratorë u shtua mbulim për Akte me Formula Matematikore.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/sq/changelogs/40103160.txt b/fastlane/metadata/android/sq/changelogs/40103160.txt
new file mode 100644
index 0000000000..1a0dd3bf5d
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: dërgojeni vendndodhjen tuaj te cilado dhomë. Përpunoni pyetësor.
+Regjistër i plotës ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/sq/changelogs/40103170.txt b/fastlane/metadata/android/sq/changelogs/40103170.txt
new file mode 100644
index 0000000000..405743bcb6
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: dërgojeni vendndodhjen tuaj në çfarëdo dhome. Përpunoni pyetësorë.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/sq/changelogs/40103180.txt b/fastlane/metadata/android/sq/changelogs/40103180.txt
new file mode 100644
index 0000000000..5ec41f7db3
--- /dev/null
+++ b/fastlane/metadata/android/sq/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Ndryshimet kryesore në këtë version: dërgojeni vendndodhjen tuaj në çfarëdo dhome. Përpunoni pyetësorë.
+Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/sq/title.txt b/fastlane/metadata/android/sq/title.txt
index 097f9c48ea..907f907f99 100644
--- a/fastlane/metadata/android/sq/title.txt
+++ b/fastlane/metadata/android/sq/title.txt
@@ -1 +1 @@
-Element - Shkëmbyes i Sigurt Mesazhesh
+Element
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103070.txt b/fastlane/metadata/android/sv-SE/changelogs/40103070.txt
new file mode 100644
index 0000000000..a9e9de4e8b
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Buggfixar som huvudsakligen rör aviseringar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103080.txt b/fastlane/metadata/android/sv-SE/changelogs/40103080.txt
new file mode 100644
index 0000000000..e466a7420a
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Buggfixar!
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103090.txt b/fastlane/metadata/android/sv-SE/changelogs/40103090.txt
new file mode 100644
index 0000000000..dce7ffe5a7
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Lägg till stöd för röstmeddelandeutkast. Många buggfixar!
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103100.txt b/fastlane/metadata/android/sv-SE/changelogs/40103100.txt
new file mode 100644
index 0000000000..d2ea16da98
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Lägg till stöd för omröstningar (i experiment). Ny design för URL-förhandsgranskning.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103110.txt b/fastlane/metadata/android/sv-SE/changelogs/40103110.txt
new file mode 100644
index 0000000000..ae1fcddda9
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Buggfixar!
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103120.txt b/fastlane/metadata/android/sv-SE/changelogs/40103120.txt
new file mode 100644
index 0000000000..b9d73b692b
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Buggfixar!
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103130.txt b/fastlane/metadata/android/sv-SE/changelogs/40103130.txt
new file mode 100644
index 0000000000..6c9bd42f34
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Första ändringen på introduktionsskärmar, inklusive opt-in för statistik. Stöd för händelser med matte tillagd i experiment.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103140.txt b/fastlane/metadata/android/sv-SE/changelogs/40103140.txt
new file mode 100644
index 0000000000..a5209920d6
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Första ändringen på introduktionsskärmar, inklusive opt-in för statistik. Stöd för händelser med matte tillagd i experiment.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103150.txt b/fastlane/metadata/android/sv-SE/changelogs/40103150.txt
new file mode 100644
index 0000000000..0fac22f0ab
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: Första ändringen på introduktionsskärmar, inklusive opt-in för statistik. Stöd för händelser med matte tillagd i experiment.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103160.txt b/fastlane/metadata/android/sv-SE/changelogs/40103160.txt
new file mode 100644
index 0000000000..0f324c9047
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: skicka din plats till vilket rum som helst. Redigera omröstningar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103170.txt b/fastlane/metadata/android/sv-SE/changelogs/40103170.txt
new file mode 100644
index 0000000000..ae2be8bd17
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: skicka din plats till vilket rum som helst. Redigera omröstningar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/sv-SE/changelogs/40103180.txt b/fastlane/metadata/android/sv-SE/changelogs/40103180.txt
new file mode 100644
index 0000000000..fe5b212d9c
--- /dev/null
+++ b/fastlane/metadata/android/sv-SE/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Huvudsakliga ändringar i den här versionen: skicka din plats till vilket rum som helst. Redigera omröstningar.
+Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103000.txt b/fastlane/metadata/android/tr-TR/changelogs/40103000.txt
new file mode 100644
index 0000000000..bb66b40193
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103000.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Spaces kullanarak odalarınızı düzenleyin!
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.0
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103010.txt b/fastlane/metadata/android/tr-TR/changelogs/40103010.txt
new file mode 100644
index 0000000000..3fea80054e
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103010.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Spaces kullanarak odalarınızı düzenleyin! v1.3.1, v1.3.0'da meydana gelen bir kilitlenme düzeltildi.
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.1
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103020.txt b/fastlane/metadata/android/tr-TR/changelogs/40103020.txt
new file mode 100644
index 0000000000..ef8271c6c2
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103020.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Android Auto desteği eklendi. Birçok hata düzeltmesi!
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.2
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103030.txt b/fastlane/metadata/android/tr-TR/changelogs/40103030.txt
new file mode 100644
index 0000000000..b771e53f96
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103030.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Ayarlarda kimlik sunucusu politika(lar)ını görünür yapın. Android Auto desteğini geçici olarak kaldırın.
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.3
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103040.txt b/fastlane/metadata/android/tr-TR/changelogs/40103040.txt
new file mode 100644
index 0000000000..1b2f20e349
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103040.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Doğrudan Mesaj odası için Durum desteği ekleyin (not: durum devre dışı açık matrix.org ). Android Auto desteğini tekrar ekleyin.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.4
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103050.txt b/fastlane/metadata/android/tr-TR/changelogs/40103050.txt
new file mode 100644
index 0000000000..69ac8dcb1f
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103050.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Doğrudan Mesaj odası için Durum desteği ekleyin (not: durum devre dışı açık matrix.org ). Android Auto desteğini tekrar ekleyin.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.5
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103060.txt b/fastlane/metadata/android/tr-TR/changelogs/40103060.txt
new file mode 100644
index 0000000000..396cebd495
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103060.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Doğrudan Mesaj odası için Durum desteği ekleyin (not: durum devre dışı açık matrix.org ). Android Auto desteğini tekrar ekleyin.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.6
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103070.txt b/fastlane/metadata/android/tr-TR/changelogs/40103070.txt
new file mode 100644
index 0000000000..62b3fa8824
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Esas olarak bildirimlerle ilgili hata düzeltmeleri.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103080.txt b/fastlane/metadata/android/tr-TR/changelogs/40103080.txt
new file mode 100644
index 0000000000..6d802d09f7
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Hata düzeltmeleri!
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103090.txt b/fastlane/metadata/android/tr-TR/changelogs/40103090.txt
new file mode 100644
index 0000000000..4acef8f885
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Sesli mesaj taslağı için destek ekleyin. Birçok hata düzeltmeleri!
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103100.txt b/fastlane/metadata/android/tr-TR/changelogs/40103100.txt
new file mode 100644
index 0000000000..1ccdf8210e
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Anketler için destek ekleyin (laboratuarlarda). Yeni URL önizleme tasarımı.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103110.txt b/fastlane/metadata/android/tr-TR/changelogs/40103110.txt
new file mode 100644
index 0000000000..c59f57a897
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Hata düzeltmeleri!
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103120.txt b/fastlane/metadata/android/tr-TR/changelogs/40103120.txt
new file mode 100644
index 0000000000..9ba7fa4556
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Hata düzeltmeleri!
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103130.txt b/fastlane/metadata/android/tr-TR/changelogs/40103130.txt
new file mode 100644
index 0000000000..1f356f8360
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Analytics'in etkinleştirilmesi de dahil olmak üzere, ilk önce yerleşik ekranlardaki değişiklikler. Laboratuvarlara Matematik eklenmiş Etkinlikler için destek.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103140.txt b/fastlane/metadata/android/tr-TR/changelogs/40103140.txt
new file mode 100644
index 0000000000..d8e2d5f614
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Analytics'in etkinleştirilmesi de dahil olmak üzere, ilk önce yerleşik ekranlardaki değişiklikler. Laboratuvarlara Matematik eklenmiş Etkinlikler için destek.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103150.txt b/fastlane/metadata/android/tr-TR/changelogs/40103150.txt
new file mode 100644
index 0000000000..7e98b545e8
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: Analytics'in etkinleştirilmesi de dahil olmak üzere, ilk önce yerleşik ekranlardaki değişiklikler. Laboratuvarlara Matematik eklenmiş Etkinlikler için destek.
+Tam değişiklik listesi: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103160.txt b/fastlane/metadata/android/tr-TR/changelogs/40103160.txt
new file mode 100644
index 0000000000..594b19dbfc
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: konumunuzu herhangi bir odaya gönderin. Anketi düzenleyin.
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103170.txt b/fastlane/metadata/android/tr-TR/changelogs/40103170.txt
new file mode 100644
index 0000000000..4bb0b066b6
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: konumunuzu herhangi bir odaya gönderin. Anketi düzenleyin.
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/tr-TR/changelogs/40103180.txt b/fastlane/metadata/android/tr-TR/changelogs/40103180.txt
new file mode 100644
index 0000000000..ce1573e113
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Bu sürümdeki ana değişiklikler: konumunuzu herhangi bir odaya gönderin. Anketi düzenleyin.
+Tam değişiklik günlüğü: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt
index 3895621620..8ce63e40a1 100644
--- a/fastlane/metadata/android/tr-TR/full_description.txt
+++ b/fastlane/metadata/android/tr-TR/full_description.txt
@@ -1,30 +1,42 @@
-Element, şu özelliklere sahip yeni bir tür mesajlaşma ve işbirliği uygulamasıdır:
+Element, hem güvenli bir haberci hem de uzaktan çalışırken grup sohbetleri için ideal olan bir üretkenlik ekibi işbirliği uygulamasıdır. Bu sohbet uygulaması, güçlü video konferans, dosya paylaşımı ve sesli aramalar sağlamak için uçtan uca şifreleme kullanır.
-1. Gizliliğinizi korumak için kontrolü size verir
-2. Matrix ağındaki herkesle ve hatta Slack gibi uygulamalarla entegre olarak iletişim kurmanızı sağlar
-3. Sizi reklamlardan, veri madenciliğinden ve walled gardenlardan korur
-4. Başkalarını doğrulamak için çapraz imzalama ile uçtan uca şifreleme yoluyla güvenliğinizi sağlar
+ Elementin özellikleri şunları içerir:
+ - Gelişmiş çevrimiçi iletişim araçları
+ - Uzak çalışanlar için bile daha güvenli kurumsal iletişime izin vermek için tamamen şifrelenmiş mesajlar
+ - Matrix açık kaynak çerçevesine dayalı merkezi olmayan sohbet
+ - Projeleri yönetirken şifreli verilerle güvenli dosya paylaşımı
+ - IP üzerinden Ses ve ekran paylaşımı ile görüntülü sohbetler
+ - En sevdiğiniz çevrimiçi işbirliği araçları, proje yönetimi araçları, VoIP hizmetleri ve diğer ekip mesajlaşma uygulamalarıyla kolay entegrasyon
-Element, dağıtık (decentralized) ve açık kaynak olduğu için diğer mesajlaşma ve işbirliği uygulamalarından tamamen farklıdır.
+ Element, diğer mesajlaşma ve işbirliği uygulamalarından tamamen farklıdır. Güvenli mesajlaşma ve merkezi olmayan iletişim için açık bir ağ olan Matrix üzerinde çalışır. Kendi kendine barındırmanın, kullanıcılara verilerinin ve mesajlarının maksimum sahipliğini ve kontrolünü vermesini sağlar.
-Element kendi sunucunuzu kurmanıza yada bir sunucu seçmenizi izin verir, böylece verilerinizin ve sohbetlerinizin gizliliğine ve kontrolüne sahip olursunuz. Size açık bir ağa erişim sağlar; yani yalnızca diğer Element kullanıcılarıyla konuşmak zorunda kalmazsınız. Ve çok güvenlidir.
+ Gizlilik ve şifreli mesajlaşma
+ Element sizi istenmeyen reklamlardan, veri madenciliğinden ve duvarlarla çevrili bahçelerden korur. Ayrıca uçtan uca şifreleme ve çapraz imzalı cihaz doğrulama yoluyla tüm verilerinizi, bire bir video ve sesli iletişiminizi korur.
-Element, açık, merkezi olmayan iletişim standardı olan Matrix üzerinde çalıştığı için tüm bunları yapabilir.
+ Element, Slack gibi uygulamalarla bütünleşerek Matrix ağındaki herhangi biriyle veya diğer iş işbirliği araçlarıyla güvenli bir şekilde iletişim kurmanıza izin verirken gizliliğiniz üzerinde kontrol sağlar.
-Element, konuşmalarınızın sunucusunu seçmenize izin vererek kontrolü size verir. Element uygulamasından, farklı şekillerde sunucu seçebilirsiniz:
+ Öğe kendi kendine barındırılabilir
+ Hassas verileriniz ve konuşmalarınız üzerinde daha fazla kontrole izin vermek için Element, kendi kendine barındırılabilir veya açık kaynak, merkezi olmayan iletişim standardı olan Matrix tabanlı herhangi bir ana bilgisayarı seçebilirsiniz. Element size gizlilik, güvenlik uyumluluğu ve entegrasyon esnekliği sağlar.
-1. Matrix geliştiricilerinin sahip olduğu matrix.org genel sunucusunda ücretsiz bir hesap edinin veya gönüllüler tarafından barındırılan binlerce genel sunucu arasından seçim yapın
-2. Kendi donanımınız üzerinde bir sunucu çalıştırarak kendi hesabınızı barındırın
-3. Element Matrix Hizmetleri sunucu platformuna abone olarak özel bir sunucuda hesap oluşturun
+ Verilerinizin sahibi olun
+ Verilerinizi ve mesajlarınızı nerede tutacağınıza siz karar verirsiniz. Veri madenciliği veya üçüncü şahıslardan erişim riski olmadan.
-Neden Element'i Seçmelisiniz
+ Element, kontrolü farklı şekillerde size verir:
+ 1. Matrix geliştiricileri tarafından barındırılan matrix.org genel sunucusunda ücretsiz bir hesap edinin veya gönüllüler tarafından barındırılan binlerce genel sunucu arasından seçim yapın
+ 2. Kendi BT altyapınızda bir sunucu çalıştırarak hesabınızı kendiniz barındırın
+ 3. Element Matrix Services barındırma platformuna abone olarak özel bir sunucuda bir hesap için kaydolun
-KENDİ VERİLERİNİZE SAHİP OLUN : Verilerinizi ve mesajlarınızı nerede saklayacağınıza siz karar verirsiniz. Verilerinize madencilik yapan veya üçüncü şahıslara erişim sağlayan bir BÜYÜKŞİRKETE verilerinizi vermiyorsunuz, onlara sahipsiniz ve kontrol ediyorsunuz.
+ Açık mesajlaşma ve ortak çalışma
+ Element, başka bir Matrix uygulaması veya farklı bir mesajlaşma uygulaması kullanıyor olsalar bile, Matrix ağındaki herkesle sohbet edebilirsiniz.
-AÇIK MESAJLAŞMA VE İŞBİRLİĞİ: Element veya başka bir Matrix uygulamalarını kullanmaları fark etmeksizin, hatta Slack, IRC yada XMPP gibi farklı mesajlaşma uygulamaları kullanıyor olsalar bile, Matrix sunucusundaki herhangi biriyle konuşabilirsiniz
+ Süper güvenli
+ Gerçek uçtan uca şifreleme (yalnızca görüşmedekiler mesajların şifresini çözebilir) ve çapraz imzalı cihaz doğrulaması.
-SÜPER GÜVENLİ: Gerçek uçtan uca şifreleme (yalnızca görüştüğünüz kişiler mesajların şifresini çözebilir) ve konuşma katılımcılarının cihazlarını doğrulamak için çapraz imzalama.
+ Tam iletişim ve entegrasyon
+ Mesajlaşma, sesli ve görüntülü aramalar, dosya paylaşımı, ekran paylaşımı ve bir sürü entegrasyon, bot ve widget. Odalar, topluluklar oluşturun, iletişimde kalın ve işlerinizi halledin.
-TAM İLETİŞİM: Mesajlaşma, sesli ve görüntülü aramalar, dosya paylaşımı, ekran paylaşımı ve bir sürü entegrasyon, bot ve widgetlar. Odalar, topluluklar oluşturun, iletişimde kalın ve işlerinizi halledin.
+ Kaldığınız yerden devam edin
+ https://app.element.io adresinde tüm cihazlarınızda ve web'de tamamen senkronize edilmiş mesaj geçmişiyle nerede olursanız olun bağlantıda kalın
-OLDUĞUNUZ HER YERDE: Nerede olursanız olun, tüm cihazlarınızda ve internette https://app.element.io adresinden tam senkronize mesaj geçmişiyle iletişimde kalın
+ Açık kaynak
+ Element Android, GitHub tarafından barındırılan açık kaynaklı bir projedir. Lütfen https://github.com/vector-im/element-android adresinde hataları bildirin ve/veya gelişimine katkıda bulunun.
diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt
index f730519d33..7965a7c857 100644
--- a/fastlane/metadata/android/tr-TR/short_description.txt
+++ b/fastlane/metadata/android/tr-TR/short_description.txt
@@ -1 +1 @@
-Güvenli ve merkezsiz sohbet ve VoIP. Verilerinizi üçüncü taraflardan sakının.
+Grup mesajlaşma - şifreli mesajlaşma, grup sohbeti ve görüntülü aramalar
diff --git a/fastlane/metadata/android/tr-TR/title.txt b/fastlane/metadata/android/tr-TR/title.txt
index 28088f3da4..bb365ccdd0 100644
--- a/fastlane/metadata/android/tr-TR/title.txt
+++ b/fastlane/metadata/android/tr-TR/title.txt
@@ -1 +1 @@
-Element (eskiden Riot.im)
+Element - Güvenli Mesajlaşma
diff --git a/fastlane/metadata/android/uk/changelogs/40103070.txt b/fastlane/metadata/android/uk/changelogs/40103070.txt
new file mode 100644
index 0000000000..9883169e67
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: виправлення помилок в основному у повідомленнях.
+Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/uk/changelogs/40103080.txt b/fastlane/metadata/android/uk/changelogs/40103080.txt
new file mode 100644
index 0000000000..3b5f491527
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: Виправлення помилок!
+Повний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/uk/changelogs/40103090.txt b/fastlane/metadata/android/uk/changelogs/40103090.txt
new file mode 100644
index 0000000000..37f8959d4c
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: підтримка чернеток голосових повідомлень. Багато виправлень помилок!
+Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/uk/changelogs/40103100.txt b/fastlane/metadata/android/uk/changelogs/40103100.txt
new file mode 100644
index 0000000000..99e4be65eb
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Додано підтримку опитувань (в експериментальних). Новий вигляд попереднього перегляду посилань.
+Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/uk/changelogs/40103110.txt b/fastlane/metadata/android/uk/changelogs/40103110.txt
new file mode 100644
index 0000000000..cc5af09cda
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: Виправлення помилок!
+Повний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/uk/changelogs/40103120.txt b/fastlane/metadata/android/uk/changelogs/40103120.txt
new file mode 100644
index 0000000000..a37498b4f1
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: Виправлення помилок!
+Повний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/uk/changelogs/40103130.txt b/fastlane/metadata/android/uk/changelogs/40103130.txt
new file mode 100644
index 0000000000..ad0bcda6e6
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: перша зміна на екрані привітання, включно з увімкненням аналітики. У лабораторії додано підтримку подій з математичними формулами.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/uk/changelogs/40103140.txt b/fastlane/metadata/android/uk/changelogs/40103140.txt
new file mode 100644
index 0000000000..355f8add3e
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: перша зміна на екрані привітання, включно з увімкненням аналітики. У лабораторії додано підтримку подій з математичними формулами.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/uk/changelogs/40103150.txt b/fastlane/metadata/android/uk/changelogs/40103150.txt
new file mode 100644
index 0000000000..0d9d702f02
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: перша зміна на екрані привітання, включно з увімкненням аналітики. У лабораторії додано підтримку подій з математичними формулами.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/uk/changelogs/40103160.txt b/fastlane/metadata/android/uk/changelogs/40103160.txt
new file mode 100644
index 0000000000..db0f1e4c62
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+Основні зміни у цій версії: надсилання свого місцеперебування у будь-яку кімнату. Редагування опитувань.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/uk/changelogs/40103170.txt b/fastlane/metadata/android/uk/changelogs/40103170.txt
new file mode 100644
index 0000000000..708af771ac
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+Основні зміни цієї версії: надсилання свого розташування у будь-яку кімнату. Редагування опитувань.
+Повний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/uk/changelogs/40103180.txt b/fastlane/metadata/android/uk/changelogs/40103180.txt
new file mode 100644
index 0000000000..6ffbe45571
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+Основні зміни цієї версії: надсилання свого розташування у будь-яку кімнату. Редагування опитувань.
+Повний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/uk/changelogs/40104000.txt b/fastlane/metadata/android/uk/changelogs/40104000.txt
new file mode 100644
index 0000000000..6abfdcf929
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: Початкова реалізація тредів повідомлень. Повідомлення бульбашки.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/uk/changelogs/40104020.txt b/fastlane/metadata/android/uk/changelogs/40104020.txt
new file mode 100644
index 0000000000..f10cce81b7
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+Основні зміни в цій версії: додано підтримку до @room і нерозкритих опитувань та багато інших незначних змін.
+Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/fastlane/metadata/android/uk/full_description.txt b/fastlane/metadata/android/uk/full_description.txt
index 3c59d860ac..c046d8a40a 100644
--- a/fastlane/metadata/android/uk/full_description.txt
+++ b/fastlane/metadata/android/uk/full_description.txt
@@ -1,7 +1,7 @@
-Element — це і безпечний месенджер, і застосунок для співпраці команди, який ідеально підходить для групових бесід під час віддаленої роботи. Цей застосунок для спілкування застосовує наскрізне шифрування для забезпечення відеоконференцій, обміну файлами та голосових викликів.
+Element — це і безпечний месенджер, і застосунок для співпраці команди, який ідеально підходить спілкування групами під час віддаленої роботи. Цей застосунок для спілкування використовує наскрізне шифрування для забезпечення відеоконференцій, обміну файлами та голосових викликів.
Можливості Element включають:
-- Розширені засоби спілкування в Інтернеті
+- Розширені засоби онлайн-спілкування
- Повністю зашифровані повідомлення для надання можливості безпечнішого корпоративного спілкування, навіть для віддалених працівників
- Децентралізований чат на основі відкритого коду Matrix
- Безпечний обмін файлами із зашифрованими даними для керування проєктами
@@ -33,10 +33,10 @@ Element надає такі можливості на вибір:
Справжнє наскрізне шифрування (лише учасники бесіди можуть розшифровувати повідомлення) та взаємне підписування пристроїв.
Повноцінні спілкування та інтеграція
-Обмін повідомленнями, голосові та відеовиклики, обмін файлами, спільний доступ до екрана та ціла купа інтеграцій, ботів та розширень. Створюйте кімнати, спільноти, залишайтеся на зв’язку та виконуйте завдання.
+Обмін повідомленнями, голосові та відеовиклики, обмін файлами, спільний доступ до екрана та ціла купа інтеграцій, ботів та віджетів. Створюйте кімнати, спільноти, залишайтеся на зв’язку та виконуйте завдання.
Продовжуйте, де зупинилися
Залишайтеся на зв'язку, де б ви не знаходились, з повністю синхронізованою історією повідомлень на всіх своїх пристроях та в Інтернеті за адресою https://app.element.io
Відкритий код
-Element для Android це проєкт з відкритим кодом, розміщений GitHub. Будь ласка, повідомте про помилки та/або сприяйте його розвитку на https://github.com/vector-im/element-android
+Element для Android — це проєкт з відкритим кодом, розміщений на GitHub. Повідомляйте про помилки та/або допомагайте його розвитку на https://github.com/vector-im/element-android
diff --git a/fastlane/metadata/android/zh-CN/changelogs/40103070.txt b/fastlane/metadata/android/zh-CN/changelogs/40103070.txt
new file mode 100644
index 0000000000..3f23d09b73
--- /dev/null
+++ b/fastlane/metadata/android/zh-CN/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+此版本的主要变化:主要关于通知的错误修复。
+完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/zh-CN/changelogs/40103080.txt b/fastlane/metadata/android/zh-CN/changelogs/40103080.txt
new file mode 100644
index 0000000000..873cb34746
--- /dev/null
+++ b/fastlane/metadata/android/zh-CN/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+此版本主要变化:Bug 修复!
+完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/zh-CN/changelogs/40103090.txt b/fastlane/metadata/android/zh-CN/changelogs/40103090.txt
new file mode 100644
index 0000000000..7eb68d61e4
--- /dev/null
+++ b/fastlane/metadata/android/zh-CN/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+版本的主要变化:增加了对语音信息草稿的支持。许多修正!
+完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103070.txt b/fastlane/metadata/android/zh-TW/changelogs/40103070.txt
new file mode 100644
index 0000000000..1f9173fa1e
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103070.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:主要關於通知的臭蟲修復。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103080.txt b/fastlane/metadata/android/zh-TW/changelogs/40103080.txt
new file mode 100644
index 0000000000..07689479a3
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103080.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:臭蟲修復!
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.8
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103090.txt b/fastlane/metadata/android/zh-TW/changelogs/40103090.txt
new file mode 100644
index 0000000000..c74a27acbf
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103090.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:新增對語音訊息草稿的支援。許多臭蟲修復!
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.9
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103100.txt b/fastlane/metadata/android/zh-TW/changelogs/40103100.txt
new file mode 100644
index 0000000000..70d93e833d
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103100.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:新增對投票(在實驗室中)的支援。新的 URL 預覽設計。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.10
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103110.txt b/fastlane/metadata/android/zh-TW/changelogs/40103110.txt
new file mode 100644
index 0000000000..d5450f4c6a
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103110.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:臭蟲修復!
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.11
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103120.txt b/fastlane/metadata/android/zh-TW/changelogs/40103120.txt
new file mode 100644
index 0000000000..0ee60318c1
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103120.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:臭蟲修復!
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.12
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103130.txt b/fastlane/metadata/android/zh-TW/changelogs/40103130.txt
new file mode 100644
index 0000000000..e0f9b47e16
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103130.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:首次使用畫面的第一個變化,包含了選擇加入的分析功能。新增對數學活動的支援至實驗室中。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.13
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103140.txt b/fastlane/metadata/android/zh-TW/changelogs/40103140.txt
new file mode 100644
index 0000000000..8366a01265
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103140.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:首次使用畫面的第一個變化,包含了選擇加入的分析功能。新增對數學活動的支援至實驗室中。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.14
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103150.txt b/fastlane/metadata/android/zh-TW/changelogs/40103150.txt
new file mode 100644
index 0000000000..a6ddd5aa8c
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103150.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:首次使用畫面的第一個變化,包含了選擇加入的分析功能。新增對數學活動的支援至實驗室中。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.15
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103160.txt b/fastlane/metadata/android/zh-TW/changelogs/40103160.txt
new file mode 100644
index 0000000000..04e51e013c
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103160.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:將您的位置傳送給任何聊天室。編輯投票。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.16
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103170.txt b/fastlane/metadata/android/zh-TW/changelogs/40103170.txt
new file mode 100644
index 0000000000..a8e353c2eb
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103170.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:將您的位置傳送給任何聊天室。編輯投票。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.17
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40103180.txt b/fastlane/metadata/android/zh-TW/changelogs/40103180.txt
new file mode 100644
index 0000000000..3eabe8b7cc
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40103180.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:將您的位置傳送給任何聊天室。編輯投票。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.3.18
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104000.txt b/fastlane/metadata/android/zh-TW/changelogs/40104000.txt
new file mode 100644
index 0000000000..e61c235762
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104000.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:訊息討論串的初始實作。訊息泡泡。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.0
diff --git a/fastlane/metadata/android/zh-TW/changelogs/40104020.txt b/fastlane/metadata/android/zh-TW/changelogs/40104020.txt
new file mode 100644
index 0000000000..92d0360bf1
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/40104020.txt
@@ -0,0 +1,2 @@
+此版本中的主要變動:新增對 @room 的支援與未公開的投票,以及其他許多小變動。
+完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.2
diff --git a/gradle.properties b/gradle.properties
index 6c7a7fd118..6de52be607 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -8,7 +8,7 @@
# The setting is particularly useful for tweaking memory settings.
# Build Time Optimizations
-org.gradle.jvmargs=-Xmx3g -Xms512M -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
+org.gradle.jvmargs=-Xmx4g -Xms512M -XX:MaxPermSize=2048m -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
org.gradle.configureondemand=true
org.gradle.parallel=true
org.gradle.vfs.watch=true
@@ -26,3 +26,9 @@ 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
+
+# Dummy values for signing secrets
+signing.element.storePath=pathTo.keystore
+signing.element.storePassword=Secret
+signing.element.keyId=Secret
+signing.element.keyPassword=Secret
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180f2a..41d9927a4d 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index f5e3b23f79..dcf5e2cb7b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionSha256Sum=00b273629df4ce46e68df232161d5a7c4e495b9a029ce6e0420f071e21316867
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-all.zip
+distributionSha256Sum=cd5c2958a107ee7f0722004a12d0f8559b4564c34daad7df06cffd4d12a426d0
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/integration_tests_script.sh b/integration_tests_script.sh
new file mode 100755
index 0000000000..fe72ae6f5c
--- /dev/null
+++ b/integration_tests_script.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+./gradlew -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.ChunkEntityTest matrix-sdk-android:connectedAndroidTest
+./gradlew -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.TimelineForwardPaginationTest matrix-sdk-android:connectedAndroidTest
diff --git a/integration_tests_script_github.sh b/integration_tests_script_github.sh
new file mode 100755
index 0000000000..bbf666e4f0
--- /dev/null
+++ b/integration_tests_script_github.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.ChunkEntityTest matrix-sdk-android:connectedAndroidTest
+./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.TimelineForwardPaginationTest matrix-sdk-android:connectedAndroidTest
diff --git a/attachment-viewer/.gitignore b/library/attachment-viewer/.gitignore
similarity index 100%
rename from attachment-viewer/.gitignore
rename to library/attachment-viewer/.gitignore
diff --git a/attachment-viewer/build.gradle b/library/attachment-viewer/build.gradle
similarity index 95%
rename from attachment-viewer/build.gradle
rename to library/attachment-viewer/build.gradle
index 02fbfc794c..048710f62c 100644
--- a/attachment-viewer/build.gradle
+++ b/library/attachment-viewer/build.gradle
@@ -47,12 +47,10 @@ android {
dependencies {
implementation project(":library:ui-styles")
+ implementation project(":library:core-utils")
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
- implementation libs.rx.rxKotlin
- implementation libs.rx.rxAndroid
-
implementation libs.androidx.core
implementation libs.androidx.appCompat
implementation libs.androidx.recyclerview
diff --git a/attachment-viewer/consumer-rules.pro b/library/attachment-viewer/consumer-rules.pro
similarity index 100%
rename from attachment-viewer/consumer-rules.pro
rename to library/attachment-viewer/consumer-rules.pro
diff --git a/attachment-viewer/proguard-rules.pro b/library/attachment-viewer/proguard-rules.pro
similarity index 100%
rename from attachment-viewer/proguard-rules.pro
rename to library/attachment-viewer/proguard-rules.pro
diff --git a/attachment-viewer/src/main/AndroidManifest.xml b/library/attachment-viewer/src/main/AndroidManifest.xml
similarity index 100%
rename from attachment-viewer/src/main/AndroidManifest.xml
rename to library/attachment-viewer/src/main/AndroidManifest.xml
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AnimatedImageViewHolder.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AnimatedImageViewHolder.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AnimatedImageViewHolder.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AnimatedImageViewHolder.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentEvents.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentEvents.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentEvents.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentEvents.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentSourceProvider.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentSourceProvider.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentSourceProvider.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentSourceProvider.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt
similarity index 98%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt
index 573138bf5c..21af114c26 100644
--- a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt
+++ b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentViewerActivity.kt
@@ -45,6 +45,8 @@ import kotlin.math.abs
abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventListener {
+ protected val rootView: View
+ get() = views.rootContainer
protected val pager2: ViewPager2
get() = views.attachmentPager
protected val imageTransitionView: ImageView
@@ -298,10 +300,11 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
private fun createSwipeToDismissHandler(): SwipeToDismissHandler =
SwipeToDismissHandler(
- swipeView = views.dismissContainer,
- shouldAnimateDismiss = { shouldAnimateDismiss() },
- onDismiss = { animateClose() },
- onSwipeViewMove = ::handleSwipeViewMove)
+ swipeView = views.dismissContainer,
+ shouldAnimateDismiss = { shouldAnimateDismiss() },
+ onDismiss = { animateClose() },
+ onSwipeViewMove = ::handleSwipeViewMove
+ )
private fun createSwipeDirectionDetector() =
SwipeDirectionDetector(this) { swipeDirection = it }
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentsAdapter.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentsAdapter.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentsAdapter.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/AttachmentsAdapter.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/BaseViewHolder.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/BaseViewHolder.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/BaseViewHolder.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/BaseViewHolder.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ImageLoaderTarget.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirection.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirection.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirection.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirection.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirectionDetector.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirectionDetector.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirectionDetector.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeDirectionDetector.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeToDismissHandler.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeToDismissHandler.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeToDismissHandler.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/SwipeToDismissHandler.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoLoaderTarget.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoLoaderTarget.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoLoaderTarget.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoLoaderTarget.kt
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt
similarity index 86%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt
index 0b72ef36f0..12213a8786 100644
--- a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt
+++ b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/VideoViewHolder.kt
@@ -20,12 +20,9 @@ import android.util.Log
import android.view.View
import androidx.core.view.isVisible
import im.vector.lib.attachmentviewer.databinding.ItemVideoAttachmentBinding
-import io.reactivex.Observable
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.disposables.Disposable
+import im.vector.lib.core.utils.timer.CountUpTimer
import java.io.File
import java.lang.ref.WeakReference
-import java.util.concurrent.TimeUnit
// TODO, it would be probably better to use a unique media player
// for better customization and control
@@ -35,7 +32,7 @@ class VideoViewHolder constructor(itemView: View) :
private var isSelected = false
private var mVideoPath: String? = null
- private var progressDisposable: Disposable? = null
+ private var countUpTimer: CountUpTimer? = null
private var progress: Int = 0
private var wasPaused = false
@@ -47,8 +44,7 @@ class VideoViewHolder constructor(itemView: View) :
override fun onRecycled() {
super.onRecycled()
- progressDisposable?.dispose()
- progressDisposable = null
+ stopTimer()
mVideoPath = null
}
@@ -72,8 +68,7 @@ class VideoViewHolder constructor(itemView: View) :
override fun entersBackground() {
if (views.videoView.isPlaying) {
progress = views.videoView.currentPosition
- progressDisposable?.dispose()
- progressDisposable = null
+ stopTimer()
views.videoView.stopPlayback()
views.videoView.pause()
}
@@ -91,8 +86,7 @@ class VideoViewHolder constructor(itemView: View) :
} else {
progress = 0
}
- progressDisposable?.dispose()
- progressDisposable = null
+ stopTimer()
} else {
if (mVideoPath != null) {
startPlaying()
@@ -107,17 +101,19 @@ class VideoViewHolder constructor(itemView: View) :
views.videoView.isVisible = true
views.videoView.setOnPreparedListener {
- progressDisposable?.dispose()
- progressDisposable = Observable.interval(100, TimeUnit.MILLISECONDS)
- .timeInterval()
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe {
+ stopTimer()
+ countUpTimer = CountUpTimer(100).also {
+ it.tickListener = object : CountUpTimer.TickListener {
+ override fun onTick(milliseconds: Long) {
val duration = views.videoView.duration
val progress = views.videoView.currentPosition
val isPlaying = views.videoView.isPlaying
// Log.v("FOO", "isPlaying $isPlaying $progress/$duration")
eventListener?.get()?.onEvent(AttachmentEvents.VideoEvent(isPlaying, progress, duration))
}
+ }
+ it.resume()
+ }
}
try {
views.videoView.setVideoPath(mVideoPath)
@@ -134,6 +130,11 @@ class VideoViewHolder constructor(itemView: View) :
}
}
+ private fun stopTimer() {
+ countUpTimer?.stop()
+ countUpTimer = null
+ }
+
override fun handleCommand(commands: AttachmentCommands) {
if (!isSelected) return
when (commands) {
diff --git a/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ZoomableImageViewHolder.kt b/library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ZoomableImageViewHolder.kt
similarity index 100%
rename from attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ZoomableImageViewHolder.kt
rename to library/attachment-viewer/src/main/java/im/vector/lib/attachmentviewer/ZoomableImageViewHolder.kt
diff --git a/attachment-viewer/src/main/res/layout/activity_attachment_viewer.xml b/library/attachment-viewer/src/main/res/layout/activity_attachment_viewer.xml
similarity index 100%
rename from attachment-viewer/src/main/res/layout/activity_attachment_viewer.xml
rename to library/attachment-viewer/src/main/res/layout/activity_attachment_viewer.xml
diff --git a/attachment-viewer/src/main/res/layout/item_animated_image_attachment.xml b/library/attachment-viewer/src/main/res/layout/item_animated_image_attachment.xml
similarity index 100%
rename from attachment-viewer/src/main/res/layout/item_animated_image_attachment.xml
rename to library/attachment-viewer/src/main/res/layout/item_animated_image_attachment.xml
diff --git a/attachment-viewer/src/main/res/layout/item_image_attachment.xml b/library/attachment-viewer/src/main/res/layout/item_image_attachment.xml
similarity index 100%
rename from attachment-viewer/src/main/res/layout/item_image_attachment.xml
rename to library/attachment-viewer/src/main/res/layout/item_image_attachment.xml
diff --git a/attachment-viewer/src/main/res/layout/item_video_attachment.xml b/library/attachment-viewer/src/main/res/layout/item_video_attachment.xml
similarity index 100%
rename from attachment-viewer/src/main/res/layout/item_video_attachment.xml
rename to library/attachment-viewer/src/main/res/layout/item_video_attachment.xml
diff --git a/attachment-viewer/src/main/res/values/strings.xml b/library/attachment-viewer/src/main/res/values/strings.xml
similarity index 100%
rename from attachment-viewer/src/main/res/values/strings.xml
rename to library/attachment-viewer/src/main/res/values/strings.xml
diff --git a/library/core-utils/.gitignore b/library/core-utils/.gitignore
new file mode 100644
index 0000000000..42afabfd2a
--- /dev/null
+++ b/library/core-utils/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/library/core-utils/build.gradle b/library/core-utils/build.gradle
new file mode 100644
index 0000000000..ad3a948808
--- /dev/null
+++ b/library/core-utils/build.gradle
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+plugins {
+ id 'com.android.library'
+ id '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"
+ freeCompilerArgs += [
+ "-Xopt-in=kotlin.RequiresOptIn"
+ ]
+ }
+}
+
+dependencies {
+ implementation libs.androidx.appCompat
+ implementation libs.jetbrains.coroutinesAndroid
+}
\ No newline at end of file
diff --git a/library/core-utils/src/main/AndroidManifest.xml b/library/core-utils/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..20a9414519
--- /dev/null
+++ b/library/core-utils/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/library/core-utils/src/main/java/im/vector/lib/core/utils/compat/MutableCollectionCompat.kt b/library/core-utils/src/main/java/im/vector/lib/core/utils/compat/MutableCollectionCompat.kt
new file mode 100644
index 0000000000..332ed27ca3
--- /dev/null
+++ b/library/core-utils/src/main/java/im/vector/lib/core/utils/compat/MutableCollectionCompat.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.lib.core.utils.compat
+
+import android.os.Build
+
+fun MutableCollection.removeIfCompat(predicate: (E) -> Boolean) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ removeIf(predicate)
+ } else {
+ removeAll(filter(predicate).toSet())
+ }
+}
diff --git a/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/EpoxyCharSequence.kt b/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/EpoxyCharSequence.kt
new file mode 100644
index 0000000000..77e2d58001
--- /dev/null
+++ b/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/EpoxyCharSequence.kt
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.lib.core.utils.epoxy.charsequence
+
+/**
+ * Wrapper for a CharSequence, which support mutation of the CharSequence, which can happen during rendering
+ */
+class EpoxyCharSequence(val charSequence: CharSequence) {
+ private val hash = charSequence.toString().hashCode()
+
+ override fun hashCode() = hash
+ override fun equals(other: Any?) = other is EpoxyCharSequence && other.hash == hash
+}
diff --git a/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/Extensions.kt b/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/Extensions.kt
new file mode 100644
index 0000000000..ba0f0b9ad6
--- /dev/null
+++ b/library/core-utils/src/main/java/im/vector/lib/core/utils/epoxy/charsequence/Extensions.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.lib.core.utils.epoxy.charsequence
+
+/**
+ * Extensions to wrap CharSequence to EpoxyCharSequence
+ */
+fun CharSequence.toEpoxyCharSequence() = EpoxyCharSequence(this)
diff --git a/vector/src/main/java/im/vector/app/core/flow/TimingOperators.kt b/library/core-utils/src/main/java/im/vector/lib/core/utils/flow/TimingOperators.kt
similarity index 97%
rename from vector/src/main/java/im/vector/app/core/flow/TimingOperators.kt
rename to library/core-utils/src/main/java/im/vector/lib/core/utils/flow/TimingOperators.kt
index 621a80d96e..065c19c17a 100644
--- a/vector/src/main/java/im/vector/app/core/flow/TimingOperators.kt
+++ b/library/core-utils/src/main/java/im/vector/lib/core/utils/flow/TimingOperators.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package im.vector.app.core.flow
+package im.vector.lib.core.utils.flow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -85,10 +85,12 @@ fun Flow.throttleFirst(windowDuration: Long): Flow = flow {
}
}
+@ExperimentalCoroutinesApi
fun tickerFlow(scope: CoroutineScope, delayMillis: Long, initialDelayMillis: Long = delayMillis): Flow {
return scope.fixedPeriodTicker(delayMillis, initialDelayMillis).consumeAsFlow()
}
+@ExperimentalCoroutinesApi
private fun CoroutineScope.fixedPeriodTicker(delayMillis: Long, initialDelayMillis: Long = delayMillis): ReceiveChannel {
require(delayMillis >= 0) { "Expected non-negative delay, but has $delayMillis ms" }
require(initialDelayMillis >= 0) { "Expected non-negative initial delay, but has $initialDelayMillis ms" }
diff --git a/vector/src/main/java/im/vector/app/core/utils/CountUpTimer.kt b/library/core-utils/src/main/java/im/vector/lib/core/utils/timer/CountUpTimer.kt
similarity index 93%
rename from vector/src/main/java/im/vector/app/core/utils/CountUpTimer.kt
rename to library/core-utils/src/main/java/im/vector/lib/core/utils/timer/CountUpTimer.kt
index b58d0fb3f6..e9d311fe03 100644
--- a/vector/src/main/java/im/vector/app/core/utils/CountUpTimer.kt
+++ b/library/core-utils/src/main/java/im/vector/lib/core/utils/timer/CountUpTimer.kt
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package im.vector.app.core.utils
+package im.vector.lib.core.utils.timer
-import im.vector.app.core.flow.tickerFlow
+import im.vector.lib.core.utils.flow.tickerFlow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel
@@ -27,6 +27,7 @@ import kotlinx.coroutines.flow.onEach
import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicLong
+@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
class CountUpTimer(private val intervalInMs: Long = 1_000) {
private val coroutineScope = CoroutineScope(Dispatchers.Main)
diff --git a/diff-match-patch/.gitignore b/library/diff-match-patch/.gitignore
similarity index 100%
rename from diff-match-patch/.gitignore
rename to library/diff-match-patch/.gitignore
diff --git a/diff-match-patch/build.gradle b/library/diff-match-patch/build.gradle
similarity index 100%
rename from diff-match-patch/build.gradle
rename to library/diff-match-patch/build.gradle
diff --git a/diff-match-patch/src/main/java/name/fraser/neil/plaintext/diff_match_patch.java b/library/diff-match-patch/src/main/java/name/fraser/neil/plaintext/diff_match_patch.java
similarity index 100%
rename from diff-match-patch/src/main/java/name/fraser/neil/plaintext/diff_match_patch.java
rename to library/diff-match-patch/src/main/java/name/fraser/neil/plaintext/diff_match_patch.java
diff --git a/matrix-sdk-android-rx/.gitignore b/library/jsonviewer/.gitignore
similarity index 100%
rename from matrix-sdk-android-rx/.gitignore
rename to library/jsonviewer/.gitignore
diff --git a/library/jsonviewer/build.gradle b/library/jsonviewer/build.gradle
new file mode 100644
index 0000000000..15f46754b3
--- /dev/null
+++ b/library/jsonviewer/build.gradle
@@ -0,0 +1,66 @@
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-parcelize'
+apply plugin: 'kotlin-kapt'
+apply plugin: 'com.jakewharton.butterknife'
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
+ }
+}
+
+android {
+ compileSdk versions.compileSdk
+
+ defaultConfig {
+ minSdk versions.minSdk
+ targetSdk versions.targetSdk
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ 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(":library:core-utils")
+
+ implementation libs.androidx.appCompat
+ implementation libs.androidx.core
+
+ implementation libs.airbnb.epoxy
+ kapt libs.airbnb.epoxyProcessor
+
+ implementation libs.airbnb.mavericks
+ // Span utils
+ implementation 'me.gujun.android:span:1.7'
+
+ implementation libs.google.material
+
+ implementation libs.jetbrains.coroutinesCore
+ implementation libs.jetbrains.coroutinesAndroid
+
+ testImplementation 'org.json:json:20211205'
+ testImplementation libs.tests.junit
+ androidTestImplementation libs.androidx.junit
+ androidTestImplementation libs.androidx.espressoCore
+}
diff --git a/library/jsonviewer/src/main/AndroidManifest.xml b/library/jsonviewer/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..73322c2fdb
--- /dev/null
+++ b/library/jsonviewer/src/main/AndroidManifest.xml
@@ -0,0 +1 @@
+
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt
new file mode 100644
index 0000000000..a8d9cac849
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerDialog.kt
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.WindowManager
+import androidx.fragment.app.DialogFragment
+import com.airbnb.mvrx.Mavericks
+
+class JSonViewerDialog : DialogFragment() {
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_dialog_jv, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ val args: JSonViewerFragmentArgs = arguments?.getParcelable(Mavericks.KEY_ARG) ?: return
+ if (savedInstanceState == null) {
+ childFragmentManager.beginTransaction()
+ .replace(
+ R.id.fragmentContainer, JSonViewerFragment.newInstance(
+ args.jsonString,
+ args.defaultOpenDepth,
+ true,
+ args.styleProvider
+ )
+ )
+ .commitNow()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ // Get existing layout params for the window
+ val params = dialog?.window?.attributes
+ // Assign window properties to fill the parent
+ params?.width = WindowManager.LayoutParams.MATCH_PARENT
+ params?.height = WindowManager.LayoutParams.MATCH_PARENT
+ dialog?.window?.attributes = params
+ }
+
+ companion object {
+ fun newInstance(
+ jsonString: String,
+ initialOpenDepth: Int = -1,
+ styleProvider: JSonViewerStyleProvider? = null
+ ): JSonViewerDialog {
+ val args = Bundle()
+ val parcelableArgs =
+ JSonViewerFragmentArgs(jsonString, initialOpenDepth, false, styleProvider)
+ args.putParcelable(Mavericks.KEY_ARG, parcelableArgs)
+ return JSonViewerDialog().apply { arguments = args }
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerEpoxyController.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerEpoxyController.kt
new file mode 100644
index 0000000000..96b5a9c997
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerEpoxyController.kt
@@ -0,0 +1,261 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.content.Context
+import android.view.View
+import com.airbnb.epoxy.TypedEpoxyController
+import com.airbnb.mvrx.Fail
+import com.airbnb.mvrx.Success
+import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence
+import me.gujun.android.span.Span
+import me.gujun.android.span.span
+
+internal class JSonViewerEpoxyController(private val context: Context) :
+ TypedEpoxyController() {
+
+ private var styleProvider: JSonViewerStyleProvider = JSonViewerStyleProvider.default(context)
+
+ fun setStyle(styleProvider: JSonViewerStyleProvider?) {
+ this.styleProvider = styleProvider ?: JSonViewerStyleProvider.default(context)
+ }
+
+ override fun buildModels(data: JSonViewerState?) {
+ val async = data?.root ?: return
+
+ when (async) {
+ is Fail -> {
+ valueItem {
+ id("fail")
+ text(async.error.localizedMessage?.toEpoxyCharSequence())
+ }
+ }
+ is Success -> {
+ val model = data.root.invoke()
+
+ model?.let {
+ buildRec(it, 0, "")
+ }
+ }
+ }
+ }
+
+ private fun buildRec(
+ model: JSonViewerModel,
+ depth: Int,
+ idBase: String
+ ) {
+ val host = this
+ val id = "$idBase/${model.key ?: model.index}_${model.isExpanded}}"
+ when (model) {
+ is JSonViewerObject -> {
+ if (model.isExpanded) {
+ open(id, model.key, model.index, depth, true, model)
+ model.keys.forEach {
+ buildRec(it.value, depth + 1, id)
+ }
+ close(id, depth, true)
+ } else {
+ valueItem {
+ id(id + "_sum")
+ depth(depth)
+ text(
+ span {
+ if (model.key != null) {
+ span("\"${model.key}\"") {
+ textColor = host.styleProvider.keyColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ if (model.index != null) {
+ span("${model.index}") {
+ textColor = host.styleProvider.secondaryColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ span {
+ +"{+${model.keys.size}}"
+ textColor = host.styleProvider.baseColor
+ }
+ }.toEpoxyCharSequence()
+ )
+ itemClickListener(View.OnClickListener { host.itemClicked(model) })
+ }
+ }
+ }
+ is JSonViewerArray -> {
+ if (model.isExpanded) {
+ open(id, model.key, model.index, depth, false, model)
+ model.items.forEach {
+ buildRec(it, depth + 1, id)
+ }
+ close(id, depth, false)
+ } else {
+ valueItem {
+ id(id + "_sum")
+ depth(depth)
+ text(
+ span {
+ if (model.key != null) {
+ span("\"${model.key}\"") {
+ textColor = host.styleProvider.keyColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ if (model.index != null) {
+ span("${model.index}") {
+ textColor = host.styleProvider.secondaryColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ span {
+ +"[+${model.items.size}]"
+ textColor = host.styleProvider.baseColor
+ }
+ }.toEpoxyCharSequence()
+ )
+ itemClickListener(View.OnClickListener { host.itemClicked(model) })
+ }
+ }
+ }
+ is JSonViewerLeaf -> {
+ valueItem {
+ id(id)
+ depth(depth)
+ text(
+ span {
+ if (model.key != null) {
+ span("\"${model.key}\"") {
+ textColor = host.styleProvider.keyColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+
+ if (model.index != null) {
+ span("${model.index}") {
+ textColor = host.styleProvider.secondaryColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ append(host.valueToSpan(model))
+ }.toEpoxyCharSequence()
+ )
+ copyValue(model.stringRes)
+ }
+ }
+ }
+ }
+
+ private fun valueToSpan(leaf: JSonViewerLeaf): Span {
+ val host = this
+ return when (leaf.type) {
+ JSONType.STRING -> {
+ span("\"${leaf.stringRes}\"") {
+ textColor = host.styleProvider.stringColor
+ }
+ }
+ JSONType.NUMBER -> {
+ span(leaf.stringRes) {
+ textColor = host.styleProvider.numberColor
+ }
+ }
+ JSONType.BOOLEAN -> {
+ span(leaf.stringRes) {
+ textColor = host.styleProvider.booleanColor
+ }
+ }
+ JSONType.NULL -> {
+ span("null") {
+ textColor = host.styleProvider.booleanColor
+ }
+ }
+ }
+ }
+
+ private fun open(
+ id: String,
+ key: String?,
+ index: Int?,
+ depth: Int,
+ isObject: Boolean = true,
+ composed: JSonViewerModel
+ ) {
+ val host = this
+ valueItem {
+ id("${id}_Open")
+ depth(depth)
+ text(
+ span {
+ if (key != null) {
+ span("\"$key\"") {
+ textColor = host.styleProvider.keyColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ if (index != null) {
+ span("$index") {
+ textColor = host.styleProvider.secondaryColor
+ }
+ span(" : ") {
+ textColor = host.styleProvider.baseColor
+ }
+ }
+ span("- ") {
+ textColor = host.styleProvider.secondaryColor
+ }
+ span("{".takeIf { isObject } ?: "[") {
+ textColor = host.styleProvider.baseColor
+ }
+ }.toEpoxyCharSequence()
+ )
+ itemClickListener(View.OnClickListener { host.itemClicked(composed) })
+ }
+ }
+
+ private fun itemClicked(model: JSonViewerModel) {
+ model.isExpanded = !model.isExpanded
+ setData(currentData)
+ }
+
+ private fun close(id: String, depth: Int, isObject: Boolean = true) {
+ val host = this
+ valueItem {
+ id("${id}_Close")
+ depth(depth)
+ text(
+ span {
+ text = "}".takeIf { isObject } ?: "]"
+ textColor = host.styleProvider.baseColor
+ }.toEpoxyCharSequence()
+ )
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt
new file mode 100644
index 0000000000..51e2797958
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerFragment.kt
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.os.Bundle
+import android.os.Parcelable
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.airbnb.epoxy.EpoxyRecyclerView
+import com.airbnb.mvrx.Mavericks
+import com.airbnb.mvrx.MavericksView
+import com.airbnb.mvrx.fragmentViewModel
+import com.airbnb.mvrx.withState
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+internal data class JSonViewerFragmentArgs(
+ val jsonString: String,
+ val defaultOpenDepth: Int,
+ val wrap: Boolean,
+ val styleProvider: JSonViewerStyleProvider?
+) : Parcelable
+
+class JSonViewerFragment : Fragment(), MavericksView {
+
+ private val viewModel: JSonViewerViewModel by fragmentViewModel()
+
+ private val epoxyController by lazy {
+ JSonViewerEpoxyController(requireContext())
+ }
+
+ private lateinit var recyclerView: EpoxyRecyclerView
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ val args: JSonViewerFragmentArgs? = arguments?.getParcelable(Mavericks.KEY_ARG)
+ val inflate =
+ if (args?.wrap == true) {
+ inflater.inflate(R.layout.fragment_jv_recycler_view_wrap, container, false)
+ } else {
+ inflater.inflate(R.layout.fragment_jv_recycler_view, container, false)
+ }
+ recyclerView = inflate.findViewById(R.id.jvRecyclerView)
+ recyclerView.layoutManager =
+ LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+ recyclerView.setController(epoxyController)
+ epoxyController.setStyle(args?.styleProvider)
+ registerForContextMenu(recyclerView)
+ return inflate
+ }
+
+ fun showJson(jsonString: String, initialOpenDepth: Int) {
+ viewModel.setJsonSource(jsonString, initialOpenDepth)
+ }
+
+ override fun invalidate() = withState(viewModel) { state ->
+ epoxyController.setData(state)
+ }
+
+ companion object {
+ fun newInstance(
+ jsonString: String,
+ initialOpenDepth: Int = -1,
+ wrap: Boolean = false,
+ styleProvider: JSonViewerStyleProvider? = null
+ ): JSonViewerFragment {
+ return JSonViewerFragment().apply {
+ arguments = Bundle().apply {
+ putParcelable(
+ Mavericks.KEY_ARG,
+ JSonViewerFragmentArgs(
+ jsonString,
+ initialOpenDepth,
+ wrap,
+ styleProvider
+ )
+ )
+ }
+ }
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt
new file mode 100644
index 0000000000..3d1f8dd3e2
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerModel.kt
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import org.json.JSONArray
+import org.json.JSONException
+import org.json.JSONObject
+
+internal open class JSonViewerModel(var key: String?, var index: Int?, val jObject: Any) {
+ var depth = 0
+ var isExpanded = false
+}
+
+internal interface Composed {
+ fun addChild(model: JSonViewerModel)
+}
+
+internal class JSonViewerObject(key: String?, index: Int?, jObject: JSONObject) :
+ JSonViewerModel(key, index, jObject),
+ Composed {
+
+ var keys = LinkedHashMap()
+
+ override fun addChild(model: JSonViewerModel) {
+ keys[model.key!!] = model
+ }
+}
+
+internal class JSonViewerArray(key: String?, index: Int?, jObject: JSONArray) :
+ JSonViewerModel(key, index, jObject), Composed {
+ var items = ArrayList()
+
+ override fun addChild(model: JSonViewerModel) {
+ items.add(model)
+ }
+}
+
+internal class JSonViewerLeaf(key: String?, index: Int?, val stringRes: String, val type: JSONType) :
+ JSonViewerModel(key, index, stringRes)
+
+internal enum class JSONType {
+ STRING,
+ NUMBER,
+ BOOLEAN,
+ NULL
+}
+
+internal object ModelParser {
+
+ @Throws(JSONException::class)
+ fun fromJsonString(jsonString: String, initialOpenDepth: Int = -1): JSonViewerObject {
+ val jobj = JSONObject(jsonString.trim())
+ val root = JSonViewerObject(null, null, jobj).apply { isExpanded = true }
+ jobj.keys().forEach {
+ eval(root, it, null, jobj.get(it), 1, initialOpenDepth)
+ }
+ return root
+ }
+
+ private fun eval(parent: Composed, key: String?, index: Int?, obj: Any, depth: Int, initialOpenDepth: Int) {
+ when (obj) {
+ is JSONObject -> {
+ val objectComposed = JSonViewerObject(key, index, obj)
+ .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
+ objectComposed.depth = depth
+ obj.keys().forEach {
+ eval(objectComposed, it, null, obj.get(it), depth + 1, initialOpenDepth)
+ }
+ parent.addChild(objectComposed)
+ }
+ is JSONArray -> {
+ val objectComposed = JSonViewerArray(key, index, obj)
+ .apply { isExpanded = initialOpenDepth == -1 || depth <= initialOpenDepth }
+ objectComposed.depth = depth
+ for (i in 0 until obj.length()) {
+ eval(objectComposed, null, i, obj[i], depth + 1, initialOpenDepth)
+ }
+ parent.addChild(objectComposed)
+ }
+ is String -> {
+ JSonViewerLeaf(key, index, obj, JSONType.STRING).let {
+ it.depth = depth
+ parent.addChild(it)
+ }
+ }
+ is Number -> {
+ JSonViewerLeaf(key, index, obj.toString(), JSONType.NUMBER).let {
+ it.depth = depth
+ parent.addChild(it)
+ }
+ }
+ is Boolean -> {
+ JSonViewerLeaf(key, index, obj.toString(), JSONType.BOOLEAN).let {
+ it.depth = depth
+ parent.addChild(it)
+ }
+ }
+ else -> {
+ if (obj == JSONObject.NULL) {
+ JSonViewerLeaf(key, index, "null", JSONType.NULL).let {
+ it.depth = depth
+ parent.addChild(it)
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt
new file mode 100644
index 0000000000..4fc04c91e4
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerStyleProvider.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.content.Context
+import android.os.Parcelable
+import androidx.annotation.ColorInt
+import androidx.core.content.ContextCompat
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class JSonViewerStyleProvider(
+ @ColorInt val keyColor: Int,
+ @ColorInt val stringColor: Int,
+ @ColorInt val booleanColor: Int,
+ @ColorInt val numberColor: Int,
+ @ColorInt val baseColor: Int,
+ @ColorInt val secondaryColor: Int
+) : Parcelable {
+
+ companion object {
+ fun default(context: Context) = JSonViewerStyleProvider(
+ keyColor = ContextCompat.getColor(context, R.color.key_color),
+ stringColor = ContextCompat.getColor(context, R.color.string_color),
+ booleanColor = ContextCompat.getColor(context, R.color.bool_color),
+ numberColor = ContextCompat.getColor(context, R.color.number_color),
+ baseColor = ContextCompat.getColor(context, R.color.base_color),
+ secondaryColor = ContextCompat.getColor(context, R.color.secondary_color)
+ )
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt
new file mode 100644
index 0000000000..bc3f022cfa
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/JSonViewerViewModel.kt
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import com.airbnb.mvrx.Async
+import com.airbnb.mvrx.Fail
+import com.airbnb.mvrx.Loading
+import com.airbnb.mvrx.MavericksState
+import com.airbnb.mvrx.MavericksViewModel
+import com.airbnb.mvrx.MavericksViewModelFactory
+import com.airbnb.mvrx.Success
+import com.airbnb.mvrx.Uninitialized
+import com.airbnb.mvrx.ViewModelContext
+import kotlinx.coroutines.launch
+
+internal data class JSonViewerState(
+ val root: Async = Uninitialized
+) : MavericksState
+
+internal class JSonViewerViewModel(initialState: JSonViewerState) :
+ MavericksViewModel(initialState) {
+
+ fun setJsonSource(json: String, initialOpenDepth: Int) {
+ setState {
+ copy(root = Loading())
+ }
+ viewModelScope.launch {
+ try {
+ ModelParser.fromJsonString(json, initialOpenDepth).let {
+ setState {
+ copy(
+ root = Success(it)
+ )
+ }
+ }
+ } catch (error: Throwable) {
+ setState {
+ copy(
+ root = Fail(error)
+ )
+ }
+ }
+ }
+ }
+
+ companion object : MavericksViewModelFactory {
+
+ @JvmStatic
+ override fun initialState(viewModelContext: ViewModelContext): JSonViewerState? {
+ val arg: JSonViewerFragmentArgs = viewModelContext.args()
+ return try {
+ JSonViewerState(
+ Success(ModelParser.fromJsonString(arg.jsonString, arg.defaultOpenDepth))
+ )
+ } catch (failure: Throwable) {
+ JSonViewerState(Fail(failure))
+ }
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt
new file mode 100644
index 0000000000..efb2bfd855
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/Utils.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.content.Context
+import android.util.TypedValue
+
+internal object Utils {
+ fun dpToPx(dp: Int, context: Context): Int {
+ return TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ dp.toFloat(),
+ context.resources.displayMetrics
+ ).toInt()
+ }
+}
diff --git a/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt
new file mode 100644
index 0000000000..227ac2a71d
--- /dev/null
+++ b/library/jsonviewer/src/main/java/org/billcarsonfr/jsonviewer/ValueItem.kt
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.view.ContextMenu
+import android.view.Menu
+import android.view.View
+import android.widget.LinearLayout
+import android.widget.TextView
+import com.airbnb.epoxy.EpoxyAttribute
+import com.airbnb.epoxy.EpoxyHolder
+import com.airbnb.epoxy.EpoxyModelClass
+import com.airbnb.epoxy.EpoxyModelWithHolder
+import im.vector.lib.core.utils.epoxy.charsequence.EpoxyCharSequence
+
+@EpoxyModelClass(layout = R2.layout.item_jv_base_value)
+internal abstract class ValueItem : EpoxyModelWithHolder() {
+
+ @EpoxyAttribute
+ var text: EpoxyCharSequence? = null
+
+ @EpoxyAttribute
+ var depth: Int = 0
+
+ @EpoxyAttribute
+ var copyValue: String? = null
+
+ @EpoxyAttribute(EpoxyAttribute.Option.DoNotHash)
+ var itemClickListener: View.OnClickListener? = null
+
+ override fun bind(holder: Holder) {
+ super.bind(holder)
+ holder.textView.text = text?.charSequence
+ holder.baseView.setPadding(Utils.dpToPx(16 * depth, holder.baseView.context), 0, 0, 0)
+ itemClickListener?.let { holder.baseView.setOnClickListener(it) }
+ holder.copyValue = copyValue
+ }
+
+ override fun unbind(holder: Holder) {
+ super.unbind(holder)
+ holder.baseView.setOnClickListener(null)
+ holder.copyValue = null
+ }
+
+ class Holder : EpoxyHolder(), View.OnCreateContextMenuListener {
+
+ lateinit var textView: TextView
+ lateinit var baseView: LinearLayout
+ var copyValue: String? = null
+
+ override fun bindView(itemView: View) {
+ baseView = itemView.findViewById(R.id.jvBaseLayout)
+ textView = itemView.findViewById(R.id.jvValueText)
+ itemView.setOnCreateContextMenuListener(this)
+ }
+
+ override fun onCreateContextMenu(
+ menu: ContextMenu?,
+ v: View?,
+ menuInfo: ContextMenu.ContextMenuInfo?
+ ) {
+ if (copyValue != null) {
+ val menuItem = menu?.add(
+ Menu.NONE, R.id.copy_value,
+ Menu.NONE, R.string.copy_value
+ )
+ val clipService =
+ v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager
+ menuItem?.setOnMenuItemClickListener {
+ clipService?.setPrimaryClip(ClipData.newPlainText("", copyValue))
+ true
+ }
+ }
+ }
+ }
+}
diff --git a/library/jsonviewer/src/main/res/layout/fragment_dialog_jv.xml b/library/jsonviewer/src/main/res/layout/fragment_dialog_jv.xml
new file mode 100644
index 0000000000..fb9e6d38c5
--- /dev/null
+++ b/library/jsonviewer/src/main/res/layout/fragment_dialog_jv.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view.xml b/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view.xml
new file mode 100644
index 0000000000..20822191e6
--- /dev/null
+++ b/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view_wrap.xml b/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view_wrap.xml
new file mode 100644
index 0000000000..8b61b13111
--- /dev/null
+++ b/library/jsonviewer/src/main/res/layout/fragment_jv_recycler_view_wrap.xml
@@ -0,0 +1,10 @@
+
+
diff --git a/library/jsonviewer/src/main/res/layout/item_jv_base_value.xml b/library/jsonviewer/src/main/res/layout/item_jv_base_value.xml
new file mode 100644
index 0000000000..b7dee1221b
--- /dev/null
+++ b/library/jsonviewer/src/main/res/layout/item_jv_base_value.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/library/jsonviewer/src/main/res/menu/jv_menu_item.xml b/library/jsonviewer/src/main/res/menu/jv_menu_item.xml
new file mode 100644
index 0000000000..4da69b5117
--- /dev/null
+++ b/library/jsonviewer/src/main/res/menu/jv_menu_item.xml
@@ -0,0 +1,8 @@
+
+
diff --git a/library/jsonviewer/src/main/res/values/colors.xml b/library/jsonviewer/src/main/res/values/colors.xml
new file mode 100644
index 0000000000..7b92899918
--- /dev/null
+++ b/library/jsonviewer/src/main/res/values/colors.xml
@@ -0,0 +1,11 @@
+
+
+
+ #FF006700
+ #FF040091
+ #FF980000
+ #FF1700FF
+ #FF000000
+ #FFAAAAAA
+
+
diff --git a/library/jsonviewer/src/main/res/values/strings.xml b/library/jsonviewer/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..cc4b8726b4
--- /dev/null
+++ b/library/jsonviewer/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Copy Value
+
diff --git a/library/jsonviewer/src/test/java/org/billcarsonfr/jsonviewer/ModelParseTest.kt b/library/jsonviewer/src/test/java/org/billcarsonfr/jsonviewer/ModelParseTest.kt
new file mode 100644
index 0000000000..350bcdf289
--- /dev/null
+++ b/library/jsonviewer/src/test/java/org/billcarsonfr/jsonviewer/ModelParseTest.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.billcarsonfr.jsonviewer
+
+import org.junit.Assert
+import org.junit.Test
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ModelParseTest {
+ @Test
+ fun parsing_isCorrect() {
+ val string = """
+ {
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "S",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
+ "Abbrev": "ISO 8879:1986",
+ "GlossDef": {
+ "para": "A meta-markup language, used to create markup languages such as DocBook.",
+ "GlossSeeAlso": ["GML", "XML"]
+ },
+ "GlossSee": "markup"
+ }
+ }
+ }
+ }
+ }
+ """.trim()
+
+ val model = ModelParser.fromJsonString(string)
+
+ Assert.assertEquals(0, model.depth)
+ Assert.assertEquals(1, model.keys.size)
+ Assert.assertTrue(model.keys.containsKey("glossary"))
+ Assert.assertTrue(model.keys["glossary"] is JSonViewerObject)
+
+ val glossary = model.keys["glossary"] as JSonViewerObject
+ Assert.assertEquals(2, glossary.keys.size)
+ Assert.assertTrue(glossary.keys.containsKey("title"))
+ Assert.assertTrue(glossary.keys.containsKey("GlossDiv"))
+
+ Assert.assertTrue(glossary.keys["title"] is JSonViewerLeaf)
+ (glossary.keys["title"] as JSonViewerLeaf).let {
+ Assert.assertEquals(JSONType.STRING, it.type)
+ }
+
+ Assert.assertTrue(glossary.keys["GlossDiv"] is JSonViewerObject)
+ val glossDiv = glossary.keys["GlossDiv"] as JSonViewerObject
+
+ Assert.assertTrue(glossDiv.keys["GlossList"] is JSonViewerObject)
+ val glossList = glossDiv.keys["GlossList"] as JSonViewerObject
+
+ Assert.assertTrue(glossList.keys["GlossEntry"] is JSonViewerObject)
+ val glossEntry = glossList.keys["GlossEntry"] as JSonViewerObject
+
+ Assert.assertTrue(glossEntry.keys["GlossDef"] is JSonViewerObject)
+ val glossDef = glossEntry.keys["GlossDef"] as JSonViewerObject
+
+ Assert.assertTrue(glossDef.keys["GlossSeeAlso"] is JSonViewerArray)
+ val glossSeeAlso = glossDef.keys["GlossSeeAlso"] as JSonViewerArray
+
+ Assert.assertEquals(2, glossSeeAlso.items.size)
+ Assert.assertEquals(0, glossSeeAlso.items.first().index)
+ Assert.assertNull(glossSeeAlso.items.first().key)
+ Assert.assertEquals("GML", (glossSeeAlso.items.first() as JSonViewerLeaf).stringRes)
+ }
+}
diff --git a/multipicker/.gitignore b/library/multipicker/.gitignore
similarity index 100%
rename from multipicker/.gitignore
rename to library/multipicker/.gitignore
diff --git a/multipicker/build.gradle b/library/multipicker/build.gradle
similarity index 100%
rename from multipicker/build.gradle
rename to library/multipicker/build.gradle
diff --git a/multipicker/consumer-rules.pro b/library/multipicker/consumer-rules.pro
similarity index 100%
rename from multipicker/consumer-rules.pro
rename to library/multipicker/consumer-rules.pro
diff --git a/matrix-sdk-android-rx/proguard-rules.pro b/library/multipicker/proguard-rules.pro
similarity index 100%
rename from matrix-sdk-android-rx/proguard-rules.pro
rename to library/multipicker/proguard-rules.pro
diff --git a/multipicker/src/main/AndroidManifest.xml b/library/multipicker/src/main/AndroidManifest.xml
similarity index 100%
rename from multipicker/src/main/AndroidManifest.xml
rename to library/multipicker/src/main/AndroidManifest.xml
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/AudioPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/AudioPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/AudioPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/AudioPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/CameraPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/CameraVideoPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt
similarity index 92%
rename from multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt
index 2b8c1d11e6..bb21196858 100644
--- a/multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/ContactPicker.kt
@@ -20,6 +20,8 @@ import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.provider.ContactsContract
+import androidx.core.database.getIntOrNull
+import androidx.core.database.getStringOrNull
import im.vector.lib.multipicker.entity.MultiPickerContactType
import im.vector.lib.multipicker.utils.getColumnIndexOrNull
@@ -54,9 +56,9 @@ class ContactPicker : Picker() {
val nameColumn = cursor.getColumnIndexOrNull(ContactsContract.Contacts.DISPLAY_NAME) ?: return@use
val photoUriColumn = cursor.getColumnIndexOrNull(ContactsContract.Contacts.PHOTO_URI) ?: return@use
- val contactId = cursor.getInt(idColumn)
- var name = cursor.getString(nameColumn)
- val photoUri = cursor.getString(photoUriColumn)
+ val contactId = cursor.getIntOrNull(idColumn) ?: return@use
+ var name = cursor.getStringOrNull(nameColumn) ?: return@use
+ val photoUri = cursor.getStringOrNull(photoUriColumn)
val phoneNumberList = mutableListOf()
val emailList = mutableListOf()
@@ -78,8 +80,8 @@ class ContactPicker : Picker() {
val data1ColumnIndex = innerCursor.getColumnIndexOrNull(ContactsContract.Data.DATA1) ?: return@inner
while (innerCursor.moveToNext()) {
- val mimeType = innerCursor.getString(mimeTypeColumnIndex)
- val contactData = innerCursor.getString(data1ColumnIndex)
+ val mimeType = innerCursor.getStringOrNull(mimeTypeColumnIndex)
+ val contactData = innerCursor.getStringOrNull(data1ColumnIndex) ?: continue
if (mimeType == ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) {
name = contactData
@@ -121,7 +123,7 @@ class ContactPicker : Picker() {
)?.use { cursor ->
return if (cursor.moveToFirst()) {
cursor.getColumnIndexOrNull(ContactsContract.RawContacts._ID)
- ?.let { cursor.getInt(it) }
+ ?.let { cursor.getIntOrNull(it) }
} else null
}
}
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt
similarity index 92%
rename from multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt
index 8e6c97f2f8..2e3148c9de 100644
--- a/multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/FilePicker.kt
@@ -19,6 +19,8 @@ package im.vector.lib.multipicker
import android.content.Context
import android.content.Intent
import android.provider.OpenableColumns
+import androidx.core.database.getLongOrNull
+import androidx.core.database.getStringOrNull
import im.vector.lib.multipicker.entity.MultiPickerBaseType
import im.vector.lib.multipicker.entity.MultiPickerFileType
import im.vector.lib.multipicker.utils.getColumnIndexOrNull
@@ -53,8 +55,8 @@ class FilePicker : Picker() {
val nameColumn = cursor.getColumnIndexOrNull(OpenableColumns.DISPLAY_NAME) ?: return@use null
val sizeColumn = cursor.getColumnIndexOrNull(OpenableColumns.SIZE) ?: return@use null
if (cursor.moveToFirst()) {
- val name = cursor.getString(nameColumn)
- val size = cursor.getLong(sizeColumn)
+ val name = cursor.getStringOrNull(nameColumn)
+ val size = cursor.getLongOrNull(sizeColumn) ?: 0
MultiPickerFileType(
name,
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/ImagePicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/ImagePicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/ImagePicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/ImagePicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/MediaPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/MediaPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/MediaPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/MediaPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/MultiPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/Picker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/Picker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/Picker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/Picker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/VideoPicker.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/VideoPicker.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/VideoPicker.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/VideoPicker.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerAudioType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerAudioType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerAudioType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerAudioType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseMediaType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseMediaType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseMediaType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseMediaType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerBaseType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerContactType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerContactType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerContactType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerContactType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerFileType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerFileType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerFileType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerFileType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerImageType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerImageType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerImageType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerImageType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerVideoType.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerVideoType.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerVideoType.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/entity/MultiPickerVideoType.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/provider/MultiPickerFileProvider.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/provider/MultiPickerFileProvider.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/provider/MultiPickerFileProvider.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/provider/MultiPickerFileProvider.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt
similarity index 92%
rename from multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt
index 55c0010afd..6114a82122 100644
--- a/multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt
+++ b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/ContentResolverUtil.kt
@@ -20,6 +20,8 @@ import android.content.Context
import android.media.MediaMetadataRetriever
import android.net.Uri
import android.provider.MediaStore
+import androidx.core.database.getLongOrNull
+import androidx.core.database.getStringOrNull
import im.vector.lib.multipicker.entity.MultiPickerAudioType
import im.vector.lib.multipicker.entity.MultiPickerImageType
import im.vector.lib.multipicker.entity.MultiPickerVideoType
@@ -41,8 +43,8 @@ internal fun Uri.toMultiPickerImageType(context: Context): MultiPickerImageType?
val sizeColumn = cursor.getColumnIndexOrNull(MediaStore.Images.Media.SIZE) ?: return@use null
if (cursor.moveToNext()) {
- val name = cursor.getString(nameColumn)
- val size = cursor.getLong(sizeColumn)
+ val name = cursor.getStringOrNull(nameColumn)
+ val size = cursor.getLongOrNull(sizeColumn) ?: 0
val bitmap = ImageUtils.getBitmap(context, this)
val orientation = ImageUtils.getOrientation(context, this)
@@ -79,8 +81,8 @@ internal fun Uri.toMultiPickerVideoType(context: Context): MultiPickerVideoType?
val sizeColumn = cursor.getColumnIndexOrNull(MediaStore.Video.Media.SIZE) ?: return@use null
if (cursor.moveToNext()) {
- val name = cursor.getString(nameColumn)
- val size = cursor.getLong(sizeColumn)
+ val name = cursor.getStringOrNull(nameColumn)
+ val size = cursor.getLongOrNull(sizeColumn) ?: 0
var duration = 0L
var width = 0
var height = 0
@@ -128,8 +130,8 @@ fun Uri.toMultiPickerAudioType(context: Context): MultiPickerAudioType? {
val sizeColumn = cursor.getColumnIndexOrNull(MediaStore.Audio.Media.SIZE) ?: return@use null
if (cursor.moveToNext()) {
- val name = cursor.getString(nameColumn)
- val size = cursor.getLong(sizeColumn)
+ val name = cursor.getStringOrNull(nameColumn)
+ val size = cursor.getLongOrNull(sizeColumn) ?: 0
var duration = 0L
context.contentResolver.openFileDescriptor(this, "r")?.use { pfd ->
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/utils/CursorExtensions.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/CursorExtensions.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/utils/CursorExtensions.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/utils/CursorExtensions.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/utils/ImageUtils.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/ImageUtils.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/utils/ImageUtils.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/utils/ImageUtils.kt
diff --git a/multipicker/src/main/java/im/vector/lib/multipicker/utils/MimeTypeUtil.kt b/library/multipicker/src/main/java/im/vector/lib/multipicker/utils/MimeTypeUtil.kt
similarity index 100%
rename from multipicker/src/main/java/im/vector/lib/multipicker/utils/MimeTypeUtil.kt
rename to library/multipicker/src/main/java/im/vector/lib/multipicker/utils/MimeTypeUtil.kt
diff --git a/multipicker/src/main/res/xml/multipicker_provider_paths.xml b/library/multipicker/src/main/res/xml/multipicker_provider_paths.xml
similarity index 100%
rename from multipicker/src/main/res/xml/multipicker_provider_paths.xml
rename to library/multipicker/src/main/res/xml/multipicker_provider_paths.xml
diff --git a/library/ui-styles/src/debug/res/layout/activity_debug_material_theme.xml b/library/ui-styles/src/debug/res/layout/activity_debug_material_theme.xml
index 4828810e34..c1ae9ef117 100644
--- a/library/ui-styles/src/debug/res/layout/activity_debug_material_theme.xml
+++ b/library/ui-styles/src/debug/res/layout/activity_debug_material_theme.xml
@@ -34,7 +34,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/appBarLayout">
+ app:layout_constraintTop_toBottomOf="@id/appBarLayout">
-
visible
-
diff --git a/library/ui-styles/src/main/java/MaterialProgressDialog.kt b/library/ui-styles/src/main/java/im/vector/lib/ui/styles/dialogs/MaterialProgressDialog.kt
similarity index 100%
rename from library/ui-styles/src/main/java/MaterialProgressDialog.kt
rename to library/ui-styles/src/main/java/im/vector/lib/ui/styles/dialogs/MaterialProgressDialog.kt
diff --git a/library/ui-styles/src/main/res/anim/animation_slide_in_left.xml b/library/ui-styles/src/main/res/anim/animation_slide_in_left.xml
new file mode 100644
index 0000000000..77861c99f6
--- /dev/null
+++ b/library/ui-styles/src/main/res/anim/animation_slide_in_left.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/anim/animation_slide_in_right.xml b/library/ui-styles/src/main/res/anim/animation_slide_in_right.xml
new file mode 100644
index 0000000000..cf7488cc1a
--- /dev/null
+++ b/library/ui-styles/src/main/res/anim/animation_slide_in_right.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/anim/animation_slide_out_left.xml b/library/ui-styles/src/main/res/anim/animation_slide_out_left.xml
new file mode 100644
index 0000000000..2afa66ceab
--- /dev/null
+++ b/library/ui-styles/src/main/res/anim/animation_slide_out_left.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/anim/animation_slide_out_right.xml b/library/ui-styles/src/main/res/anim/animation_slide_out_right.xml
new file mode 100644
index 0000000000..49348f1dac
--- /dev/null
+++ b/library/ui-styles/src/main/res/anim/animation_slide_out_right.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/drawable/bg_carousel_page_1.xml b/library/ui-styles/src/main/res/drawable/bg_carousel_page_1.xml
new file mode 100644
index 0000000000..fa3aea4cab
--- /dev/null
+++ b/library/ui-styles/src/main/res/drawable/bg_carousel_page_1.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/drawable/bg_carousel_page_2.xml b/library/ui-styles/src/main/res/drawable/bg_carousel_page_2.xml
new file mode 100644
index 0000000000..f696823a6e
--- /dev/null
+++ b/library/ui-styles/src/main/res/drawable/bg_carousel_page_2.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/drawable/bg_carousel_page_3.xml b/library/ui-styles/src/main/res/drawable/bg_carousel_page_3.xml
new file mode 100644
index 0000000000..b114f9c804
--- /dev/null
+++ b/library/ui-styles/src/main/res/drawable/bg_carousel_page_3.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/drawable/bg_carousel_page_4.xml b/library/ui-styles/src/main/res/drawable/bg_carousel_page_4.xml
new file mode 100644
index 0000000000..e8ee364431
--- /dev/null
+++ b/library/ui-styles/src/main/res/drawable/bg_carousel_page_4.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/drawable/bg_carousel_page_dark.xml b/library/ui-styles/src/main/res/drawable/bg_carousel_page_dark.xml
new file mode 100644
index 0000000000..2542ff2b1d
--- /dev/null
+++ b/library/ui-styles/src/main/res/drawable/bg_carousel_page_dark.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/vector/src/main/res/drawable/bg_voice_playback.xml b/library/ui-styles/src/main/res/drawable/bg_media_pill.xml
similarity index 82%
rename from vector/src/main/res/drawable/bg_voice_playback.xml
rename to library/ui-styles/src/main/res/drawable/bg_media_pill.xml
index 4474c00345..2ad9ca9918 100644
--- a/vector/src/main/res/drawable/bg_voice_playback.xml
+++ b/library/ui-styles/src/main/res/drawable/bg_media_pill.xml
@@ -2,9 +2,6 @@
-
-
-
-
-
+
+
-
-
-
+
diff --git a/library/ui-styles/src/debug/res/drawable/ic_debug_icon.xml b/library/ui-styles/src/main/res/drawable/ic_debug_icon.xml
similarity index 100%
rename from library/ui-styles/src/debug/res/drawable/ic_debug_icon.xml
rename to library/ui-styles/src/main/res/drawable/ic_debug_icon.xml
diff --git a/library/ui-styles/src/main/res/transition/image_preview_transition.xml b/library/ui-styles/src/main/res/transition/image_preview_transition.xml
index 3674324c4e..c1af6d7973 100644
--- a/library/ui-styles/src/main/res/transition/image_preview_transition.xml
+++ b/library/ui-styles/src/main/res/transition/image_preview_transition.xml
@@ -11,5 +11,3 @@
-
-
diff --git a/library/ui-styles/src/main/res/values-h720dp/dimens.xml b/library/ui-styles/src/main/res/values-h720dp/dimens.xml
new file mode 100644
index 0000000000..1a7791720d
--- /dev/null
+++ b/library/ui-styles/src/main/res/values-h720dp/dimens.xml
@@ -0,0 +1,5 @@
+
+
+
- 0.05
+ - 0.40
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values-sw600dp/dimens.xml b/library/ui-styles/src/main/res/values-sw600dp/dimens.xml
index 204d663d9c..f399a350b1 100644
--- a/library/ui-styles/src/main/res/values-sw600dp/dimens.xml
+++ b/library/ui-styles/src/main/res/values-sw600dp/dimens.xml
@@ -2,4 +2,8 @@
400dp
+
+
+ - 0.25
+ - 0.75
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values-sw600dp/tablet.xml b/library/ui-styles/src/main/res/values-sw600dp/tablet.xml
new file mode 100644
index 0000000000..86bab06371
--- /dev/null
+++ b/library/ui-styles/src/main/res/values-sw600dp/tablet.xml
@@ -0,0 +1,7 @@
+
+
+
+ 0.6
+ true
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values-sw720dp/tablet.xml b/library/ui-styles/src/main/res/values-sw720dp/tablet.xml
new file mode 100644
index 0000000000..4afbe6c773
--- /dev/null
+++ b/library/ui-styles/src/main/res/values-sw720dp/tablet.xml
@@ -0,0 +1,6 @@
+
+
+
+ 0.5
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values-v23/dimens.xml b/library/ui-styles/src/main/res/values-v23/dimens.xml
new file mode 100644
index 0000000000..18b8a81a7e
--- /dev/null
+++ b/library/ui-styles/src/main/res/values-v23/dimens.xml
@@ -0,0 +1,4 @@
+
+
+ 28dp
+
\ 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 9df2794a1a..770b001893 100644
--- a/library/ui-styles/src/main/res/values/colors.xml
+++ b/library/ui-styles/src/main/res/values/colors.xml
@@ -57,11 +57,6 @@
-
- #FF61708B
- #FF61708B
- #FF61708B
-
@android:color/white
#FF181B21
@@ -137,4 +132,5 @@
@color/palette_gray_100
@color/palette_gray_450
+
diff --git a/library/ui-styles/src/main/res/values/colors_message_bubble.xml b/library/ui-styles/src/main/res/values/colors_message_bubble.xml
new file mode 100644
index 0000000000..7ac68574b6
--- /dev/null
+++ b/library/ui-styles/src/main/res/values/colors_message_bubble.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ #E8EDF4
+ #21262C
+
+ #E7F8F3
+ #133A34
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/dimens.xml b/library/ui-styles/src/main/res/values/dimens.xml
index e2e50449ce..be57f75dc8 100644
--- a/library/ui-styles/src/main/res/values/dimens.xml
+++ b/library/ui-styles/src/main/res/values/dimens.xml
@@ -15,6 +15,8 @@
72dp
16dp
+ 32dp
+
40dp
60dp
@@ -32,7 +34,6 @@
88dp
8dp
-
76dp
@@ -41,4 +42,29 @@
320dp
+
+ 8dp
+ 160dp
+
+ 24dp
+ 48dp
+ 48dp
+
+
+ 56dp
+ 52dp
+ 1dp
+
+
+ 28dp
+ 62dp
+ 300dp
+ 12dp
+
+
+ - 0.05
+ - 0.95
+
+ - 0.01
+ - 0.35
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/palette.xml b/library/ui-styles/src/main/res/values/palette.xml
index ed12f10af3..e37fd8a7c6 100644
--- a/library/ui-styles/src/main/res/values/palette.xml
+++ b/library/ui-styles/src/main/res/values/palette.xml
@@ -20,7 +20,6 @@
#5C56F5
#0086E6
-
#F4F6FA
#E3E8F0
diff --git a/library/ui-styles/src/main/res/values/stylable_badge_floating_action_button.xml b/library/ui-styles/src/main/res/values/stylable_badge_floating_action_button.xml
index c9be5175e0..88bee99f84 100644
--- a/library/ui-styles/src/main/res/values/stylable_badge_floating_action_button.xml
+++ b/library/ui-styles/src/main/res/values/stylable_badge_floating_action_button.xml
@@ -1,5 +1,4 @@
-
diff --git a/library/ui-styles/src/main/res/values/stylable_message_bubble.xml b/library/ui-styles/src/main/res/values/stylable_message_bubble.xml
new file mode 100644
index 0000000000..f7a877e3ed
--- /dev/null
+++ b/library/ui-styles/src/main/res/values/stylable_message_bubble.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/library/ui-styles/src/main/res/values/stylable_pool_result_line.xml b/library/ui-styles/src/main/res/values/stylable_pool_result_line.xml
deleted file mode 100644
index 93e9851106..0000000000
--- a/library/ui-styles/src/main/res/values/stylable_pool_result_line.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/library/ui-styles/src/main/res/values/styles_progress.xml b/library/ui-styles/src/main/res/values/styles_progress.xml
index 712e7e98b6..04a0e01b58 100644
--- a/library/ui-styles/src/main/res/values/styles_progress.xml
+++ b/library/ui-styles/src/main/res/values/styles_progress.xml
@@ -6,6 +6,7 @@
diff --git a/library/ui-styles/src/main/res/values/styles_social_login.xml b/library/ui-styles/src/main/res/values/styles_social_login.xml
index f601f36480..5a76f70f2e 100644
--- a/library/ui-styles/src/main/res/values/styles_social_login.xml
+++ b/library/ui-styles/src/main/res/values/styles_social_login.xml
@@ -49,7 +49,6 @@
- @android:color/black
-
@@ -68,7 +67,6 @@
- #3877EA
-
@@ -85,7 +83,6 @@
- #5D9EC9
-
@@ -118,5 +115,4 @@
- @android:color/black
-
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/styles_timeline.xml b/library/ui-styles/src/main/res/values/styles_timeline.xml
index 7fd7eac0ec..c86eeb8efb 100644
--- a/library/ui-styles/src/main/res/values/styles_timeline.xml
+++ b/library/ui-styles/src/main/res/values/styles_timeline.xml
@@ -4,12 +4,34 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/styles_toolbar.xml b/library/ui-styles/src/main/res/values/styles_toolbar.xml
index 9f6ba102ed..505419c6fe 100644
--- a/library/ui-styles/src/main/res/values/styles_toolbar.xml
+++ b/library/ui-styles/src/main/res/values/styles_toolbar.xml
@@ -6,10 +6,12 @@
- 0dp
- - @style/Widget.Vector.TextView.ActionBarTitle
+ - @style/TextAppearance.Vector.Widget.ActionBarTitle
- - @style/Widget.Vector.TextView.ActionBarSubTitle
+ - @style/TextAppearance.Vector.Widget.ActionBarSubTitle
+
+ - ?vctr_content_secondary
@@ -22,16 +24,18 @@
-
-
diff --git a/library/ui-styles/src/main/res/values/tablet.xml b/library/ui-styles/src/main/res/values/tablet.xml
new file mode 100644
index 0000000000..8460f0ccf8
--- /dev/null
+++ b/library/ui-styles/src/main/res/values/tablet.xml
@@ -0,0 +1,7 @@
+
+
+
+ 1
+ false
+
+
\ No newline at end of file
diff --git a/library/ui-styles/src/main/res/values/text_appearances.xml b/library/ui-styles/src/main/res/values/text_appearances.xml
index 4ad3fd493e..8e30dd00d6 100644
--- a/library/ui-styles/src/main/res/values/text_appearances.xml
+++ b/library/ui-styles/src/main/res/values/text_appearances.xml
@@ -59,6 +59,10 @@
- sans-serif-medium
+
+
-
\ No newline at end of file
+
diff --git a/library/ui-styles/src/main/res/values/theme_black.xml b/library/ui-styles/src/main/res/values/theme_black.xml
index c472a4fae5..44d4206d43 100644
--- a/library/ui-styles/src/main/res/values/theme_black.xml
+++ b/library/ui-styles/src/main/res/values/theme_black.xml
@@ -7,7 +7,6 @@
- - @color/vctr_unread_room_badge_black
- @color/vctr_fab_label_bg_black
- @color/vctr_fab_label_stroke_black
- @color/vctr_fab_label_color_black
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 b828855721..100a07f41d 100644
--- a/library/ui-styles/src/main/res/values/theme_dark.xml
+++ b/library/ui-styles/src/main/res/values/theme_dark.xml
@@ -16,7 +16,6 @@
- @color/element_system_dark
- - @color/vctr_unread_room_badge_dark
- @color/vctr_fab_label_bg_dark
- @color/vctr_fab_label_stroke_dark
- @color/vctr_fab_label_color_dark
@@ -31,6 +30,8 @@
- @color/vctr_waiting_background_color_dark
- @color/vctr_chat_effect_snow_background_dark
- @color/element_system_dark
+ - @color/vctr_message_bubble_inbound_dark
+ - @color/vctr_message_bubble_outbound_dark
- #61708B
@@ -105,9 +106,6 @@
- never
-
- - sans
-
- @style/PreferenceThemeOverlay.v14.Material
- @style/PinCodeScreenStyle
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 790a0bfc7c..39e78ee5b1 100644
--- a/library/ui-styles/src/main/res/values/theme_light.xml
+++ b/library/ui-styles/src/main/res/values/theme_light.xml
@@ -16,7 +16,6 @@
- @color/element_system_light
- - @color/vctr_unread_room_badge_light
- @color/vctr_fab_label_bg_light
- @color/vctr_fab_label_stroke_light
- @color/vctr_fab_label_color_light
@@ -31,6 +30,8 @@
- @color/vctr_waiting_background_color_light
- @color/vctr_chat_effect_snow_background_light
- @color/element_background_light
+ - @color/vctr_message_bubble_inbound_light
+ - @color/vctr_message_bubble_outbound_light
- #61708B
@@ -105,9 +106,6 @@
- never
-
- - sans
-
- @style/PreferenceThemeOverlay.v14.Material
- @style/PinCodeScreenStyle
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
index 42c1476b79..c5d1d19fec 100644
--- 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
@@ -32,6 +32,8 @@ 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
+typealias ThreadRootEvent = TimelineEvent
+
class FlowRoom(private val room: Room) {
fun liveRoomSummary(): Flow> {
@@ -56,9 +58,9 @@ class FlowRoom(private val room: Room) {
}
fun liveTimelineEvent(eventId: String): Flow> {
- return room.getTimeLineEventLive(eventId).asFlow()
+ return room.getTimelineEventLive(eventId).asFlow()
.startWith(room.coroutineDispatchers.io) {
- room.getTimeLineEvent(eventId).toOptional()
+ room.getTimelineEvent(eventId).toOptional()
}
}
@@ -98,6 +100,20 @@ class FlowRoom(private val room: Room) {
fun liveNotificationState(): Flow {
return room.getLiveRoomNotificationState().asFlow()
}
+
+ fun liveThreadList(): Flow> {
+ return room.getAllThreadsLive().asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getAllThreads()
+ }
+ }
+
+ fun liveLocalUnreadThreadList(): Flow> {
+ return room.getMarkedThreadNotificationsLive().asFlow()
+ .startWith(room.coroutineDispatchers.io) {
+ room.getMarkedThreadNotifications()
+ }
+ }
}
fun Room.flow(): FlowRoom {
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
index 2a0abd3d24..669e27edfd 100644
--- 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
@@ -152,6 +152,13 @@ class FlowSession(private val session: Session) {
}
}
+ fun liveUserAccountData(type: String): Flow> {
+ return session.accountDataService().getLiveUserAccountDataEvent(type).asFlow()
+ .startWith(session.coroutineDispatchers.io) {
+ session.accountDataService().getUserAccountDataEvent(type).toOptional()
+ }
+ }
+
fun liveRoomAccountData(types: Set): Flow> {
return session.accountDataService().getLiveRoomAccountDataEvents(types).asFlow()
.startWith(session.coroutineDispatchers.io) {
diff --git a/matrix-sdk-android-rx/build.gradle b/matrix-sdk-android-rx/build.gradle
deleted file mode 100644
index dbd761cee3..0000000000
--- a/matrix-sdk-android-rx/build.gradle
+++ /dev/null
@@ -1,47 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-kapt'
-
-android {
- compileSdk versions.compileSdk
-
- defaultConfig {
- minSdk versions.minSdk
- targetSdk versions.targetSdk
-
- // Multidex is useful for tests
- multiDexEnabled true
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.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.rx.rxKotlin
- implementation libs.rx.rxAndroid
- implementation libs.jetbrains.coroutinesRx2
-
- // Paging
- implementation libs.androidx.pagingRuntimeKtx
-
- // Logging
- implementation libs.jakewharton.timber
-}
diff --git a/matrix-sdk-android-rx/src/main/AndroidManifest.xml b/matrix-sdk-android-rx/src/main/AndroidManifest.xml
deleted file mode 100644
index 5f399e9f84..0000000000
--- a/matrix-sdk-android-rx/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/LiveDataObservable.kt b/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/LiveDataObservable.kt
deleted file mode 100644
index 56b52facf9..0000000000
--- a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/LiveDataObservable.kt
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.rx
-
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.Observer
-import io.reactivex.Observable
-import io.reactivex.android.MainThreadDisposable
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.schedulers.Schedulers
-
-private class LiveDataObservable(
- private val liveData: LiveData,
- private val valueIfNull: T? = null
-) : Observable() {
-
- override fun subscribeActual(observer: io.reactivex.Observer) {
- val relay = RemoveObserverInMainThread(observer)
- observer.onSubscribe(relay)
- liveData.observeForever(relay)
- }
-
- private inner class RemoveObserverInMainThread(private val observer: io.reactivex.Observer) :
- MainThreadDisposable(), Observer {
-
- override fun onChanged(t: T?) {
- if (!isDisposed) {
- if (t == null) {
- if (valueIfNull != null) {
- observer.onNext(valueIfNull)
- } else {
- observer.onError(NullPointerException(
- "convert liveData value t to RxJava onNext(t), t cannot be null"))
- }
- } else {
- observer.onNext(t)
- }
- }
- }
-
- override fun onDispose() {
- liveData.removeObserver(this)
- }
- }
-}
-
-fun LiveData.asObservable(): Observable {
- return LiveDataObservable(this).observeOn(Schedulers.computation())
-}
-
-internal fun Observable.startWithCallable(supplier: () -> T): Observable {
- val startObservable = Observable
- .fromCallable(supplier)
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- return startWith(startObservable)
-}
diff --git a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxRoom.kt b/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxRoom.kt
deleted file mode 100644
index b3495c4493..0000000000
--- a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxRoom.kt
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * 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.rx
-
-import android.net.Uri
-import io.reactivex.Completable
-import io.reactivex.Observable
-import io.reactivex.Single
-import kotlinx.coroutines.rx2.rxCompletable
-import kotlinx.coroutines.rx2.rxSingle
-import org.matrix.android.sdk.api.query.QueryStringValue
-import org.matrix.android.sdk.api.session.content.ContentAttachmentData
-import org.matrix.android.sdk.api.session.events.model.Event
-import org.matrix.android.sdk.api.session.identity.ThreePid
-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.GuestAccess
-import org.matrix.android.sdk.api.session.room.model.ReadReceipt
-import org.matrix.android.sdk.api.session.room.model.RoomHistoryVisibility
-import org.matrix.android.sdk.api.session.room.model.RoomJoinRules
-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 RxRoom(private val room: Room) {
-
- fun liveRoomSummary(): Observable> {
- return room.getRoomSummaryLive()
- .asObservable()
- .startWithCallable { room.roomSummary().toOptional() }
- }
-
- fun liveRoomMembers(queryParams: RoomMemberQueryParams): Observable> {
- return room.getRoomMembersLive(queryParams).asObservable()
- .startWithCallable {
- room.getRoomMembers(queryParams)
- }
- }
-
- fun liveAnnotationSummary(eventId: String): Observable> {
- return room.getEventAnnotationsSummaryLive(eventId).asObservable()
- .startWithCallable {
- room.getEventAnnotationsSummary(eventId).toOptional()
- }
- }
-
- fun liveTimelineEvent(eventId: String): Observable> {
- return room.getTimeLineEventLive(eventId).asObservable()
- .startWithCallable {
- room.getTimeLineEvent(eventId).toOptional()
- }
- }
-
- fun liveStateEvent(eventType: String, stateKey: QueryStringValue): Observable> {
- return room.getStateEventLive(eventType, stateKey).asObservable()
- .startWithCallable {
- room.getStateEvent(eventType, stateKey).toOptional()
- }
- }
-
- fun liveStateEvents(eventTypes: Set): Observable> {
- return room.getStateEventsLive(eventTypes).asObservable()
- .startWithCallable {
- room.getStateEvents(eventTypes)
- }
- }
-
- fun liveReadMarker(): Observable> {
- return room.getReadMarkerLive().asObservable()
- }
-
- fun liveReadReceipt(): Observable> {
- return room.getMyReadReceiptLive().asObservable()
- }
-
- fun loadRoomMembersIfNeeded(): Single = rxSingle {
- room.loadRoomMembersIfNeeded()
- }
-
- fun joinRoom(reason: String? = null,
- viaServers: List = emptyList()): Single = rxSingle {
- room.join(reason, viaServers)
- }
-
- fun liveEventReadReceipts(eventId: String): Observable> {
- return room.getEventReadReceiptsLive(eventId).asObservable()
- }
-
- fun liveDraft(): Observable> {
- return room.getDraftLive().asObservable()
- .startWithCallable {
- room.getDraft().toOptional()
- }
- }
-
- fun liveNotificationState(): Observable {
- return room.getLiveRoomNotificationState().asObservable()
- }
-
- fun invite(userId: String, reason: String? = null): Completable = rxCompletable {
- room.invite(userId, reason)
- }
-
- fun invite3pid(threePid: ThreePid): Completable = rxCompletable {
- room.invite3pid(threePid)
- }
-
- fun updateTopic(topic: String): Completable = rxCompletable {
- room.updateTopic(topic)
- }
-
- fun updateName(name: String): Completable = rxCompletable {
- room.updateName(name)
- }
-
- fun updateHistoryReadability(readability: RoomHistoryVisibility): Completable = rxCompletable {
- room.updateHistoryReadability(readability)
- }
-
- fun updateJoinRule(joinRules: RoomJoinRules?, guestAccess: GuestAccess?): Completable = rxCompletable {
- room.updateJoinRule(joinRules, guestAccess)
- }
-
- fun updateAvatar(avatarUri: Uri, fileName: String): Completable = rxCompletable {
- room.updateAvatar(avatarUri, fileName)
- }
-
- fun deleteAvatar(): Completable = rxCompletable {
- room.deleteAvatar()
- }
-
- fun sendMedia(attachment: ContentAttachmentData, compressBeforeSending: Boolean, roomIds: Set): Completable = rxCompletable {
- room.sendMedia(attachment, compressBeforeSending, roomIds)
- }
-}
-
-fun Room.rx(): RxRoom {
- return RxRoom(this)
-}
diff --git a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxSession.kt b/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxSession.kt
deleted file mode 100644
index 47203816b4..0000000000
--- a/matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxSession.kt
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * 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.rx
-
-import androidx.paging.PagedList
-import io.reactivex.Observable
-import io.reactivex.Single
-import io.reactivex.functions.Function3
-import kotlinx.coroutines.rx2.rxSingle
-import org.matrix.android.sdk.api.extensions.orFalse
-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.KEYBACKUP_SECRET_SSSS_NAME
-import org.matrix.android.sdk.api.session.crypto.crosssigning.MASTER_KEY_SSSS_NAME
-import org.matrix.android.sdk.api.session.crypto.crosssigning.MXCrossSigningInfo
-import org.matrix.android.sdk.api.session.crypto.crosssigning.SELF_SIGNING_KEY_SSSS_NAME
-import org.matrix.android.sdk.api.session.crypto.crosssigning.USER_SIGNING_KEY_SSSS_NAME
-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.FoundThreePid
-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.room.model.create.CreateRoomParams
-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.JsonDict
-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
-import org.matrix.android.sdk.internal.session.room.alias.RoomAliasDescription
-
-class RxSession(private val session: Session) {
-
- fun liveRoomSummaries(queryParams: RoomSummaryQueryParams): Observable> {
- return session.getRoomSummariesLive(queryParams).asObservable()
- .startWithCallable {
- session.getRoomSummaries(queryParams)
- }
- }
-
- fun liveGroupSummaries(queryParams: GroupSummaryQueryParams): Observable> {
- return session.getGroupSummariesLive(queryParams).asObservable()
- .startWithCallable {
- session.getGroupSummaries(queryParams)
- }
- }
-
- fun liveSpaceSummaries(queryParams: SpaceSummaryQueryParams): Observable> {
- return session.spaceService().getSpaceSummariesLive(queryParams).asObservable()
- .startWithCallable {
- session.spaceService().getSpaceSummaries(queryParams)
- }
- }
-
- fun liveBreadcrumbs(queryParams: RoomSummaryQueryParams): Observable> {
- return session.getBreadcrumbsLive(queryParams).asObservable()
- .startWithCallable {
- session.getBreadcrumbs(queryParams)
- }
- }
-
- fun liveMyDevicesInfo(): Observable> {
- return session.cryptoService().getLiveMyDevicesInfo().asObservable()
- .startWithCallable {
- session.cryptoService().getMyDevicesInfo()
- }
- }
-
- fun liveSyncState(): Observable {
- return session.getSyncStateLive().asObservable()
- }
-
- fun livePushers(): Observable> {
- return session.getPushersLive().asObservable()
- }
-
- fun liveUser(userId: String): Observable> {
- return session.getUserLive(userId).asObservable()
- .startWithCallable {
- session.getUser(userId).toOptional()
- }
- }
-
- fun liveRoomMember(userId: String, roomId: String): Observable> {
- return session.getRoomMemberLive(userId, roomId).asObservable()
- .startWithCallable {
- session.getRoomMember(userId, roomId).toOptional()
- }
- }
-
- fun liveUsers(): Observable> {
- return session.getUsersLive().asObservable()
- }
-
- fun liveIgnoredUsers(): Observable> {
- return session.getIgnoredUsersLive().asObservable()
- }
-
- fun livePagedUsers(filter: String? = null, excludedUserIds: Set? = null): Observable> {
- return session.getPagedUsersLive(filter, excludedUserIds).asObservable()
- }
-
- fun liveThreePIds(refreshData: Boolean): Observable> {
- return session.getThreePidsLive(refreshData).asObservable()
- .startWithCallable { session.getThreePids() }
- }
-
- fun livePendingThreePIds(): Observable> {
- return session.getPendingThreePidsLive().asObservable()
- .startWithCallable { session.getPendingThreePids() }
- }
-
- fun createRoom(roomParams: CreateRoomParams): Single = rxSingle {
- session.createRoom(roomParams)
- }
-
- fun searchUsersDirectory(search: String,
- limit: Int,
- excludedUserIds: Set): Single> = rxSingle {
- session.searchUsersDirectory(search, limit, excludedUserIds)
- }
-
- fun joinRoom(roomIdOrAlias: String,
- reason: String? = null,
- viaServers: List = emptyList()): Single = rxSingle {
- session.joinRoom(roomIdOrAlias, reason, viaServers)
- }
-
- fun getRoomIdByAlias(roomAlias: String,
- searchOnServer: Boolean): Single> = rxSingle {
- session.getRoomIdByAlias(roomAlias, searchOnServer)
- }
-
- fun getProfileInfo(userId: String): Single = rxSingle {
- session.getProfile(userId)
- }
-
- fun liveUserCryptoDevices(userId: String): Observable> {
- return session.cryptoService().getLiveCryptoDeviceInfo(userId).asObservable().startWithCallable {
- session.cryptoService().getCryptoDeviceInfo(userId)
- }
- }
-
- fun liveCrossSigningInfo(userId: String): Observable> {
- return session.cryptoService().crossSigningService().getLiveCrossSigningKeys(userId).asObservable()
- .startWithCallable {
- session.cryptoService().crossSigningService().getUserCrossSigningKeys(userId).toOptional()
- }
- }
-
- fun liveCrossSigningPrivateKeys(): Observable> {
- return session.cryptoService().crossSigningService().getLiveCrossSigningPrivateKeys().asObservable()
- .startWithCallable {
- session.cryptoService().crossSigningService().getCrossSigningPrivateKeys().toOptional()
- }
- }
-
- fun liveUserAccountData(types: Set): Observable> {
- return session.accountDataService().getLiveUserAccountDataEvents(types).asObservable()
- .startWithCallable {
- session.accountDataService().getUserAccountDataEvents(types)
- }
- }
-
- fun liveRoomAccountData(types: Set): Observable> {
- return session.accountDataService().getLiveRoomAccountDataEvents(types).asObservable()
- .startWithCallable {
- session.accountDataService().getRoomAccountDataEvents(types)
- }
- }
-
- fun liveRoomWidgets(
- roomId: String,
- widgetId: QueryStringValue,
- widgetTypes: Set? = null,
- excludedTypes: Set? = null
- ): Observable> {
- return session.widgetService().getRoomWidgetsLive(roomId, widgetId, widgetTypes, excludedTypes).asObservable()
- .startWithCallable {
- session.widgetService().getRoomWidgets(roomId, widgetId, widgetTypes, excludedTypes)
- }
- }
-
- fun liveRoomChangeMembershipState(): Observable