mirror of
https://github.com/element-hq/element-android
synced 2024-10-23 03:06:33 +03:00
Merge branch 'develop' into feature/ons/voice_message_scrubbing
This commit is contained in:
commit
2c611790db
691 changed files with 15454 additions and 36283 deletions
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
|
||||||
|
|
||||||
<!--
|
- [ ] Feature
|
||||||
Please read [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request
|
- [ ] Bugfix
|
||||||
Depending on the Pull Request content, it can be acceptable if some of the following checkboxes stay unchecked.
|
- [ ] 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
|
||||||
|
|
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
|
||||||
|
|
210
.github/workflows/integration_tests.yml
vendored
210
.github/workflows/integration_tests.yml
vendored
|
@ -1,210 +0,0 @@
|
||||||
name: Integration Tests
|
|
||||||
|
|
||||||
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:
|
|
||||||
# Build Android Tests [Matrix SDK]
|
|
||||||
build-android-test-matrix-sdk:
|
|
||||||
name: Matrix SDK - Build 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: Build Android Tests for matrix-sdk-android
|
|
||||||
run: ./gradlew clean matrix-sdk-android:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
|
|
||||||
|
|
||||||
# Build Android Tests [Matrix APP]
|
|
||||||
build-android-test-app:
|
|
||||||
name: App - Build 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: Build Android Tests for vector
|
|
||||||
run: ./gradlew clean vector:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
|
|
||||||
|
|
||||||
# Run Android Tests
|
|
||||||
integration-tests:
|
|
||||||
name: Matrix SDK - Running Integration Tests
|
|
||||||
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 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 }}]
|
|
||||||
continue-on-error: true
|
|
||||||
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: ./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]
|
|
||||||
continue-on-error: true
|
|
||||||
id: get-comment-body-session
|
|
||||||
run: |
|
|
||||||
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
|
||||||
echo "::set-output name=session::passed=$body"
|
|
||||||
# package: org.matrix.android.sdk.account
|
|
||||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.account] API[${{ matrix.api-level }}]
|
|
||||||
continue-on-error: true
|
|
||||||
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: ./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]
|
|
||||||
continue-on-error: true
|
|
||||||
id: get-comment-body-account
|
|
||||||
run: |
|
|
||||||
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
|
||||||
echo "::set-output name=account::passed=$body"
|
|
||||||
# package: org.matrix.android.sdk.internal
|
|
||||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.internal] API[${{ matrix.api-level }}]
|
|
||||||
continue-on-error: true
|
|
||||||
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: ./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]
|
|
||||||
continue-on-error: true
|
|
||||||
id: get-comment-body-internal
|
|
||||||
run: |
|
|
||||||
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
|
||||||
echo "::set-output name=internal::passed=$body"
|
|
||||||
# package: org.matrix.android.sdk.ordering
|
|
||||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.ordering] API[${{ matrix.api-level }}]
|
|
||||||
continue-on-error: true
|
|
||||||
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: ./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]
|
|
||||||
continue-on-error: true
|
|
||||||
id: get-comment-body-ordering
|
|
||||||
run: |
|
|
||||||
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
|
||||||
echo "::set-output name=ordering::passed=$body"
|
|
||||||
# package: class PermalinkParserTest
|
|
||||||
- name: Run integration tests for Matrix SDK class [org.matrix.android.sdk.PermalinkParserTest] API[${{ matrix.api-level }}]
|
|
||||||
continue-on-error: true
|
|
||||||
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: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class='org.matrix.android.sdk.PermalinkParserTest' matrix-sdk-android:connectedDebugAndroidTest
|
|
||||||
- name: Read Results [org.matrix.android.sd.PermalinkParserTest]
|
|
||||||
continue-on-error: true
|
|
||||||
id: get-comment-body-permalink
|
|
||||||
run: |
|
|
||||||
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
|
||||||
echo "::set-output name=permalink::passed=$body"
|
|
||||||
- name: Find Comment
|
|
||||||
if: 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: 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
|
|
||||||
## Useful commands
|
|
||||||
# script: ./integration_tests_script.sh
|
|
||||||
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.session' matrix-sdk-android:connectedDebugAndroidTest --info
|
|
||||||
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES matrix-sdk-android:connectedAndroidTest --info
|
|
||||||
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedCheck --stacktrace
|
|
||||||
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.ChunkEntityTest matrix-sdk-android:connectedAndroidTest --info
|
|
357
.github/workflows/nightly.yml
vendored
Normal file
357
.github/workflows/nightly.yml
vendored
Normal file
|
@ -0,0 +1,357 @@
|
||||||
|
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
|
||||||
|
- 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/
|
||||||
|
|
||||||
|
sonarqube:
|
||||||
|
runs-on: macos-latest
|
||||||
|
if: always()
|
||||||
|
needs:
|
||||||
|
- integration-tests
|
||||||
|
- ui-tests
|
||||||
|
# - unit-tests TODO: code coverage from here too
|
||||||
|
- build-android-test-matrix-sdk
|
||||||
|
- build-android-test-app
|
||||||
|
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-
|
||||||
|
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
env:
|
||||||
|
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||||
|
|
||||||
|
# Notify the channel about scheduled runs, do not notify for manually triggered runs
|
||||||
|
notify:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs:
|
||||||
|
- integration-tests
|
||||||
|
- ui-tests
|
||||||
|
# - unit-tests
|
||||||
|
- build-android-test-matrix-sdk
|
||||||
|
- build-android-test-app
|
||||||
|
- sonarqube
|
||||||
|
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}}"
|
12
.github/workflows/quality.yml
vendored
12
.github/workflows/quality.yml
vendored
|
@ -18,6 +18,10 @@ jobs:
|
||||||
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
|
||||||
|
@ -87,6 +91,10 @@ jobs:
|
||||||
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
|
||||||
|
@ -116,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
|
||||||
|
|
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/
|
|
23
.github/workflows/sync-from-external-sources.yml
vendored
23
.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
|
||||||
|
@ -76,6 +62,7 @@ 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: Run analytics import script
|
- name: Run analytics import script
|
||||||
|
|
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
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
<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>
|
||||||
|
|
BIN
.idea/icon.png
Normal file
BIN
.idea/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
79
CHANGES.md
79
CHANGES.md
|
@ -1,3 +1,82 @@
|
||||||
|
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)
|
Changes in Element v1.3.18 (2022-02-03)
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-androi
|
||||||
[<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) Nighly sanity test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/sanity_test.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/sanity_test.yml)
|
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
|
||||||
|
|
13
build.gradle
13
build.gradle
|
@ -19,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
|
||||||
|
@ -109,7 +109,7 @@ apply plugin: 'org.sonarqube'
|
||||||
|
|
||||||
// To run a sonar analysis:
|
// To run a sonar analysis:
|
||||||
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
||||||
// The SONAR_KEY is stored in passbolt
|
// The SONAR_KEY is stored in passbolt as Token Sonar Cloud Bma
|
||||||
|
|
||||||
sonarqube {
|
sonarqube {
|
||||||
properties {
|
properties {
|
||||||
|
@ -138,17 +138,12 @@ project(":vector") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project(":diff-match-patch") {
|
project(":library:diff-match-patch") {
|
||||||
sonarqube {
|
sonarqube {
|
||||||
skipProject = true
|
skipProject = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Global configurations across all modules
|
|
||||||
ext {
|
|
||||||
isThreadingEnabled = true
|
|
||||||
}
|
|
||||||
|
|
||||||
//project(":matrix-sdk-android") {
|
//project(":matrix-sdk-android") {
|
||||||
// sonarqube {
|
// sonarqube {
|
||||||
// properties {
|
// properties {
|
||||||
|
|
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 non sans-serif font weights being ignored
|
|
|
@ -1 +0,0 @@
|
||||||
"Invite users to space" dialog now closed when user choose invite method
|
|
|
@ -1 +0,0 @@
|
||||||
Changed layout for space card and room card used at "explore room" screen and space/room invite dialogs
|
|
|
@ -1 +0,0 @@
|
||||||
Removed spaces restricted search hint dialogs
|
|
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
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 @@
|
||||||
Remove Search from room options if not available
|
|
|
@ -1 +0,0 @@
|
||||||
Initial implementation of thread messages
|
|
|
@ -1 +0,0 @@
|
||||||
Qr code scanning fragments merged into one
|
|
|
@ -1 +0,0 @@
|
||||||
Support message bubbles in timeline.
|
|
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 +0,0 @@
|
||||||
Fixing missing/intermittent notifications on the google play variant when wifi is enabled
|
|
|
@ -1 +0,0 @@
|
||||||
Fixes call statuses in the timeline for missed/rejected calls and connected calls.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix CI/CD errors after merges for quality and integration tests
|
|
|
@ -1 +0,0 @@
|
||||||
Added automation for the Z-FTUE label to add issues to the FTUE Project Board
|
|
|
@ -1 +0,0 @@
|
||||||
Fix fallback permalink when threads are disabled
|
|
|
@ -1 +0,0 @@
|
||||||
Analytics: aligns use case identifying with iOS implementation
|
|
|
@ -1 +0,0 @@
|
||||||
Fix location rendering in timeline if map cannot be loaded
|
|
|
@ -1 +0,0 @@
|
||||||
Support generic location pin
|
|
|
@ -1 +0,0 @@
|
||||||
Added automation for WTF labels to move to WTF project board
|
|
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 +0,0 @@
|
||||||
Update WTF automation to fix it
|
|
|
@ -1 +0,0 @@
|
||||||
Retrieve map style url from .well-known
|
|
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
|
1
changelog.d/5402.bugfix
Normal file
1
changelog.d/5402.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[Create room] Setting an avatar when creating a room had no effect
|
1
changelog.d/5418.feature
Normal file
1
changelog.d/5418.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Improves settings error dialog messaging when changing avatar or display name fails
|
|
@ -71,8 +71,7 @@ ext.libs = [
|
||||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
||||||
],
|
],
|
||||||
google : [
|
google : [
|
||||||
// TODO There is 1.6.0?
|
'material' : "com.google.android.material:material:1.5.0"
|
||||||
'material' : "com.google.android.material:material:1.4.0"
|
|
||||||
],
|
],
|
||||||
dagger : [
|
dagger : [
|
||||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||||
|
|
|
@ -29,9 +29,10 @@ ext.groups = [
|
||||||
'com\\.google\\.android\\..*',
|
'com\\.google\\.android\\..*',
|
||||||
],
|
],
|
||||||
group: [
|
group: [
|
||||||
'com.google.firebase',
|
|
||||||
'com.android',
|
'com.android',
|
||||||
'com.android.tools',
|
'com.android.tools',
|
||||||
|
'com.google.firebase',
|
||||||
|
'com.google.testing.platform',
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
mavenCentral: [
|
mavenCentral: [
|
||||||
|
@ -63,6 +64,8 @@ ext.groups = [
|
||||||
'com.github.piasy',
|
'com.github.piasy',
|
||||||
'com.github.shyiko.klob',
|
'com.github.shyiko.klob',
|
||||||
'com.google',
|
'com.google',
|
||||||
|
'com.google.android',
|
||||||
|
'com.google.api.grpc',
|
||||||
'com.google.auto.service',
|
'com.google.auto.service',
|
||||||
'com.google.auto.value',
|
'com.google.auto.value',
|
||||||
'com.google.code.findbugs',
|
'com.google.code.findbugs',
|
||||||
|
@ -111,10 +114,13 @@ ext.groups = [
|
||||||
'io.arrow-kt',
|
'io.arrow-kt',
|
||||||
'io.github.detekt.sarif4k',
|
'io.github.detekt.sarif4k',
|
||||||
'io.github.reactivecircus.flowbinding',
|
'io.github.reactivecircus.flowbinding',
|
||||||
|
'io.grpc',
|
||||||
'io.jsonwebtoken',
|
'io.jsonwebtoken',
|
||||||
'io.kindedj',
|
'io.kindedj',
|
||||||
'io.mockk',
|
'io.mockk',
|
||||||
|
'io.netty',
|
||||||
'io.noties.markwon',
|
'io.noties.markwon',
|
||||||
|
'io.opencensus',
|
||||||
'io.reactivex.rxjava2',
|
'io.reactivex.rxjava2',
|
||||||
'io.realm',
|
'io.realm',
|
||||||
'it.unimi.dsi',
|
'it.unimi.dsi',
|
||||||
|
@ -175,6 +181,7 @@ ext.groups = [
|
||||||
'org.sonatype.oss',
|
'org.sonatype.oss',
|
||||||
'org.testng',
|
'org.testng',
|
||||||
'org.threeten',
|
'org.threeten',
|
||||||
|
'org.webjars',
|
||||||
'ru.noties',
|
'ru.noties',
|
||||||
'xerces',
|
'xerces',
|
||||||
'xml-apis',
|
'xml-apis',
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
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/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/40104000.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: Initial implementation of thread messages. Message bubbles.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/en-US/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: add support to @room and undisclosed polls among many other little changes.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/et/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40103170.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: oma asukoha saatmine jututuppa ja küsitluste muutmise võimalus.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
2
fastlane/metadata/android/et/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40103180.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: oma asukoha saatmine jututuppa ja küsitluste muutmise võimalus.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
2
fastlane/metadata/android/et/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: jutulõngade esmane lahendus ja jutumullid.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/et/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: @jututuba tugi, mitteavalikud küsitlused ning pisiparandused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/fa/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40103170.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: فرستادن مکانتان به هر اتاقی. ویرایش نظرسنجی.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
2
fastlane/metadata/android/fa/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40103180.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: فرستادن مکانتان به هر اتاقی. ویرایش نظرسنجی.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
2
fastlane/metadata/android/hu-HU/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40103170.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: földrajzi helyzet elküldése bármelyik szobába. Szavazás szerkesztése.
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
2
fastlane/metadata/android/hu-HU/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40103180.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: földrajzi helyzet elküldése bármelyik szobába. Szavazás szerkesztése.
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
2
fastlane/metadata/android/hu-HU/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40104000.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: Üzenetszálak kezdeti implementációja. Buborék üzenetek.
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/hu-HU/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40104020.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: @room támogatás és nem nyilvános szavazások mellett kisebb változtatások.
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
|
@ -1,2 +1,2 @@
|
||||||
Versi baru ini terutama berisi perbaikan bug dan peningkatan. Mengirim pesan sekarang jauh lebih cepat.
|
Versi baru ini terutama berisi perbaikan bug dan peningkatan. Mengirim pesan sekarang jauh lebih cepat.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Versi baru ini terutama berisi antarmuka pengguna dan peningkatan pengalaman pengguna. Sekarang Anda dapat mengundang teman, dan membuat sebuah DM sangat cepat dengan memindai kode QR.
|
Versi baru ini terutama berisi antarmuka pengguna dan peningkatan pengalaman pengguna. Sekarang Anda dapat mengundang teman, dan membuat sebuah DM sangat cepat dengan memindai kode QR.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
|
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
|
Perubahan utama dalam versi ini: Pratinjau URL, keyboard Emoji baru, kemampuan pengaturan ruangan baru, dan salju untuk Natal!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: Edit izin ruangan, tema cahaya/gelap otomatis, dan banyak perbaikan bug.
|
Perubahan utama dalam versi ini: Edit izin ruangan, tema cahaya/gelap otomatis, dan banyak perbaikan bug.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: Dukungan login sosial.
|
Perubahan utama dalam versi ini: Dukungan login sosial.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: Dukungan login sosial.
|
Perubahan utama dalam versi ini: Dukungan login sosial.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15 dan https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.15 dan https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: perbaikan bug!
|
Perubahan utama dalam versi ini: perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: perbaikan VoIP (panggilan audio dan video dalam DM) dan perbaikan bug!
|
Perubahan utama dalam versi ini: perbaikan VoIP (panggilan audio dan video dalam DM) dan perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
Perubahan utama dalam versi ini: peningkatan kinerja dan perbaikan bug!
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.4
|
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.4
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.5
|
Perubahan utama dalam versi ini: perbaikan hot-fix untuk 1.1.5
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: dukungan beta untuk Spaces. Kompres video sebelum mengirim.
|
Perubahan utama dalam versi ini: dukungan beta untuk Spaces. Kompres video sebelum mengirim.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: perbaikan untuk Spaces.
|
Perubahan utama dalam versi ini: perbaikan untuk Spaces.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: menambahkan dukungan untuk jaringan gitter.im.
|
Perubahan utama dalam versi ini: menambahkan dukungan untuk jaringan gitter.im.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur-fitur baru untuk Spaces.
|
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur-fitur baru untuk Spaces.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur baru untuk spaces (perbaikan bug untuk 1.1.10)
|
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan fitur baru untuk spaces (perbaikan bug untuk 1.1.10)
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan perbaiki crash setelah panggilan video
|
Perubahan utama dalam versi ini: pembaruan tema dan gaya dan perbaiki crash setelah panggilan video
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.12
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.12
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Perubahan utama dalam versi ini: terutama pembaruan stabilitas dan perbaikan bug.
|
Perubahan utama dalam versi ini: terutama pembaruan stabilitas dan perbaikan bug.
|
||||||
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.13
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.1.13
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue