Merge branch 'release/1.4.14' into main
This commit is contained in:
commit
a5b007f147
|
@ -1,6 +1,6 @@
|
||||||
[*]
|
[*]
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
end_of_line = crlf
|
end_of_line = lf
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
indent_style = space
|
indent_style = space
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|
|
@ -106,7 +106,7 @@ body:
|
||||||
|
|
||||||
https://github.com/matrix-org/matrix-android-sdk2-sample
|
https://github.com/matrix-org/matrix-android-sdk2-sample
|
||||||
|
|
||||||
- [ ] Update the dependency to the new version of the SDK2. It can take some time for MavenCentral to make the librarie available. You can check status on https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/
|
- [ ] Update the dependency to the new version of the SDK2. It can take a few minutes for MavenCentral to make the library available. You can check status on https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/
|
||||||
- [ ] Build and run the sample, you may have to fix some API break
|
- [ ] Build and run the sample, you may have to fix some API break
|
||||||
- [ ] Commit and push directly on `main`
|
- [ ] Commit and push directly on `main`
|
||||||
validations:
|
validations:
|
||||||
|
|
|
@ -330,10 +330,9 @@ jobs:
|
||||||
if: always() && github.event_name != 'workflow_dispatch'
|
if: always() && github.event_name != 'workflow_dispatch'
|
||||||
# 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@v0.3.0
|
- uses: michaelkaye/matrix-hookshot-action@v1.0.0
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
|
hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
|
||||||
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
|
|
||||||
text_template: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
text_template: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
||||||
html_template: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#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: "{{#if '${{ github.event_name }}' == 'schedule' }}Nightly test run{{else}}Test run (on ${{ github.ref }}){{/if }}: {{#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}}"
|
||||||
|
|
|
@ -11,7 +11,6 @@ jobs:
|
||||||
if: >
|
if: >
|
||||||
contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Threads') ||
|
|
||||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||||
|
@ -252,3 +251,30 @@ jobs:
|
||||||
env:
|
env:
|
||||||
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
|
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
move_element_x_issues:
|
||||||
|
name: ElementX issues to ElementX project board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
|
if: >
|
||||||
|
github.repository == 'vector-im/element-android' &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'Z-ElementX-Alpha') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-ElementX-Beta') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-ElementX'))
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
|
projectNextItem {
|
||||||
|
id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc4ABTXY"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
|
@ -7,6 +7,8 @@ jobs:
|
||||||
add_design_pr_to_project:
|
add_design_pr_to_project:
|
||||||
name: Move PRs asking for design review to the design board
|
name: Move PRs asking for design review to the design board
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
|
if: github.repository == 'vector-im/element-android'
|
||||||
steps:
|
steps:
|
||||||
- uses: octokit/graphql-action@v2.x
|
- uses: octokit/graphql-action@v2.x
|
||||||
id: find_team_members
|
id: find_team_members
|
||||||
|
@ -74,6 +76,8 @@ jobs:
|
||||||
add_product_pr_to_project:
|
add_product_pr_to_project:
|
||||||
name: Move PRs asking for product review to the product board
|
name: Move PRs asking for product review to the product board
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
|
if: github.repository == 'vector-im/element-android'
|
||||||
steps:
|
steps:
|
||||||
- uses: octokit/graphql-action@v2.x
|
- uses: octokit/graphql-action@v2.x
|
||||||
id: find_team_members
|
id: find_team_members
|
||||||
|
|
|
@ -13,6 +13,8 @@ jobs:
|
||||||
|
|
||||||
- name: Update Gradle Wrapper
|
- name: Update Gradle Wrapper
|
||||||
uses: gradle-update/update-gradle-wrapper-action@v1
|
uses: gradle-update/update-gradle-wrapper-action@v1
|
||||||
|
# Skip in forks
|
||||||
|
if: github.repository == 'vector-im/element-android'
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
target-branch: develop
|
target-branch: develop
|
||||||
|
|
55
CHANGES.md
55
CHANGES.md
|
@ -1,3 +1,58 @@
|
||||||
|
Changes in Element v1.4.14 (2022-05-05)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Features ✨
|
||||||
|
----------
|
||||||
|
- Improve management of ignored users ([#5772](https://github.com/vector-im/element-android/issues/5772))
|
||||||
|
- VoIP Screen Sharing Permission ([#5811](https://github.com/vector-im/element-android/issues/5811))
|
||||||
|
- Live location sharing: updating beacon state event content structure ([#5814](https://github.com/vector-im/element-android/issues/5814))
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fixes crash when accepting or receiving VOIP calls ([#5421](https://github.com/vector-im/element-android/issues/5421))
|
||||||
|
- Improve/fix crashes on messages decryption ([#5592](https://github.com/vector-im/element-android/issues/5592))
|
||||||
|
- Tentative fix of images crashing when being sent or shared from gallery ([#5652](https://github.com/vector-im/element-android/issues/5652))
|
||||||
|
- Improving deactivation experience along with a crash fix ([#5721](https://github.com/vector-im/element-android/issues/5721))
|
||||||
|
- Adds missing suggested tag for rooms in Explore Space ([#5826](https://github.com/vector-im/element-android/issues/5826))
|
||||||
|
- Fixes missing call icons when threads are enabled ([#5847](https://github.com/vector-im/element-android/issues/5847))
|
||||||
|
- Fix UX freezing when creating secure backup ([#5871](https://github.com/vector-im/element-android/issues/5871))
|
||||||
|
- Fixes sign in via other requiring homeserver registration to be enabled ([#5874](https://github.com/vector-im/element-android/issues/5874))
|
||||||
|
- Don't pause timer when call is held. ([#5885](https://github.com/vector-im/element-android/issues/5885))
|
||||||
|
- Fix UISIDetector grace period bug ([#5886](https://github.com/vector-im/element-android/issues/5886))
|
||||||
|
- Fix a crash with space invitations in the space list, and do not display space invitation twice. ([#5924](https://github.com/vector-im/element-android/issues/5924))
|
||||||
|
- Fixes crash on android api 21/22 devices when opening messages due to Konfetti library ([#5925](https://github.com/vector-im/element-android/issues/5925))
|
||||||
|
|
||||||
|
In development 🚧
|
||||||
|
----------------
|
||||||
|
- Reorders the registration steps to prioritise email, then terms for the FTUE onboarding ([#5783](https://github.com/vector-im/element-android/issues/5783))
|
||||||
|
- [Live location sharing] Improve aggregation process of events ([#5862](https://github.com/vector-im/element-android/issues/5862))
|
||||||
|
|
||||||
|
Improved Documentation 📚
|
||||||
|
------------------------
|
||||||
|
- Update the PR process doc with 2 reviewers and a new reviewer team. ([#5836](https://github.com/vector-im/element-android/issues/5836))
|
||||||
|
- Improve documentation of the project and of the SDK ([#5854](https://github.com/vector-im/element-android/issues/5854))
|
||||||
|
|
||||||
|
SDK API changes ⚠️
|
||||||
|
------------------
|
||||||
|
- Added registrationCustom into RegistrationWizard to send custom auth params for sign up
|
||||||
|
- Moved terms converter into api package to make it accessible in sdk ([#5575](https://github.com/vector-im/element-android/issues/5575))
|
||||||
|
- Move package `org.matrix.android.sdk.api.pushrules` to `org.matrix.android.sdk.api.session.pushrules` ([#5812](https://github.com/vector-im/element-android/issues/5812))
|
||||||
|
- Some `Session` apis are now available by requesting the service first. For instance `Session.updateAvatar(...)` is now `Session.profileService().updateAvatar(...)`
|
||||||
|
- The shortcut `Room.search()` has been removed, you have to use `Session.searchService().search()` ([#5816](https://github.com/vector-im/element-android/issues/5816))
|
||||||
|
- Add return type to RoomApi.sendStateEvent() to retrieve the created event id ([#5855](https://github.com/vector-im/element-android/issues/5855))
|
||||||
|
- `Room` apis are now available by requesting the service first. For instance `Room.updateAvatar(...)` is now `Room.stateService().updateAvatar(...)` ([#5858](https://github.com/vector-im/element-android/issues/5858))
|
||||||
|
- Remove unecessary field `eventId` from `EventAnnotationsSummary` and `ReferencesAggregatedSummary` ([#5890](https://github.com/vector-im/element-android/issues/5890))
|
||||||
|
- Replace usage of `System.currentTimeMillis()` by a `Clock` interface ([#5907](https://github.com/vector-im/element-android/issues/5907))
|
||||||
|
|
||||||
|
Other changes
|
||||||
|
-------------
|
||||||
|
- Move "Ignored users" setting section into "Security & Privacy" ([#5773](https://github.com/vector-im/element-android/issues/5773))
|
||||||
|
- Add a picto for ignored users in the room member list screen ([#5774](https://github.com/vector-im/element-android/issues/5774))
|
||||||
|
- Autoformats entire project ([#5805](https://github.com/vector-im/element-android/issues/5805))
|
||||||
|
- Add a GH workflow to push ElementX issues to the global board. ([#5832](https://github.com/vector-im/element-android/issues/5832))
|
||||||
|
- Faster Olm decrypt when there is a lot of existing sessions ([#5872](https://github.com/vector-im/element-android/issues/5872))
|
||||||
|
|
||||||
|
|
||||||
Changes in Element 1.4.13 (2022-04-26)
|
Changes in Element 1.4.13 (2022-04-26)
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,9 @@ As a general rule, please never edit or add or remove translations to the projec
|
||||||
|
|
||||||
#### Adding new string
|
#### Adding new string
|
||||||
|
|
||||||
When adding new string resources, please only add new entries in file `value/strings.xml`. Translations will be added later by the community of translators using Weblate.
|
When adding new string resources, please only add new entries in the file `value/strings.xml`. Translations will be added later by the community of translators using Weblate.
|
||||||
|
|
||||||
|
The file `value/strings.xml` must only contain American English (U. S. English) values, as this is the default language of the Android operating system. So for instance, please use "color" instead of "colour". Element Android will still use the language set on the system by the user, like any other Android applications which provide translations. The system language can be any other English language variants, or any other languages. Note that this is also possible to override the system language using the Element Android in-app language settings.
|
||||||
|
|
||||||
New strings can be added anywhere in the file `value/strings.xml`, not necessarily at the end of the file. Generally, it's even better to add the new strings in some dedicated section per feature, and not at the end of the file, to avoid merge conflict between 2 PR adding strings at the end of the same file.
|
New strings can be added anywhere in the file `value/strings.xml`, not necessarily at the end of the file. Generally, it's even better to add the new strings in some dedicated section per feature, and not at the end of the file, to avoid merge conflict between 2 PR adding strings at the end of the same file.
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@ buildscript {
|
||||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
||||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||||
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.0.4.1'
|
classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
|
||||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.20"
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
|
||||||
// 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
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ buildscript {
|
||||||
|
|
||||||
// ktlint Plugin
|
// ktlint Plugin
|
||||||
plugins {
|
plugins {
|
||||||
id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
|
id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://github.com/jeremylong/DependencyCheck
|
// https://github.com/jeremylong/DependencyCheck
|
||||||
|
|
|
@ -164,6 +164,7 @@ ext.groups = [
|
||||||
'org.codehaus.woodstox',
|
'org.codehaus.woodstox',
|
||||||
'org.eclipse.ee4j',
|
'org.eclipse.ee4j',
|
||||||
'org.ec4j.core',
|
'org.ec4j.core',
|
||||||
|
'org.freemarker',
|
||||||
'org.glassfish.jaxb',
|
'org.glassfish.jaxb',
|
||||||
'org.hamcrest',
|
'org.hamcrest',
|
||||||
'org.jacoco',
|
'org.jacoco',
|
||||||
|
|
|
@ -32,14 +32,15 @@ Also, draft PR should not stay indefinitely in this state. It may be removed if
|
||||||
|
|
||||||
##### PR Review Assignment
|
##### PR Review Assignment
|
||||||
|
|
||||||
We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to a team member 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:
|
||||||
|
|
||||||
- The PR creator assigns the [element-android](https://github.com/orgs/vector-im/teams/element-android) team as a reviewer. They can skip this process and assign directly a specific member if they think they should take a look at it.
|
- The PR creator can assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at the PR.
|
||||||
- GitHub automatically assigns one reviewer. If the chosen reviewer is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
- If there are missing reviewers, the PR creator assigns the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
||||||
- The reviewer gets a notification to make the review: they review the code following the good practice (see the rest of this document).
|
- GitHub automatically assigns other reviewers. If one of the chosen reviewers is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
||||||
|
- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
|
||||||
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
||||||
|
|
||||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android](https://github.com/orgs/vector-im/teams/element-android) or any member directly.
|
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any members directly.
|
||||||
|
|
||||||
##### PR review time
|
##### PR review time
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Posun přehrávání v hlasových zprávách. Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: Improve management of ignored users. Various bug fixes and stability improvements.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Cambios principales en esta versión: Hacer la política de servidores de indentidad visible en los ajusted. Temporalmente quitar soporte para Android Auto.
|
||||||
|
Registro de cambios: https://github.com/vector-im/element-android/releases/tag/v1.3.3
|
|
@ -0,0 +1,2 @@
|
||||||
|
Cambios principales en esta versión: Varias correciones de bugs y mejoras en la estabilidad
|
||||||
|
Registro de cambios: https://github.com/vector-im/element-android/releases
|
|
@ -37,3 +37,6 @@ Mensajería, llamadas de voz y video, uso compartido de archivos, uso compartido
|
||||||
|
|
||||||
<b>Continúa donde lo dejaste</b>
|
<b>Continúa donde lo dejaste</b>
|
||||||
Manténgase en contacto donde quiera que esté con el historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io
|
Manténgase en contacto donde quiera que esté con el historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io
|
||||||
|
|
||||||
|
<b>Código abierto</b>
|
||||||
|
Element Android es un proyecto de código abierto, alojado en GitHub. Porfavor, reporta bugs y problemas en esta dirección: https://github.com/vector-im/element-android
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: kerimine häälsõnumites ning erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: erinevate vigade parandused ja stabiilsust edendavad kohendused.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: لغزش در پیامهای صوتی. رفع اشکالهای مختلف و بهبودهای امنیتی.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: رفع اشکالهای مختلف و بهبودهای پایداری.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Gulir di pesan suara. Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Banyak perbaikan kutu dan perbaikan stabilitas.
|
||||||
|
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: scorrimento nei vocali. Varie correzioni e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: varie correzioni di errori e miglioramenti della stabilità.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
ສະບັບໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນມີການແກ້ໄຂແລະການປັບປຸງ bug. ຕອນນີ້ການສົ່ງຂໍ້ຄວາມແມ່ນໄວຂຶ້ນຫຼາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
|
@ -0,0 +1,2 @@
|
||||||
|
ຮຸ່ນໃຫມ່ນີ້ສ່ວນໃຫຍ່ແມ່ນປະກອບດ້ວຍໜ້າຕາແອັບແລະການປັບປຸງປະສົບການຂອງຜູ້ໃຊ້. ດຽວນີ້ທ່ານສາມາດເຊີນໝູ່, ແລະສ້າງການສົນທະນາກົງໄດ້ໄວຂຶ້ນໂດຍການສະແກນລະຫັດ QR.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວຢ່າງ URL, ແປ້ນພິມ Emoji ໃໝ່, ຄວາມສາມາດໃນການຕັ້ງຄ່າຫ້ອງໃໝ່, ແລະຫິມະສຳລັບວັນຄຣິດສະມາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂການອະນຸຍາດຫ້ອງ, ຮູບແບບ ແຈ້ງ / ມືດອັດຕະໂນມັດ, ແລະການແກ້ໄຂບັນຫາຈຳນວນໜຶ່ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮັບຮອງການເຂົ້າລະບົບດ້ວຍສື່ສັງຄົມອອນລາຍ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບຂອງ VoIP (ໂທສຽງ ແລະໂທວີດີໂອໃນການສົນທະນາກົງ) ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ປັບປຸງປະສິດທິພາບ ແລະແກ້ໄຂຂໍ້ຜິດພາດ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.4
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ບັນຫາດ່ວນສໍາລັບ 1.1.5
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຮອງຮັບເບຕ້າສຳລັບ Spaces. ບີບອັດວິດີໂອກ່ອນທີ່ຈະສົ່ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງສໍາລັບ Spaces.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮັບຮອງສໍາລັບເຄືອຂ່າຍ gitter.im.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບສີສັນ ແລະຄຸນສົມບັດໃໝ່ສຳລັບຊ່ອງຫວ່າງ (bugfix ສຳລັບ 1.1.10)
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ອັບເດດຮູບແບບສີສັນ ແລະຮູບແບບ ແລະແກ້ໄຂການຂັດຂ້ອງຫຼັງຈາກການໂທວິດີໂອ
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.12
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.13
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັນຫາກ່ຽວກັບຂໍ້ຄວາມທີ່ຖືກເຂົ້າລະຫັດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.14
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດຂໍ້ຄວາມສຽງພາຍໃຕ້ການຕັ້ງຄ່າຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.15
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂຂໍ້ຜິດພາດໃນເວລາສົ່ງຂໍ້ຄວາມເຂົ້າລະຫັດຖ້າມີຄົນຢູ່ໃນຫ້ອງອອກຈາກລະບົບ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.1.16
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການສົນທະນາດ້ວຍສຽງເປີດໄວ້ໂດຍມາດຕະຖານ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.0
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປັບປຸງຫຼາຍຢ່າງກ່ຽວກັບ VoIP ແລະ Spaces (ຍັງຢູ່ໃນເບຕ້າ).
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.2.1
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.0
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຈັດລະບຽບຫ້ອງຂອງທ່ານໂດຍໃຊ້ Spaces! v1.3.1 ກຳລັງແກ້ໄຂບັນແອັບໃຊ້ບໍ່ໄດ້ທີ່ສາມາດເກີດຂຶ້ນໃນ v1.3.0.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.1
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບ Android Auto. ການແກ້ໄຂຍັກຫຼາຍອັນ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.2
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເຮັດໃຫ້ນະໂຍບາຍຂອງເຄື່ອງແມ່ຂ່າຍຢັ້ງຢືນຕົວຕົນ (ຫຼາຍໜ່ວຍ) ໃຫ້ເຫັນຢູ່ໃນການຕັ້ງຄ່າ. ລຶບການຮອງຮັບ Android Auto ອອກຊົ່ວຄາວ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.3
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.4
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.5
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບການມີຢູ່, ສໍາລັບຫ້ອງຂໍ້ຄວາມໂດຍກົງ (ໝາຍເຫດ: ການມີຢູ່ຖືກປິດການໃຊ້ງານຢູ່ໃນ matrix.org). ເພີ່ມການຮອງຮັບ Android Auto ອີກຄັ້ງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.6
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກສ່ວນໃຫຍ່ກ່ຽວກັບການແຈ້ງເຕືອນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.8
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບສະບັບຮ່າງການສົນທະນາດ້ວຍສຽງ. ແກ້ໄຂບັກຫຼາຍໆອັນ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.09
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການຮອງຮັບແບບສໍາຫຼວດ (ໃນຫ້ອງທົດລອງ). ການອອກແບບຕົວຢ່າງ URL ໃໝ່.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກ!.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.13
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.14
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປ່ຽນແປງຄັ້ງທໍາອິດໃນຫນ້າຈໍເລີ່ມຕົ້ນ, ລວມທັງການວິເຄາະເລືອກເຂົ້າຮ່ວມ. ຮອງຮັບເຫດການທີ່ມີຄະນິດສາດເພີ່ມຢູ່ໃນຫ້ອງທົດລອງ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.15
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.16
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ສົ່ງສະຖານທີ່ຂອງທ່ານໄປຫາຫ້ອງໃດກໍໄດ້. ແກ້ໄຂແບບສຳຫຼວດ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການປະຕິບັດເບື້ອງຕົ້ນຂອງຂໍ້ຄວາມແບບກະທູ້. ຂໍ້ຄວາມຮູບແບບປຸມເປົ້າ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເພີ່ມການສະຫນັບສະຫນູນກັບ @room ແລະແບບສໍາຫຼວດທີ່ບໍ່ເປີດເຜີຍໃນບັນດາການປ່ຽນແປງເລັກນ້ອຍອື່ນໆ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ຕົວສະແດງການພິມ ແລະປັບປັງ IU. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.4
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ທາມລາຍກະທູ້ ປະຈຸບັນເປັນແບບຖ່າຍທອດສົດ ແລະໄວຂຶ້ນ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.6
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases/tag/v1.4.7
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ເລື່ອນໃນຂໍ້ຄວາມສຽງ. ແກ້ໄຂບັກຫຼາຍບ່ອນ ແລະ ປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
ການປ່ຽນແປງຫຼັກໃນສະບັບນີ້: ການແກ້ໄຂ bug ຕ່າງໆແລະການປັບປຸງຄວາມສະຖຽນ.
|
||||||
|
ບັນທຶກການປ່ຽນແປງສະບັບເຕັມ: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,42 @@
|
||||||
|
ລະບົບແຊັດນີ້ ມີຄວາມປອດໄພ ແລະເປັນແອັບທີ່ເຮັດຊ່ວຍສົ່ງເສີ່ມການເຮັດວຽກຮ່ວມກັນຢ່າງມີປະສິດທິຜົນໝາະສົມສຳລັບການສົນທະນາກຸ່ມໃນຂະນະທີ່ເຮັດວຽກທາງໄກ. ແອັບສົນທະນານີ້ໃຊ້ການເຂົ້າລະຫັດແບບຕົ້ນທາງຈົນຈົບເພື່ອໃຫ້ການປະຊຸມວິດີໂອທີ່ມີປະສິດທິພາບ, ການແບ່ງປັນໄຟລ໌ ແລະການໂທແບບສຽງ.
|
||||||
|
|
||||||
|
<b>ຄຸນສົມບັດຂອງລະບົບລວມມີ:</b>
|
||||||
|
- ເຄື່ອງມືການສື່ສານອອນໄລນ໌ແບບລຳ້ໜ້າ
|
||||||
|
- ຂໍ້ຄວາມມີການເຂົ້າລະຫັດຢ່າງເຕັມສ່ວນເພື່ອໃຫ້ການສື່ສານຂອງອົງກອນມີຄວາມປອດໄພ, ເຖິງແມ່ນວ່າຈະເຮັດວຽກຈາກທາງໄກ
|
||||||
|
- ລະບົບແຊັດແບບແບ່ງກະຈາຍການຄຸ້ມຄອງໂດຍນຳໃຊ້ນະວັດຕະກຳເປີດຂອງລະບົບ Matrix
|
||||||
|
- ການແບ່ງປັນໄຟລ໌ຢ່າງປອດໄພກັບຂໍ້ມູນທີ່ເຂົ້າລະຫັດໄວ້ໃນຂະນະທີ່ຈັດການໂຄງການ
|
||||||
|
- ວິດີໂອສົນທະນາກັບ Voice over IP ແລະການແບ່ງປັນຫນ້າຈໍ
|
||||||
|
- ການເຊື່ອມໂຍງງ່າຍດາຍກັບເຄື່ອງມືການຮ່ວມມືອອນໄລນ໌ຂອງທ່ານ, ເຄື່ອງມືການຄຸ້ມຄອງໂຄງການ, ການບໍລິການ VoIP ແລະຂໍ້ຄວາມອື່ນໆຂອງທີມ
|
||||||
|
|
||||||
|
ລະບົບນີ້ແມ່ນແຕກຕ່າງກັນຢ່າງສິ້ນເຊີງຈາກແອັບຯສົ່ງຂໍ້ຄວາມ ແລະແອັບສົ່ງເສີມການຮ່ວມມືອື່ນໆ. ມັນດໍາເນີນການຢູ່ໃນ Matrix, ເຄືອຂ່າຍເປີດສໍາລັບການສົ່ງຂໍ້ຄວາມທີ່ປອດໄພແລະການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ທ່ານສາມາດຕັ້ງສະຖານີດ້ວຍຕົນເອງເພື່ອໃຫ້ຜູ້ໃຊ້ເປັນເຈົ້າຂອງສູງສຸດແລະຄຸ້ມຄອງຂໍ້ມູນແລະຂໍ້ຄວາມຂອງຕົນເອງ.
|
||||||
|
|
||||||
|
<b>ຄວາມເປັນສ່ວນຕົວ ແລະຂໍ້ຄວາມເຂົ້າລະຫັດ</b>
|
||||||
|
ລະບົບຈະປົກປ້ອງທ່ານຈາກການໂຄສະນາທີ່ບໍ່ຕ້ອງການ, ການຂຸດຄົ້ນຂໍ້ມູນແລະການສ້າງເງື່ອນໄຂປິດລ້ອມ. ລະບົບຍັງຮັບປະກັນຂໍ້ມູນທັງຫມົດຂອງທ່ານ, ການໂທວິດີໂອແບບຫນຶ່ງຕໍ່ຫນຶ່ງແລະການສື່ສານສຽງໂດຍຜ່ານການເຂົ້າລະຫັດແບບຕົ້ນທາງຫາປາຍທາງ ແລະການກວດສອບອຸປະກອນກ່ອນເຊື່ອມຕໍ່.
|
||||||
|
|
||||||
|
ລະບົບເຮົາໃຫ້ທ່ານຄວບຄຸມຄວາມເປັນສ່ວນຕົວຂອງທ່ານໃນຂະນະທີ່ອະນຸຍາດໃຫ້ທ່ານຕິດຕໍ່ສື່ສານຢ່າງປອດໄພກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ຫຼືເຄື່ອງມືທີ່ທ່ານຄຸ້ນເຄີຍເຊັ່ນ Whatsapp, Slack, Facebook.
|
||||||
|
|
||||||
|
<b>ທ່ານສາມາດສ້າງສະຖານີຂອງຕົນເອງ</b>
|
||||||
|
ເພື່ອໃຫ້ສາມາດຄວບຄຸມຂໍ້ມູນແລະການສົນທະນາທີ່ລະອຽດອ່ອນຂອງທ່ານຫຼາຍຂຶ້ນ, ທ່ານສາມາດຕິດຕັ້ງສະຖານີສື່ສານຂອງຕົນເອງຫຼືທ່ານສາມາດເລືອກຕິດຕັ້ງໄວ້ກັບເຄືອຂ່າຍ Matrix - ມາດຕະຖານສໍາລັບລະບົບເປີດ, ການສື່ສານແບບກະຈາຍການຄຸ້ມຄອງ. ລະບົບພວກເຮົາໃຫ້ທ່ານມີຄວາມເປັນສ່ວນຕົວ, ໄດ້ຕາມມາດຕະຖານຄວາມປອດໄພແລະມີຄວາມຍືດຫຍຸ່ນໃນການເຊື່ອມໂຍງ.
|
||||||
|
|
||||||
|
<b>ເປັນເຈົ້າຂອງຂໍ້ມູນຂອງທ່ານເອງ</b>
|
||||||
|
ທ່ານສາມາດເລືອກໄດ້ວ່າຈະເກັບຂໍ້ມູນ ແລະຂໍ້ຄວາມຂອງທ່ານຢູ່ໃສ. ໂດຍບໍ່ມີຄວາມສ່ຽງຕໍ່ການຂຸດຄົ້ນຂໍ້ມູນຫຼືການເຂົ້າເຖິງຈາກພາກສ່ວນທີສາມ.
|
||||||
|
|
||||||
|
ລະບົບພວກເຮົາເຮັດໃຫ້ທ່ານສາມາດຄວບຄຸມດ້ວຍວິທີຕ່າງໆ:
|
||||||
|
1. ຮັບບັນຊີຟຣີໃນເຊີບເວີສາທາລະນະ matrix.org ທີ່ໂຮສໂດຍຜູ້ພັດທະນາ Matrix, ຫຼືເລືອກຈາກເຄື່ອງແມ່ຂ່າຍສາທາລະນະຫຼາຍພັນເຊີບເວີທີ່ໂຮສໂດຍອາສາສະໝັກ.
|
||||||
|
2. ຈັດການບັນຊີຂອງທ່ານເອງໂດຍການແລ່ນເຊີບເວີໃນໂຄງລ່າງພື້ນຖານ IT ຂອງທ່ານເອງ
|
||||||
|
3. ລົງທະບຽນສໍາລັບບັນຊີຢູ່ໃນເຄື່ອງແມ່ຂ່າຍທີ່ກໍາຫນົດເອງໂດຍພຽງແຕ່ສະຫມັກກັບ Element Matrix Services hosting platform
|
||||||
|
|
||||||
|
<b>ສົ່ງຂໍ້ຄວາມ ແລະການຮ່ວມມືກັບລະບົບອື່ນໆທີ່ທ່ານຄຸ້ນເຄີຍ</b>
|
||||||
|
ທ່ານສາມາດສົນທະນາກັບທຸກຄົນໃນເຄືອຂ່າຍ Matrix, ບໍ່ວ່າເຂົາເຈົ້າກໍາລັງໃຊ້ Element, ແອັບ Matrix ອື່ນ ຫຼືເຖິງແມ່ນວ່າເຂົາເຈົ້າກຳລັງໃຊ້ແອັບສົ່ງຂໍ້ຄວາມອື່ນຢູ່.
|
||||||
|
|
||||||
|
<b>ປອດໄພທີ່ສຸດ</b>
|
||||||
|
ການເຂົ້າລະຫັດຈາກຕົ້ນທາງຫາປາຍທາງ (ມີພຽງແຕ່ຜູ້ທີ່ຢູ່ໃນການສົນທະນາສາມາດຖອດລະຫັດຂໍ້ຄວາມໄດ້), ແລະການຢັ້ງຢືນອຸປະກອນໂດຍການລົງນາມຂ້າມອຸປະກອນ.
|
||||||
|
|
||||||
|
<b>ການສື່ສານແລະການເຊື່ອມໂຍງທີ່ຄົບຖ້ວນສົມບູນ</b>
|
||||||
|
ການສົ່ງຂໍ້ຄວາມ, ການໂທສຽງ ແລະວິດີໂອ, ການແບ່ງປັນໄຟລ໌, ການແບ່ງປັນໜ້າຈໍ ແລະການເຊື່ອມໂຍງທັງໝົດ, ບັອດ ແລະວິດເຈັດ. ສ້າງຫ້ອງ, ຊຸມຊົນ, ຕິດຕໍ່ພົວພັນແລະເຮັດສິ່ງຕ່າງໆ.
|
||||||
|
|
||||||
|
<b>ສືບຕໍ່ຈາກການສົນທະນາລ້າສຸດ</b>
|
||||||
|
ທ່ານສາມາດຕິດຕໍ່ພົວພັນໄດ້ທຸກບ່ອນທີ່ຕ້ອງການ ເຊິ່ງປະຫວັດການສົນທະນາຈະຖືກອັບເດດໄປຫາບັນດາອຸປະກອນຕ່າງໆຂອງທ່ານ ລວມເຖິງໃນເວັບໄຊຕ໌ທີ່ https://app.element.io
|
||||||
|
|
||||||
|
<b>ເຕັກໂນໂລຊີໂອເພິນຊອດ</b>
|
||||||
|
Element ເປັນໂຄງການເຕັກໂນໂລຊີໂອເພິນຊອດ, ເປັນເຈົ້າພາບໂດຍ GitHub. ກະລຸນາລາຍງານຂໍ້ບົກພ່ອງ ແລະ/ຫຼື ປະກອບສ່ວນເຂົ້າໃນການພັດທະນາຂອງລະບົບຢູ່ https://github.com/vector-im/element-android
|
|
@ -0,0 +1 @@
|
||||||
|
ສົ່ງຂໍ້ຄວາມກຸ່ມ - ສົ່ງຂໍ້ຄວາມທີ່ເຂົ້າລະຫັດ, ສົນທະນາກຸ່ມ ແລະໂທວິດີໂອ
|
|
@ -0,0 +1 @@
|
||||||
|
ລະບົບສື່ສານທີ່ມີຄວາມປອດໄພສູງ
|
|
@ -0,0 +1,2 @@
|
||||||
|
Principais mudanças nesta versão: Rolar em mensagem de voz. Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Principais mudanças nesta versão: Vários consertos de bugs e melhorias de estabilidade.
|
||||||
|
Changelog completo: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavné zmeny v tejto verzii: Posúvanie v hlasovej správe. Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavné zmeny v tejto verzii: Rôzne opravy chýb a vylepšenia stability.
|
||||||
|
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Ndryshimet kryesore në këtë version: Rrëshqitje në mesazh zanor. Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
|
||||||
|
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Ndryshimet kryesore në këtë version: Ndreqje të metash të ndryshme dhe përmirësime qëndrueshmërie.
|
||||||
|
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Huvudsakliga ändringar i denna version: Scrolla i röstmeddelanden. Diverse buggfixar och förbättrad stabilitet.
|
||||||
|
Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Huvudsakliga ändringar i denna version: Diverse buggfixar och förbättrad stabilitet.
|
||||||
|
Fullständig lista över ändringar: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Основні зміни в цій версії: Прокручування в голосових повідомленнях. Усунуто різні вади й поліпшено стабільність.
|
||||||
|
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
Основні зміни в цій версії: Усунуто різні вади й поліпшено стабільність.
|
||||||
|
Вичерпний перелік змін: https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
此版本中的主要變動:捲動音訊訊息。多個臭蟲修復與穩定性改善。
|
||||||
|
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
|
@ -0,0 +1,2 @@
|
||||||
|
此版本中的主要變動:多個臭蟲修復與穩定性改善。
|
||||||
|
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
|
@ -23,11 +23,9 @@ import android.provider.MediaStore
|
||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import im.vector.lib.multipicker.entity.MultiPickerImageType
|
import im.vector.lib.multipicker.entity.MultiPickerImageType
|
||||||
|
import im.vector.lib.multipicker.utils.MediaType
|
||||||
|
import im.vector.lib.multipicker.utils.createTemporaryMediaFile
|
||||||
import im.vector.lib.multipicker.utils.toMultiPickerImageType
|
import im.vector.lib.multipicker.utils.toMultiPickerImageType
|
||||||
import java.io.File
|
|
||||||
import java.text.SimpleDateFormat
|
|
||||||
import java.util.Date
|
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of taking a photo with Camera
|
* Implementation of taking a photo with Camera
|
||||||
|
@ -38,7 +36,7 @@ class CameraPicker {
|
||||||
* Start camera by using a ActivityResultLauncher
|
* Start camera by using a ActivityResultLauncher
|
||||||
* @return Uri of taken photo or null if the operation is cancelled.
|
* @return Uri of taken photo or null if the operation is cancelled.
|
||||||
*/
|
*/
|
||||||
fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher<Intent>): Uri? {
|
fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher<Intent>): Uri {
|
||||||
val photoUri = createPhotoUri(context)
|
val photoUri = createPhotoUri(context)
|
||||||
val intent = createIntent().apply {
|
val intent = createIntent().apply {
|
||||||
putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
|
putExtra(MediaStore.EXTRA_OUTPUT, photoUri)
|
||||||
|
@ -63,19 +61,9 @@ class CameraPicker {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun createPhotoUri(context: Context): Uri {
|
fun createPhotoUri(context: Context): Uri {
|
||||||
val file = createImageFile(context)
|
val file = createTemporaryMediaFile(context, MediaType.IMAGE)
|
||||||
val authority = context.packageName + ".multipicker.fileprovider"
|
val authority = context.packageName + ".multipicker.fileprovider"
|
||||||
return FileProvider.getUriForFile(context, authority, file)
|
return FileProvider.getUriForFile(context, authority, file)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createImageFile(context: Context): File {
|
|
||||||
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
|
||||||
val storageDir: File = context.filesDir
|
|
||||||
return File.createTempFile(
|
|
||||||
"${timeStamp}_", /* prefix */
|
|
||||||
".jpg", /* suffix */
|
|
||||||
storageDir /* directory */
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,9 @@ import android.provider.MediaStore
|
||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import im.vector.lib.multipicker.entity.MultiPickerVideoType
|
import im.vector.lib.multipicker.entity.MultiPickerVideoType
|
||||||
|
import im.vector.lib.multipicker.utils.MediaType
|
||||||
|
import im.vector.lib.multipicker.utils.createTemporaryMediaFile
|
||||||
import im.vector.lib.multipicker.utils.toMultiPickerVideoType
|
import im.vector.lib.multipicker.utils.toMultiPickerVideoType
|
||||||
import java.io.File
|
|
||||||
import java.text.SimpleDateFormat
|
|
||||||
import java.util.Date
|
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of taking a video with Camera
|
* Implementation of taking a video with Camera
|
||||||
|
@ -38,7 +36,7 @@ class CameraVideoPicker {
|
||||||
* Start camera by using a ActivityResultLauncher
|
* Start camera by using a ActivityResultLauncher
|
||||||
* @return Uri of taken photo or null if the operation is cancelled.
|
* @return Uri of taken photo or null if the operation is cancelled.
|
||||||
*/
|
*/
|
||||||
fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher<Intent>): Uri? {
|
fun startWithExpectingFile(context: Context, activityResultLauncher: ActivityResultLauncher<Intent>): Uri {
|
||||||
val videoUri = createVideoUri(context)
|
val videoUri = createVideoUri(context)
|
||||||
val intent = createIntent().apply {
|
val intent = createIntent().apply {
|
||||||
putExtra(MediaStore.EXTRA_OUTPUT, videoUri)
|
putExtra(MediaStore.EXTRA_OUTPUT, videoUri)
|
||||||
|
@ -63,19 +61,9 @@ class CameraVideoPicker {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun createVideoUri(context: Context): Uri {
|
fun createVideoUri(context: Context): Uri {
|
||||||
val file = createVideoFile(context)
|
val file = createTemporaryMediaFile(context, MediaType.VIDEO)
|
||||||
val authority = context.packageName + ".multipicker.fileprovider"
|
val authority = context.packageName + ".multipicker.fileprovider"
|
||||||
return FileProvider.getUriForFile(context, authority, file)
|
return FileProvider.getUriForFile(context, authority, file)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createVideoFile(context: Context): File {
|
|
||||||
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
|
||||||
val storageDir: File = context.filesDir
|
|
||||||
return File.createTempFile(
|
|
||||||
"${timeStamp}_", /* prefix */
|
|
||||||
".mp4", /* suffix */
|
|
||||||
storageDir /* directory */
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.lib.multipicker.utils
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import java.io.File
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Date
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
|
internal fun createTemporaryMediaFile(context: Context, mediaType: MediaType): File {
|
||||||
|
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
|
||||||
|
val storageDir: File = context.filesDir.also { it.mkdirs() }
|
||||||
|
val fileSuffix = when (mediaType) {
|
||||||
|
MediaType.IMAGE -> ".jpg"
|
||||||
|
MediaType.VIDEO -> ".mp4"
|
||||||
|
}
|
||||||
|
|
||||||
|
return File.createTempFile(
|
||||||
|
"${timeStamp}_",
|
||||||
|
fileSuffix,
|
||||||
|
storageDir
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
internal enum class MediaType {
|
||||||
|
IMAGE, VIDEO
|
||||||
|
}
|
|
@ -21,6 +21,8 @@ import kotlinx.coroutines.flow.Flow
|
||||||
import org.matrix.android.sdk.api.query.QueryStringValue
|
import org.matrix.android.sdk.api.query.QueryStringValue
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.room.Room
|
import org.matrix.android.sdk.api.session.room.Room
|
||||||
|
import org.matrix.android.sdk.api.session.room.getStateEvent
|
||||||
|
import org.matrix.android.sdk.api.session.room.getTimelineEvent
|
||||||
import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams
|
import org.matrix.android.sdk.api.session.room.members.RoomMemberQueryParams
|
||||||
import org.matrix.android.sdk.api.session.room.model.EventAnnotationsSummary
|
import org.matrix.android.sdk.api.session.room.model.EventAnnotationsSummary
|
||||||
import org.matrix.android.sdk.api.session.room.model.ReadReceipt
|
import org.matrix.android.sdk.api.session.room.model.ReadReceipt
|
||||||
|
@ -45,79 +47,81 @@ class FlowRoom(private val room: Room) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveRoomMembers(queryParams: RoomMemberQueryParams): Flow<List<RoomMemberSummary>> {
|
fun liveRoomMembers(queryParams: RoomMemberQueryParams): Flow<List<RoomMemberSummary>> {
|
||||||
return room.getRoomMembersLive(queryParams).asFlow()
|
return room.membershipService().getRoomMembersLive(queryParams).asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getRoomMembers(queryParams)
|
room.membershipService().getRoomMembers(queryParams)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveAnnotationSummary(eventId: String): Flow<Optional<EventAnnotationsSummary>> {
|
fun liveAnnotationSummary(eventId: String): Flow<Optional<EventAnnotationsSummary>> {
|
||||||
return room.getEventAnnotationsSummaryLive(eventId).asFlow()
|
return room.relationService().getEventAnnotationsSummaryLive(eventId).asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getEventAnnotationsSummary(eventId).toOptional()
|
room.relationService().getEventAnnotationsSummary(eventId).toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveTimelineEvent(eventId: String): Flow<Optional<TimelineEvent>> {
|
fun liveTimelineEvent(eventId: String): Flow<Optional<TimelineEvent>> {
|
||||||
return room.getTimelineEventLive(eventId).asFlow()
|
return room.timelineService().getTimelineEventLive(eventId).asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getTimelineEvent(eventId).toOptional()
|
room.getTimelineEvent(eventId).toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveStateEvent(eventType: String, stateKey: QueryStringValue): Flow<Optional<Event>> {
|
fun liveStateEvent(eventType: String, stateKey: QueryStringValue): Flow<Optional<Event>> {
|
||||||
return room.getStateEventLive(eventType, stateKey).asFlow()
|
return room.stateService().getStateEventLive(eventType, stateKey).asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getStateEvent(eventType, stateKey).toOptional()
|
room.getStateEvent(eventType, stateKey).toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveStateEvents(eventTypes: Set<String>): Flow<List<Event>> {
|
fun liveStateEvents(eventTypes: Set<String>): Flow<List<Event>> {
|
||||||
return room.getStateEventsLive(eventTypes).asFlow()
|
return room.stateService().getStateEventsLive(eventTypes).asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getStateEvents(eventTypes)
|
room.stateService().getStateEvents(eventTypes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveReadMarker(): Flow<Optional<String>> {
|
fun liveReadMarker(): Flow<Optional<String>> {
|
||||||
return room.getReadMarkerLive().asFlow()
|
return room.readService().getReadMarkerLive().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveReadReceipt(): Flow<Optional<String>> {
|
fun liveReadReceipt(): Flow<Optional<String>> {
|
||||||
return room.getMyReadReceiptLive().asFlow()
|
return room.readService().getMyReadReceiptLive().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveEventReadReceipts(eventId: String): Flow<List<ReadReceipt>> {
|
fun liveEventReadReceipts(eventId: String): Flow<List<ReadReceipt>> {
|
||||||
return room.getEventReadReceiptsLive(eventId).asFlow()
|
return room.readService().getEventReadReceiptsLive(eventId).asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveDraft(): Flow<Optional<UserDraft>> {
|
fun liveDraft(): Flow<Optional<UserDraft>> {
|
||||||
return room.getDraftLive().asFlow()
|
return room.draftService().getDraftLive().asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getDraft().toOptional()
|
room.draftService().getDraft().toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveNotificationState(): Flow<RoomNotificationState> {
|
fun liveNotificationState(): Flow<RoomNotificationState> {
|
||||||
return room.getLiveRoomNotificationState().asFlow()
|
return room.roomPushRuleService().getLiveRoomNotificationState().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveThreadSummaries(): Flow<List<ThreadSummary>> {
|
fun liveThreadSummaries(): Flow<List<ThreadSummary>> {
|
||||||
return room.getAllThreadSummariesLive().asFlow()
|
return room.threadsService().getAllThreadSummariesLive().asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getAllThreadSummaries()
|
room.threadsService().getAllThreadSummaries()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveThreadList(): Flow<List<ThreadRootEvent>> {
|
fun liveThreadList(): Flow<List<ThreadRootEvent>> {
|
||||||
return room.getAllThreadsLive().asFlow()
|
return room.threadsLocalService().getAllThreadsLive().asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getAllThreads()
|
room.threadsLocalService().getAllThreads()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveLocalUnreadThreadList(): Flow<List<ThreadRootEvent>> {
|
fun liveLocalUnreadThreadList(): Flow<List<ThreadRootEvent>> {
|
||||||
return room.getMarkedThreadNotificationsLive().asFlow()
|
return room.threadsLocalService().getMarkedThreadNotificationsLive().asFlow()
|
||||||
.startWith(room.coroutineDispatchers.io) {
|
.startWith(room.coroutineDispatchers.io) {
|
||||||
room.getMarkedThreadNotifications()
|
room.threadsLocalService().getMarkedThreadNotifications()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,16 +46,16 @@ import org.matrix.android.sdk.api.util.toOptional
|
||||||
class FlowSession(private val session: Session) {
|
class FlowSession(private val session: Session) {
|
||||||
|
|
||||||
fun liveRoomSummaries(queryParams: RoomSummaryQueryParams, sortOrder: RoomSortOrder = RoomSortOrder.NONE): Flow<List<RoomSummary>> {
|
fun liveRoomSummaries(queryParams: RoomSummaryQueryParams, sortOrder: RoomSortOrder = RoomSortOrder.NONE): Flow<List<RoomSummary>> {
|
||||||
return session.getRoomSummariesLive(queryParams, sortOrder).asFlow()
|
return session.roomService().getRoomSummariesLive(queryParams, sortOrder).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) {
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
session.getRoomSummaries(queryParams, sortOrder)
|
session.roomService().getRoomSummaries(queryParams, sortOrder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveGroupSummaries(queryParams: GroupSummaryQueryParams): Flow<List<GroupSummary>> {
|
fun liveGroupSummaries(queryParams: GroupSummaryQueryParams): Flow<List<GroupSummary>> {
|
||||||
return session.getGroupSummariesLive(queryParams).asFlow()
|
return session.groupService().getGroupSummariesLive(queryParams).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) {
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
session.getGroupSummaries(queryParams)
|
session.groupService().getGroupSummaries(queryParams)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,9 +67,9 @@ class FlowSession(private val session: Session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveBreadcrumbs(queryParams: RoomSummaryQueryParams): Flow<List<RoomSummary>> {
|
fun liveBreadcrumbs(queryParams: RoomSummaryQueryParams): Flow<List<RoomSummary>> {
|
||||||
return session.getBreadcrumbsLive(queryParams).asFlow()
|
return session.roomService().getBreadcrumbsLive(queryParams).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) {
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
session.getBreadcrumbs(queryParams)
|
session.roomService().getBreadcrumbs(queryParams)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,43 +85,47 @@ class FlowSession(private val session: Session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun livePushers(): Flow<List<Pusher>> {
|
fun livePushers(): Flow<List<Pusher>> {
|
||||||
return session.getPushersLive().asFlow()
|
return session.pushersService().getPushersLive().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveUser(userId: String): Flow<Optional<User>> {
|
fun liveUser(userId: String): Flow<Optional<User>> {
|
||||||
return session.getUserLive(userId).asFlow()
|
return session.userService().getUserLive(userId).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) {
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
session.getUser(userId).toOptional()
|
session.userService().getUser(userId).toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveRoomMember(userId: String, roomId: String): Flow<Optional<RoomMemberSummary>> {
|
fun liveRoomMember(userId: String, roomId: String): Flow<Optional<RoomMemberSummary>> {
|
||||||
return session.getRoomMemberLive(userId, roomId).asFlow()
|
return session.roomService().getRoomMemberLive(userId, roomId).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) {
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
session.getRoomMember(userId, roomId).toOptional()
|
session.roomService().getRoomMember(userId, roomId).toOptional()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveUsers(): Flow<List<User>> {
|
fun liveUsers(): Flow<List<User>> {
|
||||||
return session.getUsersLive().asFlow()
|
return session.userService().getUsersLive().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveIgnoredUsers(): Flow<List<User>> {
|
fun liveIgnoredUsers(): Flow<List<User>> {
|
||||||
return session.getIgnoredUsersLive().asFlow()
|
return session.userService().getIgnoredUsersLive().asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun livePagedUsers(filter: String? = null, excludedUserIds: Set<String>? = null): Flow<PagedList<User>> {
|
fun livePagedUsers(filter: String? = null, excludedUserIds: Set<String>? = null): Flow<PagedList<User>> {
|
||||||
return session.getPagedUsersLive(filter, excludedUserIds).asFlow()
|
return session.userService().getPagedUsersLive(filter, excludedUserIds).asFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveThreePIds(refreshData: Boolean): Flow<List<ThreePid>> {
|
fun liveThreePIds(refreshData: Boolean): Flow<List<ThreePid>> {
|
||||||
return session.getThreePidsLive(refreshData).asFlow()
|
return session.profileService().getThreePidsLive(refreshData).asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) { session.getThreePids() }
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
|
session.profileService().getThreePids()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun livePendingThreePIds(): Flow<List<ThreePid>> {
|
fun livePendingThreePIds(): Flow<List<ThreePid>> {
|
||||||
return session.getPendingThreePidsLive().asFlow()
|
return session.profileService().getPendingThreePidsLive().asFlow()
|
||||||
.startWith(session.coroutineDispatchers.io) { session.getPendingThreePids() }
|
.startWith(session.coroutineDispatchers.io) {
|
||||||
|
session.profileService().getPendingThreePids()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveUserCryptoDevices(userId: String): Flow<List<CryptoDeviceInfo>> {
|
fun liveUserCryptoDevices(userId: String): Flow<List<CryptoDeviceInfo>> {
|
||||||
|
@ -179,7 +183,7 @@ class FlowSession(private val session: Session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun liveRoomChangeMembershipState(): Flow<Map<String, ChangeMembershipState>> {
|
fun liveRoomChangeMembershipState(): Flow<Map<String, ChangeMembershipState>> {
|
||||||
return session.getChangeMembershipsLive().asFlow()
|
return session.roomService().getChangeMembershipsLive().asFlow()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,27 @@ buildscript {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dokkaHtml {
|
||||||
|
dokkaSourceSets {
|
||||||
|
configureEach {
|
||||||
|
// Emit warnings about not documented members.
|
||||||
|
reportUndocumented.set(true)
|
||||||
|
// Suppress legacy Riot's packages.
|
||||||
|
perPackageOption {
|
||||||
|
matchingRegex.set("org.matrix.android.sdk.internal.legacy.riot")
|
||||||
|
suppress.set(true)
|
||||||
|
}
|
||||||
|
perPackageOption {
|
||||||
|
matchingRegex.set("org.matrix.androidsdk.crypto.data")
|
||||||
|
suppress.set(true)
|
||||||
|
}
|
||||||
|
// List of files with module and package documentation
|
||||||
|
// https://kotlinlang.org/docs/reference/kotlin-doc.html#module-and-package-documentation
|
||||||
|
includes.from("./docs/modules.md", "./docs/packages.md")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
testOptions.unitTests.includeAndroidResources = true
|
testOptions.unitTests.includeAndroidResources = true
|
||||||
|
|
||||||
|
@ -32,7 +53,7 @@ android {
|
||||||
// that the app's state is completely cleared between tests.
|
// that the app's state is completely cleared between tests.
|
||||||
testInstrumentationRunnerArguments clearPackageData: 'true'
|
testInstrumentationRunnerArguments clearPackageData: 'true'
|
||||||
|
|
||||||
buildConfigField "String", "SDK_VERSION", "\"1.4.13\""
|
buildConfigField "String", "SDK_VERSION", "\"1.4.14\""
|
||||||
|
|
||||||
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
|
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
|
||||||
buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""
|
buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""
|
||||||
|
@ -171,7 +192,7 @@ dependencies {
|
||||||
implementation libs.apache.commonsImaging
|
implementation libs.apache.commonsImaging
|
||||||
|
|
||||||
// Phone number https://github.com/google/libphonenumber
|
// Phone number https://github.com/google/libphonenumber
|
||||||
implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.46'
|
implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.47'
|
||||||
|
|
||||||
testImplementation libs.tests.junit
|
testImplementation libs.tests.junit
|
||||||
testImplementation 'org.robolectric:robolectric:4.7.3'
|
testImplementation 'org.robolectric:robolectric:4.7.3'
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue