mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-24 18:36:21 +03:00
Merge branch 'develop' into feature/ons/static_location
This commit is contained in:
commit
b619f70904
621 changed files with 6411 additions and 2543 deletions
5
.github/ISSUE_TEMPLATE/bug.yml
vendored
5
.github/ISSUE_TEMPLATE/bug.yml
vendored
|
@ -57,8 +57,9 @@ body:
|
||||||
id: homeserver
|
id: homeserver
|
||||||
attributes:
|
attributes:
|
||||||
label: Homeserver
|
label: Homeserver
|
||||||
description: Which server is your account registered on?
|
description: |
|
||||||
placeholder: e.g. matrix.org
|
Which server is your account registered on? If it is a local or non-public homeserver, please tell us what is the homeserver implementation (ex: Synapse/Dendrite/etc.) and the version.
|
||||||
|
placeholder: e.g. matrix.org or Synapse 1.50.0rc1
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
|
|
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
|
@ -10,6 +10,8 @@ updates:
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "weekly"
|
interval: "weekly"
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "*github-script*"
|
||||||
# Updates for Gradle dependencies used in the app
|
# Updates for Gradle dependencies used in the app
|
||||||
- package-ecosystem: gradle
|
- package-ecosystem: gradle
|
||||||
directory: "/"
|
directory: "/"
|
||||||
|
|
86
.github/workflows/integration.yml
vendored
86
.github/workflows/integration.yml
vendored
|
@ -1,86 +0,0 @@
|
||||||
name: Integration Test
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request: { }
|
|
||||||
push:
|
|
||||||
branches: [ main, develop ]
|
|
||||||
|
|
||||||
# Enrich gradle.properties for CI/CD
|
|
||||||
env:
|
|
||||||
CI_GRADLE_ARG_PROPERTIES: >
|
|
||||||
-Porg.gradle.jvmargs=-Xmx2g
|
|
||||||
-Porg.gradle.parallel=false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Temporary add build of Android tests, which cannot be run on the CI right now, but they need to at least compile
|
|
||||||
# So it will be mandatory for this action to be successful on every PRs
|
|
||||||
compile-android-test:
|
|
||||||
name: Compile Android tests
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.gradle/caches
|
|
||||||
~/.gradle/wrapper
|
|
||||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-gradle-
|
|
||||||
- name: Compile Android tests
|
|
||||||
run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
|
|
||||||
|
|
||||||
integration-tests:
|
|
||||||
name: Integration Tests (Synapse)
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
api-level: [28]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: gradle/wrapper-validation-action@v1
|
|
||||||
- uses: actions/setup-java@v2
|
|
||||||
with:
|
|
||||||
distribution: 'adopt'
|
|
||||||
java-version: 11
|
|
||||||
- name: Set up Python 3.8
|
|
||||||
uses: actions/setup-python@v2
|
|
||||||
with:
|
|
||||||
python-version: 3.8
|
|
||||||
- name: Cache pip
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: ~/.cache/pip
|
|
||||||
key: ${{ runner.os }}-pip
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pip-
|
|
||||||
${{ runner.os }}-
|
|
||||||
- uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
~/.gradle/caches
|
|
||||||
~/.gradle/wrapper
|
|
||||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-gradle-
|
|
||||||
- name: Start synapse server
|
|
||||||
run: |
|
|
||||||
python3 -m venv .synapse
|
|
||||||
source .synapse/bin/activate
|
|
||||||
pip install synapse matrix-synapse
|
|
||||||
curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh --no-rate-limit \
|
|
||||||
| sed s/127.0.0.1/0.0.0.0/g | bash
|
|
||||||
- name: Run integration tests on API ${{ matrix.api-level }}
|
|
||||||
uses: reactivecircus/android-emulator-runner@v2
|
|
||||||
with:
|
|
||||||
api-level: ${{ matrix.api-level }}
|
|
||||||
#arch: x86_64
|
|
||||||
#disable-animations: true
|
|
||||||
# script: ./gradlew -PallWarningsAsErrors=false vector:connectedAndroidTest matrix-sdk-android:connectedAndroidTest
|
|
||||||
arch: x86
|
|
||||||
profile: Nexus 5X
|
|
||||||
force-avd-creation: false
|
|
||||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
|
||||||
emulator-build: 7425822
|
|
||||||
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedCheck --stacktrace
|
|
208
.github/workflows/integration_tests.yml
vendored
Normal file
208
.github/workflows/integration_tests.yml
vendored
Normal file
|
@ -0,0 +1,208 @@
|
||||||
|
name: Integration Tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request: { }
|
||||||
|
push:
|
||||||
|
branches: [ main, develop ]
|
||||||
|
|
||||||
|
# Enrich gradle.properties for CI/CD
|
||||||
|
env:
|
||||||
|
CI_GRADLE_ARG_PROPERTIES: >
|
||||||
|
-Porg.gradle.jvmargs=-Xmx2g
|
||||||
|
-Porg.gradle.parallel=false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build Android Tests [Matrix SDK]
|
||||||
|
build-android-test-matrix-sdk:
|
||||||
|
name: Matrix SDK - Build Android Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
- name: Build Android Tests for matrix-sdk-android
|
||||||
|
run: ./gradlew clean matrix-sdk-android:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
|
||||||
|
|
||||||
|
# Build Android Tests [Matrix APP]
|
||||||
|
build-android-test-app:
|
||||||
|
name: App - Build Android Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
- name: Build Android Tests for vector
|
||||||
|
run: ./gradlew clean vector:assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace -PallWarningsAsErrors=false
|
||||||
|
|
||||||
|
# Run Android Tests
|
||||||
|
integration-tests:
|
||||||
|
name: Matrix SDK - Running Integration Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
api-level: [ 28 ]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: gradle/wrapper-validation-action@v1
|
||||||
|
- uses: actions/setup-java@v2
|
||||||
|
with:
|
||||||
|
distribution: 'adopt'
|
||||||
|
java-version: 11
|
||||||
|
- name: Set up Python 3.8
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
- name: Cache pip
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pip-
|
||||||
|
${{ runner.os }}-
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-gradle-
|
||||||
|
- name: Start synapse server
|
||||||
|
run: |
|
||||||
|
python3 -m venv .synapse
|
||||||
|
source .synapse/bin/activate
|
||||||
|
pip install synapse matrix-synapse
|
||||||
|
curl https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh -o start.sh
|
||||||
|
chmod 777 start.sh
|
||||||
|
./start.sh --no-rate-limit
|
||||||
|
# package: org.matrix.android.sdk.session
|
||||||
|
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
|
||||||
|
continue-on-error: true
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86
|
||||||
|
profile: Nexus 5X
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
emulator-build: 7425822
|
||||||
|
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.session' matrix-sdk-android:connectedDebugAndroidTest
|
||||||
|
- name: Read Results [org.matrix.android.sdk.session]
|
||||||
|
continue-on-error: true
|
||||||
|
id: get-comment-body-session
|
||||||
|
run: |
|
||||||
|
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
||||||
|
echo "::set-output name=session::passed=$body"
|
||||||
|
# package: org.matrix.android.sdk.account
|
||||||
|
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.account] API[${{ matrix.api-level }}]
|
||||||
|
continue-on-error: true
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86
|
||||||
|
profile: Nexus 5X
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
emulator-build: 7425822
|
||||||
|
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.account' matrix-sdk-android:connectedDebugAndroidTest
|
||||||
|
- name: Read Results [org.matrix.android.sdk.account]
|
||||||
|
continue-on-error: true
|
||||||
|
id: get-comment-body-account
|
||||||
|
run: |
|
||||||
|
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
||||||
|
echo "::set-output name=account::passed=$body"
|
||||||
|
# package: org.matrix.android.sdk.internal
|
||||||
|
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.internal] API[${{ matrix.api-level }}]
|
||||||
|
continue-on-error: true
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86
|
||||||
|
profile: Nexus 5X
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
emulator-build: 7425822
|
||||||
|
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.internal' matrix-sdk-android:connectedDebugAndroidTest
|
||||||
|
- name: Read Results [org.matrix.android.sdk.internal]
|
||||||
|
continue-on-error: true
|
||||||
|
id: get-comment-body-internal
|
||||||
|
run: |
|
||||||
|
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
||||||
|
echo "::set-output name=internal::passed=$body"
|
||||||
|
# package: org.matrix.android.sdk.ordering
|
||||||
|
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.ordering] API[${{ matrix.api-level }}]
|
||||||
|
continue-on-error: true
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86
|
||||||
|
profile: Nexus 5X
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
emulator-build: 7425822
|
||||||
|
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.ordering' matrix-sdk-android:connectedDebugAndroidTest
|
||||||
|
- name: Read Results [org.matrix.android.sdk.ordering]
|
||||||
|
continue-on-error: true
|
||||||
|
id: get-comment-body-ordering
|
||||||
|
run: |
|
||||||
|
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
||||||
|
echo "::set-output name=ordering::passed=$body"
|
||||||
|
# package: class PermalinkParserTest
|
||||||
|
- name: Run integration tests for Matrix SDK class [org.matrix.android.sdk.PermalinkParserTest] API[${{ matrix.api-level }}]
|
||||||
|
continue-on-error: true
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
arch: x86
|
||||||
|
profile: Nexus 5X
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
emulator-build: 7425822
|
||||||
|
script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class='org.matrix.android.sdk.PermalinkParserTest' matrix-sdk-android:connectedDebugAndroidTest
|
||||||
|
- name: Read Results [org.matrix.android.sd.PermalinkParserTest]
|
||||||
|
continue-on-error: true
|
||||||
|
id: get-comment-body-permalink
|
||||||
|
run: |
|
||||||
|
body="$(cat ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml | grep "<testsuite" | sed "s@.*tests=\(.*\)time=.*@\1@")"
|
||||||
|
echo "::set-output name=permalink::passed=$body"
|
||||||
|
- name: Find Comment
|
||||||
|
uses: peter-evans/find-comment@v1
|
||||||
|
id: fc
|
||||||
|
with:
|
||||||
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
|
comment-author: 'github-actions[bot]'
|
||||||
|
body-includes: Integration Tests Results
|
||||||
|
- name: Publish results to PR
|
||||||
|
uses: peter-evans/create-or-update-comment@v1
|
||||||
|
with:
|
||||||
|
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||||
|
issue-number: ${{ github.event.pull_request.number }}
|
||||||
|
body: |
|
||||||
|
### Matrix SDK
|
||||||
|
## Integration Tests Results:
|
||||||
|
- `[org.matrix.android.sdk.session]`<br>${{ steps.get-comment-body-session.outputs.session }}
|
||||||
|
- `[org.matrix.android.sdk.account]`<br>${{ steps.get-comment-body-account.outputs.account }}
|
||||||
|
- `[org.matrix.android.sdk.internal]`<br>${{ steps.get-comment-body-internal.outputs.internal }}
|
||||||
|
- `[org.matrix.android.sdk.ordering]`<br>${{ steps.get-comment-body-ordering.outputs.ordering }}
|
||||||
|
- `[org.matrix.android.sdk.PermalinkParserTest]`<br>${{ steps.get-comment-body-permalink.outputs.permalink }}
|
||||||
|
edit-mode: replace
|
||||||
|
## Useful commands
|
||||||
|
# script: ./integration_tests_script.sh
|
||||||
|
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.session' matrix-sdk-android:connectedDebugAndroidTest --info
|
||||||
|
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES matrix-sdk-android:connectedAndroidTest --info
|
||||||
|
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedCheck --stacktrace
|
||||||
|
# script: ./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class=org.matrix.android.sdk.session.room.timeline.ChunkEntityTest matrix-sdk-android:connectedAndroidTest --info
|
2
.github/workflows/quality.yml
vendored
2
.github/workflows/quality.yml
vendored
|
@ -74,7 +74,7 @@ jobs:
|
||||||
edit-mode: replace
|
edit-mode: replace
|
||||||
- name: Delete comment if needed
|
- name: Delete comment if needed
|
||||||
if: always() && steps.fc.outputs.comment-id != '' && steps.ktlint-results.outputs.add_comment == 'false'
|
if: always() && steps.fc.outputs.comment-id != '' && steps.ktlint-results.outputs.add_comment == 'false'
|
||||||
uses: actions/github-script@v5.1.0
|
uses: actions/github-script@v3
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.issues.deleteComment({
|
github.issues.deleteComment({
|
||||||
|
|
|
@ -5,6 +5,31 @@ on:
|
||||||
types: [labeled]
|
types: [labeled]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
apply_Z-Labs_label:
|
||||||
|
name: Add Z-Labs label for features behind labs flags
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||||
|
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-Location-Sharing') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||||
|
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-Tags')
|
||||||
|
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: ['Z-Labs']
|
||||||
|
})
|
||||||
|
|
||||||
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
|
||||||
|
@ -51,32 +76,57 @@ jobs:
|
||||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
# delight_issues_to_board:
|
add_product_issues:
|
||||||
# name: Spaces issues to new Delight project board
|
name: X-Needs-Product to Design project board
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# # Skip in forks
|
if: >
|
||||||
# if: >
|
contains(github.event.issue.labels.*.name, 'X-Needs-Product')
|
||||||
# github.repository == 'vector-im/element-android' &&
|
steps:
|
||||||
# contains(github.event.issue.labels.*.name, 'A-Spaces') ||
|
- uses: octokit/graphql-action@v2.x
|
||||||
# contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
|
id: add_to_project
|
||||||
# contains(github.event.issue.labels.*.name, 'A-Subspaces')
|
with:
|
||||||
# steps:
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
# - uses: octokit/graphql-action@v2.x
|
query: |
|
||||||
# with:
|
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||||
# headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||||
# query: |
|
projectNextItem {
|
||||||
# mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
id
|
||||||
# addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
}
|
||||||
# projectNextItem {
|
}
|
||||||
# id
|
}
|
||||||
# }
|
projectid: ${{ env.PROJECT_ID }}
|
||||||
# }
|
contentid: ${{ github.event.issue.node_id }}
|
||||||
# }
|
env:
|
||||||
# projectid: ${{ env.PROJECT_ID }}
|
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||||
# contentid: ${{ github.event.issue.node_id }}
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
# env:
|
|
||||||
# PROJECT_ID: "PN_kwDOAM0swc1HvQ"
|
delight_issues_to_board:
|
||||||
# GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
name: Spaces issues to Delight project board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
# Skip in forks
|
||||||
|
if: >
|
||||||
|
github.repository == 'vector-im/element-android' &&
|
||||||
|
(contains(github.event.issue.labels.*.name, 'A-Spaces') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Subspaces') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-IA'))
|
||||||
|
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_kwDOAM0swc1HvQ"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
move_voice-message_issues:
|
move_voice-message_issues:
|
||||||
name: A-Voice Messages to voice message board
|
name: A-Voice Messages to voice message board
|
139
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
139
.github/workflows/triage-move-review-requests.yml
vendored
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
name: Move pull requests asking for review to the relevant project
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [review_requested]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
add_design_pr_to_project:
|
||||||
|
name: Move PRs asking for design review to the design board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: find_team_members
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
query find_team_members($team: String!) {
|
||||||
|
organization(login: "vector-im") {
|
||||||
|
team(slug: $team) {
|
||||||
|
members {
|
||||||
|
nodes {
|
||||||
|
login
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
team: ${{ env.TEAM }}
|
||||||
|
env:
|
||||||
|
TEAM: "design"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
- id: any_matching_reviewers
|
||||||
|
run: |
|
||||||
|
# Fetch requested reviewers, and people who are on the team
|
||||||
|
echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
|
||||||
|
echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
|
||||||
|
jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
|
||||||
|
jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
|
||||||
|
|
||||||
|
# Fetch requested team reviewers, and the name of the team
|
||||||
|
echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
|
||||||
|
jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
|
||||||
|
echo '${{ env.TEAM }}' | tee /tmp/team.txt
|
||||||
|
|
||||||
|
# If either a reviewer matches a team member, or a team matches our team, say "true"
|
||||||
|
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
|
||||||
|
echo "::set-output name=match::true"
|
||||||
|
elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
|
||||||
|
echo "::set-output name=match::true"
|
||||||
|
else
|
||||||
|
echo "::set-output name=match::false"
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
TEAM: "design"
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_project
|
||||||
|
if: steps.any_matching_reviewers.outputs.match == 'true'
|
||||||
|
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.pull_request.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||||
|
TEAM: "design"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
add_product_pr_to_project:
|
||||||
|
name: Move PRs asking for product review to the product board
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: find_team_members
|
||||||
|
with:
|
||||||
|
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||||
|
query: |
|
||||||
|
query find_team_members($team: String!) {
|
||||||
|
organization(login: "vector-im") {
|
||||||
|
team(slug: $team) {
|
||||||
|
members {
|
||||||
|
nodes {
|
||||||
|
login
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
team: ${{ env.TEAM }}
|
||||||
|
env:
|
||||||
|
TEAM: "product"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
- id: any_matching_reviewers
|
||||||
|
run: |
|
||||||
|
# Fetch requested reviewers, and people who are on the team
|
||||||
|
echo '${{ tojson(fromjson(steps.find_team_members.outputs.data).organization.team.members.nodes[*].login) }}' | tee /tmp/team_members.json
|
||||||
|
echo '${{ tojson(github.event.pull_request.requested_reviewers[*].login) }}' | tee /tmp/reviewers.json
|
||||||
|
jq --raw-output .[] < /tmp/team_members.json | sort | tee /tmp/team_members.txt
|
||||||
|
jq --raw-output .[] < /tmp/reviewers.json | sort | tee /tmp/reviewers.txt
|
||||||
|
|
||||||
|
# Fetch requested team reviewers, and the name of the team
|
||||||
|
echo '${{ tojson(github.event.pull_request.requested_teams[*].slug) }}' | tee /tmp/team_reviewers.json
|
||||||
|
jq --raw-output .[] < /tmp/team_reviewers.json | sort | tee /tmp/team_reviewers.txt
|
||||||
|
echo '${{ env.TEAM }}' | tee /tmp/team.txt
|
||||||
|
|
||||||
|
# If either a reviewer matches a team member, or a team matches our team, say "true"
|
||||||
|
if [ $(join /tmp/team_members.txt /tmp/reviewers.txt | wc -l) != 0 ]; then
|
||||||
|
echo "::set-output name=match::true"
|
||||||
|
elif [ $(join /tmp/team.txt /tmp/team_reviewers.txt | wc -l) != 0 ]; then
|
||||||
|
echo "::set-output name=match::true"
|
||||||
|
else
|
||||||
|
echo "::set-output name=match::false"
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
TEAM: "product"
|
||||||
|
- uses: octokit/graphql-action@v2.x
|
||||||
|
id: add_to_project
|
||||||
|
if: steps.any_matching_reviewers.outputs.match == 'true'
|
||||||
|
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.pull_request.node_id }}
|
||||||
|
env:
|
||||||
|
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||||
|
TEAM: "product"
|
||||||
|
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
3
.github/workflows/triage-priority-bugs.yml
vendored
3
.github/workflows/triage-priority-bugs.yml
vendored
|
@ -38,6 +38,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, 'Z-UISI') ||
|
||||||
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
|
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
||||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||||
|
@ -50,7 +51,7 @@ jobs:
|
||||||
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||||
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||||
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@bb266ff4dde9242060e2d5418e120a133586d488
|
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -34,3 +34,29 @@ jobs:
|
||||||
project: Issue triage
|
project: Issue triage
|
||||||
column: Triaged
|
column: Triaged
|
||||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||||
|
|
||||||
|
remove_Z-Labs_label:
|
||||||
|
name: Remove Z-Labs label when features behind labs flags are removed
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: >
|
||||||
|
!(contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||||
|
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-Location-Sharing') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||||
|
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-Tags')) &&
|
||||||
|
contains(github.event.issue.labels.*.name, 'Z-Labs')
|
||||||
|
steps:
|
||||||
|
- uses: actions/github-script@v5
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
github.rest.issues.removeLabel({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
name: ['Z-Labs']
|
||||||
|
})
|
64
CHANGES.md
64
CHANGES.md
|
@ -1,3 +1,67 @@
|
||||||
|
Changes in Element v1.3.15 (2022-01-18)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fix crash when viewing source which contains an emoji ([#4796](https://github.com/vector-im/element-android/issues/4796))
|
||||||
|
- Prevent crash in Timeline and add more logs. ([#4959](https://github.com/vector-im/element-android/issues/4959))
|
||||||
|
- Fix crash on API <24 and make sure this error will not occur again. ([#4962](https://github.com/vector-im/element-android/issues/4962))
|
||||||
|
- Fixes sign in/up crash when selecting ems and other server types which use SSO ([#4969](https://github.com/vector-im/element-android/issues/4969))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element v1.3.14 (2022-01-12)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Fix sending events in encrypted rooms broken, and incremental sync broken in 1.3.13 ([#4924](https://github.com/vector-im/element-android/issues/4924))
|
||||||
|
|
||||||
|
|
||||||
|
Changes in Element v1.3.13 (2022-01-11)
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Features ✨
|
||||||
|
----------
|
||||||
|
- Updates onboarding splash screen to have a dedicated sign in button and removes the dual purpose sign in/up stage ([#4382](https://github.com/vector-im/element-android/issues/4382))
|
||||||
|
- Display Analytics opt-in screen at first start-up of the app ([#4892](https://github.com/vector-im/element-android/issues/4892))
|
||||||
|
- New attachment picker UI ([#3444](https://github.com/vector-im/element-android/issues/3444))
|
||||||
|
- Add labs support for rendering LaTeX maths (MSC2191) ([#2133](https://github.com/vector-im/element-android/issues/2133))
|
||||||
|
- Allow changing nick colors from the member detail screen ([#2614](https://github.com/vector-im/element-android/issues/2614))
|
||||||
|
- Analytics: Track Errors ([#4719](https://github.com/vector-im/element-android/issues/4719))
|
||||||
|
- Change internal timeline management. ([#4405](https://github.com/vector-im/element-android/issues/4405))
|
||||||
|
- Translate the error observed when the user is not allowed to join a room ([#4847](https://github.com/vector-im/element-android/issues/4847))
|
||||||
|
|
||||||
|
Bugfixes 🐛
|
||||||
|
----------
|
||||||
|
- Stop using CharSequence as EpoxyAttribute because it can lead to crash if the CharSequence mutates during rendering. ([#4837](https://github.com/vector-im/element-android/issues/4837))
|
||||||
|
- Better handling of misconfigured room encryption ([#4711](https://github.com/vector-im/element-android/issues/4711))
|
||||||
|
- Fix message replies/quotes to respect newlines. ([#4540](https://github.com/vector-im/element-android/issues/4540))
|
||||||
|
- Polls: unable to create a poll with more than 10 answers ([#4735](https://github.com/vector-im/element-android/issues/4735))
|
||||||
|
- Fix for broken unread message indicator on the room list when there are no messages in the room. ([#4749](https://github.com/vector-im/element-android/issues/4749))
|
||||||
|
- Fixes newer emojis rendering strangely when inserting from the system keyboard ([#4756](https://github.com/vector-im/element-android/issues/4756))
|
||||||
|
- Fixing unable to change change avatar in some scenarios ([#4767](https://github.com/vector-im/element-android/issues/4767))
|
||||||
|
- Tentative fix for the speaker being used instead of earpiece for the outgoing call ringtone on lineage os ([#4781](https://github.com/vector-im/element-android/issues/4781))
|
||||||
|
- Fixing crashes when quickly scrolling or restoring the room timeline ([#4789](https://github.com/vector-im/element-android/issues/4789))
|
||||||
|
- Fixing encrypted non message events showing up as notification messages (eg when a participant joins, mutes or leaves a voice call) ([#4804](https://github.com/vector-im/element-android/issues/4804))
|
||||||
|
|
||||||
|
SDK API changes ⚠️
|
||||||
|
------------------
|
||||||
|
- Introduce method onStateUpdated on Timeline.Callback ([#4405](https://github.com/vector-im/element-android/issues/4405))
|
||||||
|
- Support tagged events in Room Account Data (MSC2437) ([#4753](https://github.com/vector-im/element-android/issues/4753))
|
||||||
|
|
||||||
|
Other changes
|
||||||
|
-------------
|
||||||
|
- Workaround to fetch all the pending toDevice events from a Synapse homeserver ([#4612](https://github.com/vector-im/element-android/issues/4612))
|
||||||
|
- Toolbar is added to a views with QR code scan ([#4644](https://github.com/vector-im/element-android/issues/4644))
|
||||||
|
- Open share UI provides by the system when sharing media or text. ([#4745](https://github.com/vector-im/element-android/issues/4745))
|
||||||
|
- Cleaning rendering of state events in timeline ([#4747](https://github.com/vector-im/element-android/issues/4747))
|
||||||
|
- Enabling new FTUE Auth onboarding base, includes the "I already have an account" button in the splash ([#4872](https://github.com/vector-im/element-android/issues/4872))
|
||||||
|
- Olm lib is now hosted in MavenCentral - upgrade to 3.2.10 ([#4882](https://github.com/vector-im/element-android/issues/4882))
|
||||||
|
- Remove deprecated experimental restricted space lab option ([#4889](https://github.com/vector-im/element-android/issues/4889))
|
||||||
|
- Add ktlint results on github as a comment only on fail ([#4888](https://github.com/vector-im/element-android/issues/4888))
|
||||||
|
- Fix github actions ktlint reports and publish results on PR as comment ([#4864](https://github.com/vector-im/element-android/issues/4864))
|
||||||
|
|
||||||
|
|
||||||
Changes in Element v1.3.12 (2021-12-20)
|
Changes in Element v1.3.12 (2021-12-20)
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,9 @@ Supported filename extensions are:
|
||||||
|
|
||||||
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
|
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
|
||||||
- ``.bugfix``: Signifying a bug fix.
|
- ``.bugfix``: Signifying a bug fix.
|
||||||
|
- ``.wip``: Signifying a work in progress change, typically a component of a larger feature which will be enabled once all tasks are complete.
|
||||||
- ``.doc``: Signifying a documentation improvement.
|
- ``.doc``: Signifying a documentation improvement.
|
||||||
- ``.removal``: Signifying a deprecation or removal of public API. Can be used to notifying about API change in the Matrix SDK
|
- ``.sdk``: Signifying a change to the Matrix SDK, this could be an addition, deprecation or removal of a public API.
|
||||||
- ``.misc``: Any other changes.
|
- ``.misc``: Any other changes.
|
||||||
|
|
||||||
See https://github.com/twisted/towncrier#news-fragments if you need more details.
|
See https://github.com/twisted/towncrier#news-fragments if you need more details.
|
||||||
|
@ -139,7 +140,7 @@ If a string is not used anymore, it should be removed from the resource, but ple
|
||||||
|
|
||||||
Instead, please comment the original string with:
|
Instead, please comment the original string with:
|
||||||
```xml
|
```xml
|
||||||
<!-- TO BE REMOVED -->
|
<!-- TODO TO BE REMOVED -->
|
||||||
```
|
```
|
||||||
The string will be removed during the next sync with Weblate.
|
The string will be removed during the next sync with Weblate.
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
# Element Android
|
# Element Android
|
||||||
|
|
||||||
Element Android is an Android Matrix Client provided by [Element](https://element.io/).
|
Element Android is an Android Matrix Client provided by [Element](https://element.io/). The app can be run on every Android devices with Android OS Lollipop and more (API 21).
|
||||||
|
|
||||||
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience.
|
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience.
|
||||||
|
|
||||||
|
|
|
@ -47,12 +47,10 @@ android {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(":library:ui-styles")
|
implementation project(":library:ui-styles")
|
||||||
|
implementation project(":library:core-utils")
|
||||||
|
|
||||||
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
|
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
|
||||||
|
|
||||||
implementation libs.rx.rxKotlin
|
|
||||||
implementation libs.rx.rxAndroid
|
|
||||||
|
|
||||||
implementation libs.androidx.core
|
implementation libs.androidx.core
|
||||||
implementation libs.androidx.appCompat
|
implementation libs.androidx.appCompat
|
||||||
implementation libs.androidx.recyclerview
|
implementation libs.androidx.recyclerview
|
||||||
|
|
|
@ -20,12 +20,9 @@ import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import im.vector.lib.attachmentviewer.databinding.ItemVideoAttachmentBinding
|
import im.vector.lib.attachmentviewer.databinding.ItemVideoAttachmentBinding
|
||||||
import io.reactivex.Observable
|
import im.vector.lib.core.utils.timer.CountUpTimer
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
|
||||||
import io.reactivex.disposables.Disposable
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
|
|
||||||
// TODO, it would be probably better to use a unique media player
|
// TODO, it would be probably better to use a unique media player
|
||||||
// for better customization and control
|
// for better customization and control
|
||||||
|
@ -35,7 +32,7 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
|
|
||||||
private var isSelected = false
|
private var isSelected = false
|
||||||
private var mVideoPath: String? = null
|
private var mVideoPath: String? = null
|
||||||
private var progressDisposable: Disposable? = null
|
private var countUpTimer: CountUpTimer? = null
|
||||||
private var progress: Int = 0
|
private var progress: Int = 0
|
||||||
private var wasPaused = false
|
private var wasPaused = false
|
||||||
|
|
||||||
|
@ -47,8 +44,7 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
|
|
||||||
override fun onRecycled() {
|
override fun onRecycled() {
|
||||||
super.onRecycled()
|
super.onRecycled()
|
||||||
progressDisposable?.dispose()
|
stopTimer()
|
||||||
progressDisposable = null
|
|
||||||
mVideoPath = null
|
mVideoPath = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,8 +68,7 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
override fun entersBackground() {
|
override fun entersBackground() {
|
||||||
if (views.videoView.isPlaying) {
|
if (views.videoView.isPlaying) {
|
||||||
progress = views.videoView.currentPosition
|
progress = views.videoView.currentPosition
|
||||||
progressDisposable?.dispose()
|
stopTimer()
|
||||||
progressDisposable = null
|
|
||||||
views.videoView.stopPlayback()
|
views.videoView.stopPlayback()
|
||||||
views.videoView.pause()
|
views.videoView.pause()
|
||||||
}
|
}
|
||||||
|
@ -91,8 +86,7 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
} else {
|
} else {
|
||||||
progress = 0
|
progress = 0
|
||||||
}
|
}
|
||||||
progressDisposable?.dispose()
|
stopTimer()
|
||||||
progressDisposable = null
|
|
||||||
} else {
|
} else {
|
||||||
if (mVideoPath != null) {
|
if (mVideoPath != null) {
|
||||||
startPlaying()
|
startPlaying()
|
||||||
|
@ -107,11 +101,10 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
views.videoView.isVisible = true
|
views.videoView.isVisible = true
|
||||||
|
|
||||||
views.videoView.setOnPreparedListener {
|
views.videoView.setOnPreparedListener {
|
||||||
progressDisposable?.dispose()
|
stopTimer()
|
||||||
progressDisposable = Observable.interval(100, TimeUnit.MILLISECONDS)
|
countUpTimer = CountUpTimer(100).also {
|
||||||
.timeInterval()
|
it.tickListener = object : CountUpTimer.TickListener {
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
override fun onTick(milliseconds: Long) {
|
||||||
.subscribe {
|
|
||||||
val duration = views.videoView.duration
|
val duration = views.videoView.duration
|
||||||
val progress = views.videoView.currentPosition
|
val progress = views.videoView.currentPosition
|
||||||
val isPlaying = views.videoView.isPlaying
|
val isPlaying = views.videoView.isPlaying
|
||||||
|
@ -119,6 +112,9 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
eventListener?.get()?.onEvent(AttachmentEvents.VideoEvent(isPlaying, progress, duration))
|
eventListener?.get()?.onEvent(AttachmentEvents.VideoEvent(isPlaying, progress, duration))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
it.resume()
|
||||||
|
}
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
views.videoView.setVideoPath(mVideoPath)
|
views.videoView.setVideoPath(mVideoPath)
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
|
@ -134,6 +130,11 @@ class VideoViewHolder constructor(itemView: View) :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun stopTimer() {
|
||||||
|
countUpTimer?.stop()
|
||||||
|
countUpTimer = null
|
||||||
|
}
|
||||||
|
|
||||||
override fun handleCommand(commands: AttachmentCommands) {
|
override fun handleCommand(commands: AttachmentCommands) {
|
||||||
if (!isSelected) return
|
if (!isSelected) return
|
||||||
when (commands) {
|
when (commands) {
|
||||||
|
|
10
build.gradle
10
build.gradle
|
@ -153,13 +153,3 @@ project(":diff-match-patch") {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
//
|
|
||||||
//project(":matrix-sdk-android-rx") {
|
|
||||||
// sonarqube {
|
|
||||||
// properties {
|
|
||||||
// property "sonar.sources", project(":matrix-sdk-android-rx").android.sourceSets.main.java.srcDirs
|
|
||||||
// // exclude source code from analyses separated by a colon (:)
|
|
||||||
// // property "sonar.exclusions", "**/*.*"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Add labs support for rendering LaTeX maths (MSC2191)
|
|
|
@ -1 +0,0 @@
|
||||||
Allow changing nick colors from the member detail screen
|
|
|
@ -1 +0,0 @@
|
||||||
New attachment picker UI
|
|
1
changelog.d/3839.bugfix
Normal file
1
changelog.d/3839.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Notification does not take me to the room when another space was last viewed
|
1
changelog.d/3932.bugfix
Normal file
1
changelog.d/3932.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Explore Rooms overflow menu - content update include "Create room"
|
|
@ -1 +0,0 @@
|
||||||
Updates onboarding splash screen to have a dedicated sign in button and removes the dual purpose sign in/up stage
|
|
|
@ -1 +0,0 @@
|
||||||
Change internal timeline management.
|
|
|
@ -1 +0,0 @@
|
||||||
Introduce method onStateUpdated on Timeline.Callback
|
|
|
@ -1 +0,0 @@
|
||||||
Fix message replies/quotes to respect newlines.
|
|
1
changelog.d/4584.feature
Normal file
1
changelog.d/4584.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Enables the FTUE splash carousel
|
|
@ -1 +0,0 @@
|
||||||
Workaround to fetch all the pending toDevice events from a Synapse homeserver
|
|
|
@ -1 +0,0 @@
|
||||||
Toolbar is added to a views with QR code scan
|
|
1
changelog.d/4669.bugfix
Normal file
1
changelog.d/4669.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix sync timeout after returning from background
|
|
@ -1 +0,0 @@
|
||||||
Analytics: Track Errors
|
|
1
changelog.d/4734.misc
Normal file
1
changelog.d/4734.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Analytics: send more Events
|
|
@ -1 +0,0 @@
|
||||||
Polls: unable to create a poll with more than 10 answers
|
|
|
@ -1 +0,0 @@
|
||||||
Open share UI provides by the system when sharing media or text.
|
|
|
@ -1 +0,0 @@
|
||||||
Cleaning rendering of state events in timeline
|
|
|
@ -1 +0,0 @@
|
||||||
Fix for broken unread message indicator on the room list when there are no messages in the room.
|
|
|
@ -1 +0,0 @@
|
||||||
Support tagged events in Room Account Data (MSC2437)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixes newer emojis rendering strangely when inserting from the system keyboard
|
|
|
@ -1 +0,0 @@
|
||||||
Fixing unable to change change avatar in some scenarios
|
|
|
@ -1 +0,0 @@
|
||||||
Tentative fix for the speaker being used instead of earpiece for the outgoing call ringtone on lineage os
|
|
|
@ -1 +0,0 @@
|
||||||
Fixing crashes when quickly scrolling or restoring the room timeline
|
|
|
@ -1 +0,0 @@
|
||||||
Fixing encrypted non message events showing up as notification messages (eg when a participant joins, mutes or leaves a voice call)
|
|
1
changelog.d/4811.feature
Normal file
1
changelog.d/4811.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Enabling native support for window resizing
|
|
@ -1 +0,0 @@
|
||||||
Stop using CharSequence as EpoxyAttribute because it can lead to crash if the CharSequence mutates during rendering.
|
|
1
changelog.d/4842.misc
Normal file
1
changelog.d/4842.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix integration tests and add a comment with results (still not perfect due to github actions resource limitations)
|
|
@ -1 +0,0 @@
|
||||||
Translate the error observed when the user is not allowed to join a room
|
|
|
@ -1 +0,0 @@
|
||||||
Fix github actions ktlint reports and publish results on PR as comment
|
|
1
changelog.d/4865.misc
Normal file
1
changelog.d/4865.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
"/kick" command is replaced with "/remove". Also replaced all occurrences in string resources
|
|
@ -1 +0,0 @@
|
||||||
Enabling new FTUE Auth onboarding base, includes the "I already have an account" button in the splash
|
|
1
changelog.d/4880.wip
Normal file
1
changelog.d/4880.wip
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Updates the onboarding carousel images, copy and improves the handling of different device sizes
|
|
@ -1 +0,0 @@
|
||||||
Olm lib is now hosted in MavenCentral - upgrade to 3.2.10
|
|
3
changelog.d/4884.misc
Normal file
3
changelog.d/4884.misc
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Toolbar management rework. Toolbar title's and subtitle's text appearance now controlled by theme without local overrides. Helper class introduced to
|
||||||
|
help with toolbar configuration. Toolbar title, subtitle and navigation button widgets are removed where it is possible and replaced with built-in
|
||||||
|
toolbar widgets.
|
|
@ -1 +0,0 @@
|
||||||
Add ktlint results on github as a comment only on fail
|
|
|
@ -1 +0,0 @@
|
||||||
Remove deprecated experimental restricted space lab option
|
|
|
@ -1 +0,0 @@
|
||||||
Display Analytics opt-in screen at first start-up of the app
|
|
1
changelog.d/4895.removal
Normal file
1
changelog.d/4895.removal
Normal file
|
@ -0,0 +1 @@
|
||||||
|
`StateService.sendStateEvent()` now takes a non-nullable String for the parameter `stateKey`. If null was used, just now use an empty string.
|
1
changelog.d/4914.wip
Normal file
1
changelog.d/4914.wip
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Disabling onboarding automatic carousel transitions on user interaction
|
1
changelog.d/4918.wip
Normal file
1
changelog.d/4918.wip
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Locking phones to portrait during the FTUE onboarding
|
1
changelog.d/4926.misc
Normal file
1
changelog.d/4926.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add signing config for the release buildType. No secret added
|
1
changelog.d/4927.wip
Normal file
1
changelog.d/4927.wip
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Adds a messaging use case screen to the FTUE onboarding
|
1
changelog.d/4935.bugfix
Normal file
1
changelog.d/4935.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix a wrong network error issue in the Legals screen
|
1
changelog.d/4942.misc
Normal file
1
changelog.d/4942.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Remove unused module matrix-sdk-android-rx and do some cleanup
|
1
changelog.d/4948.bugfix
Normal file
1
changelog.d/4948.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Prevent Alerts to be displayed in the automatically displayed analytics opt-in screen
|
1
changelog.d/4949.misc
Normal file
1
changelog.d/4949.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Sync issue automation with element-web
|
1
changelog.d/4960.misc
Normal file
1
changelog.d/4960.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Improves local echo blinking when non room events received
|
1
changelog.d/4975.misc
Normal file
1
changelog.d/4975.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Including onboarding server options in the all screen sanity test suite
|
1
changelog.d/4988.misc
Normal file
1
changelog.d/4988.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Exclude dependabot upgrade for @github-script@v3
|
1
changelog.d/4991.bugfix
Normal file
1
changelog.d/4991.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
EmojiPopupDismissListener not being triggered after dismissing the EmojiPopup
|
1
changelog.d/4995.removal
Normal file
1
changelog.d/4995.removal
Normal file
|
@ -0,0 +1 @@
|
||||||
|
429 are not automatically retried anymore in case of too long retry delay
|
1
changelog.d/4997.bugfix
Normal file
1
changelog.d/4997.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix an error in string resource
|
1
changelog.d/4998.misc
Normal file
1
changelog.d/4998.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Small iteration on command parser and unit test it.
|
1
changelog.d/5003.bugfix
Normal file
1
changelog.d/5003.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fixing missing notifications in FDroid variants using `optimised for battery` background sync mode
|
1
changelog.d/5036.feature
Normal file
1
changelog.d/5036.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Allow editing polls
|
1
changelog.d/5037.feature
Normal file
1
changelog.d/5037.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Support undisclosed polls
|
1
changelog.d/516.bugfix
Normal file
1
changelog.d/516.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix for stuck local event messages at the bottom of the screen
|
|
@ -29,6 +29,7 @@ def vanniktechEmoji = "0.8.0"
|
||||||
def mockk = "1.12.1"
|
def mockk = "1.12.1"
|
||||||
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"
|
||||||
|
|
||||||
|
|
||||||
ext.libs = [
|
ext.libs = [
|
||||||
|
@ -41,7 +42,6 @@ ext.libs = [
|
||||||
jetbrains : [
|
jetbrains : [
|
||||||
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
|
||||||
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
|
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
|
||||||
'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinCoroutines",
|
|
||||||
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||||
],
|
],
|
||||||
androidx : [
|
androidx : [
|
||||||
|
@ -63,7 +63,7 @@ ext.libs = [
|
||||||
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
||||||
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
|
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
|
||||||
'testCore' : "androidx.test:core:$androidxTest",
|
'testCore' : "androidx.test:core:$androidxTest",
|
||||||
'orchestrator' : "androidx.test:orchestrator:$androidxTest",
|
'orchestrator' : "androidx.test:orchestrator:$androidxOrchestrator",
|
||||||
'testRunner' : "androidx.test:runner:$androidxTest",
|
'testRunner' : "androidx.test:runner:$androidxTest",
|
||||||
'testRules' : "androidx.test:rules:$androidxTest",
|
'testRules' : "androidx.test:rules:$androidxTest",
|
||||||
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
||||||
|
@ -71,6 +71,7 @@ ext.libs = [
|
||||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
||||||
],
|
],
|
||||||
google : [
|
google : [
|
||||||
|
// TODO There is 1.6.0?
|
||||||
'material' : "com.google.android.material:material:1.4.0"
|
'material' : "com.google.android.material:material:1.4.0"
|
||||||
],
|
],
|
||||||
dagger : [
|
dagger : [
|
||||||
|
@ -86,8 +87,7 @@ ext.libs = [
|
||||||
'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"
|
||||||
'rxAndroid' : "io.reactivex.rxjava2:rxandroid:2.1.1"
|
|
||||||
],
|
],
|
||||||
arrow : [
|
arrow : [
|
||||||
'core' : "io.arrow-kt:arrow-core:$arrow",
|
'core' : "io.arrow-kt:arrow-core:$arrow",
|
||||||
|
|
|
@ -4,7 +4,6 @@ ext.groups = [
|
||||||
],
|
],
|
||||||
group: [
|
group: [
|
||||||
'com.github.Armen101',
|
'com.github.Armen101',
|
||||||
'com.github.BillCarsonFr',
|
|
||||||
'com.github.chrisbanes',
|
'com.github.chrisbanes',
|
||||||
'com.github.hyuwah',
|
'com.github.hyuwah',
|
||||||
'com.github.jetradarmobile',
|
'com.github.jetradarmobile',
|
||||||
|
@ -155,6 +154,7 @@ ext.groups = [
|
||||||
'org.jetbrains.intellij.deps',
|
'org.jetbrains.intellij.deps',
|
||||||
'org.jetbrains.kotlin',
|
'org.jetbrains.kotlin',
|
||||||
'org.jetbrains.kotlinx',
|
'org.jetbrains.kotlinx',
|
||||||
|
'org.json',
|
||||||
'org.jsoup',
|
'org.jsoup',
|
||||||
'org.junit',
|
'org.junit',
|
||||||
'org.junit.jupiter',
|
'org.junit.jupiter',
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
Hlavní změny v této verzi: implementace hlasových zpráv dosupných v rámci laboratoře.
|
Hlavní změny v této verzi: implementace hlasových zpráv dosupných v experimentálních funkcích.
|
||||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.15
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.15
|
||||||
|
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Přidání podpory pro hlasování (v experimentálních funkcích). Nový design náhledu URL.
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Opravy chyb!
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Hlavní změny v této verzi: Opravy chyb!
|
||||||
|
Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/en-US/changelogs/40103130.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103130.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.13
|
2
fastlane/metadata/android/en-US/changelogs/40103140.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103140.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.14
|
2
fastlane/metadata/android/en-US/changelogs/40103150.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40103150.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: First change in onboarding screens, including Analytics opt-in. Support for Events with Math added in the labs.
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.15
|
2
fastlane/metadata/android/et/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: katseline küsitluste tugi ja linkide eelvaate uus visuaal.
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/et/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: pinu veaparandusi!
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/et/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Põhilised muutused selles versioonis: pinu veaparandusi!
|
||||||
|
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/fa/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: افزودن پشتیبانی نظرسنجیها (در آزمایشگاهها). طرّاحی جدید پیشنمای نشانی.
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/fa/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: تعمیر مشکلات!
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/fa/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
تغییرات عمده در این نگارش: تعمیر مشکلات!
|
||||||
|
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/hu-HU/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: Szavazások támogatása (a laborok között). Új URL előnézet.
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/hu-HU/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: Hibajavítások!
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/hu-HU/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/hu-HU/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Fő változás ebben a verzióban: Hibajavítások!
|
||||||
|
Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/id/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Dukungan untuk fitur poll (dalam Uji Coba), dan desain tampilan URL baru.
|
||||||
|
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/id/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Perbaikan bug!
|
||||||
|
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/id/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Perubahan utama dalam versi ini: Perbaikan bug!
|
||||||
|
Changelog lanjutan: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/it-IT/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40103100.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: aggiunto supporto per i sondaggi (in labs). Nuovo design anteprime URL.
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/it-IT/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40103110.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: correzioni di errori!
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.11
|
2
fastlane/metadata/android/it-IT/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40103120.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Modifiche principali in questa versione: correzioni di errori!
|
||||||
|
Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.3.12
|
2
fastlane/metadata/android/nl/changelogs/40103070.txt
Normal file
2
fastlane/metadata/android/nl/changelogs/40103070.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Belangrijkste wijzigingen in deze versie: Bugfixes voornamelijk met betrekking tot de meldingen.
|
||||||
|
Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
|
2
fastlane/metadata/android/nl/changelogs/40103080.txt
Normal file
2
fastlane/metadata/android/nl/changelogs/40103080.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Belangrijkste wijzigingen in deze versie: Bugfixes!
|
||||||
|
Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.8
|
2
fastlane/metadata/android/nl/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/nl/changelogs/40103090.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Belangrijkste wijzigingen in deze versie: Ondersteuning toevoegen voor spraakberichtconcept. Veel bugfixes!
|
||||||
|
Volledige changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.9
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue