mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-22 09:25:49 +03:00
Merge pull request #4 from poljar/rust_upstream_develop
Rust upstream develop
This commit is contained in:
commit
7436647571
2048 changed files with 56598 additions and 49453 deletions
5
.github/ISSUE_TEMPLATE/bug.yml
vendored
5
.github/ISSUE_TEMPLATE/bug.yml
vendored
|
@ -57,8 +57,9 @@ body:
|
||||||
id: homeserver
|
id: homeserver
|
||||||
attributes:
|
attributes:
|
||||||
label: Homeserver
|
label: Homeserver
|
||||||
description: Which server is your account registered on?
|
description: |
|
||||||
placeholder: e.g. matrix.org
|
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:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
|
|
36
.github/ISSUE_TEMPLATE/release.yml
vendored
36
.github/ISSUE_TEMPLATE/release.yml
vendored
|
@ -1,6 +1,6 @@
|
||||||
name: Release checklist
|
name: Release checklist
|
||||||
description: Checklist for each release. This template is only for the core team.
|
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]
|
labels: [🚀 Release]
|
||||||
assignees:
|
assignees:
|
||||||
- bmarty
|
- bmarty
|
||||||
|
@ -10,7 +10,7 @@ body:
|
||||||
id: checklist
|
id: checklist
|
||||||
attributes:
|
attributes:
|
||||||
label: Release checklist
|
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: |
|
placeholder: |
|
||||||
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
||||||
value: |
|
value: |
|
||||||
|
@ -22,35 +22,41 @@ body:
|
||||||
|
|
||||||
### Do the release
|
### 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 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()`
|
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
|
||||||
- [ ] Create an account on matrix.org
|
- [ ] 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.1.10 --draft` (remove `--draft` do write the file CHANGES.md)
|
- [ ] 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
|
- [ ] 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.
|
- [ ] (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
|
- [ ] Finish release with gitflow, delete the draft PR (if created)
|
||||||
- [ ] Push `main` and the new tag `v1.1.10` to origin
|
- [ ] Push `main` and the new tag `v1.2.3` to origin
|
||||||
- [ ] Checkout `develop`
|
- [ ] 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`
|
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
|
||||||
- [ ] Commit and push `develop`
|
- [ ] Commit and push `develop`
|
||||||
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
|
- [ ] 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.
|
- [ ] 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.)
|
- [ ] 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.
|
- [ ] Create a new beta release on the GooglePlay console and upload the 4 signed Apks.
|
||||||
- [ ] Check that the version codes are correct
|
- [ ] Check that the version codes are correct
|
||||||
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
|
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
|
||||||
- [ ] Push to beta release to 100% of the users
|
- [ ] 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
|
- [ ] Notify the F-Droid team so that they can schedule the publication on F-Droid
|
||||||
- [ ] Add the 4 signed APKs to the GitHub release
|
|
||||||
- [ ] Ping the Android Internal room
|
|
||||||
- [ ] Add an entry in the internal diary
|
|
||||||
|
|
||||||
### Once Live on PlayStore
|
### Once Live on PlayStore
|
||||||
|
|
||||||
- [ ] Ping the Android public room and update its topic
|
- [ ] Ping the Android public room and update its topic
|
||||||
|
- [ ] Add an entry in the internal diary
|
||||||
|
|
||||||
### After at least 2 days
|
### After at least 2 days
|
||||||
|
|
||||||
|
@ -62,6 +68,8 @@ body:
|
||||||
|
|
||||||
### Android SDK2
|
### 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
|
- [ ] Checkout the `main` branch on Element Android project
|
||||||
|
|
||||||
#### On the SDK2 project
|
#### On the SDK2 project
|
||||||
|
|
42
.github/PULL_REQUEST_TEMPLATE.md
vendored
42
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -1,9 +1,41 @@
|
||||||
### Pull Request Checklist
|
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
|
||||||
|
|
||||||
<!--
|
## Type of change
|
||||||
Please read [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request
|
|
||||||
Depending on the Pull Request content, it can be acceptable if some of the following checkboxes stay unchecked.
|
- [ ] Feature
|
||||||
-->
|
- [ ] Bugfix
|
||||||
|
- [ ] Technical
|
||||||
|
- [ ] Other :
|
||||||
|
|
||||||
|
## Content
|
||||||
|
|
||||||
|
<!-- Describe shortly what has been changed -->
|
||||||
|
|
||||||
|
## Motivation and context
|
||||||
|
|
||||||
|
<!-- Provide link to the corresponding issue if applicable or explain the context -->
|
||||||
|
|
||||||
|
## Screenshots / GIFs
|
||||||
|
|
||||||
|
<!-- Only if UI have been changed -->
|
||||||
|
|
||||||
|
## Tests
|
||||||
|
|
||||||
|
<!-- Explain how you tested your development -->
|
||||||
|
|
||||||
|
- Step 1
|
||||||
|
- Step 2
|
||||||
|
- Step ...
|
||||||
|
|
||||||
|
## Tested devices
|
||||||
|
|
||||||
|
- [ ] Physical
|
||||||
|
- [ ] Emulator
|
||||||
|
- OS version(s):
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
<!-- Depending on the Pull Request content, it can be acceptable if some of the following checkboxes stay unchecked. -->
|
||||||
|
|
||||||
- [ ] Changes has been tested on an Android device or Android emulator with API 21
|
- [ ] 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
|
- [ ] UI change has been tested on both light and dark themes
|
||||||
|
|
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
|
@ -10,6 +10,8 @@ updates:
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "*github-script*"
|
||||||
# Updates for Gradle dependencies used in the app
|
# Updates for Gradle dependencies used in the app
|
||||||
- package-ecosystem: gradle
|
- package-ecosystem: gradle
|
||||||
directory: "/"
|
directory: "/"
|
||||||
|
|
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
|
@ -20,6 +20,10 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
target: [ Gplay, Fdroid ]
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
|
@ -43,6 +47,7 @@ jobs:
|
||||||
name: Build unsigned GPlay APKs
|
name: Build unsigned GPlay APKs
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.ref == 'refs/heads/main'
|
if: github.ref == 'refs/heads/main'
|
||||||
|
# Only runs on main, no concurrency.
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
|
|
|
@ -5,6 +5,7 @@ jobs:
|
||||||
validation:
|
validation:
|
||||||
name: "Validation"
|
name: "Validation"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# No concurrency required, this is a prerequisite to other actions and should run every time.
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
- uses: gradle/wrapper-validation-action@v1
|
||||||
|
|
86
.github/workflows/integration.yml
vendored
86
.github/workflows/integration.yml
vendored
|
@ -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
|
|
329
.github/workflows/nightly.yml
vendored
Normal file
329
.github/workflows/nightly.yml
vendored
Normal file
|
@ -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]`<br>${{ steps.get-comment-body-session.outputs.session }}
|
||||||
|
- `[org.matrix.android.sdk.account]`<br>${{ steps.get-comment-body-account.outputs.account }}
|
||||||
|
- `[org.matrix.android.sdk.internal]`<br>${{ steps.get-comment-body-internal.outputs.internal }}
|
||||||
|
- `[org.matrix.android.sdk.ordering]`<br>${{ steps.get-comment-body-ordering.outputs.ordering }}
|
||||||
|
- `[org.matrix.android.sdk.PermalinkParserTest]`<br>${{ 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 }}<br />{{name}} {{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a>{{/if}}{{/with}}{{/each}}"
|
74
.github/workflows/quality.yml
vendored
74
.github/workflows/quality.yml
vendored
|
@ -14,24 +14,87 @@ jobs:
|
||||||
- name: Run code quality check suite
|
- name: Run code quality check suite
|
||||||
run: ./tools/check/check_code_quality.sh
|
run: ./tools/check/check_code_quality.sh
|
||||||
|
|
||||||
|
# ktlint for all the modules
|
||||||
ktlint:
|
ktlint:
|
||||||
name: Kotlin Linter
|
name: Kotlin Linter
|
||||||
runs-on: ubuntu-latest
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Run ktlint
|
- name: Run ktlint
|
||||||
run: |
|
run: |
|
||||||
./gradlew ktlintCheck --continue
|
./gradlew ktlintCheck --continue
|
||||||
- name: Upload reports
|
- name: Upload reports
|
||||||
|
if: always()
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ktlinting-report
|
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\//\`<br\/>\`/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:
|
android-lint:
|
||||||
name: Android Linter
|
name: Android Linter
|
||||||
runs-on: ubuntu-latest
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
|
@ -45,6 +108,7 @@ jobs:
|
||||||
- name: Lint analysis
|
- name: Lint analysis
|
||||||
run: ./gradlew clean :vector:lint --stacktrace
|
run: ./gradlew clean :vector:lint --stacktrace
|
||||||
- name: Upload reports
|
- name: Upload reports
|
||||||
|
if: always()
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: lint-report
|
name: lint-report
|
||||||
|
@ -60,6 +124,10 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
target: [ Gplay, Fdroid ]
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
|
@ -73,8 +141,8 @@ jobs:
|
||||||
- name: Lint ${{ matrix.target }} release
|
- name: Lint ${{ matrix.target }} release
|
||||||
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace
|
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace
|
||||||
- name: Upload ${{ matrix.target }} linting report
|
- name: Upload ${{ matrix.target }} linting report
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
if: always()
|
if: always()
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: release-lint-report-${{ matrix.target }}
|
name: release-lint-report-${{ matrix.target }}
|
||||||
path: |
|
path: |
|
||||||
|
|
78
.github/workflows/sanity_test.yml
vendored
78
.github/workflows/sanity_test.yml
vendored
|
@ -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/
|
|
46
.github/workflows/sync-from-external-sources.yml
vendored
46
.github/workflows/sync-from-external-sources.yml
vendored
|
@ -9,20 +9,13 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# Skip in forks
|
# Skip in forks
|
||||||
if: github.repository == 'vector-im/element-android'
|
if: github.repository == 'vector-im/element-android'
|
||||||
|
# No concurrency required, runs every time on a schedule.
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v3
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
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
|
- name: Install Prerequisite dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install BeautifulSoup4
|
pip install BeautifulSoup4
|
||||||
|
@ -43,20 +36,13 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# Skip in forks
|
# Skip in forks
|
||||||
if: github.repository == 'vector-im/element-android'
|
if: github.repository == 'vector-im/element-android'
|
||||||
|
# No concurrency required, runs every time on a schedule.
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v3
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
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
|
- name: Install Prerequisite dependencies
|
||||||
run: |
|
run: |
|
||||||
pip install requests
|
pip install requests
|
||||||
|
@ -71,3 +57,27 @@ jobs:
|
||||||
- Update SAS Strings from matrix-doc.
|
- Update SAS Strings from matrix-doc.
|
||||||
branch: sync-sas-strings
|
branch: sync-sas-strings
|
||||||
base: develop
|
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
|
4
.github/workflows/tests.yml
vendored
4
.github/workflows/tests.yml
vendored
|
@ -15,6 +15,10 @@ jobs:
|
||||||
unit-tests:
|
unit-tests:
|
||||||
name: Run Unit Tests
|
name: Run Unit Tests
|
||||||
runs-on: ubuntu-latest
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/cache@v2
|
- uses: actions/cache@v2
|
||||||
|
|
2
.github/workflows/triage-incoming.yml
vendored
2
.github/workflows/triage-incoming.yml
vendored
|
@ -7,6 +7,8 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
automate-project-columns:
|
automate-project-columns:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
|
if: github.repository == 'vector-im/element-android'
|
||||||
steps:
|
steps:
|
||||||
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
|
|
254
.github/workflows/triage-labelled.yml
vendored
Normal file
254
.github/workflows/triage-labelled.yml
vendored
Normal file
|
@ -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 }}
|
124
.github/workflows/triage-move-labelled.yml
vendored
124
.github/workflows/triage-move-labelled.yml
vendored
|
@ -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 }}
|
|
139
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
139
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
|
@ -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 }}
|
9
.github/workflows/triage-priority-bugs.yml
vendored
9
.github/workflows/triage-priority-bugs.yml
vendored
|
@ -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:
|
on:
|
||||||
issues:
|
issues:
|
||||||
|
@ -7,7 +7,9 @@ on:
|
||||||
jobs:
|
jobs:
|
||||||
p1_issues_to_team_workboard:
|
p1_issues_to_team_workboard:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
if: >
|
if: >
|
||||||
|
github.repository == 'vector-im/element-android' &&
|
||||||
(!contains(github.event.issue.labels.*.name, 'A-E2EE') &&
|
(!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-Cross-Signing') &&
|
||||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
||||||
|
@ -33,7 +35,10 @@ jobs:
|
||||||
|
|
||||||
P1_issues_to_crypto_team_workboard:
|
P1_issues_to_crypto_team_workboard:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
if: >
|
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') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
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-Dehydration') ||
|
||||||
|
@ -46,7 +51,7 @@ jobs:
|
||||||
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
contains(github.event.issue.labels.*.name, 'O-Frequent')))
|
||||||
steps:
|
steps:
|
||||||
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -8,9 +8,10 @@ jobs:
|
||||||
Move_Unabeled_Issue_On_Project_Board:
|
Move_Unabeled_Issue_On_Project_Board:
|
||||||
name: Move no longer X-Needs-Info issues to Triaged
|
name: Move no longer X-Needs-Info issues to Triaged
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
if: >
|
if: >
|
||||||
${{
|
github.repository == 'vector-im/element-android' &&
|
||||||
!contains(github.event.issue.labels.*.name, 'X-Needs-Info') }}
|
!contains(github.event.issue.labels.*.name, 'X-Needs-Info')
|
||||||
env:
|
env:
|
||||||
BOARD_NAME: "Issue triage"
|
BOARD_NAME: "Issue triage"
|
||||||
OWNER: ${{ github.repository_owner }}
|
OWNER: ${{ github.repository_owner }}
|
||||||
|
@ -33,3 +34,29 @@ jobs:
|
||||||
project: Issue triage
|
project: Issue triage
|
||||||
column: Triaged
|
column: Triaged
|
||||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
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']
|
||||||
|
})
|
|
@ -24,9 +24,11 @@
|
||||||
<w>pbkdf</w>
|
<w>pbkdf</w>
|
||||||
<w>pids</w>
|
<w>pids</w>
|
||||||
<w>pkcs</w>
|
<w>pkcs</w>
|
||||||
|
<w>posthog</w>
|
||||||
<w>previewable</w>
|
<w>previewable</w>
|
||||||
<w>previewables</w>
|
<w>previewables</w>
|
||||||
<w>pstn</w>
|
<w>pstn</w>
|
||||||
|
<w>rageshake</w>
|
||||||
<w>riotx</w>
|
<w>riotx</w>
|
||||||
<w>signin</w>
|
<w>signin</w>
|
||||||
<w>signout</w>
|
<w>signout</w>
|
||||||
|
@ -35,6 +37,7 @@
|
||||||
<w>ssss</w>
|
<w>ssss</w>
|
||||||
<w>sygnal</w>
|
<w>sygnal</w>
|
||||||
<w>threepid</w>
|
<w>threepid</w>
|
||||||
|
<w>uisi</w>
|
||||||
<w>unpublish</w>
|
<w>unpublish</w>
|
||||||
<w>unwedging</w>
|
<w>unwedging</w>
|
||||||
<w>vctr</w>
|
<w>vctr</w>
|
||||||
|
|
BIN
.idea/icon.png
Normal file
BIN
.idea/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
312
CHANGES.md
312
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)
|
Changes in Element v1.3.8 (2021-11-17)
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,9 @@ Supported filename extensions are:
|
||||||
|
|
||||||
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
|
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
|
||||||
- ``.bugfix``: Signifying a bug fix.
|
- ``.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.
|
- ``.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.
|
- ``.misc``: Any other changes.
|
||||||
|
|
||||||
See https://github.com/twisted/towncrier#news-fragments if you need more details.
|
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:
|
Instead, please comment the original string with:
|
||||||
```xml
|
```xml
|
||||||
<!-- TO BE REMOVED -->
|
<!-- TODO TO BE REMOVED -->
|
||||||
```
|
```
|
||||||
The string will be removed during the next sync with Weblate.
|
The string will be removed during the next sync with Weblate.
|
||||||
|
|
||||||
|
|
11
README.md
11
README.md
|
@ -7,14 +7,15 @@
|
||||||
|
|
||||||
# Element Android
|
# 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.
|
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience.
|
||||||
|
|
||||||
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||||
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](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
|
# 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!
|
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).
|
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.
|
||||||
|
|
76
build.gradle
76
build.gradle
|
@ -1,12 +1,11 @@
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
|
|
||||||
apply from: 'dependencies.gradle'
|
apply from: 'dependencies.gradle'
|
||||||
|
apply from: 'dependencies_groups.gradle'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
jcenter()
|
|
||||||
maven {
|
maven {
|
||||||
url "https://plugins.gradle.org/m2/"
|
url "https://plugins.gradle.org/m2/"
|
||||||
}
|
}
|
||||||
|
@ -20,8 +19,8 @@ buildscript {
|
||||||
classpath libs.gradle.hiltPlugin
|
classpath libs.gradle.hiltPlugin
|
||||||
classpath 'com.google.gms:google-services:4.3.10'
|
classpath 'com.google.gms:google-services:4.3.10'
|
||||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
||||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
|
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||||
classpath "com.likethesalad.android:string-reference:1.2.2"
|
classpath "com.likethesalad.android:stem-plugin:2.0.0"
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
|
@ -30,58 +29,55 @@ buildscript {
|
||||||
|
|
||||||
// ktlint Plugin
|
// ktlint Plugin
|
||||||
plugins {
|
plugins {
|
||||||
id "org.jlleitschuh.gradle.ktlint" version "10.2.0"
|
id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
||||||
|
|
||||||
repositories {
|
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 {
|
maven {
|
||||||
url 'https://jitpack.io'
|
url 'https://jitpack.io'
|
||||||
content {
|
content {
|
||||||
// Use this repo only for olm library
|
groups.jitpack.regex.each { includeGroupByRegex it }
|
||||||
includeGroupByRegex "org\\.matrix\\.gitlab\\.matrix-org"
|
groups.jitpack.group.each { includeGroup it }
|
||||||
// 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'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
|
||||||
// Jitsi repo
|
// Jitsi repo
|
||||||
maven {
|
maven {
|
||||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-3.10.0"
|
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:
|
// 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"
|
// 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 {
|
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
||||||
// Warnings are potential errors, so stop ignoring them
|
// Warnings are potential errors, so stop ignoring them
|
||||||
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
// 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
|
// Fix "Java heap space" issue
|
||||||
|
@ -142,7 +138,7 @@ project(":vector") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":diff-match-patch") {
|
project(":library:diff-match-patch") {
|
||||||
sonarqube {
|
sonarqube {
|
||||||
skipProject = true
|
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", "**/*.*"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
1
changelog.d/3296.bugfix
Normal file
1
changelog.d/3296.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Typing notifications moved from the header to the bottom of the timeline.
|
|
@ -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
|
|
|
@ -1 +0,0 @@
|
||||||
Fixing queued voice message failing to send or retry
|
|
|
@ -1 +0,0 @@
|
||||||
Keeping device screen on whilst recording and playing back voice messages
|
|
|
@ -1 +0,0 @@
|
||||||
Allow voice messages to continue recording during device rotation
|
|
|
@ -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)
|
|
|
@ -1 +0,0 @@
|
||||||
Make Element Android Thread aware
|
|
1
changelog.d/4319.bugfix
Normal file
1
changelog.d/4319.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Open direct message screen when clicking on DM button in the space members list
|
|
@ -1 +0,0 @@
|
||||||
Make the verification shields the same in Element Web and Element Android
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a display issue in the composer when the replied message is changed.
|
|
|
@ -1 +0,0 @@
|
||||||
Dismissing the Fdroid variant Listening for notifications on sign out, fixes crash when tapping the notification when signed out
|
|
1
changelog.d/4498.misc
Normal file
1
changelog.d/4498.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Override task affinity to prevent unknown activities running in our app tasks.
|
|
@ -1 +0,0 @@
|
||||||
Upgrade Jitsi lib (and so webrtc) from Jitsi android-sdk-3.1.0 to android-sdk-3.10.0
|
|
|
@ -1 +0,0 @@
|
||||||
Improve crypto logs to help debug decryption failures
|
|
|
@ -1 +0,0 @@
|
||||||
Voice recording mic button refactor with small animation tweaks in preparation for voice drafts
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a crash when displaying the bootstrap bottom sheet
|
|
|
@ -1 +0,0 @@
|
||||||
Remove duplicated settings declaration
|
|
|
@ -1 +0,0 @@
|
||||||
Fixes .ogg files failing to upload to rooms
|
|
1
changelog.d/5005.feature
Normal file
1
changelog.d/5005.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add possibility to save media from Gallery + reorder choices in message context menu
|
1
changelog.d/5158.wip
Normal file
1
changelog.d/5158.wip
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Starts the FTUE account personalisation flow by adding an account created screen behind a feature flag
|
1
changelog.d/5269.misc
Normal file
1
changelog.d/5269.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Tentatively fixing the UI sanity test being unable to click on the space menu items
|
1
changelog.d/5303.misc
Normal file
1
changelog.d/5303.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Improve Bubble layouts rendering.
|
1
changelog.d/5309.misc
Normal file
1
changelog.d/5309.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Moves attachment-viewer, diff-match-patch, and multipicker modules to subfolders under library
|
1
changelog.d/5312.misc
Normal file
1
changelog.d/5312.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Log the `since` token used and `next_batch` token returned when doing an incremental sync.
|
1
changelog.d/5313.misc
Normal file
1
changelog.d/5313.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Update reaction button layout.
|
1
changelog.d/5314.misc
Normal file
1
changelog.d/5314.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Notify element-android channel each time a nightly build completes.
|
1
changelog.d/5318.misc
Normal file
1
changelog.d/5318.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Log the `since` token used and `next_batch` token returned when doing an incremental sync.
|
1
changelog.d/5325.feature
Normal file
1
changelog.d/5325.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Adds forceLoginFallback feature flag and usages to FTUE login and registration
|
1
changelog.d/5326.misc
Normal file
1
changelog.d/5326.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[Export e2ee keys] use appName instead of element
|
1
changelog.d/5330.misc
Normal file
1
changelog.d/5330.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Continue improving realm usage.
|
1
changelog.d/5330.sdk
Normal file
1
changelog.d/5330.sdk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Change name of getTimeLineEvent and getTimeLineEventLive methods to getTimelineEvent and getTimelineEventLive.
|
1
changelog.d/5348.misc
Normal file
1
changelog.d/5348.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Upgrade the plugin which generate strings with template from 1.2.2 to 2.0.0
|
1
changelog.d/5352.misc
Normal file
1
changelog.d/5352.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove about 700 unused strings and their translations
|
1
changelog.d/5361.misc
Normal file
1
changelog.d/5361.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Creates dedicated VectorOverrides for forcing behaviour for local testing/development
|
1
changelog.d/5379.misc
Normal file
1
changelog.d/5379.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Cleanup unused threads build configurations
|
1
changelog.d/5392.misc
Normal file
1
changelog.d/5392.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Upgrades material dependency version from 1.4.0 to 1.5.0
|
1
changelog.d/5394.bugfix
Normal file
1
changelog.d/5394.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix incorrect media cache size in settings
|
|
@ -7,11 +7,11 @@ ext.versions = [
|
||||||
'targetCompat' : JavaVersion.VERSION_11,
|
'targetCompat' : JavaVersion.VERSION_11,
|
||||||
]
|
]
|
||||||
|
|
||||||
def gradle = "7.0.3"
|
def gradle = "7.0.4"
|
||||||
// Ref: https://kotlinlang.org/releases.html
|
// Ref: https://kotlinlang.org/releases.html
|
||||||
def kotlin = "1.5.31"
|
def kotlin = "1.5.31"
|
||||||
def kotlinCoroutines = "1.5.2"
|
def kotlinCoroutines = "1.5.2"
|
||||||
def dagger = "2.40.2"
|
def dagger = "2.40.5"
|
||||||
def retrofit = "2.9.0"
|
def retrofit = "2.9.0"
|
||||||
def arrow = "0.8.2"
|
def arrow = "0.8.2"
|
||||||
def markwon = "4.6.2"
|
def markwon = "4.6.2"
|
||||||
|
@ -19,7 +19,7 @@ def moshi = "1.12.0"
|
||||||
def lifecycle = "2.4.0"
|
def lifecycle = "2.4.0"
|
||||||
def flowBinding = "1.2.0"
|
def flowBinding = "1.2.0"
|
||||||
def epoxy = "4.6.2"
|
def epoxy = "4.6.2"
|
||||||
def mavericks = "2.4.0"
|
def mavericks = "2.5.0"
|
||||||
def glide = "4.12.0"
|
def glide = "4.12.0"
|
||||||
def bigImageViewer = "1.8.1"
|
def bigImageViewer = "1.8.1"
|
||||||
def jjwt = "0.11.2"
|
def jjwt = "0.11.2"
|
||||||
|
@ -29,6 +29,7 @@ def vanniktechEmoji = "0.8.0"
|
||||||
def mockk = "1.12.1"
|
def mockk = "1.12.1"
|
||||||
def espresso = "3.4.0"
|
def espresso = "3.4.0"
|
||||||
def androidxTest = "1.4.0"
|
def androidxTest = "1.4.0"
|
||||||
|
def androidxOrchestrator = "1.4.1"
|
||||||
|
|
||||||
|
|
||||||
ext.libs = [
|
ext.libs = [
|
||||||
|
@ -41,7 +42,6 @@ ext.libs = [
|
||||||
jetbrains : [
|
jetbrains : [
|
||||||
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
||||||
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$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"
|
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||||
],
|
],
|
||||||
androidx : [
|
androidx : [
|
||||||
|
@ -63,7 +63,7 @@ ext.libs = [
|
||||||
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
||||||
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
|
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
|
||||||
'testCore' : "androidx.test:core:$androidxTest",
|
'testCore' : "androidx.test:core:$androidxTest",
|
||||||
'orchestrator' : "androidx.test:orchestrator:$androidxTest",
|
'orchestrator' : "androidx.test:orchestrator:$androidxOrchestrator",
|
||||||
'testRunner' : "androidx.test:runner:$androidxTest",
|
'testRunner' : "androidx.test:runner:$androidxTest",
|
||||||
'testRules' : "androidx.test:rules:$androidxTest",
|
'testRules' : "androidx.test:rules:$androidxTest",
|
||||||
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
||||||
|
@ -71,7 +71,7 @@ ext.libs = [
|
||||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
||||||
],
|
],
|
||||||
google : [
|
google : [
|
||||||
'material' : "com.google.android.material:material:1.4.0"
|
'material' : "com.google.android.material:material:1.5.0"
|
||||||
],
|
],
|
||||||
dagger : [
|
dagger : [
|
||||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||||
|
@ -86,8 +86,7 @@ ext.libs = [
|
||||||
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
|
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
|
||||||
],
|
],
|
||||||
rx : [
|
rx : [
|
||||||
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0",
|
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0"
|
||||||
'rxAndroid' : "io.reactivex.rxjava2:rxandroid:2.1.1"
|
|
||||||
],
|
],
|
||||||
arrow : [
|
arrow : [
|
||||||
'core' : "io.arrow-kt:arrow-core:$arrow",
|
'core' : "io.arrow-kt:arrow-core:$arrow",
|
||||||
|
@ -95,6 +94,8 @@ ext.libs = [
|
||||||
],
|
],
|
||||||
markwon : [
|
markwon : [
|
||||||
'core' : "io.noties.markwon:core:$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"
|
'html' : "io.noties.markwon:html:$markwon"
|
||||||
],
|
],
|
||||||
airbnb : [
|
airbnb : [
|
||||||
|
|
205
dependencies_groups.gradle
Normal file
205
dependencies_groups.gradle
Normal file
|
@ -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',
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
16
docs/analytics.md
Normal file
16
docs/analytics.md
Normal file
|
@ -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.
|
|
@ -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
|
- open the created vector drawable
|
||||||
- optionally update the color(s) to "#FF0000" (red) to ensure that the drawable is correctly tinted at runtime.
|
- 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
|
||||||
|
|
||||||
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
|
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
|
||||||
|
|
|
@ -104,3 +104,76 @@ fun initAccount() {
|
||||||
existingSession = createAccountAndSync(matrix, userName, password, true)
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
|
@ -1,49 +1,64 @@
|
||||||
fastlane documentation
|
fastlane documentation
|
||||||
================
|
----
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
Make sure you have the latest version of the Xcode command line tools installed:
|
Make sure you have the latest version of the Xcode command line tools installed:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
xcode-select --install
|
xcode-select --install
|
||||||
```
|
```
|
||||||
|
|
||||||
Install _fastlane_ using
|
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
|
||||||
```
|
|
||||||
[sudo] gem install fastlane -NV
|
|
||||||
```
|
|
||||||
or alternatively using `brew install fastlane`
|
|
||||||
|
|
||||||
# Available Actions
|
# Available Actions
|
||||||
|
|
||||||
## Android
|
## Android
|
||||||
|
|
||||||
### android test
|
### android test
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android test
|
||||||
```
|
```
|
||||||
fastlane android test
|
|
||||||
```
|
|
||||||
Runs all the tests
|
Runs all the tests
|
||||||
|
|
||||||
### android beta
|
### android beta
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android beta
|
||||||
```
|
```
|
||||||
fastlane android beta
|
|
||||||
```
|
|
||||||
Submit a new Beta Build to Crashlytics Beta
|
Submit a new Beta Build to Crashlytics Beta
|
||||||
|
|
||||||
### android deploy
|
### android deploy
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android deploy
|
||||||
```
|
```
|
||||||
fastlane android deploy
|
|
||||||
```
|
|
||||||
Deploy a new version to the Google Play
|
Deploy a new version to the Google Play
|
||||||
|
|
||||||
### android deployMeta
|
### android deployMeta
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android deployMeta
|
||||||
```
|
```
|
||||||
fastlane android deployMeta
|
|
||||||
```
|
|
||||||
Deploy Google Play metadata
|
Deploy Google Play metadata
|
||||||
|
|
||||||
### android getVersionCode
|
### android getVersionCode
|
||||||
|
|
||||||
|
```sh
|
||||||
|
[bundle exec] fastlane android getVersionCode
|
||||||
```
|
```
|
||||||
fastlane android getVersionCode
|
|
||||||
```
|
|
||||||
Get version code
|
Get version code
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
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).
|
||||||
|
|
|
@ -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
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.15
|
||||||
|
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103070.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103070.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103080.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103080.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103090.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103130.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103130.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103140.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103140.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103150.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103150.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103160.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103160.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103170.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103180.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104000.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104020.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103050.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103050.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103060.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103060.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103070.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103070.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103080.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103080.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Änderungen: Verschiedene Fehler behoben
|
||||||
|
Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.8
|
2
fastlane/metadata/android/de-DE/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103090.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hauptänderungen: Verbesserungen bei Sprachnachrichten, Bugfixes.
|
||||||
|
Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.3.9
|
2
fastlane/metadata/android/de-DE/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103100.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hauptänderungen: Bugfixes!
|
||||||
|
Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/de-DE/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hauptänderungen: Bugfixes!
|
||||||
|
Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/de-DE/changelogs/40103130.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103130.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103140.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103140.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103150.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103150.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103160.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103160.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103170.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/de-DE/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40103180.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/en-US/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103090.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/en-US/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103100.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/en-US/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103110.txt
Normal file
|
@ -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
|
2
fastlane/metadata/android/en-US/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103120.txt
Normal file
|
@ -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
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue