mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Merge remote-tracking branch 'origin/develop' into feature/nfe/legacy_group_removal
# Conflicts: # vector/src/main/java/im/vector/app/features/grouplist/GroupSummaryItem.kt # vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt # vector/src/main/java/im/vector/app/features/home/room/list/RoomListSectionBuilderSpace.kt
This commit is contained in:
8
.github/ISSUE_TEMPLATE/release.yml
vendored
8
.github/ISSUE_TEMPLATE/release.yml
vendored
@@ -100,12 +100,20 @@ body:
|
|||||||
|
|
||||||
##### Release on MavenCentral
|
##### Release on MavenCentral
|
||||||
|
|
||||||
|
- [ ] Checkout the branch `main`
|
||||||
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
|
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
|
||||||
|
- [ ] Run the command `./gradlew closeAndReleaseRepository`. If it is working well, you can jump directly to the final step of this section.
|
||||||
|
|
||||||
|
If `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||||
|
|
||||||
- [ ] Connect to https://s01.oss.sonatype.org
|
- [ ] Connect to https://s01.oss.sonatype.org
|
||||||
- [ ] Click on Staging Repositories and check the the files have been uploaded
|
- [ ] Click on Staging Repositories and check the the files have been uploaded
|
||||||
- [ ] Click on close
|
- [ ] Click on close
|
||||||
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
|
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
|
||||||
- [ ] Click on release. The staging repository will disappear
|
- [ ] Click on release. The staging repository will disappear
|
||||||
|
|
||||||
|
Final step
|
||||||
|
|
||||||
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
|
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
|
||||||
|
|
||||||
##### Release on GitHub
|
##### Release on GitHub
|
||||||
|
34
.github/workflows/build.yml
vendored
34
.github/workflows/build.yml
vendored
@@ -8,8 +8,9 @@ on:
|
|||||||
# Enrich gradle.properties for CI/CD
|
# Enrich gradle.properties for CI/CD
|
||||||
env:
|
env:
|
||||||
CI_GRADLE_ARG_PROPERTIES: >
|
CI_GRADLE_ARG_PROPERTIES: >
|
||||||
-Porg.gradle.jvmargs=-Xmx2g
|
-Porg.gradle.jvmargs=-Xmx4g
|
||||||
-Porg.gradle.parallel=false
|
-Porg.gradle.parallel=false
|
||||||
|
--no-daemon
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
debug:
|
debug:
|
||||||
@@ -46,8 +47,9 @@ jobs:
|
|||||||
release:
|
release:
|
||||||
name: Build unsigned GPlay APKs
|
name: Build unsigned GPlay APKs
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.ref == 'refs/heads/main'
|
concurrency:
|
||||||
# Only runs on main, no concurrency.
|
group: ${{ github.ref == 'refs/head/main' && format('build-release-apk-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('build-release-apk-develop-{0}', github.sha) || format('build-debug-{0}', github.ref) }}
|
||||||
|
cancel-in-progress: ${{ github.ref != 'refs/head/main' }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
@@ -59,7 +61,7 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-gradle-
|
${{ runner.os }}-gradle-
|
||||||
- name: Assemble GPlay unsigned apk
|
- name: Assemble GPlay unsigned apk
|
||||||
run: ./gradlew clean assembleGplayRelease $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
run: ./gradlew clean assembleGplayRelease $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||||
- name: Upload Gplay unsigned APKs
|
- name: Upload Gplay unsigned APKs
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
@@ -67,4 +69,26 @@ jobs:
|
|||||||
path: |
|
path: |
|
||||||
vector/build/outputs/apk/*/release/*.apk
|
vector/build/outputs/apk/*/release/*.apk
|
||||||
|
|
||||||
# TODO add exodus checks
|
exodus:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: release
|
||||||
|
steps:
|
||||||
|
- name: Obtain apk from artifact
|
||||||
|
id: download
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: vector-gplay-release-unsigned
|
||||||
|
- name: Show apks in artifact
|
||||||
|
run: ls -R ${{steps.download.outputs.download-path}}
|
||||||
|
- name: Execute exodus-standalone
|
||||||
|
uses: docker://exodusprivacy/exodus-standalone:latest
|
||||||
|
with:
|
||||||
|
args: /github/workspace/gplay/release/vector-gplay-universal-release-unsigned.apk -j -o /github/workspace/exodus.json
|
||||||
|
- name: Upload exodus json report
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: exodus.json
|
||||||
|
path: |
|
||||||
|
exodus.json
|
||||||
|
- name: Check for trackers
|
||||||
|
run: "jq -e '.trackers == []' exodus.json > /dev/null || { echo '::error static analysis identified user tracking library' ; exit 1; }"
|
||||||
|
3
.github/workflows/post-pr.yml
vendored
3
.github/workflows/post-pr.yml
vendored
@@ -13,6 +13,7 @@ env:
|
|||||||
CI_GRADLE_ARG_PROPERTIES: >
|
CI_GRADLE_ARG_PROPERTIES: >
|
||||||
-Porg.gradle.jvmargs=-Xmx4g
|
-Porg.gradle.jvmargs=-Xmx4g
|
||||||
-Porg.gradle.parallel=false
|
-Porg.gradle.parallel=false
|
||||||
|
--no-daemon
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@@ -41,7 +42,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v3
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
|
12
.github/workflows/quality.yml
vendored
12
.github/workflows/quality.yml
vendored
@@ -9,6 +9,8 @@ on:
|
|||||||
env:
|
env:
|
||||||
CI_GRADLE_ARG_PROPERTIES: >
|
CI_GRADLE_ARG_PROPERTIES: >
|
||||||
-Porg.gradle.jvmargs=-Xmx4g
|
-Porg.gradle.jvmargs=-Xmx4g
|
||||||
|
-Porg.gradle.parallel=false
|
||||||
|
--no-daemon
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
@@ -113,13 +115,13 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Dependency analysis
|
- name: Dependency analysis
|
||||||
run: ./gradlew buildHealth $CI_GRADLE_ARG_PROPERTIES
|
run: ./gradlew dependencyCheckAnalyze $CI_GRADLE_ARG_PROPERTIES
|
||||||
- name: Upload dependency analysis
|
- name: Upload dependency analysis
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: dependency-analysis
|
name: dependency-analysis
|
||||||
path: build/reports/dependency-analysis/build-health-report.txt
|
path: build/reports/dependency-check-report.html
|
||||||
|
|
||||||
# Lint for main module
|
# Lint for main module
|
||||||
android-lint:
|
android-lint:
|
||||||
@@ -140,7 +142,7 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-gradle-
|
${{ runner.os }}-gradle-
|
||||||
- name: Lint analysis
|
- name: Lint analysis
|
||||||
run: ./gradlew clean :vector:lint --stacktrace
|
run: ./gradlew clean :vector:lint --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
- name: Upload reports
|
- name: Upload reports
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -173,7 +175,7 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-gradle-
|
${{ runner.os }}-gradle-
|
||||||
- name: Lint ${{ matrix.target }} release
|
- name: Lint ${{ matrix.target }} release
|
||||||
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace
|
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
- name: Upload ${{ matrix.target }} linting report
|
- name: Upload ${{ matrix.target }} linting report
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -193,7 +195,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Run detekt
|
- name: Run detekt
|
||||||
run: |
|
run: |
|
||||||
./gradlew detekt
|
./gradlew detekt $CI_GRADLE_ARG_PROPERTIES
|
||||||
- name: Upload reports
|
- name: Upload reports
|
||||||
if: always()
|
if: always()
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
|
@@ -13,7 +13,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v3
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
- name: Install Prerequisite dependencies
|
- name: Install Prerequisite dependencies
|
||||||
@@ -40,7 +40,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v3
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
- name: Install Prerequisite dependencies
|
- name: Install Prerequisite dependencies
|
||||||
|
17
.github/workflows/tests.yml
vendored
17
.github/workflows/tests.yml
vendored
@@ -8,8 +8,9 @@ on:
|
|||||||
# Enrich gradle.properties for CI/CD
|
# Enrich gradle.properties for CI/CD
|
||||||
env:
|
env:
|
||||||
CI_GRADLE_ARG_PROPERTIES: >
|
CI_GRADLE_ARG_PROPERTIES: >
|
||||||
-Porg.gradle.jvmargs=-Xmx2g
|
-Porg.gradle.jvmargs=-Xmx4g
|
||||||
-Porg.gradle.parallel=false
|
-Porg.gradle.parallel=false
|
||||||
|
--no-daemon
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
tests:
|
||||||
@@ -28,7 +29,7 @@ jobs:
|
|||||||
distribution: 'adopt'
|
distribution: 'adopt'
|
||||||
java-version: '11'
|
java-version: '11'
|
||||||
- uses: gradle/gradle-build-action@v2
|
- uses: gradle/gradle-build-action@v2
|
||||||
- uses: actions/setup-python@v3
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
- uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
- uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
||||||
@@ -40,6 +41,7 @@ jobs:
|
|||||||
- name: Run all the codecoverage tests at once
|
- name: Run all the codecoverage tests at once
|
||||||
id: tests
|
id: tests
|
||||||
uses: reactivecircus/android-emulator-runner@v2
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
continue-on-error: true
|
||||||
with:
|
with:
|
||||||
api-level: 28
|
api-level: 28
|
||||||
arch: x86
|
arch: x86
|
||||||
@@ -48,7 +50,11 @@ jobs:
|
|||||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
disable-animations: true
|
disable-animations: true
|
||||||
emulator-build: 7425822
|
emulator-build: 7425822
|
||||||
script: ./gradlew theCodeCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
script: |
|
||||||
|
./gradlew unitTestsWithCoverage --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
./gradlew instrumentationTestsWithCoverage --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
./gradlew generateCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
# NB: continue-on-error marks steps.tests.conclusion = 'success' but leaves stes.tests.outcome = 'failure'
|
||||||
- name: Run all the codecoverage tests at once (retry if emulator failed)
|
- name: Run all the codecoverage tests at once (retry if emulator failed)
|
||||||
uses: reactivecircus/android-emulator-runner@v2
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
if: always() && steps.tests.outcome == 'failure' # don't run if previous step succeeded.
|
if: always() && steps.tests.outcome == 'failure' # don't run if previous step succeeded.
|
||||||
@@ -60,7 +66,10 @@ jobs:
|
|||||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
disable-animations: true
|
disable-animations: true
|
||||||
emulator-build: 7425822
|
emulator-build: 7425822
|
||||||
script: ./gradlew theCodeCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
script: |
|
||||||
|
./gradlew unitTestsWithCoverage --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
./gradlew instrumentationTestsWithCoverage --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
./gradlew generateCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
|
||||||
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||||
if: always() # we may have failed a previous step and retried, that's OK
|
if: always() # we may have failed a previous step and retried, that's OK
|
||||||
env:
|
env:
|
||||||
|
2
.github/workflows/triage-priority-bugs.yml
vendored
2
.github/workflows/triage-priority-bugs.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
|
||||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
||||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
|
||||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
|
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) &&
|
||||||
(contains(github.event.issue.labels.*.name, 'T-Defect') &&
|
(contains(github.event.issue.labels.*.name, 'T-Defect') &&
|
||||||
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||||
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -16,4 +16,4 @@
|
|||||||
/fastlane/private
|
/fastlane/private
|
||||||
/fastlane/report.xml
|
/fastlane/report.xml
|
||||||
|
|
||||||
/library/build
|
/**/build
|
||||||
|
1
.idea/dictionaries/bmarty.xml
generated
1
.idea/dictionaries/bmarty.xml
generated
@@ -40,6 +40,7 @@
|
|||||||
<w>sygnal</w>
|
<w>sygnal</w>
|
||||||
<w>threepid</w>
|
<w>threepid</w>
|
||||||
<w>uisi</w>
|
<w>uisi</w>
|
||||||
|
<w>unifiedpush</w>
|
||||||
<w>unpublish</w>
|
<w>unpublish</w>
|
||||||
<w>unwedging</w>
|
<w>unwedging</w>
|
||||||
<w>vctr</w>
|
<w>vctr</w>
|
||||||
|
138
CHANGES.md
138
CHANGES.md
@@ -1,3 +1,141 @@
|
|||||||
|
Changes in Element v1.4.27 (2022-07-06)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fixes crash when sharing plain text, such as a url ([#6451](https://github.com/vector-im/element-android/issues/6451))
|
||||||
|
- Fix crashes on Timeline [Thread] due to range validation ([#6461](https://github.com/vector-im/element-android/issues/6461))
|
||||||
|
- Fix crashes when opening Thread ([#6463](https://github.com/vector-im/element-android/issues/6463))
|
||||||
|
- Fix ConcurrentModificationException on BackgroundDetectionObserver ([#6469](https://github.com/vector-im/element-android/issues/6469))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element v1.4.26 (2022-06-30)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Features ✨
|
||||||
|
----------
|
||||||
|
- Use UnifiedPush and allows user to have push without FCM. ([#3448](https://github.com/vector-im/element-android/issues/3448))
|
||||||
|
- Replace ffmpeg-kit with libopus and libopusenc. ([#6203](https://github.com/vector-im/element-android/issues/6203))
|
||||||
|
- Improve lock screen implementation. ([#6217](https://github.com/vector-im/element-android/issues/6217))
|
||||||
|
- Allow sharing text based content via android's share menu (eg .ics files) ([#6285](https://github.com/vector-im/element-android/issues/6285))
|
||||||
|
- Promote live location labs flag ([#6350](https://github.com/vector-im/element-android/issues/6350))
|
||||||
|
- [Location sharing] - Stop any active live before starting a new one ([#6364](https://github.com/vector-im/element-android/issues/6364))
|
||||||
|
- Expose pusher profile tag in advanced settings ([#6369](https://github.com/vector-im/element-android/issues/6369))
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fixes concurrent modification crash when signing out or launching the app ([#5821](https://github.com/vector-im/element-android/issues/5821))
|
||||||
|
- Refactor - better naming, return native user id and not sip user id and create a dm with the native user instead of with the sip user. ([#6101](https://github.com/vector-im/element-android/issues/6101))
|
||||||
|
- Fixed /upgraderoom command not doing anything ([#6154](https://github.com/vector-im/element-android/issues/6154))
|
||||||
|
- Fixed crash when opening large images in the timeline ([#6290](https://github.com/vector-im/element-android/issues/6290))
|
||||||
|
- [Location sharing] Fix crash when starting/stopping a live when offline ([#6315](https://github.com/vector-im/element-android/issues/6315))
|
||||||
|
- Fix loop in timeline and simplify management of chunks and timeline events. ([#6318](https://github.com/vector-im/element-android/issues/6318))
|
||||||
|
- Update design and behaviour on widget permission bottom sheet ([#6326](https://github.com/vector-im/element-android/issues/6326))
|
||||||
|
- Fix | Some user verification requests couldn't be accepted/declined ([#6328](https://github.com/vector-im/element-android/issues/6328))
|
||||||
|
- [Location sharing] Fix stop of a live not possible from another device ([#6349](https://github.com/vector-im/element-android/issues/6349))
|
||||||
|
- Fix backslash escapes in formatted messages ([#6357](https://github.com/vector-im/element-android/issues/6357))
|
||||||
|
- Fixes wrong error message when signing in with wrong credentials ([#6371](https://github.com/vector-im/element-android/issues/6371))
|
||||||
|
- [Location Share] - Adding missing prefix "u=" for uncertainty in geo URI ([#6375](https://github.com/vector-im/element-android/issues/6375))
|
||||||
|
|
||||||
|
In development 🚧
|
||||||
|
----------------
|
||||||
|
- FTUE - Adds automatic homeserver selection when typing a full matrix id during registration or login ([#6162](https://github.com/vector-im/element-android/issues/6162))
|
||||||
|
|
||||||
|
Improved Documentation 📚
|
||||||
|
------------------------
|
||||||
|
- Update the PR process doc to come back to one reviewer with optional additional reviewers. ([#6396](https://github.com/vector-im/element-android/issues/6396))
|
||||||
|
|
||||||
|
SDK API changes ⚠️
|
||||||
|
------------------
|
||||||
|
- Group all location sharing related API into LocationSharingService ([#5864](https://github.com/vector-im/element-android/issues/5864))
|
||||||
|
- Add support for MSC2457 - opting in or out of logging out all devices when changing password ([#6191](https://github.com/vector-im/element-android/issues/6191))
|
||||||
|
- Create `QueryStateEventValue` to do query on `stateKey` for State Event. Also remove the default parameter values for those type. ([#6319](https://github.com/vector-im/element-android/issues/6319))
|
||||||
|
|
||||||
|
Other changes
|
||||||
|
-------------
|
||||||
|
- - Notify of the latest known location in LocationTracker to avoid multiple locations at start
|
||||||
|
- Debounce location updates
|
||||||
|
- Improve location providers access ([#5913](https://github.com/vector-im/element-android/issues/5913))
|
||||||
|
- Add unit tests for LiveLocationAggregationProcessor code ([#6155](https://github.com/vector-im/element-android/issues/6155))
|
||||||
|
- Making screenshots in bug reports opt in instead of opt out ([#6261](https://github.com/vector-im/element-android/issues/6261))
|
||||||
|
- Setup [Flipper](https://fbflipper.com/) ([#6300](https://github.com/vector-im/element-android/issues/6300))
|
||||||
|
- CreatePollViewModel unit tests ([#6320](https://github.com/vector-im/element-android/issues/6320))
|
||||||
|
- Fix flaky test in voice recording feature. ([#6329](https://github.com/vector-im/element-android/issues/6329))
|
||||||
|
- Poll view state unit tests ([#6366](https://github.com/vector-im/element-android/issues/6366))
|
||||||
|
- Let LoadRoomMembersTask insert by chunk to release db. ([#6394](https://github.com/vector-im/element-android/issues/6394))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element v1.4.25 (2022-06-27)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Second attempt to fix session database migration to version 30.
|
||||||
|
|
||||||
|
Changes in Element v1.4.24 (2022-06-22)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- First attempt to fix session database migration to version 30.
|
||||||
|
|
||||||
|
Changes in Element v1.4.23 (2022-06-21)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fix loop in timeline and simplify management of chunks and timeline events. ([#6318](https://github.com/vector-im/element-android/issues/6318))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element v1.4.22 (2022-06-14)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Features ✨
|
||||||
|
----------
|
||||||
|
- Make read receipt avatar list more compact ([#5970](https://github.com/vector-im/element-android/issues/5970))
|
||||||
|
- Allow .well-known configuration to override key sharing mode ([#6147](https://github.com/vector-im/element-android/issues/6147))
|
||||||
|
- Re-organize location settings flags ([#6244](https://github.com/vector-im/element-android/issues/6244))
|
||||||
|
- Add report action for live location messages ([#6280](https://github.com/vector-im/element-android/issues/6280))
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fix cases of missing, swapped, or duplicated messages ([#5528](https://github.com/vector-im/element-android/issues/5528))
|
||||||
|
- Fix wrong status of live location sharing in timeline ([#6209](https://github.com/vector-im/element-android/issues/6209))
|
||||||
|
- Fix StackOverflowError while recording voice message ([#6222](https://github.com/vector-im/element-android/issues/6222))
|
||||||
|
- Text cropped: "Secure backup" ([#6232](https://github.com/vector-im/element-android/issues/6232))
|
||||||
|
- Fix copyright attributions of map views ([#6247](https://github.com/vector-im/element-android/issues/6247))
|
||||||
|
- Fix flickering bottom bar of live location item ([#6264](https://github.com/vector-im/element-android/issues/6264))
|
||||||
|
|
||||||
|
In development 🚧
|
||||||
|
----------------
|
||||||
|
- FTUE - Adds Sign Up tracking ([#5285](https://github.com/vector-im/element-android/issues/5285))
|
||||||
|
|
||||||
|
SDK API changes ⚠️
|
||||||
|
------------------
|
||||||
|
- Some methods from `Session` have been moved to a new `SyncService`, that you can retrieve from a `Session`.
|
||||||
|
- `SyncStatusService` method has been moved to the new `SyncService`
|
||||||
|
- `InitSyncStep` have been moved and renamed to `InitialSyncStep`
|
||||||
|
- `SyncStatusService.Status` has been renamed to `SyncRequestState`
|
||||||
|
- The existing `SyncService` has been renamed to `SyncAndroidService` because of name clash with the new SDK Service ([#6029](https://github.com/vector-im/element-android/issues/6029))
|
||||||
|
- Allows `AuthenticationService.getLoginFlow` to fail without resetting state from previously successful calls ([#6093](https://github.com/vector-im/element-android/issues/6093))
|
||||||
|
- Allows new passwords to be passed at the point of confirmation when resetting a password ([#6169](https://github.com/vector-im/element-android/issues/6169))
|
||||||
|
|
||||||
|
Other changes
|
||||||
|
-------------
|
||||||
|
- Adds support for parsing homeserver versions without a patch number ([#6017](https://github.com/vector-im/element-android/issues/6017))
|
||||||
|
- Updating exit onboarding dialog copy formatting to match iOS ([#6087](https://github.com/vector-im/element-android/issues/6087))
|
||||||
|
- Disables when arrow alignment in code style ([#6126](https://github.com/vector-im/element-android/issues/6126))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element 1.4.20 (2022-06-13)
|
||||||
|
======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fix: All rooms are shown in Home regardless of the switch state. ([#6272](https://github.com/vector-im/element-android/issues/6272))
|
||||||
|
- Fix regression on EventInsertLiveObserver getting blocked so there is no event being processed anymore. ([#6278](https://github.com/vector-im/element-android/issues/6278))
|
||||||
|
|
||||||
|
|
||||||
Changes in Element 1.4.19 (2022-06-07)
|
Changes in Element 1.4.19 (2022-06-07)
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
22
build.gradle
22
build.gradle
@@ -24,12 +24,12 @@ buildscript {
|
|||||||
classpath libs.gradle.gradlePlugin
|
classpath libs.gradle.gradlePlugin
|
||||||
classpath libs.gradle.kotlinPlugin
|
classpath libs.gradle.kotlinPlugin
|
||||||
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.13'
|
||||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513'
|
||||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||||
classpath "com.likethesalad.android:stem-plugin:2.1.1"
|
classpath "com.likethesalad.android:stem-plugin:2.1.1"
|
||||||
classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
|
classpath 'org.owasp:dependency-check-gradle:7.1.1'
|
||||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.0"
|
||||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.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
|
||||||
@@ -43,7 +43,7 @@ plugins {
|
|||||||
id "io.gitlab.arturbosch.detekt" version "1.20.0"
|
id "io.gitlab.arturbosch.detekt" version "1.20.0"
|
||||||
|
|
||||||
// Dependency Analysis
|
// Dependency Analysis
|
||||||
id 'com.autonomousapps.dependency-analysis' version "1.5.0"
|
id 'com.autonomousapps.dependency-analysis' version "1.9.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/jeremylong/DependencyCheck
|
// https://github.com/jeremylong/DependencyCheck
|
||||||
@@ -168,7 +168,7 @@ def launchTask = getGradle()
|
|||||||
.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
|
|
||||||
if (launchTask.contains("codeCoverageReport".toLowerCase())) {
|
if (launchTask.contains("coverage".toLowerCase())) {
|
||||||
apply from: 'coverage.gradle'
|
apply from: 'coverage.gradle'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,7 +191,7 @@ sonarqube {
|
|||||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||||
property "sonar.organization", "new_vector_ltd_organization"
|
property "sonar.organization", "new_vector_ltd_organization"
|
||||||
property "sonar.java.coveragePlugin", "jacoco"
|
property "sonar.java.coveragePlugin", "jacoco"
|
||||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/theCodeCoverageReport/theCodeCoverageReport.xml"
|
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/generateCoverageReport/generateCoverageReport.xml"
|
||||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -252,11 +252,7 @@ dependencyAnalysis {
|
|||||||
exclude("org.json:json") // Used in unit tests, overwrites the one bundled into Android
|
exclude("org.json:json") // Used in unit tests, overwrites the one bundled into Android
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
project(":library:ui-styles") {
|
project(":library:ui-styles")
|
||||||
onUnusedDependencies {
|
|
||||||
exclude("com.github.vector-im:PFLockScreen-Android") // False positive
|
|
||||||
}
|
|
||||||
}
|
|
||||||
project(":matrix-sdk-android") {
|
project(":matrix-sdk-android") {
|
||||||
onUnusedDependencies {
|
onUnusedDependencies {
|
||||||
exclude("io.reactivex.rxjava2:rxkotlin") // Transitively required for mocking realm as monarchy doesn't expose Rx
|
exclude("io.reactivex.rxjava2:rxkotlin") // Transitively required for mocking realm as monarchy doesn't expose Rx
|
||||||
@@ -271,6 +267,8 @@ dependencyAnalysis {
|
|||||||
onUnusedDependencies {
|
onUnusedDependencies {
|
||||||
// False positives
|
// False positives
|
||||||
exclude(
|
exclude(
|
||||||
|
"androidx.fragment:fragment-testing",
|
||||||
|
"com.facebook.soloader:soloader",
|
||||||
"com.vanniktech:emoji-google",
|
"com.vanniktech:emoji-google",
|
||||||
"com.vanniktech:emoji-material",
|
"com.vanniktech:emoji-material",
|
||||||
"org.maplibre.gl:android-plugin-annotation-v9",
|
"org.maplibre.gl:android-plugin-annotation-v9",
|
||||||
|
1
changelog.d/5284.wip
Normal file
1
changelog.d/5284.wip
Normal file
@@ -0,0 +1 @@
|
|||||||
|
FTUE - Adds support for resetting the password during the FTUE onboarding journey
|
@@ -1 +0,0 @@
|
|||||||
FTUE - Adds Sign Up tracking
|
|
1
changelog.d/5398.bugfix
Normal file
1
changelog.d/5398.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Adds LoginType to SessionParams to fix soft logout form not showing for SSO and Password type
|
@@ -1 +0,0 @@
|
|||||||
Fix cases of missing, swapped, or duplicated messages
|
|
1
changelog.d/5853.feature
Normal file
1
changelog.d/5853.feature
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Improve user experience when he is first invited to a room. Users will be able to decrypt and view previous messages
|
@@ -1 +0,0 @@
|
|||||||
Make read receipt avatar list more compact
|
|
@@ -1 +0,0 @@
|
|||||||
Adds support for parsing homeserver versions without a patch number
|
|
@@ -1,5 +0,0 @@
|
|||||||
Some methods from `Session` have been moved to a new `SyncService`, that you can retrieve from a `Session`.
|
|
||||||
- `SyncStatusService` method has been moved to the new `SyncService`
|
|
||||||
- `InitSyncStep` have been moved and renamed to `InitialSyncStep`
|
|
||||||
- `SyncStatusService.Status` has been renamed to `SyncRequestState`
|
|
||||||
- The existing `SyncService` has been renamed to `SyncAndroidService` because of name clash with the new SDK Service
|
|
@@ -1 +0,0 @@
|
|||||||
Allowing AuthenticationService.getLoginFlow to fail without resetting state from previously successful calls
|
|
@@ -1 +0,0 @@
|
|||||||
Disables when arrow alignment in code style
|
|
@@ -1 +0,0 @@
|
|||||||
Allow .well-known configuration to override key sharing mode
|
|
@@ -1 +0,0 @@
|
|||||||
Allows new passwords to be passed at the point of confirmation when resetting a password
|
|
@@ -1 +0,0 @@
|
|||||||
Fix wrong status of live location sharing in timeline
|
|
@@ -1 +0,0 @@
|
|||||||
Fix StackOverflowError while recording voice message
|
|
@@ -1 +0,0 @@
|
|||||||
Text cropped: "Secure backup"
|
|
@@ -1 +0,0 @@
|
|||||||
Re-organize location settings flags
|
|
1
changelog.d/6288.bugfix
Normal file
1
changelog.d/6288.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Use stable endpoint for alias management instead of MSC2432. Contributed by Nico.
|
1
changelog.d/6389.misc
Normal file
1
changelog.d/6389.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Replacing Epoxy annotation layout id references with getDefaultLayoutId
|
1
changelog.d/6392.misc
Normal file
1
changelog.d/6392.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Ensure `RealmList<T>.clearWith()` extension is correctly used.
|
1
changelog.d/6401.feature
Normal file
1
changelog.d/6401.feature
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[Location sharing] - Reply action on a live message
|
1
changelog.d/6413.feature
Normal file
1
changelog.d/6413.feature
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Show a loader if all the Room Members are not yet loaded.
|
1
changelog.d/6423.misc
Normal file
1
changelog.d/6423.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[Poll] - Add a description under undisclosed poll when not ended
|
1
changelog.d/6429.misc
Normal file
1
changelog.d/6429.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Add `android:hasFragileUserData="true"` in the manifest
|
1
changelog.d/6430.bugfix
Normal file
1
changelog.d/6430.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[Poll] Fixes visible and wrong votes in closed poll after removing 2 previous polls
|
1
changelog.d/6434.misc
Normal file
1
changelog.d/6434.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Add code check to prevent modification of frozen class
|
1
changelog.d/6436.misc
Normal file
1
changelog.d/6436.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Let your Activity or Fragment implement `VectorMenuProvider` if they provide a menu.
|
1
changelog.d/6442.bugfix
Normal file
1
changelog.d/6442.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Fix HTML entities being displayed in messages
|
1
changelog.d/6450.bugfix
Normal file
1
changelog.d/6450.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Gallery picker can pick external images
|
1
changelog.d/6451.bugfix
Normal file
1
changelog.d/6451.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Fixes crash when sharing plain text, such as a url
|
1
changelog.d/6458.misc
Normal file
1
changelog.d/6458.misc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Rename Android Service to use `AndroidService` suffix
|
1
changelog.d/6461.bugfix
Normal file
1
changelog.d/6461.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Fix crashes on Timeline [Thread] due to range validation
|
1
changelog.d/6463.bugfix
Normal file
1
changelog.d/6463.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Fix crashes when opening Thread
|
1
changelog.d/6469.bugfix
Normal file
1
changelog.d/6469.bugfix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Fix ConcurrentModificationException on BackgroundDetectionObserver
|
@@ -1,12 +1,37 @@
|
|||||||
def excludes = [ ]
|
def excludes = [
|
||||||
|
// dependency injection graph
|
||||||
|
'**/*Module.*',
|
||||||
|
'**/*Module*.*',
|
||||||
|
|
||||||
|
// Framework entry points
|
||||||
|
'**/*Activity*',
|
||||||
|
'**/*Fragment*',
|
||||||
|
'**/*Application*',
|
||||||
|
'**/*AndroidService*',
|
||||||
|
|
||||||
|
// We would like to exclude android widgets as well but our naming is inconsistent
|
||||||
|
|
||||||
|
// Proof of concept
|
||||||
|
'**/*Login2*',
|
||||||
|
|
||||||
|
// Generated
|
||||||
|
'**/*JsonAdapter*',
|
||||||
|
'**/*Item.*',
|
||||||
|
'**/*$Holder.*',
|
||||||
|
'**/*ViewHolder.*',
|
||||||
|
'**/*View.*',
|
||||||
|
'**/*BottomSheet.*'
|
||||||
|
]
|
||||||
|
|
||||||
def initializeReport(report, projects, classExcludes) {
|
def initializeReport(report, projects, classExcludes) {
|
||||||
projects.each { project -> project.apply plugin: 'jacoco' }
|
projects.each { project -> project.apply plugin: 'jacoco' }
|
||||||
report.executionData { fileTree(rootProject.rootDir.absolutePath).include(
|
|
||||||
"**/build/outputs/unit_test_code_coverage/**/*.exec",
|
|
||||||
"**/build/outputs/code_coverage/**/coverage.ec"
|
|
||||||
) }
|
|
||||||
|
|
||||||
|
report.executionData {
|
||||||
|
fileTree(rootProject.rootDir.absolutePath).include(
|
||||||
|
"**/build/**/*.exec",
|
||||||
|
"**/build/outputs/code_coverage/**/coverage.ec",
|
||||||
|
)
|
||||||
|
}
|
||||||
report.reports {
|
report.reports {
|
||||||
xml.enabled true
|
xml.enabled true
|
||||||
html.enabled true
|
html.enabled true
|
||||||
@@ -21,13 +46,11 @@ def initializeReport(report, projects, classExcludes) {
|
|||||||
switch (project) {
|
switch (project) {
|
||||||
case { project.plugins.hasPlugin("com.android.application") }:
|
case { project.plugins.hasPlugin("com.android.application") }:
|
||||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/gplayDebug")
|
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/gplayDebug")
|
||||||
androidSourceDirs.add("${project.buildDir}/generated/source/kapt/gplayDebug")
|
|
||||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||||
break
|
break
|
||||||
case { project.plugins.hasPlugin("com.android.library") }:
|
case { project.plugins.hasPlugin("com.android.library") }:
|
||||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
||||||
androidSourceDirs.add("${project.buildDir}/generated/source/kapt/debug")
|
|
||||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||||
break
|
break
|
||||||
@@ -48,17 +71,21 @@ def collectProjects(predicate) {
|
|||||||
return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
|
return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
task theCodeCoverageReport(type: JacocoReport) {
|
task generateCoverageReport(type: JacocoReport) {
|
||||||
outputs.upToDateWhen { false }
|
outputs.upToDateWhen { false }
|
||||||
rootProject.apply plugin: 'jacoco'
|
rootProject.apply plugin: 'jacoco'
|
||||||
tasks.withType(Test) {
|
def projects = collectProjects { ['vector', 'matrix-sdk-android'].contains(it.name) }
|
||||||
jacoco.includeNoLocationClasses = true
|
|
||||||
}
|
|
||||||
def projects = collectProjects { ['vector','matrix-sdk-android'].contains(it.name) }
|
|
||||||
dependsOn {
|
|
||||||
[':matrix-sdk-android:testDebugUnitTest'] +
|
|
||||||
[':vector:testGplayDebugUnitTest'] +
|
|
||||||
[':matrix-sdk-android:connectedDebugAndroidTest']
|
|
||||||
}
|
|
||||||
initializeReport(it, projects, excludes)
|
initializeReport(it, projects, excludes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task unitTestsWithCoverage(type: GradleBuild) {
|
||||||
|
// the 7.1.3 android gradle plugin has a bug where enableTestCoverage generates invalid coverage
|
||||||
|
startParameter.projectProperties.coverage = [enableTestCoverage: false]
|
||||||
|
tasks = [':vector:testGplayDebugUnitTest', ':matrix-sdk-android:testDebugUnitTest']
|
||||||
|
}
|
||||||
|
|
||||||
|
task instrumentationTestsWithCoverage(type: GradleBuild) {
|
||||||
|
startParameter.projectProperties.coverage = [enableTestCoverage: true]
|
||||||
|
startParameter.projectProperties['android.testInstrumentationRunnerArguments.notPackage'] = 'im.vector.app.ui'
|
||||||
|
tasks = [':vector:connectedGplayDebugAndroidTest', 'matrix-sdk-android:connectedDebugAndroidTest']
|
||||||
|
}
|
||||||
|
@@ -13,7 +13,7 @@ ext.versions = [
|
|||||||
def gradle = "7.1.3"
|
def gradle = "7.1.3"
|
||||||
// Ref: https://kotlinlang.org/releases.html
|
// Ref: https://kotlinlang.org/releases.html
|
||||||
def kotlin = "1.6.21"
|
def kotlin = "1.6.21"
|
||||||
def kotlinCoroutines = "1.6.2"
|
def kotlinCoroutines = "1.6.3"
|
||||||
def dagger = "2.42"
|
def dagger = "2.42"
|
||||||
def retrofit = "2.9.0"
|
def retrofit = "2.9.0"
|
||||||
def arrow = "0.8.2"
|
def arrow = "0.8.2"
|
||||||
@@ -21,20 +21,21 @@ def markwon = "4.6.2"
|
|||||||
def moshi = "1.13.0"
|
def moshi = "1.13.0"
|
||||||
def lifecycle = "2.4.1"
|
def lifecycle = "2.4.1"
|
||||||
def flowBinding = "1.2.0"
|
def flowBinding = "1.2.0"
|
||||||
|
def flipper = "0.153.0"
|
||||||
def epoxy = "4.6.2"
|
def epoxy = "4.6.2"
|
||||||
def mavericks = "2.6.1"
|
def mavericks = "2.7.0"
|
||||||
def glide = "4.13.2"
|
def glide = "4.13.2"
|
||||||
def bigImageViewer = "1.8.1"
|
def bigImageViewer = "1.8.1"
|
||||||
def jjwt = "0.11.5"
|
def jjwt = "0.11.5"
|
||||||
def vanniktechEmoji = "0.15.0"
|
def vanniktechEmoji = "0.15.0"
|
||||||
|
|
||||||
|
def fragment = "1.5.0"
|
||||||
|
|
||||||
// Testing
|
// Testing
|
||||||
def mockk = "1.12.4"
|
def mockk = "1.12.3" // We need to use 1.12.3 to have mocking in androidTest until a new version is released: https://github.com/mockk/mockk/issues/819
|
||||||
def espresso = "3.4.0"
|
def espresso = "3.4.0"
|
||||||
def androidxTest = "1.4.0"
|
def androidxTest = "1.4.0"
|
||||||
def androidxOrchestrator = "1.4.1"
|
def androidxOrchestrator = "1.4.1"
|
||||||
|
|
||||||
|
|
||||||
ext.libs = [
|
ext.libs = [
|
||||||
gradle : [
|
gradle : [
|
||||||
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
|
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
|
||||||
@@ -48,12 +49,16 @@ ext.libs = [
|
|||||||
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||||
],
|
],
|
||||||
androidx : [
|
androidx : [
|
||||||
'activity' : "androidx.activity:activity:1.4.0",
|
'annotation' : "androidx.annotation:annotation:1.4.0",
|
||||||
|
'activity' : "androidx.activity:activity:1.5.0",
|
||||||
|
'annotations' : "androidx.annotation:annotation:1.3.0",
|
||||||
'appCompat' : "androidx.appcompat:appcompat:1.4.2",
|
'appCompat' : "androidx.appcompat:appcompat:1.4.2",
|
||||||
|
'biometric' : "androidx.biometric:biometric:1.1.0",
|
||||||
'core' : "androidx.core:core-ktx:1.8.0",
|
'core' : "androidx.core:core-ktx:1.8.0",
|
||||||
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
|
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
|
||||||
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
|
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
|
||||||
'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.1",
|
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
|
||||||
|
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
|
||||||
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
||||||
'work' : "androidx.work:work-runtime-ktx:2.7.1",
|
'work' : "androidx.work:work-runtime-ktx:2.7.1",
|
||||||
'autoFill' : "androidx.autofill:autofill:1.1.0",
|
'autoFill' : "androidx.autofill:autofill:1.1.0",
|
||||||
@@ -84,10 +89,16 @@ ext.libs = [
|
|||||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||||
'daggerCompiler' : "com.google.dagger:dagger-compiler:$dagger",
|
'daggerCompiler' : "com.google.dagger:dagger-compiler:$dagger",
|
||||||
'hilt' : "com.google.dagger:hilt-android:$dagger",
|
'hilt' : "com.google.dagger:hilt-android:$dagger",
|
||||||
|
'hiltAndroidTesting' : "com.google.dagger:hilt-android-testing:$dagger",
|
||||||
'hiltCompiler' : "com.google.dagger:hilt-compiler:$dagger"
|
'hiltCompiler' : "com.google.dagger:hilt-compiler:$dagger"
|
||||||
],
|
],
|
||||||
|
flipper : [
|
||||||
|
'flipper' : "com.facebook.flipper:flipper:$flipper",
|
||||||
|
'flipperNetworkPlugin' : "com.facebook.flipper:flipper-network-plugin:$flipper",
|
||||||
|
],
|
||||||
squareup : [
|
squareup : [
|
||||||
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
||||||
|
'moshiKt' : "com.squareup.moshi:moshi-kotlin:$moshi",
|
||||||
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
|
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
|
||||||
'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit",
|
'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit",
|
||||||
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
|
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
|
||||||
@@ -153,3 +164,5 @@ ext.libs = [
|
|||||||
'junit' : "junit:junit:4.13.2"
|
'junit' : "junit:junit:4.13.2"
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@@ -9,6 +9,7 @@ ext.groups = [
|
|||||||
'com.github.jetradarmobile',
|
'com.github.jetradarmobile',
|
||||||
'com.github.MatrixFrog',
|
'com.github.MatrixFrog',
|
||||||
'com.github.tapadoo',
|
'com.github.tapadoo',
|
||||||
|
'com.github.UnifiedPush',
|
||||||
'com.github.vector-im',
|
'com.github.vector-im',
|
||||||
'com.github.yalantis',
|
'com.github.yalantis',
|
||||||
'com.github.Zhuinden',
|
'com.github.Zhuinden',
|
||||||
@@ -31,6 +32,7 @@ ext.groups = [
|
|||||||
],
|
],
|
||||||
group: [
|
group: [
|
||||||
'com.android',
|
'com.android',
|
||||||
|
'com.android.ndk.thirdparty',
|
||||||
'com.android.tools',
|
'com.android.tools',
|
||||||
'com.google.firebase',
|
'com.google.firebase',
|
||||||
'com.google.testing.platform',
|
'com.google.testing.platform',
|
||||||
@@ -52,6 +54,7 @@ ext.groups = [
|
|||||||
'com.dropbox.core',
|
'com.dropbox.core',
|
||||||
'com.soywiz.korlibs.korte',
|
'com.soywiz.korlibs.korte',
|
||||||
'com.facebook.fbjni',
|
'com.facebook.fbjni',
|
||||||
|
'com.facebook.flipper',
|
||||||
'com.facebook.fresco',
|
'com.facebook.fresco',
|
||||||
'com.facebook.infer.annotation',
|
'com.facebook.infer.annotation',
|
||||||
'com.facebook.soloader',
|
'com.facebook.soloader',
|
||||||
@@ -93,6 +96,7 @@ ext.groups = [
|
|||||||
'com.ibm.icu',
|
'com.ibm.icu',
|
||||||
'com.jakewharton.android.repackaged',
|
'com.jakewharton.android.repackaged',
|
||||||
'com.jakewharton.timber',
|
'com.jakewharton.timber',
|
||||||
|
'com.kgurgul.flipper',
|
||||||
'com.linkedin.dexmaker',
|
'com.linkedin.dexmaker',
|
||||||
'com.mapbox.mapboxsdk',
|
'com.mapbox.mapboxsdk',
|
||||||
'com.nulab-inc',
|
'com.nulab-inc',
|
||||||
@@ -168,6 +172,7 @@ ext.groups = [
|
|||||||
'org.glassfish.jaxb',
|
'org.glassfish.jaxb',
|
||||||
'org.hamcrest',
|
'org.hamcrest',
|
||||||
'org.jacoco',
|
'org.jacoco',
|
||||||
|
'org.java-websocket',
|
||||||
'org.jetbrains',
|
'org.jetbrains',
|
||||||
'org.jetbrains.dokka',
|
'org.jetbrains.dokka',
|
||||||
'org.jetbrains.intellij.deps',
|
'org.jetbrains.intellij.deps',
|
||||||
|
58
docs/flipper.md
Normal file
58
docs/flipper.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# Flipper
|
||||||
|
|
||||||
|
<!--- TOC -->
|
||||||
|
|
||||||
|
* [Introduction](#introduction)
|
||||||
|
* [Setup](#setup)
|
||||||
|
* [Troubleshoot](#troubleshoot)
|
||||||
|
* [No device found issue](#no-device-found-issue)
|
||||||
|
* [Diagnostic Activity](#diagnostic-activity)
|
||||||
|
* [Other](#other)
|
||||||
|
* [Links](#links)
|
||||||
|
|
||||||
|
<!--- END -->
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
[Flipper](https://fbflipper.com) is a powerful tool from Meta, which allow to inspect the running application details and states from your computer.
|
||||||
|
|
||||||
|
Flipper is configured in the Element Android project to let the developers be able to:
|
||||||
|
- inspect all the Realm databases content;
|
||||||
|
- do layout inspection;
|
||||||
|
- see the crash logs;
|
||||||
|
- see the logcat;
|
||||||
|
- see all the network requests;
|
||||||
|
- see all the SharedPreferences;
|
||||||
|
- take screenshots and record videos of the device;
|
||||||
|
- and more!
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
- Install Flipper on your computer. Follow instructions here: https://fbflipper.com/docs/getting-started/index/
|
||||||
|
- Run the debug version of Element on an emulator or on a real device.
|
||||||
|
|
||||||
|
### Troubleshoot
|
||||||
|
|
||||||
|
#### No device found issue
|
||||||
|
|
||||||
|
The configuration of the Flipper application has to be updated. The issue has been asked and answered here: https://stackoverflow.com/questions/71744103/android-emulator-unable-to-connect-to-flipper/72608113#72608113
|
||||||
|
|
||||||
|
#### Diagnostic Activity
|
||||||
|
|
||||||
|
Flipper comes with a Diagnostic Activity that you can start from command line using:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
adb shell am start -n im.vector.app.debug/com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity
|
||||||
|
```
|
||||||
|
|
||||||
|
It provides some log which can help to figure out what's going on client side.
|
||||||
|
|
||||||
|
#### Other
|
||||||
|
|
||||||
|
https://fbflipper.com/docs/getting-started/troubleshooting/android/ may help.
|
||||||
|
|
||||||
|
## Links
|
||||||
|
|
||||||
|
- Official Flipper website: https://fbflipper.com
|
||||||
|
- Realm Plugin for Flipper: https://github.com/kamgurgul/Flipper-Realm
|
||||||
|
- Dedicated Matrix room: https://matrix.to/#/#unifiedpush:matrix.org
|
@@ -83,15 +83,16 @@ Exceptions can occur:
|
|||||||
|
|
||||||
##### PR Review Assignment
|
##### PR Review Assignment
|
||||||
|
|
||||||
We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to 2 team members using the round robin algorithm. The process is the following:
|
We use automatic assignment for PR reviews. **A PR is automatically routed by GitHub to one team member** using the round robin algorithm. Additional reviewers can be used for complex changes or when the first reviewer is not confident enough on the changes.
|
||||||
|
The process is the following:
|
||||||
|
|
||||||
- The PR creator can assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at the PR.
|
- The PR creator selects the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
||||||
- If there are missing reviewers, the PR creator assigns the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
- GitHub automatically assign the reviewer. If the reviewer is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
||||||
- GitHub automatically assigns other reviewers. If one of the chosen reviewers is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
- Alternatively, the PR creator can directly assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at their PR.
|
||||||
- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
|
- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
|
||||||
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
||||||
|
|
||||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any members directly.
|
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any member directly.
|
||||||
|
|
||||||
##### PR review time
|
##### PR review time
|
||||||
|
|
||||||
@@ -102,6 +103,7 @@ Some tips to achieve it:
|
|||||||
- Set up your GH notifications correctly
|
- Set up your GH notifications correctly
|
||||||
- Check your pulls page: [https://github.com/pulls](https://github.com/pulls)
|
- Check your pulls page: [https://github.com/pulls](https://github.com/pulls)
|
||||||
- Check your pending assigned PRs before starting or resuming your day to day tasks
|
- Check your pending assigned PRs before starting or resuming your day to day tasks
|
||||||
|
- If you are busy with high priority tasks, inform the author. They will find another developer
|
||||||
|
|
||||||
It is hard to define a deadline for a review. It depends on the PR size and the complexity. Let's start with a goal of 24h (working day!) for a PR smaller than 500 lines. If bigger, the submitter and the reviewer should discuss.
|
It is hard to define a deadline for a review. It depends on the PR size and the complexity. Let's start with a goal of 24h (working day!) for a PR smaller than 500 lines. If bigger, the submitter and the reviewer should discuss.
|
||||||
|
|
||||||
@@ -189,7 +191,7 @@ Examples of prefixes:
|
|||||||
- `[Bugfix]`
|
- `[Bugfix]`
|
||||||
- etc.
|
- etc.
|
||||||
|
|
||||||
Also, it's still possible to add labels to the PRs, such as `A-` or `T-` labels, even if this is not a string requirement. We prefer to spend time to add labels on issues.
|
Also, it's still possible to add labels to the PRs, such as `A-` or `T-` labels, even if this is not a strong requirement. We prefer to spend time to add labels on issues.
|
||||||
|
|
||||||
##### PR description
|
##### PR description
|
||||||
|
|
||||||
|
58
docs/unifiedpush.md
Normal file
58
docs/unifiedpush.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# UnifiedPush
|
||||||
|
|
||||||
|
<!--- TOC -->
|
||||||
|
|
||||||
|
* [Introduction](#introduction)
|
||||||
|
* [Configuration in Element-Android and their forks](#configuration-in-element-android-and-their-forks)
|
||||||
|
* [Enabling and disabling the feature](#enabling-and-disabling-the-feature)
|
||||||
|
* [Override the configuration at runtime](#override-the-configuration-at-runtime)
|
||||||
|
* [Enabling the feature](#enabling-the-feature)
|
||||||
|
* [Disabling the feature](#disabling-the-feature)
|
||||||
|
* [Useful links](#useful-links)
|
||||||
|
|
||||||
|
<!--- END -->
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
The recently started UnifiedPush project is an Android protocol and library for apps to be able to receive distributor-agnostic push notifications.
|
||||||
|
|
||||||
|
The *F-Droid* and *Gplay* flavors of Element Android support UnifiedPush, so the user can use any distributor installed on their devices. This would make it possible to have push notifications without depending on Google services or libraries. Currently, the main distributors are [ntfy](https://ntfy.sh) which does not require any setup (like manual registration) to use the public server and [NextPush](https://github.com/UP-NextPush/android), available as a nextcloud application.
|
||||||
|
|
||||||
|
The *Gplay* variant uses a UnifiedPush library which basically embed a FCM distributor built into the application (so a user doesn't need to do anything other than install the app to get FCM notifications). This variant uses Google Services to receive notifications if the user has not installed any distributor.
|
||||||
|
|
||||||
|
The *F-Droid* variant does not use this library to avoid any proprietary blob. It will use a polling service if the user has not installed any distributor.
|
||||||
|
|
||||||
|
In all cases, if there are other distributors available, the user will have to opt-in to one of them in the preferences.
|
||||||
|
|
||||||
|
## Configuration in Element-Android and their forks
|
||||||
|
|
||||||
|
### Enabling and disabling the feature
|
||||||
|
|
||||||
|
Allowing the user to use an alternative distributor can be changed in [Config](../vector-config/src/main/java/im/vector/app/config/Config.kt). The flag is named `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS`. Default value is `true`.
|
||||||
|
|
||||||
|
#### Override the configuration at runtime
|
||||||
|
|
||||||
|
On debug version, it is possible to override this configuration at runtime, using the `Feature` screen. The Feature is named `Allow external UnifiedPush distributors`.
|
||||||
|
|
||||||
|
#### Enabling the feature
|
||||||
|
|
||||||
|
This is the default behavior of Element Android.
|
||||||
|
|
||||||
|
If `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS` is set to true, it allows any available external UnifiedPush distributor to be chosen by the user.
|
||||||
|
- For Gplay variant it means that FCM will be used by default, but user can choose another UnifiedPush distributor;
|
||||||
|
- For F-Droid variant, it means that background polling will be used by default, but user can choose another UnifiedPush distributor.
|
||||||
|
- On the UI, the setting to choose an alternative distributor will be visible to the user, and some tests in the notification troubleshoot screen will shown.
|
||||||
|
- For F-Droid, if the user has chosen a distributor, the settings to configure the background polling will be hidden.
|
||||||
|
|
||||||
|
#### Disabling the feature
|
||||||
|
|
||||||
|
If `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS` is set to false, it prevents the usage of external UnifiedPush distributors.
|
||||||
|
- For Gplay variant it means that only FCM will be used;
|
||||||
|
- For F-Droid variant, it means that only background polling will be used.
|
||||||
|
- On the UI, the setting to choose an alternative distributor will be hidden to the user, and some tests in the notification troubleshoot screen will be hidden.
|
||||||
|
|
||||||
|
### Useful links
|
||||||
|
|
||||||
|
- UnifiedPush official website: [https://unifiedpush.org/](https://unifiedpush.org/)
|
||||||
|
- List of available distributors can be retrieved here: [https://unifiedpush.org/users/distributors/](https://unifiedpush.org/users/distributors/)
|
||||||
|
- UnifiedPush project discussion can occurs here: [#unifiedpush:matrix.org](https://matrix.to/#/#unifiedpush:matrix.org)
|
@@ -1,64 +1,49 @@
|
|||||||
fastlane documentation
|
fastlane documentation
|
||||||
----
|
================
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
Make sure you have the latest version of the Xcode command line tools installed:
|
Make sure you have the latest version of the Xcode command line tools installed:
|
||||||
|
|
||||||
```sh
|
```
|
||||||
xcode-select --install
|
xcode-select --install
|
||||||
```
|
```
|
||||||
|
|
||||||
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
|
Install _fastlane_ using
|
||||||
|
```
|
||||||
|
[sudo] gem install fastlane -NV
|
||||||
|
```
|
||||||
|
or alternatively using `brew install fastlane`
|
||||||
|
|
||||||
# Available Actions
|
# Available Actions
|
||||||
|
|
||||||
## Android
|
## Android
|
||||||
|
|
||||||
### android test
|
### android test
|
||||||
|
|
||||||
```sh
|
|
||||||
[bundle exec] fastlane android test
|
|
||||||
```
|
```
|
||||||
|
fastlane android test
|
||||||
|
```
|
||||||
Runs all the tests
|
Runs all the tests
|
||||||
|
|
||||||
### android beta
|
### android beta
|
||||||
|
|
||||||
```sh
|
|
||||||
[bundle exec] fastlane android beta
|
|
||||||
```
|
```
|
||||||
|
fastlane android beta
|
||||||
|
```
|
||||||
Submit a new Beta Build to Crashlytics Beta
|
Submit a new Beta Build to Crashlytics Beta
|
||||||
|
|
||||||
### android deploy
|
### android deploy
|
||||||
|
|
||||||
```sh
|
|
||||||
[bundle exec] fastlane android deploy
|
|
||||||
```
|
```
|
||||||
|
fastlane android deploy
|
||||||
|
```
|
||||||
Deploy a new version to the Google Play
|
Deploy a new version to the Google Play
|
||||||
|
|
||||||
### android deployMeta
|
### android deployMeta
|
||||||
|
|
||||||
```sh
|
|
||||||
[bundle exec] fastlane android deployMeta
|
|
||||||
```
|
```
|
||||||
|
fastlane android deployMeta
|
||||||
|
```
|
||||||
Deploy Google Play metadata
|
Deploy Google Play metadata
|
||||||
|
|
||||||
### android getVersionCode
|
### android getVersionCode
|
||||||
|
|
||||||
```sh
|
|
||||||
[bundle exec] fastlane android getVersionCode
|
|
||||||
```
|
```
|
||||||
|
fastlane android getVersionCode
|
||||||
|
```
|
||||||
Get version code
|
Get version code
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
||||||
|
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
|
||||||
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
|
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
||||||
|
|
||||||
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
|
||||||
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavní změny v této verzi: Vylepšena správa šifrovaných zpráv. Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104220.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104220.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104230.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104230.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104240.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104240.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104250.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104250.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104260.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104260.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Use UnifiedPush and allows user to have push without FCM.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40104270.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104270.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Main changes in this version: Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Põhilised muutused selles versioonis: krüptitud sõnumite parem haldus, lisaks pisiparandused ja stabiilsust parandavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
تغییرات عمده در این نگارش: مدیریت بهتر پیامهای رمزگذاشته. رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principaux changements pour cette version : Meilleure gestion des messages chiffrés. Plusieurs corrections de bogues et d’améliorations de stabilité.
|
||||||
|
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principaux changements pour cette version : Plusieurs corrections de bogues et d’améliorations de stabilité.
|
||||||
|
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principaux changements pour cette version : Plusieurs corrections de bogues et d’améliorations de stabilité.
|
||||||
|
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principaux changements pour cette version : Plusieurs corrections de bogues et d’améliorations de stabilité.
|
||||||
|
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Perubahan utama dalam versi ini: Pengelolaan pesan terenkripsi lebih baik. Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Modifiche principali in questa versione: migliorata la gestione dei messaggi cifrati. Varie correzioni e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
@@ -1 +1 @@
|
|||||||
אלמנט (בעבר Riot.im)
|
אלמנט - התכתבות מאובטחת
|
||||||
|
2
fastlane/metadata/android/pl-PL/changelogs/40101060.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101060.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wesji: poprawki dla wesji 1.1.5
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
2
fastlane/metadata/android/pl-PL/changelogs/40101070.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101070.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Eksperymentalne wsparcie dla przestrzeni, Kompresowanie video przed wysłaniem.
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
2
fastlane/metadata/android/pl-PL/changelogs/40101080.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101080.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Poprawki w przestrzeniach
|
||||||
|
Pełna lista zmian https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
2
fastlane/metadata/android/pl-PL/changelogs/40101090.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101090.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Dodano wsparcie dla sieci gitter.im .
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
2
fastlane/metadata/android/pl-PL/changelogs/40101100.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101100.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Nowe funkcje dla przestrzeni i aktualizacja motywu i stylu.
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
2
fastlane/metadata/android/pl-PL/changelogs/40101110.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40101110.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Dodano nowe funkcje do przestrzeni i zaktualizowano motyw i styl aplikacji. (poprawki błędóœ dla wesji 1.1.10)
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
2
fastlane/metadata/android/pl-PL/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/pl-PL/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Główne zmiany w tej wersji: Lepsze zarządzanie zaszyfrowanymi wiadomościami. , Poprawki błędów i stabilności.
|
||||||
|
Pełna lista zmian: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principais mudanças nesta versão: Melhor gerenciamento de mensagens encriptadas. Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavné zmeny v tejto verzii: Lepšia spravovanie zašifrovaných správ. Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Huvudsakliga ändringar i den här versionen: Bättre hantering av krypterade meddelanden. Diverse buggfixar och stabilitetsförbättringar.
|
||||||
|
Full ändringslogg: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Huvudsakliga ändringar i den här versionen: Diverse buggfixar och stabilitetsförbättringar.
|
||||||
|
Full ändringslogg: https://github.com/vector-im/element-android/releases
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user