mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Compare commits
269 Commits
v1.4.2
...
michaelk/c
Author | SHA1 | Date | |
---|---|---|---|
|
e380d3d9b7 | ||
|
76e4b328b4 | ||
|
67c9584215 | ||
|
bdc9bc0d4d | ||
|
1569c2f3c7 | ||
|
9a02543afd | ||
|
9af2f1cdc6 | ||
|
b25d11244b | ||
|
f32da28285 | ||
|
2b7b7521a9 | ||
|
8e39247c4d | ||
|
1ad3e7cc9d | ||
|
bcdf004082 | ||
|
57bbec4ffd | ||
|
96168929ff | ||
|
2dedad1cf2 | ||
|
662f72fde8 | ||
|
d4bf38f428 | ||
|
2a9e582db5 | ||
|
2d5b25cfad | ||
|
9fe04ac5b8 | ||
|
cb32124fd4 | ||
|
1690a0b2cf | ||
|
54e23a2c55 | ||
|
76844b1572 | ||
|
49fbfe6811 | ||
|
105f3dd93d | ||
|
3364868365 | ||
|
6e6b04c57e | ||
|
7a1322baf7 | ||
|
16a31e1716 | ||
|
dd0d2e8101 | ||
|
0ce787f20b | ||
|
fd065dbbb9 | ||
|
5ea917f74b | ||
|
82e0f4a1a9 | ||
|
840742ce71 | ||
|
4396390409 | ||
|
7024ccb244 | ||
|
10f480b88d | ||
|
99e5a8f2fa | ||
|
4bbb60cc65 | ||
|
74040c5563 | ||
|
0c628905de | ||
|
7837d1d6d6 | ||
|
1c94a7ddc7 | ||
|
7e909de31c | ||
|
d4caad1665 | ||
|
9a4d37b5cc | ||
|
ad8809196f | ||
|
b1c2bccdd0 | ||
|
b8fad693f3 | ||
|
d6cd3f5719 | ||
|
1216dde9c5 | ||
|
cb00a668fe | ||
|
1b1a9bf3dd | ||
|
ec786af42a | ||
|
e65070793d | ||
|
27f7fadb3d | ||
|
e776ff4d9d | ||
|
4c882e8f92 | ||
|
781a477056 | ||
|
9cc35644a3 | ||
|
71aac37ec7 | ||
|
39d1fc939a | ||
|
221e9b85df | ||
|
34e4674ddd | ||
|
f6ad06b82b | ||
|
1f5f8bb9ca | ||
|
ae98185c9d | ||
|
bb57b6f9c8 | ||
|
b3e6ff68af | ||
|
e32e006b85 | ||
|
96f041a773 | ||
|
46854b4b84 | ||
|
836bf4e11e | ||
|
1ef26e6c12 | ||
|
80bc3af5fa | ||
|
d5cb315ff4 | ||
|
27905064e0 | ||
|
c61af45216 | ||
|
6c4dd54a2c | ||
|
562780a169 | ||
|
8d5d064626 | ||
|
795072312d | ||
|
0170171caa | ||
|
fbd5456360 | ||
|
ce9c5564c0 | ||
|
b21a6fec4a | ||
|
957413c9df | ||
|
0855a9a855 | ||
|
561dcbcfa1 | ||
|
56c6301151 | ||
|
58ffb011c7 | ||
|
35204d2348 | ||
|
cb27608c75 | ||
|
ba15fa6e2c | ||
|
fd17517675 | ||
|
85b59654ae | ||
|
e171fd2eff | ||
|
0ce59989a5 | ||
|
b8a0aa724e | ||
|
6230dfc641 | ||
|
4e4702cad8 | ||
|
4860ed9131 | ||
|
ca56865dd1 | ||
|
aea78b70f1 | ||
|
7e308d10d8 | ||
|
157feb1e4c | ||
|
a583db43c4 | ||
|
4260d2f155 | ||
|
882b143569 | ||
|
4c09fb747b | ||
|
cdb1a96664 | ||
|
73ac3f3fda | ||
|
7d7b1f305e | ||
|
b17ce12c3d | ||
|
c6c46375d6 | ||
|
374ac45505 | ||
|
38236e7815 | ||
|
f64268efdb | ||
|
e6995cbdd4 | ||
|
0169396d7d | ||
|
042c57f9b8 | ||
|
6899b5b637 | ||
|
3384a0caa0 | ||
|
b525259bec | ||
|
9ddcaffebf | ||
|
79a8652308 | ||
|
9832f1e8e8 | ||
|
8fc1f3c1aa | ||
|
a1f5493b0a | ||
|
65242dfb47 | ||
|
5895c69a91 | ||
|
00423f8ea1 | ||
|
70c9418a5e | ||
|
4d86f5f2fd | ||
|
fbf29f6f1e | ||
|
779b5db363 | ||
|
40b1862cc3 | ||
|
9f0cef7040 | ||
|
8d0410d961 | ||
|
3d57d72a7e | ||
|
7516a1280e | ||
|
92c6d59984 | ||
|
981393fefb | ||
|
d93199259a | ||
|
b226ab5e4b | ||
|
092761c118 | ||
|
2917d4e4d6 | ||
|
12a0b3c164 | ||
|
4ebaa349c3 | ||
|
ca8b69e377 | ||
|
515524584f | ||
|
1e4064170f | ||
|
bbef1a541b | ||
|
5245ce58e7 | ||
|
7316d0a01e | ||
|
ac92815bd1 | ||
|
27d9f092ee | ||
|
4b8e1a72e1 | ||
|
603068564b | ||
|
2dc2494b22 | ||
|
8866ad32d7 | ||
|
ec1195526a | ||
|
9504bd99a7 | ||
|
6afc5824c4 | ||
|
0046a3d697 | ||
|
8a66726dad | ||
|
7ba60a0fb2 | ||
|
99f1180e01 | ||
|
01fe4c4d70 | ||
|
8d9b5eb0d5 | ||
|
c5286022f0 | ||
|
11342381ef | ||
|
5512439d36 | ||
|
bf8389a7ec | ||
|
cc2653e602 | ||
|
a8390ad451 | ||
|
d4a423b382 | ||
|
93c6216269 | ||
|
de7a572329 | ||
|
d561ad6acd | ||
|
80fd816d66 | ||
|
cf7417d544 | ||
|
355931a592 | ||
|
8c65285ec5 | ||
|
43c125ed32 | ||
|
0dd51340b7 | ||
|
d99b7b73ab | ||
|
5c263d78dd | ||
|
a91f59ba04 | ||
|
f150a8212b | ||
|
c8a290c680 | ||
|
229a64d408 | ||
|
aed43849c8 | ||
|
fd48fc9103 | ||
|
93131da61a | ||
|
edb92f85c5 | ||
|
639774662a | ||
|
5bbd6769b9 | ||
|
ac4d748c8c | ||
|
9e7079dff6 | ||
|
93de61e61f | ||
|
0087f72309 | ||
|
03a6a348c0 | ||
|
830fca731c | ||
|
96c2c6f4a4 | ||
|
e3209fd04a | ||
|
b12c890191 | ||
|
5cfcd65b38 | ||
|
f7c79a6de2 | ||
|
beeee7c84b | ||
|
fb2ed9a7ac | ||
|
f63cd57567 | ||
|
c89f28ffb2 | ||
|
5bfb8fe294 | ||
|
64e074840b | ||
|
137d804cfa | ||
|
c2a67a03a4 | ||
|
5c4ca79888 | ||
|
0bb47200c7 | ||
|
f18808b4d7 | ||
|
9e9dc1defd | ||
|
713248805c | ||
|
5a9cf0c978 | ||
|
507ddc2d4a | ||
|
9a80ff7673 | ||
|
a2f3b43683 | ||
|
10b07c35a0 | ||
|
7997435003 | ||
|
3707b4e2ca | ||
|
276c526cef | ||
|
91ab4726ad | ||
|
b39a3ab42e | ||
|
5deabfae9d | ||
|
f6c6e92483 | ||
|
a9b8871177 | ||
|
da9fdf1b18 | ||
|
bd8d71c420 | ||
|
e3b67fe30b | ||
|
6eae151e78 | ||
|
6105d7bea9 | ||
|
924a4f8c94 | ||
|
6e7aa01437 | ||
|
d00a23752e | ||
|
cc77afbf66 | ||
|
ad1c4bf790 | ||
|
44452c9fcd | ||
|
4651c45b2f | ||
|
c1afb3d5d1 | ||
|
b4ceaefeab | ||
|
9911233038 | ||
|
d0413aef55 | ||
|
4975406e66 | ||
|
182dc2a098 | ||
|
06f2ca1379 | ||
|
0d6642c32c | ||
|
10bf3e56fc | ||
|
3f9e7a74d6 | ||
|
e0f99e3b17 | ||
|
8983bfa36c | ||
|
c64004fad6 | ||
|
6687e2cad4 | ||
|
d186de7472 | ||
|
3a961e0803 | ||
|
023b32367b | ||
|
8212b7e219 | ||
|
9b12f295d1 |
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -20,6 +20,10 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: [ Gplay, Fdroid ]
|
||||
# Allow all jobs on develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('integration-tests-develop-{0}-{1}', matrix.target, github.sha) || format('build-debug-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
@@ -43,6 +47,7 @@ jobs:
|
||||
name: Build unsigned GPlay APKs
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
# Only runs on main, no concurrency.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
|
@@ -5,6 +5,7 @@ jobs:
|
||||
validation:
|
||||
name: "Validation"
|
||||
runs-on: ubuntu-latest
|
||||
# No concurrency required, this is a prerequisite to other actions and should run every time.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
|
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
|
259
.github/workflows/nightly.yml
vendored
Normal file
259
.github/workflows/nightly.yml
vendored
Normal file
@@ -0,0 +1,259 @@
|
||||
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 - 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-all.log
|
||||
chmod 777 emulator-all.log
|
||||
adb logcat >> emulator-all.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results
|
||||
if: always()
|
||||
id: get-comment-body
|
||||
run: python3 ./tools/ci/render_test_output.py all ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
- name: Upload Test Report Log
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: integrationtest-error-results
|
||||
path: |
|
||||
emulator-all.log
|
||||
|
||||
ui-tests:
|
||||
name: UI 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
|
||||
- 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/
|
||||
|
||||
codecov-units:
|
||||
name: Unit tests (with code coverage)
|
||||
runs-on: macos-latest
|
||||
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 allCodeCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Codecov data
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: codecov-xml
|
||||
path: |
|
||||
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
|
||||
|
||||
sonarqube:
|
||||
name: Sonaqube scan and coverage report
|
||||
runs-on: macos-latest
|
||||
if: always()
|
||||
needs:
|
||||
- codecov-units
|
||||
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-
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: codecov-xml # will restore to allCodeCoverageReport.xml by default; we restore to the same location in following tasks
|
||||
- run: mkdir -p build/reports/jacoco/allCodeCoverageReport/
|
||||
- run: mv allCodeCoverageReport.xml build/reports/jacoco/allCodeCoverageReport/
|
||||
- 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:
|
||||
name: Matrix Notification
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- integration-tests
|
||||
- ui-tests
|
||||
- codecov-units
|
||||
- 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 />{{ icon conclusion }}{{name}} <font colour='{{color conclusion}}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}"
|
12
.github/workflows/quality.yml
vendored
12
.github/workflows/quality.yml
vendored
@@ -18,6 +18,10 @@ jobs:
|
||||
ktlint:
|
||||
name: Kotlin Linter
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('ktlint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('ktlint-develop-{0}', github.sha) || format('ktlint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run ktlint
|
||||
@@ -87,6 +91,10 @@ jobs:
|
||||
android-lint:
|
||||
name: Android Linter
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('android-lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('android-lint-develop-{0}', github.sha) || format('android-lint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
@@ -116,6 +124,10 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: [ Gplay, Fdroid ]
|
||||
# Allow all jobs on develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('apk-lint-develop-{0}-{1}', matrix.target, github.sha) || format('apk-lint-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
|
80
.github/workflows/sanity_test.yml
vendored
80
.github/workflows/sanity_test.yml
vendored
@@ -1,80 +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=-Xmx4g
|
||||
-Porg.gradle.parallel=false
|
||||
|
||||
jobs:
|
||||
integration-tests:
|
||||
name: Sanity Tests (Synapse)
|
||||
runs-on: macos-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
api-level: [ 28 ]
|
||||
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:
|
||||
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: 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
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v2
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
- name: Install Prerequisite dependencies
|
||||
run: |
|
||||
pip install BeautifulSoup4
|
||||
@@ -43,20 +36,13 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v2
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
- name: Install Prerequisite dependencies
|
||||
run: |
|
||||
pip install requests
|
||||
@@ -76,6 +62,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run analytics import script
|
||||
|
7
.github/workflows/tests.yml
vendored
7
.github/workflows/tests.yml
vendored
@@ -15,6 +15,10 @@ jobs:
|
||||
unit-tests:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
@@ -27,6 +31,9 @@ jobs:
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Run unit tests
|
||||
run: ./gradlew clean test $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false --stacktrace
|
||||
- name: Format unit test results
|
||||
if: always()
|
||||
run: python3 ./tools/ci/render_test_output.py unit ./**/build/test-results/**/*.xml
|
||||
- name: Publish Unit Test Results
|
||||
uses: EnricoMi/publish-unit-test-result-action@v1
|
||||
if: always() &&
|
||||
|
@@ -1,5 +1,5 @@
|
||||
Changes in Element v1.4.2 (2022-02-22)
|
||||
======================================
|
||||
Changes in Element v1.4.2 (2022-02-22 Palindrome Day!)
|
||||
======================================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
|
@@ -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/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
||||
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nighly sanity test status: [](https://github.com/vector-im/element-android/actions/workflows/sanity_test.yml)
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nighly test status: [](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
||||
|
||||
|
||||
# New Android SDK
|
||||
|
27
build.gradle
27
build.gradle
@@ -19,8 +19,8 @@ buildscript {
|
||||
classpath libs.gradle.hiltPlugin
|
||||
classpath 'com.google.gms:google-services:4.3.10'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
|
||||
classpath "com.likethesalad.android:string-reference:1.2.2"
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.0.0"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
@@ -105,11 +105,21 @@ task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
||||
def launchTask = getGradle()
|
||||
.getStartParameter()
|
||||
.getTaskRequests()
|
||||
.toString()
|
||||
.toLowerCase()
|
||||
|
||||
if (launchTask.contains("codeCoverageReport".toLowerCase())) {
|
||||
apply from: 'coverage.gradle'
|
||||
}
|
||||
|
||||
apply plugin: 'org.sonarqube'
|
||||
|
||||
// To run a sonar analysis:
|
||||
// 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 {
|
||||
properties {
|
||||
@@ -119,10 +129,12 @@ sonarqube {
|
||||
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
||||
property "sonar.sourceEncoding", "UTF-8"
|
||||
property "sonar.links.homepage", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/element-android"
|
||||
property "sonar.links.ci", "https://github.com/vector-im/element-android/actions"
|
||||
property "sonar.links.scm", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||
property "sonar.organization", "new_vector_ltd_organization"
|
||||
property "sonar.java.coveragePlugin", "jacoco"
|
||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml"
|
||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||
}
|
||||
}
|
||||
@@ -138,17 +150,12 @@ project(":vector") {
|
||||
}
|
||||
}
|
||||
|
||||
project(":diff-match-patch") {
|
||||
project(":library:diff-match-patch") {
|
||||
sonarqube {
|
||||
skipProject = true
|
||||
}
|
||||
}
|
||||
|
||||
// Global configurations across all modules
|
||||
ext {
|
||||
isThreadingEnabled = true
|
||||
}
|
||||
|
||||
//project(":matrix-sdk-android") {
|
||||
// sonarqube {
|
||||
// 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
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
changelog.d/4642.bugfix
Normal file
1
changelog.d/4642.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Update the top bar in a room: remove topic and typing information
|
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
|
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
|
55
coverage.gradle
Normal file
55
coverage.gradle
Normal file
@@ -0,0 +1,55 @@
|
||||
def excludes = [ ]
|
||||
|
||||
def initializeReport(report, projects, classExcludes) {
|
||||
projects.each { project -> project.apply plugin: 'jacoco' }
|
||||
report.executionData { fileTree(rootProject.rootDir.absolutePath).include("**/build/jacoco/*.exec") }
|
||||
|
||||
report.reports {
|
||||
xml.enabled true
|
||||
html.enabled true
|
||||
csv.enabled false
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
def androidSourceDirs = []
|
||||
def androidClassDirs = []
|
||||
|
||||
projects.each { project ->
|
||||
switch (project) {
|
||||
case { project.plugins.hasPlugin("com.android.application") }:
|
||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||
break
|
||||
case { project.plugins.hasPlugin("com.android.library") }:
|
||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||
break
|
||||
default:
|
||||
report.sourceSets project.sourceSets.main
|
||||
}
|
||||
}
|
||||
|
||||
report.sourceDirectories.setFrom(report.sourceDirectories + files(androidSourceDirs))
|
||||
def classFiles = androidClassDirs.collect { files(it).files }.flatten()
|
||||
report.classDirectories.setFrom(files((report.classDirectories.files + classFiles).collect {
|
||||
fileTree(dir: it, excludes: classExcludes)
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
def collectProjects(predicate) {
|
||||
return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
|
||||
}
|
||||
|
||||
task allCodeCoverageReport(type: JacocoReport) {
|
||||
outputs.upToDateWhen { false }
|
||||
rootProject.apply plugin: 'jacoco'
|
||||
// to limit projects in a specific report, add
|
||||
// def excludedProjects = [ ... ]
|
||||
// def projects = collectProjects { !excludedProjects.contains(it.name) }
|
||||
def projects = collectProjects { true }
|
||||
dependsOn { projects*.test }
|
||||
initializeReport(it, projects, excludes)
|
||||
}
|
@@ -71,8 +71,7 @@ ext.libs = [
|
||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
||||
],
|
||||
google : [
|
||||
// TODO There is 1.6.0?
|
||||
'material' : "com.google.android.material:material:1.4.0"
|
||||
'material' : "com.google.android.material:material:1.5.0"
|
||||
],
|
||||
dagger : [
|
||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||
|
@@ -29,9 +29,10 @@ ext.groups = [
|
||||
'com\\.google\\.android\\..*',
|
||||
],
|
||||
group: [
|
||||
'com.google.firebase',
|
||||
'com.android',
|
||||
'com.android.tools',
|
||||
'com.google.firebase',
|
||||
'com.google.testing.platform',
|
||||
]
|
||||
],
|
||||
mavenCentral: [
|
||||
@@ -63,6 +64,8 @@ ext.groups = [
|
||||
'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',
|
||||
@@ -111,10 +114,13 @@ ext.groups = [
|
||||
'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',
|
||||
@@ -150,6 +156,7 @@ ext.groups = [
|
||||
'org.ec4j.core',
|
||||
'org.glassfish.jaxb',
|
||||
'org.hamcrest',
|
||||
'org.jacoco',
|
||||
'org.jetbrains',
|
||||
'org.jetbrains.intellij.deps',
|
||||
'org.jetbrains.kotlin',
|
||||
@@ -175,6 +182,7 @@ ext.groups = [
|
||||
'org.sonatype.oss',
|
||||
'org.testng',
|
||||
'org.threeten',
|
||||
'org.webjars',
|
||||
'ru.noties',
|
||||
'xerces',
|
||||
'xml-apis',
|
||||
|
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/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/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
|
2
fastlane/metadata/android/id/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Perubahan utama dalam versi ini: Implementasi awal perpesanan utasan. Gelembung pesan.
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/id/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Perubahan utama dalam versi ini: tambahkan dukungan untuk @room dan pemungutan suara tertutup dan banyak perubahan kecil lainnya.
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/it-IT/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Modifiche principali in questa versione: prima implementazione delle discussioni. Messaggi a bolla.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/it-IT/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Modifiche principali in questa versione: aggiunto supporto a @stanza e sondaggi non divulgati, molte altre modifiche.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/pt-BR/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Principais mudanças nesta versão: Implementação inicial de mensagens de thread. Bolhas de mensagem.
|
||||
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/pt-BR/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Principais mudanças nesta versão: adicionar suporte para @room e sondagens não-divulgadas entre muitas outras pequenas mudanças.
|
||||
Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/sk/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavné zmeny v tejto verzii: Počiatočná implementácia správ vo vláknach. Správy v bublinách.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/sk/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavné zmeny v tejto verzii: pridanie podpory pre @miestnost a nezverejnené ankety a mnoho ďalších drobných zmien.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/uk/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основні зміни в цій версії: Початкова реалізація тредів повідомлень. Повідомлення бульбашки.
|
||||
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/uk/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основні зміни в цій версії: додано підтримку до @room і нерозкритих опитувань та багато інших незначних змін.
|
||||
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/zh-TW/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
此版本中的主要變動:訊息討論串的初始實作。訊息泡泡。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/zh-TW/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40104020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
此版本中的主要變動:新增對 @room 的支援與未公開的投票,以及其他許多小變動。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
@@ -45,6 +45,8 @@ import kotlin.math.abs
|
||||
|
||||
abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventListener {
|
||||
|
||||
protected val rootView: View
|
||||
get() = views.rootContainer
|
||||
protected val pager2: ViewPager2
|
||||
get() = views.attachmentPager
|
||||
protected val imageTransitionView: ImageView
|
||||
@@ -298,10 +300,11 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
|
||||
private fun createSwipeToDismissHandler(): SwipeToDismissHandler =
|
||||
SwipeToDismissHandler(
|
||||
swipeView = views.dismissContainer,
|
||||
shouldAnimateDismiss = { shouldAnimateDismiss() },
|
||||
onDismiss = { animateClose() },
|
||||
onSwipeViewMove = ::handleSwipeViewMove)
|
||||
swipeView = views.dismissContainer,
|
||||
shouldAnimateDismiss = { shouldAnimateDismiss() },
|
||||
onDismiss = { animateClose() },
|
||||
onSwipeViewMove = ::handleSwipeViewMove
|
||||
)
|
||||
|
||||
private fun createSwipeDirectionDetector() =
|
||||
SwipeDirectionDetector(this) { swipeDirection = it }
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user