Compare commits
No commits in common. "develop" and "release/1.5.2" have entirely different histories.
develop
...
release/1.
|
@ -1,2 +1 @@
|
||||||
**/snapshots/**/*.png filter=lfs diff=lfs merge=lfs -text
|
**/snapshots/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
**/src/androidTest/assets/*.realm filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas).
|
Thank you for taking the time to propose a new feature or make a suggestion.
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: usecase
|
id: usecase
|
||||||
attributes:
|
attributes:
|
||||||
|
|
|
@ -10,6 +10,7 @@ body:
|
||||||
id: checklist
|
id: checklist
|
||||||
attributes:
|
attributes:
|
||||||
label: Release checklist
|
label: Release checklist
|
||||||
|
description: For the template example, we are releasing the version 1.2.3. Replace 1.2.3 with the version in the issue body.
|
||||||
placeholder: |
|
placeholder: |
|
||||||
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
||||||
value: |
|
value: |
|
||||||
|
@ -19,11 +20,34 @@ body:
|
||||||
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
|
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
|
||||||
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
|
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
|
||||||
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
|
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
|
||||||
|
|
||||||
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
||||||
|
|
||||||
### Do the release
|
### Do the release
|
||||||
|
|
||||||
- [ ] Run the script ./tools/release/releaseScript.sh and follow the steps.
|
- [ ] Make sure `develop` and `main` are up to date (git pull)
|
||||||
|
- [ ] Checkout develop and create a release with gitflow, branch name `release/1.2.3`
|
||||||
|
- [ ] Check the crashes from the PlayStore
|
||||||
|
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
|
||||||
|
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
|
||||||
|
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
|
||||||
|
- [ ] Run towncrier: `towncrier build --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
|
||||||
|
- [ ] Check that the folder `changelog.d` is empty. It can happen that some remaining files stay here
|
||||||
|
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
|
||||||
|
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
|
||||||
|
- [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
|
||||||
|
- [ ] Finish release with gitflow, delete the draft PR (if created)
|
||||||
|
- [ ] Push `main` and the new tag `v1.2.3` to origin
|
||||||
|
- [ ] Checkout `develop`
|
||||||
|
- [ ] Increase version (versionPatch + 2) in `./vector/build.gradle`
|
||||||
|
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
|
||||||
|
- [ ] Commit and push `develop`
|
||||||
|
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
|
||||||
|
- [ ] Run the script `~/scripts/releaseElement.sh`. It will download the APKs from Buildkite check them and sign them.
|
||||||
|
- [ ] Install the APK on your phone to check that the upgrade went well (no init sync, etc.)
|
||||||
|
- [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
|
||||||
|
- [ ] Add the 4 signed APKs to the GitHub release
|
||||||
|
- [ ] Ping the Android Internal room
|
||||||
|
|
||||||
### Once tested and validated internally
|
### Once tested and validated internally
|
||||||
|
|
||||||
|
@ -60,9 +84,29 @@ body:
|
||||||
|
|
||||||
The SDK2 and the sample app are released only when Element has been pushed to production.
|
The SDK2 and the sample app are released only when Element has been pushed to production.
|
||||||
|
|
||||||
- [ ] On the [SDK2 project](https://github.com/matrix-org/matrix-android-sdk2), run the script ./tools/releaseScript.sh and follow the instructions.
|
- [ ] Checkout the `main` branch on Element Android project
|
||||||
|
|
||||||
Note: if the step `./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:
|
#### On the SDK2 project
|
||||||
|
|
||||||
|
https://github.com/matrix-org/matrix-android-sdk2
|
||||||
|
|
||||||
|
- [ ] Create a release with GitFlow
|
||||||
|
- [ ] Update the value of VERSION_NAME in the file gradle.properties
|
||||||
|
- [ ] Update the files `./build.gradle` and `./gradle/gradle-wrapper.properties` manually, to use the latest version for the dependency. You can get inspired by the same files on Element Android project.
|
||||||
|
- [ ] Run the script `./tools/import_from_element.sh`
|
||||||
|
- [ ] Check the diff in the file `./matrix-sdk-android/build.gradle` and restore what may have been erased (in particular the line `apply plugin: "com.vanniktech.maven.publish"` and the line about the version)
|
||||||
|
- [ ] Let the script finish to build the library
|
||||||
|
- [ ] Update the file `CHANGES.md`
|
||||||
|
- [ ] Finish the release using GitFlow
|
||||||
|
- [ ] Push the branch `main`, the new tag and the branch `develop` to origin
|
||||||
|
|
||||||
|
##### 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 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
|
||||||
|
@ -70,6 +114,15 @@ body:
|
||||||
- [ ] 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)
|
||||||
|
|
||||||
|
##### Release on GitHub
|
||||||
|
|
||||||
|
- [ ] Create the release on GitHub from [the tag](https://github.com/matrix-org/matrix-android-sdk2/tags)
|
||||||
|
- [ ] Upload the AAR on the GitHub release
|
||||||
|
|
||||||
### Android SDK2 sample
|
### Android SDK2 sample
|
||||||
|
|
||||||
https://github.com/matrix-org/matrix-android-sdk2-sample
|
https://github.com/matrix-org/matrix-android-sdk2-sample
|
||||||
|
|
|
@ -11,9 +11,9 @@ jobs:
|
||||||
- run: |
|
- run: |
|
||||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||||
- name: Danger
|
- name: Danger
|
||||||
uses: danger/danger-js@11.2.0
|
uses: danger/danger-js@11.1.3
|
||||||
with:
|
with:
|
||||||
args: "--dangerfile ./tools/danger/dangerfile.js"
|
args: "--dangerfile tools/danger/dangerfile.js"
|
||||||
env:
|
env:
|
||||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||||
# Fallback for forks
|
# Fallback for forks
|
||||||
|
|
|
@ -10,7 +10,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Build docs
|
- name: Build docs
|
||||||
run: ./gradlew dokkaHtml
|
run: ./gradlew dokkaHtml
|
||||||
|
|
|
@ -32,7 +32,6 @@ jobs:
|
||||||
name: UI Tests (Synapse)
|
name: UI Tests (Synapse)
|
||||||
needs: should-i-run
|
needs: should-i-run
|
||||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -53,7 +52,7 @@ jobs:
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-gradle-
|
${{ runner.os }}-gradle-
|
||||||
- name: Start synapse server
|
- name: Start synapse server
|
||||||
uses: michaelkaye/setup-matrix-synapse@v1.0.4
|
uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
||||||
with:
|
with:
|
||||||
uploadLogs: true
|
uploadLogs: true
|
||||||
httpPort: 8080
|
httpPort: 8080
|
||||||
|
@ -95,7 +94,7 @@ jobs:
|
||||||
needs:
|
needs:
|
||||||
- should-i-run
|
- should-i-run
|
||||||
- ui-tests
|
- ui-tests
|
||||||
if: always() && (needs.should-i-run.result == 'success' ) && (needs.ui-tests.result != 'success')
|
if: always() && (needs.should-i-run.result == 'success' ) && ((needs.codecov-units.result != 'success' ) || (needs.ui-tests.result != 'success') || (needs.integration-tests.result != 'success'))
|
||||||
# No concurrency required, runs every time on a schedule.
|
# No concurrency required, runs every time on a schedule.
|
||||||
steps:
|
steps:
|
||||||
- uses: michaelkaye/matrix-hookshot-action@v1.0.0
|
- uses: michaelkaye/matrix-hookshot-action@v1.0.0
|
||||||
|
|
|
@ -66,9 +66,9 @@ jobs:
|
||||||
yarn add danger-plugin-lint-report --dev
|
yarn add danger-plugin-lint-report --dev
|
||||||
- name: Danger lint
|
- name: Danger lint
|
||||||
if: always()
|
if: always()
|
||||||
uses: danger/danger-js@11.2.0
|
uses: danger/danger-js@11.1.3
|
||||||
with:
|
with:
|
||||||
args: "--dangerfile ./tools/danger/dangerfile-lint.js"
|
args: "--dangerfile tools/danger/dangerfile-lint.js"
|
||||||
env:
|
env:
|
||||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||||
# Fallback for forks
|
# Fallback for forks
|
||||||
|
|
|
@ -14,7 +14,6 @@ jobs:
|
||||||
tests:
|
tests:
|
||||||
name: Runs all tests
|
name: Runs all tests
|
||||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
api-level: [28]
|
api-level: [28]
|
||||||
|
@ -51,7 +50,7 @@ jobs:
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 3.8
|
python-version: 3.8
|
||||||
- uses: michaelkaye/setup-matrix-synapse@v1.0.4
|
- uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
||||||
with:
|
with:
|
||||||
uploadLogs: true
|
uploadLogs: true
|
||||||
httpPort: 8080
|
httpPort: 8080
|
||||||
|
|
|
@ -10,7 +10,7 @@ jobs:
|
||||||
# Skip in forks
|
# Skip in forks
|
||||||
if: github.repository == 'vector-im/element-android'
|
if: github.repository == 'vector-im/element-android'
|
||||||
steps:
|
steps:
|
||||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
project: Issue triage
|
project: Issue triage
|
||||||
column: Incoming
|
column: Incoming
|
||||||
|
|
|
@ -17,8 +17,7 @@ jobs:
|
||||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Tags') ||
|
contains(github.event.issue.labels.*.name, 'A-Tags')
|
||||||
contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@v5
|
- uses: actions/github-script@v5
|
||||||
with:
|
with:
|
||||||
|
@ -30,23 +29,6 @@ jobs:
|
||||||
labels: ['Z-Labs']
|
labels: ['Z-Labs']
|
||||||
})
|
})
|
||||||
|
|
||||||
apply_Help-Wanted_label:
|
|
||||||
name: Add "Help Wanted" label to all "good first issue" and Hacktoberfest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: >
|
|
||||||
contains(github.event.issue.labels.*.name, 'good first issue') ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'Hacktoberfest')
|
|
||||||
steps:
|
|
||||||
- uses: actions/github-script@v5
|
|
||||||
with:
|
|
||||||
script: |
|
|
||||||
github.rest.issues.addLabels({
|
|
||||||
issue_number: context.issue.number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
labels: ['Help Wanted']
|
|
||||||
})
|
|
||||||
|
|
||||||
move_needs_info_issues:
|
move_needs_info_issues:
|
||||||
name: X-Needs-Info issues to Need info column on triage board
|
name: X-Needs-Info issues to Need info column on triage board
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -66,13 +48,7 @@ jobs:
|
||||||
# Skip in forks
|
# Skip in forks
|
||||||
if: >
|
if: >
|
||||||
github.repository == 'vector-im/element-android' &&
|
github.repository == 'vector-im/element-android' &&
|
||||||
contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
|
contains(github.event.issue.labels.*.name, 'X-Needs-Design')
|
||||||
(contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
|
||||||
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
|
|
||||||
(contains(github.event.issue.labels.*.name, 'S-Major') &&
|
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent')) ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'A11y'))
|
|
||||||
steps:
|
steps:
|
||||||
- uses: octokit/graphql-action@v2.x
|
- uses: octokit/graphql-action@v2.x
|
||||||
id: add_to_project
|
id: add_to_project
|
||||||
|
@ -80,8 +56,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +65,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc0sUA"
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
add_product_issues:
|
add_product_issues:
|
||||||
|
@ -104,8 +80,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,7 +89,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AAg6N"
|
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
delight_issues_to_board:
|
delight_issues_to_board:
|
||||||
|
@ -130,8 +106,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,7 +115,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc1HvQ"
|
PROJECT_ID: "PN_kwDOAM0swc1HvQ"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
move_voice-message_issues:
|
move_voice-message_issues:
|
||||||
|
@ -155,8 +131,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -164,7 +140,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc2KCw"
|
PROJECT_ID: "PN_kwDOAM0swc2KCw"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
move_message_bubbles_issues:
|
move_message_bubbles_issues:
|
||||||
name: A-Message-Bubbles to Message bubbles board
|
name: A-Message-Bubbles to Message bubbles board
|
||||||
|
@ -179,8 +155,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -188,7 +164,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc3m-g"
|
PROJECT_ID: "PN_kwDOAM0swc3m-g"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
move_ftue_issues:
|
move_ftue_issues:
|
||||||
|
@ -204,8 +180,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,7 +189,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AAqVx"
|
PROJECT_ID: "PN_kwDOAM0swc4AAqVx"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
move_WTF_issues:
|
move_WTF_issues:
|
||||||
|
@ -229,8 +205,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,7 +214,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AArk0"
|
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
move_element_x_issues:
|
move_element_x_issues:
|
||||||
|
@ -259,8 +235,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -268,107 +244,5 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4ABTXY"
|
PROJECT_ID: "PN_kwDOAM0swc4ABTXY"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
|
||||||
|
|
||||||
ps_features1:
|
|
||||||
name: Add labelled issues to PS features team 1
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: >
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
|
||||||
(contains(github.event.issue.labels.*.name, 'A-Voice-Messages') &&
|
|
||||||
!contains(github.event.issue.labels.*.name, 'A-Broadcast')) ||
|
|
||||||
(contains(github.event.issue.labels.*.name, 'A-Session-Mgmt') &&
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-User-Settings'))
|
|
||||||
steps:
|
|
||||||
- uses: octokit/graphql-action@v2.x
|
|
||||||
id: add_to_project
|
|
||||||
with:
|
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
|
||||||
query: |
|
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
|
||||||
item {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
|
||||||
env:
|
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKF"
|
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
|
||||||
|
|
||||||
ps_features2:
|
|
||||||
name: Add labelled issues to PS features team 2
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: >
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-DM-Start') ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-Broadcast')
|
|
||||||
steps:
|
|
||||||
- uses: octokit/graphql-action@v2.x
|
|
||||||
id: add_to_project
|
|
||||||
with:
|
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
|
||||||
query: |
|
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
|
||||||
item {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
|
||||||
env:
|
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKd"
|
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
|
||||||
|
|
||||||
ps_features3:
|
|
||||||
name: Add labelled issues to PS features team 3
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: >
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
|
|
||||||
steps:
|
|
||||||
- uses: octokit/graphql-action@v2.x
|
|
||||||
id: add_to_project
|
|
||||||
with:
|
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
|
||||||
query: |
|
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
|
||||||
item {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
|
||||||
env:
|
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKW"
|
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
|
||||||
|
|
||||||
voip:
|
|
||||||
name: Add labelled issues to VoIP project board
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: >
|
|
||||||
contains(github.event.issue.labels.*.name, 'Team: VoIP')
|
|
||||||
steps:
|
|
||||||
- uses: octokit/graphql-action@v2.x
|
|
||||||
id: add_to_project
|
|
||||||
with:
|
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
|
||||||
query: |
|
|
||||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
|
||||||
item {
|
|
||||||
id
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
|
||||||
contentid: ${{ github.event.issue.node_id }}
|
|
||||||
env:
|
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4ABMIk"
|
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
|
@ -60,8 +60,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!, $contentid:ID!) {
|
mutation add_to_project($projectid:ID!, $contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.pull_request.node_id }}
|
contentid: ${{ github.event.pull_request.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc0sUA"
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
TEAM: "design"
|
TEAM: "design"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ jobs:
|
||||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
query: |
|
query: |
|
||||||
mutation add_to_project($projectid:ID!, $contentid:ID!) {
|
mutation add_to_project($projectid:ID!, $contentid:ID!) {
|
||||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
item {
|
projectNextItem {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -138,6 +138,6 @@ jobs:
|
||||||
projectid: ${{ env.PROJECT_ID }}
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
contentid: ${{ github.event.pull_request.node_id }}
|
contentid: ${{ github.event.pull_request.node_id }}
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PVT_kwDOAM0swc4AAg6N"
|
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||||
TEAM: "product"
|
TEAM: "product"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
|
@ -24,7 +24,7 @@ jobs:
|
||||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
||||||
steps:
|
steps:
|
||||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
project: Android App Team
|
project: Android App Team
|
||||||
column: Important Issues & Topics (P1)
|
column: Important Issues & Topics (P1)
|
||||||
|
@ -50,7 +50,7 @@ jobs:
|
||||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent')))
|
contains(github.event.issue.labels.*.name, 'O-Frequent')))
|
||||||
steps:
|
steps:
|
||||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
project: Crypto Team
|
project: Crypto Team
|
||||||
column: Ready
|
column: Ready
|
||||||
|
|
|
@ -28,7 +28,7 @@ jobs:
|
||||||
echo "ALREADY_IN_BOARD=false" >> $GITHUB_ENV
|
echo "ALREADY_IN_BOARD=false" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
- name: Move issue
|
- name: Move issue
|
||||||
uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
if: ${{ env.ALREADY_IN_BOARD == 'true' }}
|
if: ${{ env.ALREADY_IN_BOARD == 'true' }}
|
||||||
with:
|
with:
|
||||||
project: Issue triage
|
project: Issue triage
|
||||||
|
|
349
CHANGES.md
349
CHANGES.md
|
@ -1,352 +1,3 @@
|
||||||
Changes in Element v1.5.18 (2023-01-02)
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
This release fixes a bunch of recent regressions. Most of them were not pushed to production hopefully. Current production version is 1.5.11.
|
|
||||||
Threads are now enabled by default, and this may let the application perform an initial sync.
|
|
||||||
Testers on the PlayStore may have experimented some issues like empty room list, or incomplete room state (room name missing, etc.), or even crashing due to initial sync not using lazy loading of room members. All those issues have been fixed, but to fix your current state, please clear cache once you get the release 1.5.18.
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Start DM will create a deadlock if user profile was never loaded ([#7870](https://github.com/vector-im/element-android/issues/7870))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.16 (2022-12-29)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- [Rich text editor] Add support for links ([#7746](https://github.com/vector-im/element-android/issues/7746))
|
|
||||||
- [Poll] When a poll is ended, use /relations API to ensure poll results are correct ([#7767](https://github.com/vector-im/element-android/issues/7767))
|
|
||||||
- [Session manager] Security recommendations cards: whole view should be tappable ([#7795](https://github.com/vector-im/element-android/issues/7795))
|
|
||||||
- [Session manager] Other sessions list: header should not be sticky ([#7797](https://github.com/vector-im/element-android/issues/7797))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Do not show typing notification of ignored users. ([#2965](https://github.com/vector-im/element-android/issues/2965))
|
|
||||||
- [Push Notifications, Threads] - quick reply to threaded notification now sent to thread except main timeline ([#7475](https://github.com/vector-im/element-android/issues/7475))
|
|
||||||
- [Session manager] Other sessions list: filter option is displayed when selection mode is enabled ([#7784](https://github.com/vector-im/element-android/issues/7784))
|
|
||||||
- [Session manager] Other sessions: Filter bottom sheet cut in landscape mode ([#7786](https://github.com/vector-im/element-android/issues/7786))
|
|
||||||
- Automatically show keyboard after learn more bottom sheet is dismissed ([#7790](https://github.com/vector-im/element-android/issues/7790))
|
|
||||||
- [Session Manager] Other sessions list: cannot select/deselect session by a long press when in select mode ([#7792](https://github.com/vector-im/element-android/issues/7792))
|
|
||||||
- Fix current session ip address visibility ([#7794](https://github.com/vector-im/element-android/issues/7794))
|
|
||||||
- Device Manager UI review fixes ([#7798](https://github.com/vector-im/element-android/issues/7798))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- [Sync] Sync Filter params are moved to MatrixConfiguration and will not be stored in session realm to avoid bug when session cache is cleared ([#7843](https://github.com/vector-im/element-android/issues/7843))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- [Voice Broadcast] Replace the player timeline ([#7821](https://github.com/vector-im/element-android/issues/7821))
|
|
||||||
- Increase session manager test coverage ([#7836](https://github.com/vector-im/element-android/issues/7836))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.14 (2022-12-20)
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- ActiveSessionHolder is not supposed to start syncing. Instead, the MainActivity does it, if necessary. Fixes a race condition when clearing cache.
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.13 (2022-12-19)
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Add `largeHeap=true` in the manifest since we are seeing more crashes (OOM) when handling sync response.
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.12 (2022-12-15)
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- [Threads] - Threads Labs Flag is enabled by default and forced to be enabled for existing users, but sill can be disabled manually ([#5503](https://github.com/vector-im/element-android/issues/5503))
|
|
||||||
- [Session manager] Add action to signout all the other session ([#7693](https://github.com/vector-im/element-android/issues/7693))
|
|
||||||
- Remind unverified sessions with a banner once a week ([#7694](https://github.com/vector-im/element-android/issues/7694))
|
|
||||||
- [Session manager] Add actions to rename and signout current session ([#7697](https://github.com/vector-im/element-android/issues/7697))
|
|
||||||
- Voice Broadcast - Update last message in the room list ([#7719](https://github.com/vector-im/element-android/issues/7719))
|
|
||||||
- Delete unused client information from account data ([#7754](https://github.com/vector-im/element-android/issues/7754))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Fix bad pills color background. For light and dark theme the color is now 61708B (iso EleWeb) ([#7274](https://github.com/vector-im/element-android/issues/7274))
|
|
||||||
- [Notifications] Fixed a bug when push notification was automatically dismissed while app is on background ([#7643](https://github.com/vector-im/element-android/issues/7643))
|
|
||||||
- ANR when asking to select the notification method ([#7653](https://github.com/vector-im/element-android/issues/7653))
|
|
||||||
- [Rich text editor] Fix design and spacing of rich text editor ([#7658](https://github.com/vector-im/element-android/issues/7658))
|
|
||||||
- [Rich text editor] Fix keyboard closing after collapsing editor ([#7659](https://github.com/vector-im/element-android/issues/7659))
|
|
||||||
- Rich Text Editor: fix several issues related to insets:
|
|
||||||
* Empty space displayed at the bottom when you don't have permissions to send messages into a room.
|
|
||||||
* Wrong insets being kept when you exit the room screen and the keyboard is displayed, then come back to it. ([#7680](https://github.com/vector-im/element-android/issues/7680))
|
|
||||||
- Fix crash in message composer when room is missing ([#7683](https://github.com/vector-im/element-android/issues/7683))
|
|
||||||
- Fix crash when invalid homeserver url is entered. ([#7684](https://github.com/vector-im/element-android/issues/7684))
|
|
||||||
- Rich Text Editor: improve performance when entering reply/edit/quote mode. ([#7691](https://github.com/vector-im/element-android/issues/7691))
|
|
||||||
- [Rich text editor] Add error tracking for rich text editor ([#7695](https://github.com/vector-im/element-android/issues/7695))
|
|
||||||
- Fix E2EE set up failure whilst signing in using QR code ([#7699](https://github.com/vector-im/element-android/issues/7699))
|
|
||||||
- Fix usage of unknown shield in room summary ([#7710](https://github.com/vector-im/element-android/issues/7710))
|
|
||||||
- Fix crash when the network is not available. ([#7725](https://github.com/vector-im/element-android/issues/7725))
|
|
||||||
- [Session manager] Sessions without encryption support should not prompt to verify ([#7733](https://github.com/vector-im/element-android/issues/7733))
|
|
||||||
- Fix issue of Scan QR code button sometimes not showing when it should be available ([#7737](https://github.com/vector-im/element-android/issues/7737))
|
|
||||||
- Verification request is not showing when verify session popup is displayed ([#7743](https://github.com/vector-im/element-android/issues/7743))
|
|
||||||
- Fix crash when inviting by email. ([#7744](https://github.com/vector-im/element-android/issues/7744))
|
|
||||||
- Revert usage of stable fields in live location sharing and polls ([#7751](https://github.com/vector-im/element-android/issues/7751))
|
|
||||||
- [Poll] Poll end event is not recognized ([#7753](https://github.com/vector-im/element-android/issues/7753))
|
|
||||||
- [Push Notifications] When push notification for threaded message is clicked, thread timeline will be opened instead of room's main timeline ([#7770](https://github.com/vector-im/element-android/issues/7770))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- [Threads] - added API to fetch threads list from the server instead of building it locally from events ([#5819](https://github.com/vector-im/element-android/issues/5819))
|
|
||||||
- Add Z-Labs label for rich text editor and migrate to new label naming. ([#7477](https://github.com/vector-im/element-android/issues/7477))
|
|
||||||
- Crypto database migration tests ([#7645](https://github.com/vector-im/element-android/issues/7645))
|
|
||||||
- Add tracing Id for to device messages ([#7708](https://github.com/vector-im/element-android/issues/7708))
|
|
||||||
- Disable nightly popup and add an entry point in the advanced settings instead. ([#7723](https://github.com/vector-im/element-android/issues/7723))
|
|
||||||
- Save m.local_notification_settings.<device-id> event in account_data ([#7596](https://github.com/vector-im/element-android/issues/7596))
|
|
||||||
- Update notifications setting when m.local_notification_settings.<device-id> event changes for current device ([#7632](https://github.com/vector-im/element-android/issues/7632))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- Handle account data removal ([#7740](https://github.com/vector-im/element-android/issues/7740))
|
|
||||||
|
|
||||||
Changes in Element 1.5.11 (2022-12-07)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Fix crash when the network is not available. ([#7725](https://github.com/vector-im/element-android/issues/7725))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.10 (2022-11-30)
|
|
||||||
=======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- Add setting to allow disabling direct share ([#2725](https://github.com/vector-im/element-android/issues/2725))
|
|
||||||
- [Device Manager] Toggle IP address visibility ([#7546](https://github.com/vector-im/element-android/issues/7546))
|
|
||||||
- New implementation of the full screen mode for the Rich Text Editor. ([#7577](https://github.com/vector-im/element-android/issues/7577))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Fix italic text is truncated when bubble mode and markdown is enabled ([#5679](https://github.com/vector-im/element-android/issues/5679))
|
|
||||||
- Missing translations on "replyTo" messages ([#7555](https://github.com/vector-im/element-android/issues/7555))
|
|
||||||
- ANR on session start when sending client info is enabled ([#7604](https://github.com/vector-im/element-android/issues/7604))
|
|
||||||
- Make the plain text mode layout of the RTE more compact. ([#7620](https://github.com/vector-im/element-android/issues/7620))
|
|
||||||
- Push notification for thread message is now shown correctly when user observes rooms main timeline ([#7634](https://github.com/vector-im/element-android/issues/7634))
|
|
||||||
- Voice Broadcast - Fix playback stuck in buffering mode ([#7646](https://github.com/vector-im/element-android/issues/7646))
|
|
||||||
|
|
||||||
In development 🚧
|
|
||||||
----------------
|
|
||||||
- Voice Broadcast - Handle redaction of the state events on the listener and recorder sides ([#7629](https://github.com/vector-im/element-android/issues/7629))
|
|
||||||
- Voice Broadcast - Update the buffering display in the timeline ([#7655](https://github.com/vector-im/element-android/issues/7655))
|
|
||||||
- Voice Broadcast - Remove voice messages related to a VB from the room attachments ([#7656](https://github.com/vector-im/element-android/issues/7656))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- Added support for read receipts in threads. Now user in a room can have multiple read receipts (one per thread + one in main thread + one without threadId) ([#6996](https://github.com/vector-im/element-android/issues/6996))
|
|
||||||
- Sync Filter now taking in account homeserver capabilities to not pass unsupported parameters.
|
|
||||||
Sync Filter is now configured by providing SyncFilterBuilder class instance, instead of Filter to identify Filter changes related to homeserver capabilities ([#7626](https://github.com/vector-im/element-android/issues/7626))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Remove usage of Buildkite. ([#7583](https://github.com/vector-im/element-android/issues/7583))
|
|
||||||
- Better validation of edits ([#7594](https://github.com/vector-im/element-android/issues/7594))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.8 (2022-11-17)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- [Session manager] Multi-session signout ([#7418](https://github.com/vector-im/element-android/issues/7418))
|
|
||||||
- Rich text editor: add full screen mode. ([#7436](https://github.com/vector-im/element-android/issues/7436))
|
|
||||||
- [Rich text editor] Add plain text mode ([#7452](https://github.com/vector-im/element-android/issues/7452))
|
|
||||||
- Move TypingView inside the timeline items. ([#7496](https://github.com/vector-im/element-android/issues/7496))
|
|
||||||
- Push notifications toggle: align implementation for current session ([#7512](https://github.com/vector-im/element-android/issues/7512))
|
|
||||||
- Voice messages - Persist the playback position across different screens ([#7582](https://github.com/vector-im/element-android/issues/7582))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- [Voice Broadcast] Do not display the recorder view for a live broadcast started from another session ([#7431](https://github.com/vector-im/element-android/issues/7431))
|
|
||||||
- [Session manager] Hide push notification toggle when there is no server support ([#7457](https://github.com/vector-im/element-android/issues/7457))
|
|
||||||
- Fix rich text editor textfield not growing to fill parent on full screen. ([#7491](https://github.com/vector-im/element-android/issues/7491))
|
|
||||||
- Fix duplicated mention pills in some cases ([#7501](https://github.com/vector-im/element-android/issues/7501))
|
|
||||||
- Voice Broadcast - Fix duplicated voice messages in the internal playlist ([#7502](https://github.com/vector-im/element-android/issues/7502))
|
|
||||||
- When joining a room, the message composer is displayed once the room is loaded. ([#7509](https://github.com/vector-im/element-android/issues/7509))
|
|
||||||
- Voice Broadcast - Fix error on voice messages in unencrypted rooms ([#7519](https://github.com/vector-im/element-android/issues/7519))
|
|
||||||
- Fix description of verified sessions ([#7533](https://github.com/vector-im/element-android/issues/7533))
|
|
||||||
|
|
||||||
In development 🚧
|
|
||||||
----------------
|
|
||||||
- [Voice Broadcast] Improve timeline items factory and handle bad recording state display ([#7448](https://github.com/vector-im/element-android/issues/7448))
|
|
||||||
- [Voice Broadcast] Stop recording when opening the room after an app restart ([#7450](https://github.com/vector-im/element-android/issues/7450))
|
|
||||||
- [Voice Broadcast] Improve playlist fetching and player codebase ([#7478](https://github.com/vector-im/element-android/issues/7478))
|
|
||||||
- [Voice Broadcast] Display an error dialog if the user fails to start a voice broadcast ([#7485](https://github.com/vector-im/element-android/issues/7485))
|
|
||||||
- [Voice Broadcast] Add seekbar in listening tile ([#7496](https://github.com/vector-im/element-android/issues/7496))
|
|
||||||
- [Voice Broadcast] Improve the live indicator icon rendering in the timeline ([#7579](https://github.com/vector-im/element-android/issues/7579))
|
|
||||||
- Voice Broadcast - Add maximum length ([#7588](https://github.com/vector-im/element-android/issues/7588))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- [Metrics] Add `SpannableMetricPlugin` to support spans within transactions. ([#7514](https://github.com/vector-im/element-android/issues/7514))
|
|
||||||
- Fix a bug that caused messages with no formatted text to be quoted as "null". ([#7530](https://github.com/vector-im/element-android/issues/7530))
|
|
||||||
- If message content has no `formattedBody`, default to `body` when editing. ([#7574](https://github.com/vector-im/element-android/issues/7574))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.7 (2022-11-07)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Fix regression when syncing with homeserver < 1.4. ([#7534](https://github.com/vector-im/element-android/issues/7534))
|
|
||||||
|
|
||||||
Changes in Element v1.5.6 (2022-11-02)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- Add new UI for selecting an attachment ([#7429](https://github.com/vector-im/element-android/issues/7429))
|
|
||||||
- Multi selection in sessions list ([#7396](https://github.com/vector-im/element-android/issues/7396))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- New line and Enter hardware key presses deleting existing text in some keyboards. ([#7357](https://github.com/vector-im/element-android/issues/7357))
|
|
||||||
- Fix share actions using share dialog. ([#7400](https://github.com/vector-im/element-android/issues/7400))
|
|
||||||
- Fix crash by disabling Flipper on Android API 22 and below - only affects debug version of the application. ([#7428](https://github.com/vector-im/element-android/issues/7428))
|
|
||||||
|
|
||||||
In development 🚧
|
|
||||||
----------------
|
|
||||||
- [Voice Broadcast] Live listening support ([#7419](https://github.com/vector-im/element-android/issues/7419))
|
|
||||||
- [Voice Broadcast] Improve rendering in the timeline ([#7421](https://github.com/vector-im/element-android/issues/7421))
|
|
||||||
- Add logic for sign in with QR code ([#7369](https://github.com/vector-im/element-android/issues/7369))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- Add MetricPlugin interface to implement metrics in SDK clients. ([#7438](https://github.com/vector-im/element-android/issues/7438))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Upgrade Jitsi SDK to 6.2.2 and WebRtc to 1.106.1-jitsi-12039821. ([#6195](https://github.com/vector-im/element-android/issues/6195))
|
|
||||||
- Gets thread notifications from sync response ([#7424](https://github.com/vector-im/element-android/issues/7424))
|
|
||||||
- Replace org.apache.sanselan:sanselan by org.apache.commons:commons-imaging ([#7454](https://github.com/vector-im/element-android/issues/7454))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.4 (2022-10-19)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- Add WYSIWYG editor, under a lab flag. ([#7288](https://github.com/vector-im/element-android/issues/7288))
|
|
||||||
- New Device management, can be enabled in the labs settings.
|
|
||||||
- Voice broadcast can be enabled in the labs settings (recording is possible only on Android 10 and up).
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Fix wrong mic button direction to cancel on RTL languages ([#5968](https://github.com/vector-im/element-android/issues/5968))
|
|
||||||
- Handle properly when getUser returns null - prefer using getUserOrDefault ([#7372](https://github.com/vector-im/element-android/issues/7372))
|
|
||||||
- [Device Management] Long session names not handled well ([#7310](https://github.com/vector-im/element-android/issues/7310))
|
|
||||||
- Fix editing formatted messages with plain text editor ([#7359](https://github.com/vector-im/element-android/issues/7359))
|
|
||||||
|
|
||||||
In development 🚧
|
|
||||||
----------------
|
|
||||||
- [Device Management] Save "matrix_client_information" events on login/registration ([#7257](https://github.com/vector-im/element-android/issues/7257))
|
|
||||||
- [Device management] Add lab flag for the feature ([#7336](https://github.com/vector-im/element-android/issues/7336))
|
|
||||||
- [Device management] Add lab flag for matrix client info account data event ([#7344](https://github.com/vector-im/element-android/issues/7344))
|
|
||||||
- [Device Management] Redirect to the new screen everywhere when lab flag is on ([#7374](https://github.com/vector-im/element-android/issues/7374))
|
|
||||||
- [Device Management] Show correct device type icons ([#7277](https://github.com/vector-im/element-android/issues/7277))
|
|
||||||
- [Device Management] Render extended device info ([#7294](https://github.com/vector-im/element-android/issues/7294))
|
|
||||||
- [Device management] Improve the parsing for OS of Desktop/Web sessions ([#7321](https://github.com/vector-im/element-android/issues/7321))
|
|
||||||
- [Device management] Hide the IP address and last activity date on current session ([#7324](https://github.com/vector-im/element-android/issues/7324))
|
|
||||||
- [Device management] Update the unknown verification status icon ([#7327](https://github.com/vector-im/element-android/issues/7327))
|
|
||||||
- [Voice Broadcast] Add the "io.element.voice_broadcast_info" state event with a minimalist timeline widget ([#7273](https://github.com/vector-im/element-android/issues/7273))
|
|
||||||
- [Voice Broadcast] Aggregate state events in the timeline ([#7283](https://github.com/vector-im/element-android/issues/7283))
|
|
||||||
- [Voice Broadcast] Record and send non aggregated voice messages to the room ([#7363](https://github.com/vector-im/element-android/issues/7363))
|
|
||||||
- [Voice Broadcast] Start listening to a voice broadcast ([#7387](https://github.com/vector-im/element-android/issues/7387))
|
|
||||||
- [Voice Broadcast] Enable the feature (behind a lab flag and only for Android 10 and up) ([#7393](https://github.com/vector-im/element-android/issues/7393))
|
|
||||||
- [Voice Broadcast] Add additional data in events ([#7397](https://github.com/vector-im/element-android/issues/7397))
|
|
||||||
- Implements MSC3881: Parses `enabled` and `device_id` fields from updated Pusher API ([#7217](https://github.com/vector-im/element-android/issues/7217))
|
|
||||||
- Adds pusher toggle setting to device manager v2 ([#7261](https://github.com/vector-im/element-android/issues/7261))
|
|
||||||
- Implement QR Code Login UI ([#7338](https://github.com/vector-im/element-android/issues/7338))
|
|
||||||
- Implements client-side of local notification settings event ([#7300](https://github.com/vector-im/element-android/issues/7300))
|
|
||||||
- Links "Enable Notifications for this session" setting to enabled value in pusher ([#7281](https://github.com/vector-im/element-android/issues/7281))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- Stop using `original_event` field from `/relations` endpoint ([#7282](https://github.com/vector-im/element-android/issues/7282))
|
|
||||||
- Add `formattedText` or similar optional parameters in several methods:
|
|
||||||
* RelationService:
|
|
||||||
* editTextMessage
|
|
||||||
* editReply
|
|
||||||
* replyToMessage
|
|
||||||
* SendService:
|
|
||||||
* sendQuotedTextMessage
|
|
||||||
This allows us to send any HTML formatted text message without needing to rely on automatic Markdown > HTML translation. All these new parameters have a `null` value by default, so previous calls to these API methods remain compatible. ([#7288](https://github.com/vector-im/element-android/issues/7288))
|
|
||||||
- Add support for `m.login.token` auth during QR code based sign in ([#7358](https://github.com/vector-im/element-android/issues/7358))
|
|
||||||
- Allow getting the formatted or plain text body of a message for the fun `TimelineEvent.getTextEditableContent()`. ([#7359](https://github.com/vector-im/element-android/issues/7359))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Refactor TimelineFragment, split it into MessageComposerFragment and VoiceRecorderFragment. ([#7285](https://github.com/vector-im/element-android/issues/7285))
|
|
||||||
- Dependency to arrow has been removed. Please use `org.matrix.android.sdk.api.util.Optional` instead. ([#7335](https://github.com/vector-im/element-android/issues/7335))
|
|
||||||
- Update WYSIWYG editor designs. ([#7354](https://github.com/vector-im/element-android/issues/7354))
|
|
||||||
- Update WYSIWYG library to v0.2.1. ([#7384](https://github.com/vector-im/element-android/issues/7384))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.2 (2022-10-05)
|
|
||||||
======================================
|
|
||||||
|
|
||||||
Features ✨
|
|
||||||
----------
|
|
||||||
- New App Layout is now enabled by default! Go to the Settings > Labs to toggle this ([#7166](https://github.com/vector-im/element-android/issues/7166))
|
|
||||||
- Render inline images in the timeline ([#351](https://github.com/vector-im/element-android/issues/351))
|
|
||||||
- Add privacy setting to disable personalized learning by the keyboard ([#6633](https://github.com/vector-im/element-android/issues/6633))
|
|
||||||
|
|
||||||
Bugfixes 🐛
|
|
||||||
----------
|
|
||||||
- Disable emoji keyboard not applies in reply ([#5029](https://github.com/vector-im/element-android/issues/5029))
|
|
||||||
- Fix animated images not autoplaying sometimes if only a thumbnail was fetched from the server ([#6215](https://github.com/vector-im/element-android/issues/6215))
|
|
||||||
- Add Warning shield when a user previously verified rotated their cross signing keys ([#6702](https://github.com/vector-im/element-android/issues/6702))
|
|
||||||
- Can't verify user when option to send keys to verified devices only is selected ([#6723](https://github.com/vector-im/element-android/issues/6723))
|
|
||||||
- Add option to only send to verified devices per room (web parity) ([#6725](https://github.com/vector-im/element-android/issues/6725))
|
|
||||||
- Delete pin code key and the key used for biometrics authentication on logout ([#6906](https://github.com/vector-im/element-android/issues/6906))
|
|
||||||
- Fix crash on previewing images to upload on Android Pie. ([#7184](https://github.com/vector-im/element-android/issues/7184))
|
|
||||||
- Fix app restarts in loop on Android 13 on the first run of the app. ([#7224](https://github.com/vector-im/element-android/issues/7224))
|
|
||||||
|
|
||||||
In development 🚧
|
|
||||||
----------------
|
|
||||||
- [Device Management] Learn more bottom sheets ([#7100](https://github.com/vector-im/element-android/issues/7100))
|
|
||||||
- [Device management] Verify current session ([#7114](https://github.com/vector-im/element-android/issues/7114))
|
|
||||||
- [Device management] Verify another session ([#7143](https://github.com/vector-im/element-android/issues/7143))
|
|
||||||
- [Device management] Rename a session ([#7158](https://github.com/vector-im/element-android/issues/7158))
|
|
||||||
- [Device Manager] Unverified and inactive sessions list ([#7170](https://github.com/vector-im/element-android/issues/7170))
|
|
||||||
- [Device management] Sign out a session ([#7190](https://github.com/vector-im/element-android/issues/7190))
|
|
||||||
- [Device Manager] Parse user agents ([#7247](https://github.com/vector-im/element-android/issues/7247))
|
|
||||||
- [Voice Broadcast] Add a feature flag with the composer action ([#7258](https://github.com/vector-im/element-android/issues/7258))
|
|
||||||
|
|
||||||
Improved Documentation 📚
|
|
||||||
------------------------
|
|
||||||
- Draft onboarding documentation of the project at `./docs/_developer_onboarding.md` ([#7126](https://github.com/vector-im/element-android/issues/7126))
|
|
||||||
|
|
||||||
SDK API changes ⚠️
|
|
||||||
------------------
|
|
||||||
- Allow the sync timeout to be configured (mainly useful for testing) ([#7198](https://github.com/vector-im/element-android/issues/7198))
|
|
||||||
- Ports SDK instrumentation tests to use suspending functions instead of countdown latches ([#7207](https://github.com/vector-im/element-android/issues/7207))
|
|
||||||
- [Device Manager] Extend user agent to include device information ([#7209](https://github.com/vector-im/element-android/issues/7209))
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
- Add support for `/tableflip` command ([#12](https://github.com/vector-im/element-android/issues/12))
|
|
||||||
- Decreases the size of rounded corners and increases the maximum width of message bubbles to help avoid unnecessary unused space on screen ([#5712](https://github.com/vector-im/element-android/issues/5712))
|
|
||||||
- Adds screenshot testing tooling ([#5798](https://github.com/vector-im/element-android/issues/5798))
|
|
||||||
- [AppLayout]: added tracking of new analytics events ([#6508](https://github.com/vector-im/element-android/issues/6508))
|
|
||||||
- Target API 12 and compile with Android SDK 32. ([#6929](https://github.com/vector-im/element-android/issues/6929))
|
|
||||||
- Add basic integration of Sentry to capture errors and crashes if user has given consent. ([#7076](https://github.com/vector-im/element-android/issues/7076))
|
|
||||||
- Add support to `/devtools` command. ([#7126](https://github.com/vector-im/element-android/issues/7126))
|
|
||||||
- Fix lint warning, and cleanup the code ([#7159](https://github.com/vector-im/element-android/issues/7159))
|
|
||||||
- Mutualize the pending auth handling ([#7193](https://github.com/vector-im/element-android/issues/7193))
|
|
||||||
- CI: Prevent modification of translations by developer. ([#7211](https://github.com/vector-im/element-android/issues/7211))
|
|
||||||
- Fix typo in strings.xml and make sure this is American English. ([#7287](https://github.com/vector-im/element-android/issues/7287))
|
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.5.1 (2022-09-28)
|
Changes in Element v1.5.1 (2022-09-28)
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
* [Code quality](#code-quality)
|
* [Code quality](#code-quality)
|
||||||
* [Internal tool](#internal-tool)
|
* [Internal tool](#internal-tool)
|
||||||
* [ktlint](#ktlint)
|
* [ktlint](#ktlint)
|
||||||
* [knit](#knit)
|
|
||||||
* [lint](#lint)
|
* [lint](#lint)
|
||||||
* [Unit tests](#unit-tests)
|
* [Unit tests](#unit-tests)
|
||||||
* [Tests](#tests)
|
* [Tests](#tests)
|
||||||
|
@ -127,23 +126,6 @@ Note that you can run
|
||||||
|
|
||||||
For ktlint to fix some detected errors for you (you still have to check and commit the fix of course)
|
For ktlint to fix some detected errors for you (you still have to check and commit the fix of course)
|
||||||
|
|
||||||
#### knit
|
|
||||||
|
|
||||||
[knit](https://github.com/Kotlin/kotlinx-knit) is a tool which checks markdown files on the project. Also it generates/updates the table of content (toc) of the markdown files.
|
|
||||||
|
|
||||||
So everytime the toc should be updated, just run
|
|
||||||
<pre>
|
|
||||||
./gradlew knit
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
and commit the changes.
|
|
||||||
|
|
||||||
The CI will check that markdown files are up to date by running
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
./gradlew knitCheck
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
#### lint
|
#### lint
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[![Latest build](https://github.com/vector-im/element-android/actions/workflows/build.yml/badge.svg?query=branch%3Adevelop)](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop)
|
[![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
|
||||||
[![Weblate](https://translate.element.io/widgets/element-android/-/svg-badge.svg)](https://translate.element.io/engage/element-android/?utm_source=widget)
|
[![Weblate](https://translate.element.io/widgets/element-android/-/svg-badge.svg)](https://translate.element.io/engage/element-android/?utm_source=widget)
|
||||||
[![Element Android Matrix room #element-android:matrix.org](https://img.shields.io/matrix/element-android:matrix.org.svg?label=%23element-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-android:matrix.org)
|
[![Element Android Matrix room #element-android:matrix.org](https://img.shields.io/matrix/element-android:matrix.org.svg?label=%23element-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-android:matrix.org)
|
||||||
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||||
|
@ -14,7 +14,7 @@ It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-androi
|
||||||
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||||
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
||||||
|
|
||||||
Build of develop branch: [![GitHub Action](https://github.com/vector-im/element-android/actions/workflows/build.yml/badge.svg?query=branch%3Adevelop)](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) Nightly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
Nightly build: [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nightly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
||||||
|
|
||||||
|
|
||||||
# New Android SDK
|
# New Android SDK
|
||||||
|
@ -40,7 +40,7 @@ If you would like to receive releases more quickly (bearing in mind that they ma
|
||||||
|
|
||||||
1. [Sign up to receive beta releases](https://play.google.com/apps/testing/im.vector.app) via the Google Play Store.
|
1. [Sign up to receive beta releases](https://play.google.com/apps/testing/im.vector.app) via the Google Play Store.
|
||||||
2. Install a [release APK](https://github.com/vector-im/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
|
2. Install a [release APK](https://github.com/vector-im/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
|
||||||
3. If you're really brave, install the [very latest dev build](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) - pick a build, then click on `Summary` to download the APKs from there: `vector-Fdroid-debug` and `vector-Gplay-debug` contains the APK for the desired store. Each file contains 5 APKs. 4 APKs for every supported specific architecture of device. In doubt you can install the `universal` APK.
|
3. If you're really brave, install the [very latest dev build](https://buildkite.com/matrix-dot-org/element-android/builds/latest?branch=develop&state=passed) - click on *Assemble (GPlay or FDroid) Debug version* then on *Artifacts*.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
59
build.gradle
59
build.gradle
|
@ -24,16 +24,16 @@ 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.firebase:firebase-appdistribution-gradle:3.1.1'
|
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
|
||||||
classpath 'com.google.gms:google-services:4.3.14'
|
classpath 'com.google.gms:google-services:4.3.14'
|
||||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.5.0.2730'
|
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.2.3"
|
classpath "com.likethesalad.android:stem-plugin:2.2.2"
|
||||||
classpath 'org.owasp:dependency-check-gradle:7.4.1'
|
classpath 'org.owasp:dependency-check-gradle:7.2.1'
|
||||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.20"
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.10"
|
||||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
||||||
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
|
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
|
||||||
classpath libs.squareup.paparazziPlugin
|
classpath 'app.cash.paparazzi:paparazzi-gradle-plugin:1.0.0'
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
}
|
}
|
||||||
|
@ -43,12 +43,10 @@ plugins {
|
||||||
// ktlint Plugin
|
// ktlint Plugin
|
||||||
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
|
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
|
||||||
// Detekt
|
// Detekt
|
||||||
id "io.gitlab.arturbosch.detekt" version "1.22.0"
|
id "io.gitlab.arturbosch.detekt" version "1.21.0"
|
||||||
// Ksp
|
|
||||||
id "com.google.devtools.ksp" version "1.7.22-1.0.8"
|
|
||||||
|
|
||||||
// Dependency Analysis
|
// Dependency Analysis
|
||||||
id 'com.autonomousapps.dependency-analysis' version "1.17.0"
|
id 'com.autonomousapps.dependency-analysis' version "1.13.1"
|
||||||
// Gradle doctor
|
// Gradle doctor
|
||||||
id "com.osacky.doctor" version "0.8.1"
|
id "com.osacky.doctor" version "0.8.1"
|
||||||
}
|
}
|
||||||
|
@ -96,9 +94,9 @@ allprojects {
|
||||||
}
|
}
|
||||||
// Jitsi repo
|
// Jitsi repo
|
||||||
maven {
|
maven {
|
||||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-6.2.2"
|
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-5.0.2"
|
||||||
// Note: to test Jitsi release you can use a local file like this:
|
// Note: to test Jitsi release you can use a local file like this:
|
||||||
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-6.2.2"
|
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-3.10.0"
|
||||||
content {
|
content {
|
||||||
groups.jitsi.regex.each { includeGroupByRegex it }
|
groups.jitsi.regex.each { includeGroupByRegex it }
|
||||||
groups.jitsi.group.each { includeGroup it }
|
groups.jitsi.group.each { includeGroup it }
|
||||||
|
@ -148,9 +146,6 @@ allprojects {
|
||||||
// To have XML report for Danger
|
// To have XML report for Danger
|
||||||
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
|
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
|
||||||
}
|
}
|
||||||
filter {
|
|
||||||
exclude { element -> element.file.path.contains("$buildDir/generated/") }
|
|
||||||
}
|
|
||||||
disabledRules = [
|
disabledRules = [
|
||||||
// TODO Re-enable these 4 rules after reformatting project
|
// TODO Re-enable these 4 rules after reformatting project
|
||||||
"indent",
|
"indent",
|
||||||
|
@ -322,7 +317,7 @@ ext.initScreenshotTests = { project ->
|
||||||
if (hasScreenshots) {
|
if (hasScreenshots) {
|
||||||
project.apply plugin: 'app.cash.paparazzi'
|
project.apply plugin: 'app.cash.paparazzi'
|
||||||
}
|
}
|
||||||
project.dependencies { testCompileOnly libs.squareup.paparazzi }
|
project.dependencies { testCompileOnly "app.cash.paparazzi:paparazzi:1.0.0" }
|
||||||
project.android.testOptions.unitTests.all {
|
project.android.testOptions.unitTests.all {
|
||||||
def screenshotTestCapture = "**/*ScreenshotTest*"
|
def screenshotTestCapture = "**/*ScreenshotTest*"
|
||||||
if (hasScreenshots) {
|
if (hasScreenshots) {
|
||||||
|
@ -332,35 +327,3 @@ ext.initScreenshotTests = { project ->
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workaround to have KSP generated Kotlin code available in the IDE (for code completion)
|
|
||||||
// Ref: https://github.com/airbnb/epoxy/releases/tag/5.0.0beta02
|
|
||||||
subprojects { project ->
|
|
||||||
afterEvaluate {
|
|
||||||
if (project.hasProperty("android")) {
|
|
||||||
android {
|
|
||||||
if (it instanceof com.android.build.gradle.LibraryExtension) {
|
|
||||||
libraryVariants.all { variant ->
|
|
||||||
def outputFolder = new File("build/generated/ksp/${variant.name}/kotlin")
|
|
||||||
if (outputFolder.exists()) {
|
|
||||||
variant.addJavaSourceFoldersToModel(outputFolder)
|
|
||||||
android.sourceSets.getAt(variant.name).java {
|
|
||||||
srcDir(outputFolder)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (it instanceof com.android.build.gradle.AppExtension) {
|
|
||||||
applicationVariants.all { variant ->
|
|
||||||
def outputFolder = new File("build/generated/ksp/${variant.name}/kotlin")
|
|
||||||
if (outputFolder.exists()) {
|
|
||||||
variant.addJavaSourceFoldersToModel(outputFolder)
|
|
||||||
android.sourceSets.getAt(variant.name).java {
|
|
||||||
srcDir(outputFolder)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Add support for `/tableflip` command
|
|
@ -0,0 +1 @@
|
||||||
|
Render inline images in the timeline
|
|
@ -0,0 +1 @@
|
||||||
|
Disable emoji keyboard not applies in reply
|
|
@ -1 +0,0 @@
|
||||||
ReplyTo are not updated if the original message is edited or deleted.
|
|
|
@ -0,0 +1 @@
|
||||||
|
Decreases the size of rounded corners and increases the maximum width of message bubbles to help avoid unnecessary unused space on screen
|
|
@ -0,0 +1 @@
|
||||||
|
Adds screenshot testing tooling
|
|
@ -0,0 +1 @@
|
||||||
|
Fix animated images not autoplaying sometimes if only a thumbnail was fetched from the server
|
|
@ -0,0 +1 @@
|
||||||
|
[AppLayout]: added tracking of new analytics events
|
|
@ -0,0 +1 @@
|
||||||
|
Add privacy setting to disable personalized learning by the keyboard
|
|
@ -0,0 +1 @@
|
||||||
|
Add Warning shield when a user previously verified rotated their cross signing keys
|
|
@ -0,0 +1 @@
|
||||||
|
Can't verify user when option to send keys to verified devices only is selected
|
|
@ -0,0 +1 @@
|
||||||
|
Add option to only send to verified devices per room (web parity)
|
|
@ -0,0 +1 @@
|
||||||
|
Delete pin code key and the key used for biometrics authentication on logout
|
|
@ -0,0 +1 @@
|
||||||
|
Target API 12 and compile with Android SDK 32.
|
|
@ -0,0 +1 @@
|
||||||
|
Add basic integration of Sentry to capture errors and crashes if user has given consent.
|
|
@ -0,0 +1 @@
|
||||||
|
[Device Management] Learn more bottom sheets
|
|
@ -0,0 +1 @@
|
||||||
|
[Device management] Verify current session
|
|
@ -0,0 +1 @@
|
||||||
|
Draft onboarding documentation of the project at `./docs/_developer_onboarding.md`
|
|
@ -0,0 +1 @@
|
||||||
|
Add support to `/devtools` command.
|
|
@ -0,0 +1 @@
|
||||||
|
[Device management] Verify another session
|
|
@ -0,0 +1 @@
|
||||||
|
[Device management] Rename a session
|
|
@ -0,0 +1 @@
|
||||||
|
Fix lint warning, and cleanup the code
|
|
@ -0,0 +1 @@
|
||||||
|
New App Layout is now enabled by default! Go to the Settings > Labs to toggle this
|
|
@ -0,0 +1 @@
|
||||||
|
[Device Manager] Unverified and inactive sessions list
|
|
@ -0,0 +1 @@
|
||||||
|
Fix crash on previewing images to upload on Android Pie.
|
|
@ -0,0 +1 @@
|
||||||
|
[Device management] Sign out a session
|
|
@ -0,0 +1 @@
|
||||||
|
Mutualize the pending auth handling
|
|
@ -0,0 +1 @@
|
||||||
|
Allow the sync timeout to be configured (mainly useful for testing)
|
|
@ -0,0 +1 @@
|
||||||
|
Ports SDK instrumentation tests to use suspending functions instead of countdown latches
|
|
@ -0,0 +1 @@
|
||||||
|
[Device Manager] Extend user agent to include device information
|
|
@ -0,0 +1 @@
|
||||||
|
CI: Prevent modification of translations by developer.
|
|
@ -0,0 +1 @@
|
||||||
|
Fix app restarts in loop on Android 13 on the first run of the app.
|
|
@ -0,0 +1 @@
|
||||||
|
[Device Manager] Parse user agents
|
|
@ -0,0 +1 @@
|
||||||
|
[Voice Broadcast] Add a feature flag with the composer action
|
|
@ -0,0 +1 @@
|
||||||
|
Fix typo in strings.xml and make sure this is American English.
|
|
@ -1 +0,0 @@
|
||||||
[Session manager] Missing info when a session does not support encryption
|
|
|
@ -1 +0,0 @@
|
||||||
"[Rich text editor] Add list formatting buttons to the rich text editor"
|
|
|
@ -1,46 +1,49 @@
|
||||||
ext.versions = [
|
ext.versions = [
|
||||||
|
|
||||||
'minSdk' : 21,
|
'minSdk' : 21,
|
||||||
'compileSdk' : 33,
|
'compileSdk' : 32,
|
||||||
'targetSdk' : 33,
|
'targetSdk' : 32,
|
||||||
'sourceCompat' : JavaVersion.VERSION_11,
|
'sourceCompat' : JavaVersion.VERSION_11,
|
||||||
'targetCompat' : JavaVersion.VERSION_11,
|
'targetCompat' : JavaVersion.VERSION_11,
|
||||||
]
|
]
|
||||||
|
|
||||||
def gradle = "7.3.1"
|
def gradle = "7.2.2"
|
||||||
// Ref: https://kotlinlang.org/releases.html
|
// Ref: https://kotlinlang.org/releases.html
|
||||||
def kotlin = "1.7.22"
|
def kotlin = "1.7.20"
|
||||||
def kotlinCoroutines = "1.6.4"
|
def kotlinCoroutines = "1.6.4"
|
||||||
def dagger = "2.44.2"
|
def dagger = "2.44"
|
||||||
def firebaseBom = "31.1.1"
|
def appDistribution = "16.0.0-beta04"
|
||||||
def appDistribution = "16.0.0-beta05"
|
|
||||||
def retrofit = "2.9.0"
|
def retrofit = "2.9.0"
|
||||||
|
def arrow = "0.8.2"
|
||||||
def markwon = "4.6.2"
|
def markwon = "4.6.2"
|
||||||
def moshi = "1.14.0"
|
def moshi = "1.14.0"
|
||||||
def lifecycle = "2.5.1"
|
def lifecycle = "2.5.1"
|
||||||
def flowBinding = "1.2.0"
|
def flowBinding = "1.2.0"
|
||||||
def flipper = "0.176.0"
|
def flipper = "0.164.0"
|
||||||
def epoxy = "5.0.0"
|
def epoxy = "4.6.2"
|
||||||
def mavericks = "3.0.1"
|
def mavericks = "2.7.0"
|
||||||
def glide = "4.14.2"
|
def glide = "4.14.1"
|
||||||
def bigImageViewer = "1.8.1"
|
def bigImageViewer = "1.8.1"
|
||||||
def jjwt = "0.11.5"
|
def jjwt = "0.11.5"
|
||||||
// Temporary version to unblock #6929. Once 0.16.0 is released we should use it, and revert
|
// Temporary version to unblock #6929. Once 0.16.0 is released we should use it, and revert
|
||||||
// the whole commit which set version 0.16.0-SNAPSHOT
|
// the whole commit which set version 0.16.0-SNAPSHOT
|
||||||
def vanniktechEmoji = "0.16.0-SNAPSHOT"
|
def vanniktechEmoji = "0.16.0-SNAPSHOT"
|
||||||
def sentry = "6.9.2"
|
|
||||||
def fragment = "1.5.5"
|
def sentry = "6.4.1"
|
||||||
|
|
||||||
|
def fragment = "1.5.3"
|
||||||
|
|
||||||
// Testing
|
// Testing
|
||||||
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 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.2"
|
def androidxOrchestrator = "1.4.1"
|
||||||
def paparazzi = "1.1.0"
|
|
||||||
|
|
||||||
ext.libs = [
|
ext.libs = [
|
||||||
gradle : [
|
gradle : [
|
||||||
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
|
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
|
||||||
'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin",
|
'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin",
|
||||||
'hiltPlugin' : "com.google.dagger:hilt-android-gradle-plugin:$dagger"
|
'hiltPlugin' : "com.google.dagger:hilt-android-gradle-plugin:$dagger"
|
||||||
|
|
||||||
],
|
],
|
||||||
jetbrains : [
|
jetbrains : [
|
||||||
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
||||||
|
@ -48,12 +51,12 @@ ext.libs = [
|
||||||
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||||
],
|
],
|
||||||
androidx : [
|
androidx : [
|
||||||
'activity' : "androidx.activity:activity-ktx:1.6.1",
|
'activity' : "androidx.activity:activity:1.5.1",
|
||||||
'appCompat' : "androidx.appcompat:appcompat:1.5.1",
|
'appCompat' : "androidx.appcompat:appcompat:1.5.1",
|
||||||
'biometric' : "androidx.biometric:biometric:1.1.0",
|
'biometric' : "androidx.biometric:biometric:1.1.0",
|
||||||
'core' : "androidx.core:core-ktx:1.9.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.5",
|
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
|
||||||
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
|
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
|
||||||
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
|
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
|
||||||
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
||||||
|
@ -80,13 +83,11 @@ ext.libs = [
|
||||||
'transition' : "androidx.transition:transition:1.2.0",
|
'transition' : "androidx.transition:transition:1.2.0",
|
||||||
],
|
],
|
||||||
google : [
|
google : [
|
||||||
'material' : "com.google.android.material:material:1.7.0",
|
'material' : "com.google.android.material:material:1.6.1",
|
||||||
'firebaseBom' : "com.google.firebase:firebase-bom:$firebaseBom",
|
|
||||||
'messaging' : "com.google.firebase:firebase-messaging",
|
|
||||||
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
|
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
|
||||||
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
|
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
|
||||||
// Phone number https://github.com/google/libphonenumber
|
// Phone number https://github.com/google/libphonenumber
|
||||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.13.3"
|
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.56"
|
||||||
],
|
],
|
||||||
dagger : [
|
dagger : [
|
||||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||||
|
@ -101,21 +102,22 @@ ext.libs = [
|
||||||
],
|
],
|
||||||
element : [
|
element : [
|
||||||
'opusencoder' : "io.element.android:opusencoder:1.1.0",
|
'opusencoder' : "io.element.android:opusencoder:1.1.0",
|
||||||
'wysiwyg' : "io.element.android:wysiwyg:0.13.0"
|
|
||||||
],
|
],
|
||||||
squareup : [
|
squareup : [
|
||||||
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
||||||
'moshiKt' : "com.squareup.moshi:moshi-kotlin:$moshi",
|
'moshiKt' : "com.squareup.moshi:moshi-kotlin:$moshi",
|
||||||
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
|
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
|
||||||
'moshiAdapters' : "com.squareup.moshi:moshi-adapters:$moshi",
|
'moshiAdapters' : "com.squareup.moshi:moshi-adapters:$moshi",
|
||||||
'paparazzi' : "app.cash.paparazzi:paparazzi:$paparazzi",
|
|
||||||
'paparazziPlugin' : "app.cash.paparazzi:paparazzi-gradle-plugin:$paparazzi",
|
|
||||||
'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"
|
||||||
],
|
],
|
||||||
rx : [
|
rx : [
|
||||||
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0"
|
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0"
|
||||||
],
|
],
|
||||||
|
arrow : [
|
||||||
|
'core' : "io.arrow-kt:arrow-core:$arrow",
|
||||||
|
'instances' : "io.arrow-kt:arrow-instances-core:$arrow"
|
||||||
|
],
|
||||||
markwon : [
|
markwon : [
|
||||||
'core' : "io.noties.markwon:core:$markwon",
|
'core' : "io.noties.markwon:core:$markwon",
|
||||||
'extLatex' : "io.noties.markwon:ext-latex:$markwon",
|
'extLatex' : "io.noties.markwon:ext-latex:$markwon",
|
||||||
|
@ -132,7 +134,7 @@ ext.libs = [
|
||||||
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
|
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
|
||||||
],
|
],
|
||||||
maplibre : [
|
maplibre : [
|
||||||
'androidSdk' : "org.maplibre.gl:android-sdk:9.6.0",
|
'androidSdk' : "org.maplibre.gl:android-sdk:9.5.2",
|
||||||
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
|
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
|
||||||
],
|
],
|
||||||
mockk : [
|
mockk : [
|
||||||
|
@ -163,13 +165,13 @@ ext.libs = [
|
||||||
'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji"
|
'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji"
|
||||||
],
|
],
|
||||||
apache : [
|
apache : [
|
||||||
'commonsImaging' : "org.apache.commons:commons-imaging:1.0-alpha3"
|
'commonsImaging' : "org.apache.sanselan:sanselan:0.97-incubator"
|
||||||
],
|
],
|
||||||
sentry: [
|
sentry: [
|
||||||
'sentryAndroid' : "io.sentry:sentry-android:$sentry"
|
'sentryAndroid' : "io.sentry:sentry-android:$sentry"
|
||||||
],
|
],
|
||||||
tests : [
|
tests : [
|
||||||
'kluent' : "org.amshove.kluent:kluent-android:1.72",
|
'kluent' : "org.amshove.kluent:kluent-android:1.68",
|
||||||
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
|
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
|
||||||
'junit' : "junit:junit:4.13.2",
|
'junit' : "junit:junit:4.13.2",
|
||||||
]
|
]
|
||||||
|
|
|
@ -84,7 +84,6 @@ ext.groups = [
|
||||||
'com.google',
|
'com.google',
|
||||||
'com.google.android',
|
'com.google.android',
|
||||||
'com.google.api.grpc',
|
'com.google.api.grpc',
|
||||||
'com.google.auto',
|
|
||||||
'com.google.auto.service',
|
'com.google.auto.service',
|
||||||
'com.google.auto.value',
|
'com.google.auto.value',
|
||||||
'com.google.code.findbugs',
|
'com.google.code.findbugs',
|
||||||
|
@ -102,7 +101,6 @@ ext.groups = [
|
||||||
'com.googlecode.json-simple',
|
'com.googlecode.json-simple',
|
||||||
'com.googlecode.libphonenumber',
|
'com.googlecode.libphonenumber',
|
||||||
'com.ibm.icu',
|
'com.ibm.icu',
|
||||||
'com.intellij',
|
|
||||||
'com.jakewharton.android.repackaged',
|
'com.jakewharton.android.repackaged',
|
||||||
'com.jakewharton.timber',
|
'com.jakewharton.timber',
|
||||||
'com.kgurgul.flipper',
|
'com.kgurgul.flipper',
|
||||||
|
@ -134,6 +132,7 @@ ext.groups = [
|
||||||
'commons-io',
|
'commons-io',
|
||||||
'commons-logging',
|
'commons-logging',
|
||||||
'info.picocli',
|
'info.picocli',
|
||||||
|
'io.arrow-kt',
|
||||||
'io.element.android',
|
'io.element.android',
|
||||||
'io.github.davidburstrom.contester',
|
'io.github.davidburstrom.contester',
|
||||||
'io.github.detekt.sarif4k',
|
'io.github.detekt.sarif4k',
|
||||||
|
@ -147,7 +146,6 @@ ext.groups = [
|
||||||
'io.netty',
|
'io.netty',
|
||||||
'io.noties.markwon',
|
'io.noties.markwon',
|
||||||
'io.opencensus',
|
'io.opencensus',
|
||||||
'io.perfmark',
|
|
||||||
'io.reactivex.rxjava2',
|
'io.reactivex.rxjava2',
|
||||||
'io.realm',
|
'io.realm',
|
||||||
'io.sentry',
|
'io.sentry',
|
||||||
|
@ -176,8 +174,8 @@ ext.groups = [
|
||||||
'org.apache.ant',
|
'org.apache.ant',
|
||||||
'org.apache.commons',
|
'org.apache.commons',
|
||||||
'org.apache.httpcomponents',
|
'org.apache.httpcomponents',
|
||||||
|
'org.apache.sanselan',
|
||||||
'org.bouncycastle',
|
'org.bouncycastle',
|
||||||
'org.ccil.cowan.tagsoup',
|
|
||||||
'org.checkerframework',
|
'org.checkerframework',
|
||||||
'org.codehaus',
|
'org.codehaus',
|
||||||
'org.codehaus.groovy',
|
'org.codehaus.groovy',
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
<!--- TOC -->
|
|
||||||
|
|
||||||
* [Testing database migration](#testing-database-migration)
|
|
||||||
* [Creating a reference database](#creating-a-reference-database)
|
|
||||||
* [Testing](#testing)
|
|
||||||
|
|
||||||
<!--- END -->
|
|
||||||
|
|
||||||
## Testing database migration
|
|
||||||
|
|
||||||
### Creating a reference database
|
|
||||||
|
|
||||||
Databases are encrypted, the key to decrypt is needed to setup the test.
|
|
||||||
A special build property must be enabled to extract it.
|
|
||||||
|
|
||||||
Set `vector.debugPrivateData=true` in `~/.gradle/gradle.properties` (to avoid committing by mistake)
|
|
||||||
|
|
||||||
Launch the app in your emulator, login and use the app to fill up the database.
|
|
||||||
|
|
||||||
Save the key for the tested database
|
|
||||||
```
|
|
||||||
RealmKeysUtils W Database key for alias `session_db_fe9f212a611ccf6dea1141777065ed0a`: 935a6dfa0b0fc5cce1414194ed190....
|
|
||||||
RealmKeysUtils W Database key for alias `crypto_module_fe9f212a611ccf6dea1141777065ed0a`: 7b9a21a8a311e85d75b069a343.....
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Use the [Device File Explorer](https://developer.android.com/studio/debug/device-file-explorer) to extrat the database file from the emulator.
|
|
||||||
|
|
||||||
Go to `data/data/im.vector.app.debug/files/<hash>/`
|
|
||||||
Pick the database you want to test (name can be found in SessionRealmConfigurationFactory):
|
|
||||||
- crypto_store.realm for crypto
|
|
||||||
- disk_store.realm for session
|
|
||||||
- etc...
|
|
||||||
|
|
||||||
Download the file on your disk
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
|
|
||||||
Copy the file in `src/AndroidTest/assets`
|
|
||||||
|
|
||||||
see `CryptoSanityMigrationTest` or `RealmSessionStoreMigration43Test` for sample tests.
|
|
||||||
|
|
||||||
There are already some databases in the assets folder.
|
|
||||||
The existing test will properly detect schema changes, and fail with such errors if a migration is missing:
|
|
||||||
|
|
||||||
```
|
|
||||||
io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
|
|
||||||
- Property 'CryptoMetadataEntity.foo' has been added.
|
|
||||||
```
|
|
||||||
|
|
||||||
If you want to test properly more complex database migration (dynamic transforms) ensure that the database contains
|
|
||||||
the entity you want to migrate.
|
|
||||||
|
|
||||||
You can explore the database with [realm studio](https://www.mongodb.com/docs/realm/studio/) if needed.
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
## Installing from CI
|
|
||||||
|
|
||||||
<!--- TOC -->
|
|
||||||
|
|
||||||
* [Installing from Buildkite](#installing-from-buildkite)
|
|
||||||
* [Installing from GitHub](#installing-from-github)
|
|
||||||
* [Create a GitHub token](#create-a-github-token)
|
|
||||||
* [Provide artifact URL](#provide-artifact-url)
|
|
||||||
* [Next steps](#next-steps)
|
|
||||||
* [Future improvement](#future-improvement)
|
|
||||||
|
|
||||||
<!--- END -->
|
|
||||||
|
|
||||||
Installing APK build by the CI is possible
|
|
||||||
|
|
||||||
### Installing from Buildkite
|
|
||||||
|
|
||||||
The script `./tools/install/installFromBuildkite.sh` can be used, but Builkite will be removed soon. See next section.
|
|
||||||
|
|
||||||
### Installing from GitHub
|
|
||||||
|
|
||||||
To install an APK built by a GitHub action, run the script `./tools/install/installFromGitHub.sh`. You will need to pass a GitHub token to do so.
|
|
||||||
|
|
||||||
#### Create a GitHub token
|
|
||||||
|
|
||||||
You can create a GitHub token going to your Github account, at this page: [https://github.com/settings/tokens](https://github.com/settings/tokens).
|
|
||||||
|
|
||||||
You need to create a token (classic) with the scope `repo/public_repo`. So just check the corresponding checkbox.
|
|
||||||
Validity can be long since the scope of this token is limited. You will still be able to delete the token and generate a new one.
|
|
||||||
Click on Generate token and save the token locally.
|
|
||||||
|
|
||||||
### Provide artifact URL
|
|
||||||
|
|
||||||
The script will ask for an artifact URL. You can get this artifact URL by following these steps:
|
|
||||||
|
|
||||||
- open the pull request
|
|
||||||
- in the check at the bottom, click on `APK Build / Build debug APKs`
|
|
||||||
- click on `Summary`
|
|
||||||
- scroll to the bottom of the page
|
|
||||||
- copy the link `vector-Fdroid-debug` if you want the F-Droid variant or `vector-Gplay-debug` if you want the Gplay variant.
|
|
||||||
|
|
||||||
The copied link can be provided to the script.
|
|
||||||
|
|
||||||
### Next steps
|
|
||||||
|
|
||||||
The script will download the artifact, unzip it and install the correct version (regarding arch) on your device.
|
|
||||||
|
|
||||||
Files will be added to the folder `./tmp/DebugApks`. Feel free to cleanup this folder from time to time, the script will not delete files.
|
|
||||||
|
|
||||||
### Future improvement
|
|
||||||
|
|
||||||
The script could ask the user for a Pull Request number and Gplay/Fdroid choice like it was done with Buildkite script. Using GitHub API may be possible to do that.
|
|
|
@ -93,4 +93,4 @@ url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.10.
|
||||||
|
|
||||||
- Build the project and perform the sanity tests again.
|
- Build the project and perform the sanity tests again.
|
||||||
|
|
||||||
- Create a PR for project Element Android and add a changelog file `<PR_NUMBER>.misc` to notify about the library upgrade.
|
- Update the file `/CHANGES.md` to notify about the library upgrade, and create a regular PR for project Element Android.
|
||||||
|
|
|
@ -314,7 +314,7 @@ class ViewModelTest {
|
||||||
private var initialState = ViewState.Empty
|
private var initialState = ViewState.Empty
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule
|
||||||
val mavericksTestRule = MavericksTestRule(testDispatcher = UnconfinedTestDispatcher())
|
val mvrxTestRule = MvRxTestRule(testDispatcher = UnconfinedTestDispatcher())
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `when handling MyAction, then emits Loading and Content states`() {
|
fun `when handling MyAction, then emits Loading and Content states`() {
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Qrup mesajlaşma - şifrəli mesajlaşma, qrup söhbəti və video zənglər
|
|
|
@ -1 +0,0 @@
|
||||||
Element - Təhlükəsiz Mesajlaşma
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Odložené přímé zprávy jsou ve výchozím nastavení povoleny.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Nové rozvržení aplikace je povoleno ve výchozím nastavení!
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Nové funkce v Experimentálních funkcích: Rozšířený editor zpráv, nová správa zařízení, hlasové vysílání. Stále v aktivním vývoji!
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: nové uživatelské rozhraní pro výběr přílohy.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: nové uživatelské rozhraní pro výběr přílohy.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: opravy různých chyb a vylepšení.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Nová implementace celoobrazovkového režimu pro editor formátovaného textu a opravy chyb.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Nová implementace celoobrazovkového režimu pro editor formátovaného textu a opravy chyb.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Vlákna jsou nyní ve výchozím nastavení povolena.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Vlákna jsou nyní povolena ve výchozím nastavení.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Hlavní změny v této verzi: Vlákna jsou nyní povolena ve výchozím nastavení.
|
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigste Änderung in dieser Version: Verzögerte Direktnachrichten standardmäßig aktiviert!
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigste Änderung in dieser Version: Neues App-Layout standardmäßig aktiviert!
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigste Änderung in dieser Version: Neue Funktionen in den Labor-Einstellungen: Textverarbeitungs-Editor, neue Geräteverwaltung, Sprachübertragung. Noch in aktiver Entwicklung!
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigste Änderung in dieser Version: Neues Anhangauswahl-UI.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigste Änderung in dieser Version: Neue Anhangauswahl-Oberfläche.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Fehlerbehebungen und Verbesserungen.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Der Vollbildmodus des Textverarbeitungseditors wurde neu umgesetzt und es wurden diverse Fehler behoben.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Der Vollbildmodus des Textverarbeitungseditors wurde neu umgesetzt und es wurden diverse Fehler behoben.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Threads sind nun automatisch aktiviert.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Threads sind nun automatisch aktiviert.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Die wichtigsten Änderungen in dieser Version: Threads sind nun standardmäßig aktiviert.
|
|
||||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: New app layout enabled by default!
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: New features under the labs settings: Rich text composer, new device management, voice broadcast. Still under active development!
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: new UI for selecting an attachment.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: new UI for selecting an attachment.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: bug fixes and improvements.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: New implementation of the full screen mode for the Rich Text Editor and bugfixes.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: New implementation of the full screen mode for the Rich Text Editor and bugfixes.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: Thread are now enabled by default.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: Thread are now enabled by default.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: Thread are now enabled by default.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: Thread are now enabled by default.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Main changes in this version: Thread are now enabled by default.
|
|
||||||
Full changelog: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Põhilised muutused selles versioonis: ajastatud otsesõnumite saatmine on nüüd vaikimisi kasutusel.
|
|
||||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Põhilised muutused selles versioonis: rakenduse uus kujundus on nüüd vaikimisi kasutusel.
|
|
||||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Põhilised muutused selles versioonis: Uued võimalused katsete all: vormindatud teksti põhine toimeti, uus seadmehaldus, ringhäälingukõned (kõik on hetkel aktiivsel arendamisel).
|
|
||||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
|
@ -1,2 +0,0 @@
|
||||||
Põhilised muutused selles versioonis: uus liides manuste lisamiseks.
|
|
||||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue