Merge branch 'develop' into feature/ons/poll_refactoring

* develop: (251 commits)
  Space explore rooms screen alignment with design in figma (#5834)
  leaving space aligned with ios (#5942)
  Fix usage of System.currentTimeMillis(). This a bit mocky but anyway it's better to use SystemClock.elapsedRealtime() for this case.
  Update TimelinePreviousLastForwardTest.kt
  Changelog.d
  Rename 'getDomain' to 'getServerName'.
  Well-known lookups should not include the port of a server.
  Ah it was used in Gplay variant. Anyway I think we can still remove this now.
  Fix parsing of location data in non encrypted room
  Additionally increment for TimelinePreviousLastForwardTest
  Notify other devices of acceptance of verification request
  Instead of using a magic number, explicitly test for the events we expect.
  Adding comments on some strings and removing non necessary plural
  Remove ShortcutBadger lib and usage (it was dead code)
  Version++
  Fastlane file
  Towncrier
  Add `.login` to get the username of the PR merger.
  Rename folder for the PlayStore
  Remove empty translations
  ...

# Conflicts:
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/SessionModule.kt
This commit is contained in:
Onuray Sahin 2022-05-19 13:39:43 +03:00
commit 1605ae1607
1132 changed files with 9742 additions and 7708 deletions

View File

@ -67,4 +67,4 @@ jobs:
path: | path: |
vector/build/outputs/apk/*/release/*.apk vector/build/outputs/apk/*/release/*.apk
# TODO: add exodus checks # TODO add exodus checks

22
.github/workflows/docs.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: Documentation
on:
push:
branches: [ develop ]
jobs:
docs:
name: Generate and publish Android Matrix SDK documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Build docs
run: ./gradlew dokkaHtml
- name: Deploy docs
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./matrix-sdk-android/build/dokka/html

View File

@ -285,7 +285,7 @@ jobs:
codecov-units: codecov-units:
name: Unit tests with code coverage name: Unit tests with code coverage
needs: should-i-run needs: should-i-run
runs-on: macos-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/setup-java@v3 - uses: actions/setup-java@v3
@ -318,12 +318,12 @@ jobs:
- integration-tests - integration-tests
- ui-tests - ui-tests
- codecov-units - codecov-units
if: always() && (needs.should-i-run.status == 'success' ) && ((needs.codecov-units.status != 'success' ) || (needs.ui-tests.status != 'success') || (needs.integration-tests.status != '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
with: with:
github_token: ${{ secrets.GITHUB_TOKEN }} github_token: ${{ secrets.GITHUB_TOKEN }}
hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }} hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
text_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.merged_by }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}" text_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.pull_request.merged_by.login }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
html_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.merged_by }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{icon conclusion}} {{name}} <font color='{{color conclusion}}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}" html_template: "Post-merge validation of ${{ github.head_ref }} into ${{ github.base_ref }} by ${{ github.event.pull_request.merged_by.login }} failed: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{icon conclusion}} {{name}} <font color='{{color conclusion}}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}"

View File

@ -14,6 +14,16 @@ jobs:
- name: Run code quality check suite - name: Run code quality check suite
run: ./tools/check/check_code_quality.sh run: ./tools/check/check_code_quality.sh
# Knit for all the modules (https://github.com/Kotlin/kotlinx-knit)
knit:
name: Knit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run knit
run: |
./gradlew knit
# ktlint for all the modules # ktlint for all the modules
ktlint: ktlint:
name: Kotlin Linter name: Kotlin Linter
@ -147,3 +157,23 @@ jobs:
name: release-lint-report-${{ matrix.target }} name: release-lint-report-${{ matrix.target }}
path: | path: |
vector/build/reports/*.* vector/build/reports/*.*
detekt:
name: Detekt Analysis
runs-on: ubuntu-latest
# Allow all jobs on main and develop. Just one per PR.
concurrency:
group: ${{ github.ref == 'refs/heads/main' && format('detekt-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('detekt-develop-{0}', github.sha) || format('detekt-{0}', github.ref) }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v3
- name: Run detekt
run: |
./gradlew detekt
- name: Upload reports
if: always()
uses: actions/upload-artifact@v3
with:
name: detekt-report
path: |
*/build/reports/detekt/detekt.html

View File

@ -71,7 +71,7 @@ jobs:
needs: needs:
- sonarqube - sonarqube
- codecov-units - codecov-units
if: always() && (needs.sonarqube.result != "success" || needs.codecov-units.result != "success") if: always() && (needs.sonarqube.result != 'success' || needs.codecov-units.result != 'success')
steps: steps:
- uses: michaelkaye/matrix-hookshot-action@v1.0.0 - uses: michaelkaye/matrix-hookshot-action@v1.0.0
with: with:

View File

@ -1,3 +1,44 @@
Changes in Element v1.4.16 (2022-05-17)
=======================================
Features ✨
----------
- Use key backup before requesting keys + refactor & improvement of key request/forward ([#5494](https://github.com/vector-im/element-android/issues/5494))
- Screen sharing over WebRTC ([#5911](https://github.com/vector-im/element-android/issues/5911))
- Allow using the latest user Avatar and name for all messages in the timeline ([#5932](https://github.com/vector-im/element-android/issues/5932))
- Added themed launch icons for Android 13 ([#5936](https://github.com/vector-im/element-android/issues/5936))
- Add presence indicator busy and away. ([#6047](https://github.com/vector-im/element-android/issues/6047))
Bugfixes 🐛
----------
- Changed copy and list order in member profile screen. ([#5825](https://github.com/vector-im/element-android/issues/5825))
- Fix for audio only being received in one direction after an un-hold during a sip call. ([#5865](https://github.com/vector-im/element-android/issues/5865))
- Desynchronized 4S | Megolm backup causing Unusable backup ([#5906](https://github.com/vector-im/element-android/issues/5906))
- If animations are disable on the System, chat effects and confetti will be disabled too ([#5941](https://github.com/vector-im/element-android/issues/5941))
- Multiple threads improvement (mainly UI) ([#5959](https://github.com/vector-im/element-android/issues/5959))
Improved Documentation 📚
------------------------
- Note public_baseurl requirement in integration tests documentation. ([#5973](https://github.com/vector-im/element-android/issues/5973))
SDK API changes ⚠️
------------------
- - New API to enable/disable key forwarding CryptoService#enableKeyGossiping()
- New API to limit room key request only to own devices MXCryptoConfig#limitRoomKeyRequestsToMyDevices
- Event Trail API has changed, now using AuditTrail events
- New API to manually accept an incoming key request CryptoService#manuallyAcceptRoomKeyRequest() ([#5559](https://github.com/vector-im/element-android/issues/5559))
- Small change in the Matrix class: deprecated methods have been removed and the constructor is now public. Also the fun `workerFactory()` has been renamed to `getWorkerFactory()` ([#5887](https://github.com/vector-im/element-android/issues/5887))
- Including SSL/TLS error handing when doing WellKnown lookups without a custom HomeServerConnectionConfig ([#5965](https://github.com/vector-im/element-android/issues/5965))
Other changes
-------------
- Improve threads rendering in the main timeline ([#5151](https://github.com/vector-im/element-android/issues/5151))
- Reformatted project code ([#5953](https://github.com/vector-im/element-android/issues/5953))
- Update check for server-side threads support to match spec. ([#5997](https://github.com/vector-im/element-android/issues/5997))
- Setup detekt ([#6038](https://github.com/vector-im/element-android/issues/6038))
- Notify the user for each new message ([#46312](https://github.com/vector-im/element-android/issues/46312))
Changes in Element v1.4.14 (2022-05-05) Changes in Element v1.4.14 (2022-05-05)
======================================= =======================================

View File

@ -30,14 +30,17 @@ buildscript {
classpath "com.likethesalad.android:stem-plugin:2.0.0" classpath "com.likethesalad.android:stem-plugin:2.0.0"
classpath 'org.owasp:dependency-check-gradle:7.1.0.1' classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21" classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
} }
} }
// ktlint Plugin
plugins { plugins {
// ktlint Plugin
id "org.jlleitschuh.gradle.ktlint" version "10.3.0" id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
// Detekt
id "io.gitlab.arturbosch.detekt" version "1.20.0"
} }
// https://github.com/jeremylong/DependencyCheck // https://github.com/jeremylong/DependencyCheck
@ -52,6 +55,7 @@ dependencyCheck {
allprojects { allprojects {
apply plugin: "org.jlleitschuh.gradle.ktlint" apply plugin: "org.jlleitschuh.gradle.ktlint"
apply plugin: "io.gitlab.arturbosch.detekt"
repositories { repositories {
// Do not use `mavenCentral()`, it prevents Dependabot from working properly // Do not use `mavenCentral()`, it prevents Dependabot from working properly
@ -119,7 +123,7 @@ allprojects {
// display the corresponding rule // display the corresponding rule
verbose = true verbose = true
disabledRules = [ disabledRules = [
// TODO: Re-enable these 4 rules after reformatting project // TODO Re-enable these 4 rules after reformatting project
"indent", "indent",
"experimental:argument-list-wrapping", "experimental:argument-list-wrapping",
"max-line-length", "max-line-length",
@ -140,6 +144,15 @@ allprojects {
"experimental:kdoc-wrapping", "experimental:kdoc-wrapping",
] ]
} }
detekt {
// preconfigure defaults
buildUponDefaultConfig = true
// activate all available (even unstable) rules.
allRules = true
// point to your custom config defining rules to run, overwriting default behavior
config = files("$rootDir/tools/detekt/detekt.yml")
}
} }
task clean(type: Delete) { task clean(type: Delete) {

View File

@ -1 +0,0 @@
Notify the user for each new message

View File

@ -1 +0,0 @@
Improve threads rendering in the main timeline

1
changelog.d/5658.feature Normal file
View File

@ -0,0 +1 @@
Space explore screen changes: removed space card, added rooms filtering

1
changelog.d/5689.wip Normal file
View File

@ -0,0 +1 @@
[Live location sharing] Update message in timeline during the live

1
changelog.d/5724.sdk Normal file
View File

@ -0,0 +1 @@
- Notifies other devices when a verification request sent from an Android device is accepted.`

1
changelog.d/5728.misc Normal file
View File

@ -0,0 +1 @@
leaving space experience changed to be aligned with iOS

View File

@ -1 +0,0 @@
Screen sharing over WebRTC

View File

@ -1 +0,0 @@
If animations are disable on the System, chat effects and confetti will be disabled too

View File

@ -1 +0,0 @@
Reformatted project code

View File

@ -1 +0,0 @@
Including SSL/TLS error handing when doing WellKnown lookups without a custom HomeServerConnectionConfig

1
changelog.d/6025.misc Normal file
View File

@ -0,0 +1 @@
@Ignore a number of tests that are currently failing in CI.

1
changelog.d/6041.misc Normal file
View File

@ -0,0 +1 @@
Remove ShortcutBadger lib and usage (it was dead code)

1
changelog.d/6095.bugfix Normal file
View File

@ -0,0 +1 @@
Correct .well-known/matrix/client handling for server_names which include ports.

View File

@ -9,8 +9,8 @@ ext.versions = [
def gradle = "7.2.0" def gradle = "7.2.0"
// Ref: https://kotlinlang.org/releases.html // Ref: https://kotlinlang.org/releases.html
def kotlin = "1.6.0" def kotlin = "1.6.21"
def kotlinCoroutines = "1.6.0" def kotlinCoroutines = "1.6.1"
def dagger = "2.42" def dagger = "2.42"
def retrofit = "2.9.0" def retrofit = "2.9.0"
def arrow = "0.8.2" def arrow = "0.8.2"
@ -26,7 +26,7 @@ def jjwt = "0.11.5"
def vanniktechEmoji = "0.9.0" def vanniktechEmoji = "0.9.0"
// Testing // Testing
def mockk = "1.12.3" def mockk = "1.12.4"
def espresso = "3.4.0" def espresso = "3.4.0"
def androidxTest = "1.4.0" def androidxTest = "1.4.0"
def androidxOrchestrator = "1.4.1" def androidxOrchestrator = "1.4.1"
@ -53,7 +53,7 @@ ext.libs = [
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.3", 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.3",
'work' : "androidx.work:work-runtime-ktx:2.7.1", 'work' : "androidx.work:work-runtime-ktx:2.7.1",
'autoFill' : "androidx.autofill:autofill:1.1.0", 'autoFill' : "androidx.autofill:autofill:1.1.0",
'preferenceKtx' : "androidx.preference:preference-ktx:1.1.1", 'preferenceKtx' : "androidx.preference:preference-ktx:1.2.0",
'junit' : "androidx.test.ext:junit:1.1.3", 'junit' : "androidx.test.ext:junit:1.1.3",
'lifecycleCommon' : "androidx.lifecycle:lifecycle-common:$lifecycle", 'lifecycleCommon' : "androidx.lifecycle:lifecycle-common:$lifecycle",
'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle", 'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle",

View File

@ -123,6 +123,7 @@ ext.groups = [
'io.github.detekt.sarif4k', 'io.github.detekt.sarif4k',
'io.github.microutils', 'io.github.microutils',
'io.github.reactivecircus.flowbinding', 'io.github.reactivecircus.flowbinding',
'io.gitlab.arturbosch.detekt',
'io.grpc', 'io.grpc',
'io.jsonwebtoken', 'io.jsonwebtoken',
'io.kindedj', 'io.kindedj',
@ -140,7 +141,6 @@ ext.groups = [
'jline', 'jline',
'jp.wasabeef', 'jp.wasabeef',
'junit', 'junit',
'me.leolin',
'me.saket', 'me.saket',
'net.bytebuddy', 'net.bytebuddy',
'net.java', 'net.java',
@ -195,6 +195,7 @@ ext.groups = [
'org.testng', 'org.testng',
'org.threeten', 'org.threeten',
'org.webjars', 'org.webjars',
'org.yaml',
'ru.noties', 'ru.noties',
'xerces', 'xerces',
'xml-apis', 'xml-apis',

View File

@ -37,9 +37,9 @@ Wording: "We've sent you an email to verify your address. Please follow the inst
} }
``` ```
## User receive an e-mail ## User receives an e-mail
> [homeserver.org] Validate your email > `homeserver.org` Validate your email
> >
> A request to add an email address to your Matrix account has been received. If this was you, please click the link below to confirm adding this email: > A request to add an email address to your Matrix account has been received. If this was you, please click the link below to confirm adding this email:
https://homeserver.org/_matrix/client/unstable/add_threepid/email/submit_token?token=WUnEhQAmJrXupdEbXgdWvnVIKaGYZFsU&client_secret=TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh&sid=bxyDHuJKsdkjMlTJ https://homeserver.org/_matrix/client/unstable/add_threepid/email/submit_token?token=WUnEhQAmJrXupdEbXgdWvnVIKaGYZFsU&client_secret=TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh&sid=bxyDHuJKsdkjMlTJ

View File

@ -43,14 +43,17 @@ virtualenv -p python3 env
source env/bin/activate source env/bin/activate
pip install -e . pip install -e .
demo/start.sh --no-rate-limit demo/start.sh --no-rate-limit
``` ```
Alternatively, to install the latest Synapse release package (and not a cloned branch) you can run the following instead of `pip install -e .`: Alternatively, to install the latest Synapse release package (and not a cloned branch) you can run the following instead of `git clone` and `pip install -e .`:
```bash ```bash
pip install matrix-synapse pip install matrix-synapse
``` ```
On your first run, you will want to stop the demo and edit the config to correct the `public_baseurl` to http://10.0.2.2:8080 and restart the server.
You should now have 3 running federated Synapse instances 🎉, at http://127.0.0.1:8080/, http://127.0.0.1:8081/ and http://127.0.0.1:8082/, which should display a "It Works! Synapse is running" message. You should now have 3 running federated Synapse instances 🎉, at http://127.0.0.1:8080/, http://127.0.0.1:8081/ and http://127.0.0.1:8082/, which should display a "It Works! Synapse is running" message.
## Run the test ## Run the test
@ -87,6 +90,18 @@ You'll need python3 to be able to run synapse
Try on the Emulator browser to open "http://10.0.2.2:8080". You should see the "Synapse is running" message. Try on the Emulator browser to open "http://10.0.2.2:8080". You should see the "Synapse is running" message.
### Tests partially run but some fail with "Unable to contact localhost:8080"
This is because the `public_baseurl` of synapse is not consistent with the endpoint that the tests are connecting to.
Ensure you have the following configuration in `demo/etc/8080.config`.
```
public_baseurl: http://10.0.2.2:8080/
```
After changing this you will need to restart synapse using `demo/stop.sh` and `demo/start.sh` to load the new configuration.
### virtualenv command fails ### virtualenv command fails
You can try using You can try using

View File

@ -30,6 +30,19 @@ In any case, it is better to explicitly declare in the description why the PR is
Also, draft PR should not stay indefinitely in this state. It may be removed if it is the case and the submitter does not update it after a few days. Also, draft PR should not stay indefinitely in this state. It may be removed if it is the case and the submitter does not update it after a few days.
##### Base branch
The `develop` branch is generally the base branch for every PRs.
Exceptions can occur:
- if a feature implementation is split into multiple PRs. We can have a chain of PRs in this case. PR can be merged one by one on develop, and GitHub change the target branch to `develop` for the next PR automatically.
- we want to merge a PR from the community, but there is still work to do, and the PR is not updated by the submitter. First, we can kindly ask the submitter if they will update their PR, by commenting it. If there is no answer after a few days (including a week-end), we can create a new branch, push it, and change the target branch of the PR to this new branch. The PR can then be merged, and we can add more commits to fix the issues. After that a new PR can be created with `develop` as a target branch.
**Important notice 1:** Releases are created from the `develop` branch. So `develop` branch should always contain a "releasable" source code. So when a feature is being implemented with several PRs, it has to be disabled by default (using a feature flag for instance), until the feature is fully implemented. A last PR to enable the feature can then be created.
**Important notice 2:** Database migration: some developers and some people from the community are using the nightly build from `develop`. Multiple database migrations should be properly handled for them. This is OK to have multiple migrations between 2 releases, this is not OK to add steps to the pending database migration on `develop`. So for instance `develop` users will migrate from version 11 to version 12, then 13, then 14, and `main` users will do all those steps after they get the app upgrade.
##### PR Review Assignment ##### PR Review Assignment
We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to 2 team members using the round robin algorithm. The process is the following: We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to 2 team members using the round robin algorithm. The process is the following:
@ -103,7 +116,7 @@ Review such PR is the same recipe than for PR from Dependabot
##### Sync analytics plan ##### Sync analytics plan
This tools imports any update in the analytics plan. See instruction in the PR itself to handle it. This tools imports any update in the analytics plan. See instruction in the PR itself to handle it.
More info can be found in the file [analytics.md] More info can be found in the file [analytics.md](./analytics.md)
## Reviewing PR ## Reviewing PR

View File

@ -0,0 +1,2 @@
Hlavní změny v této verzi: Umožňuje uživatelům zobrazovat se offline a přidává zvukový přehrávač pro zvukové přílohy
Úplný seznam změn: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Hlavní změny v této verzi: Umožňuje uživatelům zobrazovat se offline a přidává zvukový přehrávač pro zvukové přílohy
Úplný seznam změn: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Hauptänderungen: Threads sind jetzt schneller, Fehlerbehebungen.
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Änderungen: Fehlerbehebungen
Alle Änderungen: https://github.com/vector-im/element-android/releases/tag/v1.4.7

View File

@ -0,0 +1,2 @@
Hauptänderungen: Schnellere Threads, Fehlerbehebungen.
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Hauptänderungen: Scrollen in Sprachnachrichten, Fehlerbehebungen.
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Änderungen: Fehlerbehebungen und Stabilitätsverbesserungen
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Hauptänderungen: Nutzer können ihren Status auf „Offline“ setzen, Gesendete Audiodateien können nun in der App abgespielt werden
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Hauptänderungen: Nutzer können ihren Status auf „Offline“ setzen, Gesendete Audiodateien können nun in der App abgespielt werden
Alle Änderungen: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Main changes in this version: Better management of encrypted messages. Various bug fixes and stability improvements.
Full changelog: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Põhilised muutused selles versioonis: kasutajate võrguolekud ning helisõnumite esitaja.
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Põhilised muutused selles versioonis: kasutajate võrguolekud ning helisõnumite esitaja.
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
تغییرات عمده در این نگارش: اجازه به کاربران برای برون‌خط ظاهر شدن و افزودن یک پخش‌کنندهٔ صدا برای پیوست‌های صوتی
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
تغییرات عمده در این نگارش: اجازه به کاربران برای برون‌خط ظاهر شدن و افزودن یک پخش‌کنندهٔ صدا برای پیوست‌های صوتی
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Perubahan utama dalam versi ini: Diperbolehkan pengguna untuk terlihat luring dan ditambahkan sebuah pemain audio untuk lampiran audio
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Perubahan utama dalam versi ini: Diperbolehkan pengguna untuk terlihat luring dan ditambahkan sebuah pemain audio untuk lampiran audio
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Modifiche principali in questa versione: consente agli utenti di apparire offline e aggiunge un player audio per gli allegati audio
Cronologia completa: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
Modifiche principali in questa versione: consente agli utenti di apparire offline e aggiunge un player audio per gli allegati audio
Cronologia completa: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ໃຫ້ຜູ້ໃຊ້ສາມາດສະແດງຕົວເປັນ offline ແລະສາມາດຫຼິ້ນສຽງໄດ້ສຳລັບການແນບສຽງ
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases

View File

@ -0,0 +1,2 @@
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ໃຫ້ຜູ້ໃຊ້ສາມາດສະແດງຕົວເປັນ offline ແລະສາມາດຫຼິ້ນສຽງໄດ້ສຳລັບການແນບສຽງ
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases

Some files were not shown because too many files have changed in this diff Show More