Merge remote-tracking branch 'origin/develop' into bugfix/eric/softlogout-ux-broken
# Conflicts: # vector/src/main/java/im/vector/app/features/login/LoginActivity.kt # vector/src/main/java/im/vector/app/features/signout/soft/SoftLogoutController.kt
This commit is contained in:
commit
ce579c1dd3
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@ -25,8 +25,8 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('integration-tests-develop-{0}-{1}', matrix.target, github.sha) || format('build-debug-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@ -49,8 +49,8 @@ jobs:
|
||||
if: github.ref == 'refs/heads/main'
|
||||
# Only runs on main, no concurrency.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
|
@ -7,5 +7,5 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# No concurrency required, this is a prerequisite to other actions and should run every time.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
|
204
.github/workflows/nightly.yml
vendored
204
.github/workflows/nightly.yml
vendored
@ -13,53 +13,7 @@ env:
|
||||
CI_GRADLE_ARG_PROPERTIES: >
|
||||
-Porg.gradle.jvmargs=-Xmx4g
|
||||
-Porg.gradle.parallel=false
|
||||
-PallWarningsAsErrors=false
|
||||
|
||||
jobs:
|
||||
# Build Android Tests [Matrix SDK]
|
||||
build-android-test-matrix-sdk:
|
||||
name: Matrix SDK - Build Android Tests
|
||||
runs-on: macos-latest
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 11
|
||||
- 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
|
||||
|
||||
# Build Android Tests [Matrix APP]
|
||||
build-android-test-app:
|
||||
name: App - Build Android Tests
|
||||
runs-on: macos-latest
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 11
|
||||
- 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
|
||||
|
||||
# Run Android Tests
|
||||
integration-tests:
|
||||
name: Matrix SDK - Running Integration Tests
|
||||
@ -70,7 +24,7 @@ jobs:
|
||||
api-level: [ 28 ]
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
@ -80,7 +34,7 @@ jobs:
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@ -89,11 +43,11 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Start synapse server
|
||||
run: |
|
||||
pip install 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
|
||||
uses: michaelkaye/setup-matrix-synapse@v0.4.0
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
disableRateLimiting: true
|
||||
# package: org.matrix.android.sdk.session
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
@ -104,11 +58,20 @@ jobs:
|
||||
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
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-session.log
|
||||
chmod 777 emulator-session.log
|
||||
adb logcat >> emulator-session.log &
|
||||
./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]
|
||||
if: always()
|
||||
id: get-comment-body-session
|
||||
run: python3 ./tools/ci/render_test_output.py session ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.account] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
@ -119,11 +82,20 @@ jobs:
|
||||
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
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-account.log
|
||||
chmod 777 emulator-account.log
|
||||
adb logcat >> emulator-account.log &
|
||||
./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]
|
||||
if: always()
|
||||
id: get-comment-body-account
|
||||
run: python3 ./tools/ci/render_test_output.py account ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: org.matrix.android.sdk.internal
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.internal] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
@ -135,11 +107,20 @@ jobs:
|
||||
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
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-internal.log
|
||||
chmod 777 emulator-internal.log
|
||||
adb logcat >> emulator-internal.log &
|
||||
./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]
|
||||
if: always()
|
||||
id: get-comment-body-internal
|
||||
run: python3 ./tools/ci/render_test_output.py internal ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: org.matrix.android.sdk.ordering
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.ordering] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
@ -151,11 +132,20 @@ jobs:
|
||||
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
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-ordering.log
|
||||
chmod 777 emulator-ordering.log
|
||||
adb logcat >> emulator-ordering.log &
|
||||
./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]
|
||||
if: always()
|
||||
id: get-comment-body-ordering
|
||||
run: python3 ./tools/ci/render_test_output.py ordering ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: class PermalinkParserTest
|
||||
- name: Run integration tests for Matrix SDK class [org.matrix.android.sdk.PermalinkParserTest] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
@ -167,11 +157,20 @@ jobs:
|
||||
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
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-permalink.log
|
||||
chmod 777 emulator-permalink.log
|
||||
adb logcat >> emulator-permalink.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class='org.matrix.android.sdk.PermalinkParserTest' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.PermalinkParserTest]
|
||||
if: always()
|
||||
id: get-comment-body-permalink
|
||||
run: python3 ./tools/ci/render_test_output.py permalink ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: class PermalinkParserTest
|
||||
- name: Find Comment
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
@ -196,6 +195,17 @@ jobs:
|
||||
- `[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
|
||||
- name: Upload Test Report Log
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: integrationtest-error-results
|
||||
path: |
|
||||
emulator-permalink.log
|
||||
emulator-internal.log
|
||||
emulator-ordering.log
|
||||
emulator-account.log
|
||||
emulator-session.log
|
||||
|
||||
ui-tests:
|
||||
name: UI Tests (Synapse)
|
||||
@ -206,14 +216,12 @@ jobs:
|
||||
api-level: [ 28 ]
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
ref: develop
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@ -222,10 +230,11 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Start synapse server
|
||||
run: |
|
||||
pip install matrix-synapse
|
||||
curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh \
|
||||
| sed s/127.0.0.1/0.0.0.0/g | sed 's/http:\/\/localhost/http:\/\/10.0.2.2/g' | bash -s -- --no-rate-limit
|
||||
uses: michaelkaye/setup-matrix-synapse@v0.4.0
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
disableRateLimiting: true
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
@ -245,22 +254,79 @@ jobs:
|
||||
touch emulator.log
|
||||
chmod 777 emulator.log
|
||||
adb logcat >> emulator.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest || (adb pull storage/emulated/0/Pictures/failure_screenshots && exit 1 )
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest || (adb pull storage/emulated/0/Pictures/failure_screenshots && exit 1 )
|
||||
- name: Upload Test Report Log
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: sanity-error-results
|
||||
name: uitest-error-results
|
||||
path: |
|
||||
emulator.log
|
||||
failure_screenshots/
|
||||
|
||||
codecov-units:
|
||||
name: Unit tests with code coverage
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- run: ./gradlew allCodeCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Codecov data
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: codecov-xml
|
||||
path: |
|
||||
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
|
||||
|
||||
sonarqube:
|
||||
name: Sonarqube upload
|
||||
runs-on: macos-latest
|
||||
if: always()
|
||||
needs:
|
||||
- codecov-units
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: codecov-xml # will restore to allCodeCoverageReport.xml by default; we restore to the same location in following tasks
|
||||
- run: mkdir -p build/reports/jacoco/allCodeCoverageReport/
|
||||
- run: mv allCodeCoverageReport.xml build/reports/jacoco/allCodeCoverageReport/
|
||||
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
|
||||
# Notify the channel about scheduled runs, do not notify for manually triggered runs
|
||||
notify:
|
||||
name: Notify matrix
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- integration-tests
|
||||
- ui-tests
|
||||
- sonarqube
|
||||
if: always() && github.event_name != 'workflow_dispatch'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
@ -270,4 +336,4 @@ jobs:
|
||||
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
|
||||
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
|
||||
text_template: "Nightly test run: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
||||
html_template: "Nightly test run results: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{name}} {{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a>{{/if}}{{/with}}{{/each}}"
|
||||
html_template: "Nightly test run results: {{#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}}"
|
||||
|
12
.github/workflows/quality.yml
vendored
12
.github/workflows/quality.yml
vendored
@ -10,7 +10,7 @@ jobs:
|
||||
name: Project Check Suite
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run code quality check suite
|
||||
run: ./tools/check/check_code_quality.sh
|
||||
|
||||
@ -23,7 +23,7 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('ktlint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('ktlint-develop-{0}', github.sha) || format('ktlint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run ktlint
|
||||
run: |
|
||||
./gradlew ktlintCheck --continue
|
||||
@ -96,8 +96,8 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('android-lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('android-lint-develop-{0}', github.sha) || format('android-lint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@ -129,8 +129,8 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('apk-lint-develop-{0}-{1}', matrix.target, github.sha) || format('apk-lint-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
|
@ -11,7 +11,7 @@ jobs:
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
@ -38,7 +38,7 @@ jobs:
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
@ -64,7 +64,7 @@ jobs:
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run analytics import script
|
||||
run: ./tools/import_analytic_plan.sh
|
||||
- name: Create Pull Request for analytics plan
|
||||
|
50
.github/workflows/tests.yml
vendored
50
.github/workflows/tests.yml
vendored
@ -12,6 +12,30 @@ env:
|
||||
-Porg.gradle.parallel=false
|
||||
|
||||
jobs:
|
||||
# Build Android Tests
|
||||
build-android-tests:
|
||||
name: Build Android Tests
|
||||
runs-on: ubuntu-latest
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('build-android-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v2
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 11
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Build Android Tests
|
||||
run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
|
||||
unit-tests:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
@ -20,8 +44,8 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@ -30,7 +54,10 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Run unit tests
|
||||
run: ./gradlew clean test $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false --stacktrace
|
||||
run: ./gradlew clean test $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
- name: Format unit test results
|
||||
if: always()
|
||||
run: python3 ./tools/ci/render_test_output.py unit ./**/build/test-results/**/*.xml
|
||||
- name: Publish Unit Test Results
|
||||
uses: EnricoMi/publish-unit-test-result-action@v1
|
||||
if: always() &&
|
||||
@ -38,3 +65,20 @@ jobs:
|
||||
( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository )
|
||||
with:
|
||||
files: ./**/build/test-results/**/*.xml
|
||||
|
||||
# Notify the channel about runs against develop or main that have failures, as PRs should have caught these first.
|
||||
notify:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- unit-tests
|
||||
- build-android-tests
|
||||
if: ${{ (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' ) && failure() }}
|
||||
steps:
|
||||
- uses: michaelkaye/matrix-hookshot-action@v0.3.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
|
||||
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
|
||||
text_template: "Build is broken for ${{ github.ref }}: {{#each job_statuses }}{{#with this }}{{#if completed }}{{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
||||
html_template: "Build is broken for ${{ github.ref }}: {{#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}}"
|
||||
|
||||
|
2
.github/workflows/update-gradle-wrapper.yml
vendored
2
.github/workflows/update-gradle-wrapper.yml
vendored
@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@v1
|
||||
|
2
.idea/dictionaries/bmarty.xml
generated
2
.idea/dictionaries/bmarty.xml
generated
@ -11,6 +11,7 @@
|
||||
<w>emoji</w>
|
||||
<w>emojis</w>
|
||||
<w>fdroid</w>
|
||||
<w>ganfra</w>
|
||||
<w>gplay</w>
|
||||
<w>hmac</w>
|
||||
<w>homeserver</w>
|
||||
@ -18,6 +19,7 @@
|
||||
<w>ktlint</w>
|
||||
<w>linkified</w>
|
||||
<w>linkify</w>
|
||||
<w>manu</w>
|
||||
<w>megolm</w>
|
||||
<w>msisdn</w>
|
||||
<w>msisdns</w>
|
||||
|
117
CHANGES.md
117
CHANGES.md
@ -1,3 +1,120 @@
|
||||
Changes in Element v1.4.8 (2022-03-28)
|
||||
======================================
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Moving live location sharing permission to debug only builds whilst it is WIP ([#5636](https://github.com/vector-im/element-android/issues/5636))
|
||||
|
||||
|
||||
Changes in Element v1.4.7 (2022-03-24)
|
||||
======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix inconsistencies between the arrow visibility and the collapse action on the room sections ([#5616](https://github.com/vector-im/element-android/issues/5616))
|
||||
- Fix room list header count flickering
|
||||
|
||||
Changes in Element v1.4.6 (2022-03-23)
|
||||
======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Thread timeline is now live and much faster especially for large or old threads ([#5230](https://github.com/vector-im/element-android/issues/5230))
|
||||
- View all threads per room screen is now live when the home server supports threads ([#5232](https://github.com/vector-im/element-android/issues/5232))
|
||||
- Add a custom view to display a picker for share location options ([#5395](https://github.com/vector-im/element-android/issues/5395))
|
||||
- Add ability to pin a location on map for sharing ([#5417](https://github.com/vector-im/element-android/issues/5417))
|
||||
- Poll Integration Tests ([#5522](https://github.com/vector-im/element-android/issues/5522))
|
||||
- Live location sharing: adding build config field and show permission dialog ([#5536](https://github.com/vector-im/element-android/issues/5536))
|
||||
- Live location sharing: Adding indicator view when enabled ([#5571](https://github.com/vector-im/element-android/issues/5571))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Poll system notifications on Android are not user friendly ([#4780](https://github.com/vector-im/element-android/issues/4780))
|
||||
- Add colors for shield vector drawable ([#4860](https://github.com/vector-im/element-android/issues/4860))
|
||||
- Support both stable and unstable prefixes for Events about Polls and Location ([#5340](https://github.com/vector-im/element-android/issues/5340))
|
||||
- Fix missing messages when loading messages forwards ([#5448](https://github.com/vector-im/element-android/issues/5448))
|
||||
- Fix presence indicator being aligned to the center of the room image ([#5489](https://github.com/vector-im/element-android/issues/5489))
|
||||
- Read receipt in wrong order ([#5514](https://github.com/vector-im/element-android/issues/5514))
|
||||
- Fix mentions using matrix.to rather than client defined permalink base url ([#5521](https://github.com/vector-im/element-android/issues/5521))
|
||||
- Fixes crash when tapping the timeline verification surround box instead of the buttons ([#5540](https://github.com/vector-im/element-android/issues/5540))
|
||||
- [Notification mode] Wrong mode is displayed when the mention only is selected on the web client ([#5547](https://github.com/vector-im/element-android/issues/5547))
|
||||
- Fix local echos not being shown when re-opening rooms ([#5551](https://github.com/vector-im/element-android/issues/5551))
|
||||
- Fix crash when closing a room while decrypting timeline events ([#5552](https://github.com/vector-im/element-android/issues/5552))
|
||||
- Fix sometimes read marker not properly updating ([#5564](https://github.com/vector-im/element-android/issues/5564))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Dynamically showing/hiding onboarding personalisation screens based on the users homeserver capabilities ([#5375](https://github.com/vector-im/element-android/issues/5375))
|
||||
- Introduces FTUE personalisation complete screen along with confetti celebration ([#5389](https://github.com/vector-im/element-android/issues/5389))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Adds support for MSC3440, additional threads homeserver capabilities ([#5271](https://github.com/vector-im/element-android/issues/5271))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Refactoring for safer olm and megolm session usage ([#5380](https://github.com/vector-im/element-android/issues/5380))
|
||||
- Improve headers UI in Rooms/Messages lists ([#4533](https://github.com/vector-im/element-android/issues/4533))
|
||||
- Number of unread messages on space badge now include number of unread DMs ([#5260](https://github.com/vector-im/element-android/issues/5260))
|
||||
- Amend spaces menu to be consistent with iOS version ([#5270](https://github.com/vector-im/element-android/issues/5270))
|
||||
- Selected space highlight changed in left panel ([#5346](https://github.com/vector-im/element-android/issues/5346))
|
||||
- [Rooms list] Do not suggest collapse the unique section ([#5347](https://github.com/vector-im/element-android/issues/5347))
|
||||
- Add analytics support for threads ([#5378](https://github.com/vector-im/element-android/issues/5378))
|
||||
- Add top margin before our first message ([#5384](https://github.com/vector-im/element-android/issues/5384))
|
||||
- Improved onboarding registration unit test coverage ([#5408](https://github.com/vector-im/element-android/issues/5408))
|
||||
- Adds stable room hierarchy endpoint with a fallback to the unstable one ([#5443](https://github.com/vector-im/element-android/issues/5443))
|
||||
- Use ColorPrimary for attachmentGalleryButton tint ([#5501](https://github.com/vector-im/element-android/issues/5501))
|
||||
- Added online presence indicator attribute online to match offline styling ([#5513](https://github.com/vector-im/element-android/issues/5513))
|
||||
- Add a presence sync enabling build config ([#5563](https://github.com/vector-im/element-android/issues/5563))
|
||||
- Show stickers on click ([#5572](https://github.com/vector-im/element-android/issues/5572))
|
||||
|
||||
|
||||
Changes in Element v1.4.4 (2022-03-09)
|
||||
======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Adds animated typing indicator to the bottom of the timeline ([#3296](https://github.com/vector-im/element-android/issues/3296))
|
||||
- Removes the topic and typing information from the room's top bar ([#4642](https://github.com/vector-im/element-android/issues/4642))
|
||||
- Add possibility to save media from Gallery + reorder choices in message context menu ([#5005](https://github.com/vector-im/element-android/issues/5005))
|
||||
- Improves settings error dialog messaging when changing avatar or display name fails ([#5418](https://github.com/vector-im/element-android/issues/5418))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Open direct message screen when clicking on DM button in the space members list ([#4319](https://github.com/vector-im/element-android/issues/4319))
|
||||
- Fix incorrect media cache size in settings ([#5394](https://github.com/vector-im/element-android/issues/5394))
|
||||
- Setting an avatar when creating a room had no effect ([#5402](https://github.com/vector-im/element-android/issues/5402))
|
||||
- Fix reactions summary crash when reopening a room ([#5463](https://github.com/vector-im/element-android/issues/5463))
|
||||
- Fixing room titles overlapping the room image in the room toolbar ([#5468](https://github.com/vector-im/element-android/issues/5468))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Starts the FTUE account personalisation flow by adding an account created screen behind a feature flag ([#5158](https://github.com/vector-im/element-android/issues/5158))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Change name of getTimeLineEvent and getTimeLineEventLive methods to getTimelineEvent and getTimelineEventLive. ([#5330](https://github.com/vector-im/element-android/issues/5330))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Improve Bubble layouts rendering ([#5303](https://github.com/vector-im/element-android/issues/5303))
|
||||
- Continue improving realm usage (potentially helping with storage and RAM usage) ([#5330](https://github.com/vector-im/element-android/issues/5330))
|
||||
- Update reaction button layout. ([#5313](https://github.com/vector-im/element-android/issues/5313))
|
||||
- Adds forceLoginFallback feature flag and usages to FTUE login and registration ([#5325](https://github.com/vector-im/element-android/issues/5325))
|
||||
- Override task affinity to prevent unknown activities running in our app tasks. ([#4498](https://github.com/vector-im/element-android/issues/4498))
|
||||
- Tentatively fixing the UI sanity test being unable to click on the space menu items ([#5269](https://github.com/vector-im/element-android/issues/5269))
|
||||
- Moves attachment-viewer, diff-match-patch, and multipicker modules to subfolders under library ([#5309](https://github.com/vector-im/element-android/issues/5309))
|
||||
- Log the `since` token used and `next_batch` token returned when doing an incremental sync. ([#5312](https://github.com/vector-im/element-android/issues/5312), [#5318](https://github.com/vector-im/element-android/issues/5318))
|
||||
- Upgrades material dependency version from 1.4.0 to 1.5.0 ([#5392](https://github.com/vector-im/element-android/issues/5392))
|
||||
- Using app name instead of hardcoded "Element" for exported keys filename ([#5326](https://github.com/vector-im/element-android/issues/5326))
|
||||
- Upgrade the plugin which generate strings with template from 1.2.2 to 2.0.0 ([#5348](https://github.com/vector-im/element-android/issues/5348))
|
||||
- Remove about 700 unused strings and their translations ([#5352](https://github.com/vector-im/element-android/issues/5352))
|
||||
- Creates dedicated VectorOverrides for forcing behaviour for local testing/development ([#5361](https://github.com/vector-im/element-android/issues/5361))
|
||||
- Cleanup unused threads build configurations ([#5379](https://github.com/vector-im/element-android/issues/5379))
|
||||
- Notify element-android channel each time a nightly build completes. ([#5314](https://github.com/vector-im/element-android/issues/5314))
|
||||
- Iterate on badge / unread indicator color ([#5456](https://github.com/vector-im/element-android/issues/5456))
|
||||
|
||||
|
||||
Changes in Element v1.4.2 (2022-02-22 Palindrome Day!)
|
||||
======================================================
|
||||
|
||||
|
18
build.gradle
18
build.gradle
@ -19,7 +19,7 @@ buildscript {
|
||||
classpath libs.gradle.hiltPlugin
|
||||
classpath 'com.google.gms:google-services:4.3.10'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.0.0"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
@ -105,11 +105,21 @@ task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
||||
def launchTask = getGradle()
|
||||
.getStartParameter()
|
||||
.getTaskRequests()
|
||||
.toString()
|
||||
.toLowerCase()
|
||||
|
||||
if (launchTask.contains("codeCoverageReport".toLowerCase())) {
|
||||
apply from: 'coverage.gradle'
|
||||
}
|
||||
|
||||
apply plugin: 'org.sonarqube'
|
||||
|
||||
// To run a sonar analysis:
|
||||
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
||||
// The SONAR_KEY is stored in passbolt
|
||||
// The SONAR_KEY is stored in passbolt as Token Sonar Cloud Bma
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
@ -119,10 +129,12 @@ sonarqube {
|
||||
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
||||
property "sonar.sourceEncoding", "UTF-8"
|
||||
property "sonar.links.homepage", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/element-android"
|
||||
property "sonar.links.ci", "https://github.com/vector-im/element-android/actions"
|
||||
property "sonar.links.scm", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||
property "sonar.organization", "new_vector_ltd_organization"
|
||||
property "sonar.java.coveragePlugin", "jacoco"
|
||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml"
|
||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||
}
|
||||
}
|
||||
|
@ -1 +0,0 @@
|
||||
Typing notifications moved from the header to the bottom of the timeline.
|
@ -1 +0,0 @@
|
||||
Open direct message screen when clicking on DM button in the space members list
|
@ -1 +0,0 @@
|
||||
Add possibility to save media from Gallery + reorder choices in message context menu
|
@ -1 +0,0 @@
|
||||
Starts the FTUE account personalisation flow by adding an account created screen behind a feature flag
|
@ -1 +0,0 @@
|
||||
Tentatively fixing the UI sanity test being unable to click on the space menu items
|
@ -1 +0,0 @@
|
||||
Improve Bubble layouts rendering.
|
@ -1 +0,0 @@
|
||||
Moves attachment-viewer, diff-match-patch, and multipicker modules to subfolders under library
|
@ -1 +0,0 @@
|
||||
Log the `since` token used and `next_batch` token returned when doing an incremental sync.
|
@ -1 +0,0 @@
|
||||
Update reaction button layout.
|
@ -1 +0,0 @@
|
||||
Notify element-android channel each time a nightly build completes.
|
@ -1 +0,0 @@
|
||||
Log the `since` token used and `next_batch` token returned when doing an incremental sync.
|
@ -1 +0,0 @@
|
||||
Adds forceLoginFallback feature flag and usages to FTUE login and registration
|
@ -1 +0,0 @@
|
||||
[Export e2ee keys] use appName instead of element
|
@ -1 +0,0 @@
|
||||
Continue improving realm usage.
|
@ -1 +0,0 @@
|
||||
Change name of getTimeLineEvent and getTimeLineEventLive methods to getTimelineEvent and getTimelineEventLive.
|
@ -1 +0,0 @@
|
||||
Upgrade the plugin which generate strings with template from 1.2.2 to 2.0.0
|
@ -1 +0,0 @@
|
||||
Remove about 700 unused strings and their translations
|
@ -1 +0,0 @@
|
||||
Cleanup unused threads build configurations
|
@ -1 +0,0 @@
|
||||
Upgrades material dependency version from 1.4.0 to 1.5.0
|
@ -1 +0,0 @@
|
||||
Fix incorrect media cache size in settings
|
1
changelog.d/5426.feature
Normal file
1
changelog.d/5426.feature
Normal file
@ -0,0 +1 @@
|
||||
Allow scrolling position of Voice Message playback
|
1
changelog.d/5473.bugfix
Normal file
1
changelog.d/5473.bugfix
Normal file
@ -0,0 +1 @@
|
||||
Fixes polls being votable after being ended
|
1
changelog.d/5497.bugfix
Normal file
1
changelog.d/5497.bugfix
Normal file
@ -0,0 +1 @@
|
||||
[Subscribing] Blank display name
|
1
changelog.d/5517.misc
Normal file
1
changelog.d/5517.misc
Normal file
@ -0,0 +1 @@
|
||||
Flattening the asynchronous onboarding state and passing all errors through the same pipeline
|
1
changelog.d/5595.feature
Normal file
1
changelog.d/5595.feature
Normal file
@ -0,0 +1 @@
|
||||
Live Location Sharing - Foreground Service and Notification
|
55
coverage.gradle
Normal file
55
coverage.gradle
Normal file
@ -0,0 +1,55 @@
|
||||
def excludes = [ ]
|
||||
|
||||
def initializeReport(report, projects, classExcludes) {
|
||||
projects.each { project -> project.apply plugin: 'jacoco' }
|
||||
report.executionData { fileTree(rootProject.rootDir.absolutePath).include("**/build/jacoco/*.exec") }
|
||||
|
||||
report.reports {
|
||||
xml.enabled true
|
||||
html.enabled true
|
||||
csv.enabled false
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
def androidSourceDirs = []
|
||||
def androidClassDirs = []
|
||||
|
||||
projects.each { project ->
|
||||
switch (project) {
|
||||
case { project.plugins.hasPlugin("com.android.application") }:
|
||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||
break
|
||||
case { project.plugins.hasPlugin("com.android.library") }:
|
||||
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
|
||||
androidSourceDirs.add("${project.projectDir}/src/main/java")
|
||||
break
|
||||
default:
|
||||
report.sourceSets project.sourceSets.main
|
||||
}
|
||||
}
|
||||
|
||||
report.sourceDirectories.setFrom(report.sourceDirectories + files(androidSourceDirs))
|
||||
def classFiles = androidClassDirs.collect { files(it).files }.flatten()
|
||||
report.classDirectories.setFrom(files((report.classDirectories.files + classFiles).collect {
|
||||
fileTree(dir: it, excludes: classExcludes)
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
def collectProjects(predicate) {
|
||||
return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
|
||||
}
|
||||
|
||||
task allCodeCoverageReport(type: JacocoReport) {
|
||||
outputs.upToDateWhen { false }
|
||||
rootProject.apply plugin: 'jacoco'
|
||||
// to limit projects in a specific report, add
|
||||
// def excludedProjects = [ ... ]
|
||||
// def projects = collectProjects { !excludedProjects.contains(it.name) }
|
||||
def projects = collectProjects { true }
|
||||
dependsOn { projects*.test }
|
||||
initializeReport(it, projects, excludes)
|
||||
}
|
@ -9,13 +9,13 @@ ext.versions = [
|
||||
|
||||
def gradle = "7.0.4"
|
||||
// Ref: https://kotlinlang.org/releases.html
|
||||
def kotlin = "1.5.31"
|
||||
def kotlinCoroutines = "1.5.2"
|
||||
def kotlin = "1.6.0"
|
||||
def kotlinCoroutines = "1.6.0"
|
||||
def dagger = "2.40.5"
|
||||
def retrofit = "2.9.0"
|
||||
def arrow = "0.8.2"
|
||||
def markwon = "4.6.2"
|
||||
def moshi = "1.12.0"
|
||||
def moshi = "1.13.0"
|
||||
def lifecycle = "2.4.0"
|
||||
def flowBinding = "1.2.0"
|
||||
def epoxy = "4.6.2"
|
||||
@ -58,6 +58,7 @@ ext.libs = [
|
||||
'lifecycleCommon' : "androidx.lifecycle:lifecycle-common:$lifecycle",
|
||||
'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle",
|
||||
'lifecycleProcess' : "androidx.lifecycle:lifecycle-process:$lifecycle",
|
||||
'lifecycleRuntimeKtx' : "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle",
|
||||
'datastore' : "androidx.datastore:datastore:1.0.0",
|
||||
'datastorepreferences' : "androidx.datastore:datastore-preferences:1.0.0",
|
||||
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
||||
@ -141,4 +142,4 @@ ext.libs = [
|
||||
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
|
||||
'junit' : "junit:junit:4.13.2"
|
||||
]
|
||||
]
|
||||
]
|
||||
|
@ -29,9 +29,10 @@ ext.groups = [
|
||||
'com\\.google\\.android\\..*',
|
||||
],
|
||||
group: [
|
||||
'com.google.firebase',
|
||||
'com.android',
|
||||
'com.android.tools',
|
||||
'com.google.firebase',
|
||||
'com.google.testing.platform',
|
||||
]
|
||||
],
|
||||
mavenCentral: [
|
||||
@ -63,6 +64,8 @@ ext.groups = [
|
||||
'com.github.piasy',
|
||||
'com.github.shyiko.klob',
|
||||
'com.google',
|
||||
'com.google.android',
|
||||
'com.google.api.grpc',
|
||||
'com.google.auto.service',
|
||||
'com.google.auto.value',
|
||||
'com.google.code.findbugs',
|
||||
@ -111,10 +114,13 @@ ext.groups = [
|
||||
'io.arrow-kt',
|
||||
'io.github.detekt.sarif4k',
|
||||
'io.github.reactivecircus.flowbinding',
|
||||
'io.grpc',
|
||||
'io.jsonwebtoken',
|
||||
'io.kindedj',
|
||||
'io.mockk',
|
||||
'io.netty',
|
||||
'io.noties.markwon',
|
||||
'io.opencensus',
|
||||
'io.reactivex.rxjava2',
|
||||
'io.realm',
|
||||
'it.unimi.dsi',
|
||||
@ -150,6 +156,7 @@ ext.groups = [
|
||||
'org.ec4j.core',
|
||||
'org.glassfish.jaxb',
|
||||
'org.hamcrest',
|
||||
'org.jacoco',
|
||||
'org.jetbrains',
|
||||
'org.jetbrains.intellij.deps',
|
||||
'org.jetbrains.kotlin',
|
||||
@ -175,6 +182,7 @@ ext.groups = [
|
||||
'org.sonatype.oss',
|
||||
'org.testng',
|
||||
'org.threeten',
|
||||
'org.webjars',
|
||||
'ru.noties',
|
||||
'xerces',
|
||||
'xml-apis',
|
||||
|
2
fastlane/metadata/android/de-DE/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Neues: Erstelle Threads, damit dein Chatverlauf nicht zugespammt wird. Nachrichtenblasen.
|
||||
Ganze Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/de-DE/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Neues: Unterstützung für @room, Verbesserungen der Abstimmungen und weitere kleine Änderungen
|
||||
Ganzer Changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/en-US/changelogs/40104040.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104040.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Main changes in this version: typing indicator UI updates. Various bug fixes and stability improvements.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.4
|
2
fastlane/metadata/android/en-US/changelogs/40104060.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104060.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread timeline are now live and faster. Various bug fixes and stability improvements.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.6
|
2
fastlane/metadata/android/en-US/changelogs/40104070.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104070.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Main changes in this version: Various bug fixes and stability improvements.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.4.7
|
2
fastlane/metadata/android/en-US/changelogs/40104080.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40104080.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread timeline are now live and faster. Various bug fixes and stability improvements.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/es-ES/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/es-ES/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principales cambios de esta versión: primera implementación de los hilos de mensajes. Burbujas de mensajes.
|
||||
Todos los cambios en: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/es-ES/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/es-ES/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principales cambios de esta versión: añadir @room, encuestas cerradas y muchos cambios menores más.
|
||||
Todos los cambios en: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/fa/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
تغییرات اصلی در این نگارش: پیاده سازی نخستین پیامهای رشتهای. حبابهای پیام.
|
||||
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/fa/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
تغییرات اصلی در این نگارش: افزودن پشتیبانی به @room و نظرسنجیهای فاش نشده در کنار تغییرات کوچک دیگر.
|
||||
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/fr-FR/changelogs/40103170.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40103170.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principaux changements pour cette version : envoyer votre position dans n'importe quel salon. Éditer un sondage.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.17
|
2
fastlane/metadata/android/fr-FR/changelogs/40103180.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40103180.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principaux changements pour cette version : envoyer votre position dans n'importe quel salon. Éditer un sondage.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.3.18
|
2
fastlane/metadata/android/fr-FR/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principaux changements pour cette version : Implémentation initial des fils de discussion. Bulles de messages.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/fr-FR/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Principaux changements pour cette version : Ajout du support pour @room et des sondages non terminé parmi plein d'autres changements mineurs.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
@ -1,43 +1,43 @@
|
||||
Element egy biztonságos üzenetküldő és csapatmunka támogató alkalmazás ami ideális távoli munkavégzés közben csoportos csevegéshez. Az alkalmazás végpontok közötti titkosítást használ videó konferenciához, fájl megosztáshoz és videó hivásokhoz.
|
||||
Az Element egy biztonságos üzenetküldő, és egy csapatmunka app, amely távoli munkavégzéshez is alkalmas lehet. Az alkalmazás végponti titkosítás használatával biztosít videó konferencia, fájlmegosztás, és audio hívás lehetőségeket.
|
||||
|
||||
<b>Element tulajdonságai:</b>
|
||||
- Fejlett online kommunikációs eszköz
|
||||
- Teljesen titkosított üzenetküldés biztonságos céges kommunikációt kínál még a távdolgozóknak is
|
||||
- Elosztott csevegés a Matrix nyílt forráskódú keretrendszer felhasználásával
|
||||
- Bizontságos fájl megosztás titkosítottan projektek kezeléséhez
|
||||
- Videó hívás VoIP-pal és képernyőmegosztással
|
||||
- Könnyen integrálható a kedvenc online kollaborációs eszközöddel, projekt menedzsment eszközzel, VoIP szolgáltatással vagy más csoport üzenetküldő alkalmazással
|
||||
<b>Az Element funkciói többek között:</b>
|
||||
- Fejlett online kommunikációs eszközök
|
||||
- Titkosított üzenetek a biztonságos céges kommunikációhoz, otthonról dolgozóknak is
|
||||
- Decentralizált chat a nyílt forráskódú Matrix protokoll használatával
|
||||
- Biztonságos fájlmegosztáss a projektek kezeléséhez
|
||||
- Videochat, VoIP, és képernyőmegosztási lehetőséggel
|
||||
- Egyszerű integráció a kedvenc online kollaborációs eszközeiddel, projektkezelési eszközökkel, VoIP szolgáltatásokkal, és más csoportos üzenetküldő alkalmazásokkal
|
||||
|
||||
Element teljesen más mint a többi üzenetküldő alkalmazás. Matrixot használ, egy nyílt hálózatot a decentralizált biztonságos kommunikációhoz. Lehetőséget ad saját szerver üzemeltetésére ami maximális tulajdont és kontrollt biztosít az adatok fölött.
|
||||
Az Element teljesen más, mint az összes többi üzenetküldő és kollaborációs alkalmazás. A biztonságos üzenetküldést és decentralizált kommunikációt biztosító Matrix platformot használja. Akár egyénileg üzemeltetett szervereket is lehet használni az adatok teljes kontrollálása érdekében.
|
||||
|
||||
<b>Magánélet védelme és titkosított üzenetküldés</b>
|
||||
Element megóv a kéretlen hirdetésektől, adatbányászattól és a különböző szigetszerű megoldásoktól. Minden adatot biztonságba helyez, egy az egybe videó és hang kommunikáció végpontok között titkosítva ahol az eszközök hitelesítve vannak.
|
||||
<b>Magánszféra és titkosított csevegés</b>
|
||||
Az Element megvéd a nemkívánatos hirdetésektől, adatbányászattól, és a zárt platformoktól. Ezeken felül biztonságban tartja az összes adatod és 1:1 hívásod a végponti titkosításnak és az eszközök-közti hitelesítésnek köszönhetően.
|
||||
|
||||
Element a kezedbe adja az adatvédelmi irányítást miközben bárkivel kommunikálhatsz a Matrix hálózatban vagy más üzleti kollaborációs eszközzel ami integrálva van, mint amilyen a Slack.
|
||||
Az Element átadja neked az irányítást a magánszférád felett, miközben lehetővé teszi, hogy biztonságosan kommunikálj bárkivel a Matrix hálózatban, vagy a többi üzleti kommunikációs eszközt használókkal, az olyan appok integrálásának köszönhetően, mint például a Slack.
|
||||
|
||||
<b>Element futtatható saját szerveren</b>
|
||||
|
||||
Azért, hogy az érzékeny adatok és beszélgetések minnél inkább az irányításod alatt lehessen az Elementet saját magadnak üzemeltetheted vagy választhatsz bármely Matrixon alapuló - szabványos nyílt forráskódú és decentralizált kommunikáció - szoláltató közül. Element adatvédelmet, biztonságot és rugalmas integrációkat biztosít.
|
||||
<b>Element can be self-hosted</b>
|
||||
To allow more control of your sensitive data and conversations, Element can be self-hosted or you can choose any Matrix-based host - the standard for open source, decentralized communication. Element gives you privacy, security compliance and integration flexibility.
|
||||
|
||||
<b>A te adatod a tiéd</b>
|
||||
Te döntöd el, hogy hol tárolod az adataidat és üzeneteidet. Adatbányászat vagy harmadik fél hozzáférésének kockázata nélkül.
|
||||
<b>Own your data</b>
|
||||
You decide where to keep your data and messages. Without the risk of data mining or access from third parties.
|
||||
|
||||
Element többféle képpen adja vissza az irányítást:
|
||||
1. Szerezz egy ingyenes hozzáférést a matrix.org nyilvános szerverre amit a Matrix fejlesztők üzemeltetnek vagy válassz a több ezer önkéntesek által üzemeltetett nyilvános szerverből
|
||||
2. Üzemeltess szerver magadnak a saját infrastruktúrádon
|
||||
3. Iratkozz fel egy egyedi szerverre az Element Matrix Services platformon
|
||||
Element puts you in control in different ways:
|
||||
1. Get a free account on the matrix.org public server hosted by the Matrix developers, or choose from thousands of public servers hosted by volunteers
|
||||
2. Self-host your account by running a server on your own IT infrastructure
|
||||
3. Sign up for an account on a custom server by simply subscribing to the Element Matrix Services hosting platform
|
||||
|
||||
<b>Nyílt üzenetküldés és kollaboráció</b>
|
||||
Bárkivel beszélgethetsz a Matrix hálózaton, akár az Elementet használja akár egy másik Matrix alkalmazást használ vagy akár egy eltérő üzenetküldőt.
|
||||
<b>Open messaging and collaboration</b>
|
||||
You can chat with anyone on the Matrix network, whether they’re using Element, another Matrix app or even if they are using a different messaging app.
|
||||
|
||||
<b>Fantasztikusan biztonságos</b>
|
||||
Igazi végpontok között titkosítás (csak a beszélgetésben résztvevők tudják visszafejteni) és hitelesítés eszközök közötti aláírásokkal.
|
||||
<b>Super secure</b>
|
||||
Real end-to-end encryption (only those in the conversation can decrypt messages), and cross-signed device verification.
|
||||
|
||||
<b>Teljes kommunikáció és integráció</b>
|
||||
Üzenetküldés, hang és videóhívás, fájl megosztás, képernyő megosztás és egy csomó integráció, botok és kisalkalmazások. Építs szobákat, közösségeket, maradj kapcsolatban és végezz el dolgokat.
|
||||
<b>Complete communication and integration</b>
|
||||
Messaging, voice and video calls, file sharing, screen sharing and a whole bunch of integrations, bots and widgets. Build rooms, communities, stay in touch and get things done.
|
||||
|
||||
<b>Vedd fel a fonalat</b>
|
||||
Maradj kapcsolatban bárhol minden eszközödön a szinkronizált üzenetekkel és a weben a https://app.element.io oldallal
|
||||
<b>Pick up where you left off</b>
|
||||
Stay in touch wherever you are with fully synchronised message history across all your devices and on the web at https://app.element.io
|
||||
|
||||
<b>Nyílt forráskód</b>
|
||||
Element Android egy nyílt forráskódú projekt a GitHubon. Küldj hibajegyet és/vagy vegyél részt a fejlesztésében itt: https://github.com/vector-im/element-android
|
||||
<b>Open source</b>
|
||||
Element Android is an open source project, hosted by GitHub. Please report bugs and/or contribute to its development at https://github.com/vector-im/element-android
|
||||
|
@ -1 +1 @@
|
||||
Csoportos üzenetküldő - titkosított üzenetek, videó hívások
|
||||
Csoportos üzenetküldő - titkosított üzenetek és videó hívások
|
||||
|
@ -1 +1 @@
|
||||
Element
|
||||
Element - Biztonságos üzenetküldő
|
||||
|
@ -1,2 +1,2 @@
|
||||
今回の新バージョンでは、主にバグの修正と改善が行われています。メッセージの送信がより速くなりました。
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||
|
@ -1,2 +1,2 @@
|
||||
今回の新バージョンでは、主にUI(ユーザーインターフェース)とUX(ユーザーエクスペリエンス)の向上が図られています。友達を招待したり、QRコードを読み取って素早くDMを作成できるようになりました。
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||
このバージョンの主な変更点:URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||
このバージョンの主な変更点:URLプレビュー、新しい絵文字、新しいルーム設定機能、それにクリスマスには雪が!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: 部屋の許可、自動のテーマ切替、そして多くのバグを修正しました。
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||
このバージョンの主な変更点:部屋の許可、自動のテーマ切替、そして多くのバグを修正しました。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: ソーシャルログインに対応しました。
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||
このバージョンの主な変更点:ソーシャルログインに対応しました。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||
|
@ -1,2 +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
|
||||
このバージョンの主な変更点:パフォーマンスの向上と、バグを修正しました!
|
||||
更新履歴: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
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: バグの修正!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||
このバージョンの主な変更点:バグを修正しました!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
||||
このバージョンの主な変更点:パフォーマンスの向上と、バグを修正しました!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||
このバージョンの主な変更点:パフォーマンスの向上と、バグを修正しました!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
||||
このバージョンの主な変更点:パフォーマンスの向上と、バグを修正しました!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
||||
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点: パフォーマンスの向上とバグの修正!
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
||||
このバージョンの主な変更点:パフォーマンスの向上と、バグを修正しました!
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
||||
|
2
fastlane/metadata/android/ja-JP/changelogs/40101040.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40101040.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:パフォーマンスの向上と不具合の修正
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
2
fastlane/metadata/android/ja-JP/changelogs/40101100.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40101100.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:テーマ、スタイルの更新と、スペースに関する新機能。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
@ -1,2 +1,2 @@
|
||||
このバージョンの主な変更点:ルームにて誰かがログアウトした際に発生するエラーを修正しました。
|
||||
全ての変更履歴はこちら: https://github.com/vector-im/element-android/releases/tag/v1.1.16
|
||||
このバージョンの主な変更点:ルームにて誰かがログアウトした際に発生するエラーを修正しました。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.1.16
|
||||
|
2
fastlane/metadata/android/ja-JP/changelogs/40103070.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103070.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:主に通知に関する不具合の修正。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.7-RC2
|
2
fastlane/metadata/android/ja-JP/changelogs/40103080.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103080.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:不具合の修正
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.8
|
2
fastlane/metadata/android/ja-JP/changelogs/40103090.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103090.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:音声メッセージの下書き機能の追加。不具合の修正。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.9
|
2
fastlane/metadata/android/ja-JP/changelogs/40103100.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103100.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:アンケート機能のサポート(実験的)。URL プレビューの新規デザイン。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.10
|
2
fastlane/metadata/android/ja-JP/changelogs/40103110.txt
Normal file
2
fastlane/metadata/android/ja-JP/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/ja-JP/changelogs/40103120.txt
Normal file
2
fastlane/metadata/android/ja-JP/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/ja-JP/changelogs/40103130.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103130.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:登録時の表示に関する変更(Analyticsへのオプトインなど)。数学に関するイベントをラボに追加。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.13
|
2
fastlane/metadata/android/ja-JP/changelogs/40103140.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103140.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:登録時の表示に関する変更(Analyticsへのオプトインなど)。数学に関するイベントをラボに追加。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.14
|
2
fastlane/metadata/android/ja-JP/changelogs/40103150.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40103150.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:登録時の表示に関する変更(Analyticsへのオプトインなど)。数学に関するイベントをラボに追加。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.3.15
|
2
fastlane/metadata/android/ja-JP/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:スレッド機能の実装、吹き出しメッセージ。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/ja-JP/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/ja-JP/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
このバージョンの主な変更点:@roomの対応、非公開の投票など。
|
||||
更新履歴:https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
@ -1,42 +1,42 @@
|
||||
Elementは、安全なメッセンジャー、リモートワーク中のグループチャットに適したチームコラボレーションアプリです。エンドツーエンドの暗号化を使用して、強力なビデオ会議、ファイル共有、音声通話を提供します。
|
||||
Elementは、安全なメッセージングアプリ、リモートワーク中のグループチャットに適したチームコラボレーションアプリです。エンド・ツー・エンドの暗号化技術を使用して、強力なビデオ会議、ファイル共有、音声通話を提供します。
|
||||
|
||||
<b>Elementの特徴</b>
|
||||
- 高度なオンラインコミュニケーションツール
|
||||
- 完全に暗号化されたメッセージにより、リモートワーカーでも、より安全な企業コミュニケーションが可能
|
||||
- Matrixオープンソースフレームワークをベースにした分散型のチャット
|
||||
- プロジェクトを管理しながら、暗号化されたデータで安全にファイル共有
|
||||
- メッセージの完全な暗号化。リモートワーカーでも、より安全な企業コミュニケーションが可能
|
||||
- Matrixオープンソースフレームワークに基づく、分散型のチャット
|
||||
- プロジェクトの管理と並行して、データの暗号化によりファイルを安全に共有することが可能
|
||||
- Voice over IPによるビデオチャットと画面共有
|
||||
- お気に入りのオンラインコラボレーションツール、プロジェクト管理ツール、VoIPサービス、その他のチームメッセージングアプリと簡単に統合可能
|
||||
- お気に入りのオンラインコラボレーションツールや、プロジェクト管理ツール、VoIPサービス、その他のチームメッセージングアプリと簡単に統合可能
|
||||
|
||||
Elementは他のメッセージングアプリやコラボレーションアプリとは全く異なります。安全なメッセージングと分散型(非中央集権)コミュニケーションのためのオープンネットワークであるMatrixで動作します。ユーザーが自分のデータやメッセージを最大限にコントロールできるように、セルフホスティングも可能です。
|
||||
Elementは、他のメッセージングアプリやコラボレーションアプリとは全く異なります。安全なメッセージングと分散型(非中央集権型)コミュニケーションのためのオープンネットワークであるMatrixで動作します。自分のデータやメッセージを最大限にコントロールするために、あなた自身がサーバーを運営することもできます。
|
||||
|
||||
<b>プライバシーと暗号化されたコミュニケーション</b>
|
||||
Elementは、望ましくない広告、データマイニング、ウォールドガーデンからユーザーを保護します。また、エンド・ツー・エンドの暗号化と相互署名された端末の検証により、全てのデータ、1対1のビデオおよび音声通信を保護します。
|
||||
Elementは、望ましくない広告、データマイニング、囲い込みからユーザーを守ります。また、エンド・ツー・エンドの暗号化と、相互署名による端末の認証に基づき、全てのデータ、ビデオ会議、音声通信を保護します。
|
||||
|
||||
Elementは、Slackなどのアプリと統合することで、Matrixネットワーク上の誰とでも安全にコミュニケーションを取ることができると同時に、プライバシーをコントロールすることができます。
|
||||
Elementでは、Matrixネットワークにいる誰とでもコミュニケーションが行えるだけでなく、Slackなどのアプリと連携すれば、他のネットワークともコミュニケーションを行うとともに、プライバシーをコントロールすることができます。
|
||||
|
||||
<b>Elementはセルフホスティングが可能</b>
|
||||
機密データや会話の管理を強化するために、Elementはセルフホスティングが可能です。または、オープンソースの分散型コミュニケーションの標準であるMatrixベースのホストを選択することもできます。Elementは、プライバシー、セキュリティーコンプライアンス、および統合の柔軟性を提供します。
|
||||
<b>セルフホスティングが可能</b>
|
||||
機密データや会話の管理を強化するために、Elementはセルフホスティングが可能です。または、オープンソースの分散型コミュニケーションの標準であるMatrixに基づくサーバーを選ぶこともできます。Elementは、プライバシー、セキュリティーコンプライアンス、および柔軟な機能統合を提供します。
|
||||
|
||||
<b>自分のデータを所有する</b>
|
||||
データやメッセージをどこに保管するかは、ユーザー自身が決めることができます。データマイニングやサードパーティからのアクセスのリスクはありません。
|
||||
データやメッセージを保管する場所を自分で決めることができます。データマイニングや第三者へのデータ流出のリスクはありません。
|
||||
|
||||
Elementでは、どのサーバーを使うかを、ご自身で決めることができます。
|
||||
1. 開発者がホストする matrix.org のパブリックサーバーで無料アカウントを取得するか、ボランティアがホストしているパブリックサーバーから選択する。
|
||||
Elementでは、どのサーバーを使うかをご自身で決めることができます。
|
||||
1. 開発者が運営する matrix.org の公開サーバーで無料アカウントを取得するか、ボランティアが管理している運営サーバーから選ぶ。
|
||||
2. あなた自身がサーバーを運営し、アカウントを管理する。
|
||||
3. Element Matrix Servicesのホスティングプラットフォームに加入し、カスタムサーバー上でアカウントを作る。
|
||||
3. Element Matrix Servicesの運営プラットフォームに加入し、カスタムサーバー上でアカウントを作る。
|
||||
|
||||
<b>オープンなメッセージングとコラボレーション</b>
|
||||
Matrixネットワーク上の誰とでも、相手がElementや他のMatrixアプリを使っているか、さらには他のメッセージングアプリを使っているかに関わらず、チャットをすることができます。
|
||||
相手がElement、他のMatrixアプリ、さらには他のメッセージングアプリを使っているかに関わらず、Matrixネットワーク上の誰とでもチャットをすることができます。
|
||||
|
||||
<b>非常に安全</b>
|
||||
本物のエンド・ツー・エンドの暗号化(会話に参加している人だけがメッセージを復号化できる)と、相互署名された端末の検証を行います。
|
||||
本物のエンド・ツー・エンドの暗号化(会話に参加している人だけがメッセージを復号化できます)と、クロス署名による端末の認証が可能です。
|
||||
|
||||
<b>包括的なコミュニケーションと統合</b>
|
||||
メッセージング、音声およびビデオ通話、ファイル共有、画面共有、その他多くのインテグレーション、ボット、ウィジェットを提供します。ルームやコミュニティーを立ち上げて連絡を取り合い、物事をスムーズに成し遂げることができます。
|
||||
メッセージング、音声およびビデオ通話、ファイル共有、画面共有、その他多くの機能統合、ボット、ウィジェットを提供します。ルームやコミュニティーを立ち上げて連絡を取り合い、物事をスムーズに成し遂げましょう。
|
||||
|
||||
<b>中断からの再開</b>
|
||||
メッセージの履歴は全ての端末とウェブ(https://app.element.io)で完全に同期されるので、どこからでも連絡を取り合うことができます。
|
||||
<b>いつでも、どこにいても</b>
|
||||
メッセージの履歴は、全ての端末とウェブ(https://app.element.io)で完全に同期されるので、どこからでも連絡を取り合うことができます。
|
||||
|
||||
<b>オープンソース</b>
|
||||
Element AndroidはGitHubで開発されているオープンソースのプロジェクトです。 バグの報告や開発への貢献は https://github.com/vector-im/element-android にて受け付けています。
|
||||
Element Androidは、GitHubで開発されているオープンソースのプロジェクトです。 不具合の報告や開発への貢献は https://github.com/vector-im/element-android にて受け付けています。
|
||||
|
2
fastlane/metadata/android/ru-RU/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Начальная реализация веток сообщений. Сообщения пузыри.
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/ru-RU/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: добавлена поддержка @room и нераскрытых опросов, а также множество других мелких изменений.
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/sq/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/sq/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Ndryshime kryesore në këtë version: Sendërtimi fillestar i mesazheve në rrjedha. Flluska mesazhesh.
|
||||
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/sq/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/sq/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Ndryshimet kryesore në këtë version: shtim mbulimi për @room dhe për pyetësorë jopublikë, mes mjaft ndryshimesh të tjera të vockla.
|
||||
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
2
fastlane/metadata/android/sv-SE/changelogs/40104000.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104000.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Huvudsakliga ändringar i den här versionen: Initial implementation av trådmeddelanden. Meddelandebubblor.
|
||||
Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.4.0
|
2
fastlane/metadata/android/sv-SE/changelogs/40104020.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40104020.txt
Normal file
@ -0,0 +1,2 @@
|
||||
Huvudsakliga ändringar i den här versionen: lägg till stöd för @room och slutna omröstningar, och många andra små ändringar.
|
||||
Full ändringslogg: https://github.com/vector-im/element-android/releases/tag/v1.4.2
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=cd5c2958a107ee7f0722004a12d0f8559b4564c34daad7df06cffd4d12a426d0
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
|
||||
distributionSha256Sum=a9a7b7baba105f6557c9dcf9c3c6e8f7e57e6b49889c5f1d133f015d0727e4be
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
@ -59,7 +59,7 @@ dependencies {
|
||||
implementation libs.jetbrains.coroutinesCore
|
||||
implementation libs.jetbrains.coroutinesAndroid
|
||||
|
||||
testImplementation 'org.json:json:20211205'
|
||||
testImplementation 'org.json:json:20220320'
|
||||
testImplementation libs.tests.junit
|
||||
androidTestImplementation libs.androidx.junit
|
||||
androidTestImplementation libs.androidx.espressoCore
|
||||
|
@ -20,13 +20,12 @@ import android.content.Context
|
||||
import android.view.View
|
||||
import com.airbnb.epoxy.TypedEpoxyController
|
||||
import com.airbnb.mvrx.Fail
|
||||
import com.airbnb.mvrx.Success
|
||||
import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence
|
||||
import me.gujun.android.span.Span
|
||||
import me.gujun.android.span.span
|
||||
|
||||
internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
TypedEpoxyController<JSonViewerState>() {
|
||||
TypedEpoxyController<JSonViewerState>() {
|
||||
|
||||
private var styleProvider: JSonViewerStyleProvider = JSonViewerStyleProvider.default(context)
|
||||
|
||||
@ -44,10 +43,8 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
text(async.error.localizedMessage?.toEpoxyCharSequence())
|
||||
}
|
||||
}
|
||||
is Success -> {
|
||||
val model = data.root.invoke()
|
||||
|
||||
model?.let {
|
||||
else -> {
|
||||
async.invoke()?.let {
|
||||
buildRec(it, 0, "")
|
||||
}
|
||||
}
|
||||
@ -55,9 +52,9 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
}
|
||||
|
||||
private fun buildRec(
|
||||
model: JSonViewerModel,
|
||||
depth: Int,
|
||||
idBase: String
|
||||
model: JSonViewerModel,
|
||||
depth: Int,
|
||||
idBase: String
|
||||
) {
|
||||
val host = this
|
||||
val id = "$idBase/${model.key ?: model.index}_${model.isExpanded}}"
|
||||
@ -74,34 +71,34 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
id(id + "_sum")
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
if (model.key != null) {
|
||||
span("\"${model.key}\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
if (model.index != null) {
|
||||
span("${model.index}") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span {
|
||||
+"{+${model.keys.size}}"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}.toEpoxyCharSequence()
|
||||
if (model.key != null) {
|
||||
span("\"${model.key}\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
if (model.index != null) {
|
||||
span("${model.index}") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span {
|
||||
+"{+${model.keys.size}}"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
itemClickListener(View.OnClickListener { host.itemClicked(model) })
|
||||
}
|
||||
}
|
||||
}
|
||||
is JSonViewerArray -> {
|
||||
is JSonViewerArray -> {
|
||||
if (model.isExpanded) {
|
||||
open(id, model.key, model.index, depth, false, model)
|
||||
model.items.forEach {
|
||||
@ -113,6 +110,38 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
id(id + "_sum")
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
if (model.key != null) {
|
||||
span("\"${model.key}\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
if (model.index != null) {
|
||||
span("${model.index}") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span {
|
||||
+"[+${model.items.size}]"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
itemClickListener(View.OnClickListener { host.itemClicked(model) })
|
||||
}
|
||||
}
|
||||
}
|
||||
is JSonViewerLeaf -> {
|
||||
valueItem {
|
||||
id(id)
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
if (model.key != null) {
|
||||
span("\"${model.key}\"") {
|
||||
@ -122,6 +151,7 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
|
||||
if (model.index != null) {
|
||||
span("${model.index}") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
@ -130,41 +160,8 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span {
|
||||
+"[+${model.items.size}]"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
append(host.valueToSpan(model))
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
itemClickListener(View.OnClickListener { host.itemClicked(model) })
|
||||
}
|
||||
}
|
||||
}
|
||||
is JSonViewerLeaf -> {
|
||||
valueItem {
|
||||
id(id)
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
if (model.key != null) {
|
||||
span("\"${model.key}\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
|
||||
if (model.index != null) {
|
||||
span("${model.index}") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
append(host.valueToSpan(model))
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
copyValue(model.stringRes)
|
||||
}
|
||||
@ -175,12 +172,12 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
private fun valueToSpan(leaf: JSonViewerLeaf): Span {
|
||||
val host = this
|
||||
return when (leaf.type) {
|
||||
JSONType.STRING -> {
|
||||
JSONType.STRING -> {
|
||||
span("\"${leaf.stringRes}\"") {
|
||||
textColor = host.styleProvider.stringColor
|
||||
}
|
||||
}
|
||||
JSONType.NUMBER -> {
|
||||
JSONType.NUMBER -> {
|
||||
span(leaf.stringRes) {
|
||||
textColor = host.styleProvider.numberColor
|
||||
}
|
||||
@ -190,7 +187,7 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
textColor = host.styleProvider.booleanColor
|
||||
}
|
||||
}
|
||||
JSONType.NULL -> {
|
||||
JSONType.NULL -> {
|
||||
span("null") {
|
||||
textColor = host.styleProvider.booleanColor
|
||||
}
|
||||
@ -199,42 +196,42 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
}
|
||||
|
||||
private fun open(
|
||||
id: String,
|
||||
key: String?,
|
||||
index: Int?,
|
||||
depth: Int,
|
||||
isObject: Boolean = true,
|
||||
composed: JSonViewerModel
|
||||
id: String,
|
||||
key: String?,
|
||||
index: Int?,
|
||||
depth: Int,
|
||||
isObject: Boolean = true,
|
||||
composed: JSonViewerModel
|
||||
) {
|
||||
val host = this
|
||||
valueItem {
|
||||
id("${id}_Open")
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
if (key != null) {
|
||||
span("\"$key\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
span {
|
||||
if (key != null) {
|
||||
span("\"$key\"") {
|
||||
textColor = host.styleProvider.keyColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
if (index != null) {
|
||||
span("$index") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
}
|
||||
if (index != null) {
|
||||
span("$index") {
|
||||
span("- ") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span(" : ") {
|
||||
span("{".takeIf { isObject } ?: "[") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}
|
||||
span("- ") {
|
||||
textColor = host.styleProvider.secondaryColor
|
||||
}
|
||||
span("{".takeIf { isObject } ?: "[") {
|
||||
textColor = host.styleProvider.baseColor
|
||||
}
|
||||
}.toEpoxyCharSequence()
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
itemClickListener(View.OnClickListener { host.itemClicked(composed) })
|
||||
}
|
||||
@ -251,10 +248,10 @@ internal class JSonViewerEpoxyController(private val context: Context) :
|
||||
id("${id}_Close")
|
||||
depth(depth)
|
||||
text(
|
||||
span {
|
||||
text = "}".takeIf { isObject } ?: "]"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}.toEpoxyCharSequence()
|
||||
span {
|
||||
text = "}".takeIf { isObject } ?: "]"
|
||||
textColor = host.styleProvider.baseColor
|
||||
}.toEpoxyCharSequence()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,6 @@ import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.view.ContextMenu
|
||||
import android.view.Menu
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
@ -77,10 +76,7 @@ internal abstract class ValueItem : EpoxyModelWithHolder<ValueItem.Holder>() {
|
||||
menuInfo: ContextMenu.ContextMenuInfo?
|
||||
) {
|
||||
if (copyValue != null) {
|
||||
val menuItem = menu?.add(
|
||||
Menu.NONE, R.id.copy_value,
|
||||
Menu.NONE, R.string.copy_value
|
||||
)
|
||||
val menuItem = menu?.add(R.string.copy_value)
|
||||
val clipService =
|
||||
v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager
|
||||
menuItem?.setOnMenuItemClickListener {
|
||||
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/copy_value"
|
||||
android:title="@string/copy_value" />
|
||||
|
||||
</menu>
|
@ -1,3 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="copy_value">Copy Value</string>
|
||||
</resources>
|
||||
|
@ -17,7 +17,12 @@
|
||||
package im.vector.lib.multipicker.utils
|
||||
|
||||
import android.database.Cursor
|
||||
import androidx.core.database.getStringOrNull
|
||||
|
||||
fun Cursor.getColumnIndexOrNull(column: String): Int? {
|
||||
return getColumnIndex(column).takeIf { it != -1 }
|
||||
}
|
||||
|
||||
fun Cursor.readStringColumnOrNull(column: String): String? {
|
||||
return getColumnIndexOrNull(column)?.let { getStringOrNull(it) }
|
||||
}
|
||||
|
@ -60,6 +60,4 @@ dependencies {
|
||||
implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12'
|
||||
// dialpad dimen
|
||||
implementation 'im.dlg:android-dialer:1.2.5'
|
||||
// AudioRecordView attr
|
||||
implementation 'com.github.Armen101:AudioRecordView:1.0.5'
|
||||
}
|
@ -71,19 +71,6 @@
|
||||
android:enabled="false"
|
||||
android:text="Destructive disabled" />
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Unelevated.Bot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Bot" />
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Unelevated.Bot"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:enabled="false"
|
||||
android:text="Bot disabled" />
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Outlined"
|
||||
android:layout_width="wrap_content"
|
||||
@ -98,19 +85,6 @@
|
||||
android:enabled="false"
|
||||
android:text="Outline disabled" />
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Outlined.Poll"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Poll " />
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Outlined.Poll"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:enabled="false"
|
||||
android:text="Poll disabled" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -74,7 +74,7 @@
|
||||
android:padding="16dp">
|
||||
|
||||
<Button
|
||||
style="@style/Widget.Vector.Button.Outlined.SocialLogin.Google.Dark"
|
||||
style="@style/Widget.Vector.Button.Outlined.SocialLogin.Google.Light"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Continue with XXX" />
|
||||
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="#4285F4" android:state_enabled="true"/>
|
||||
<item android:color="@color/vctr_disabled_view_color_light" android:state_enabled="false"/>
|
||||
<item android:color="#3367D6" android:state_pressed="true"/>
|
||||
<item android:color="#4285F4" android:state_focused="true"/>
|
||||
</selector>
|
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="DialpadKeyNumberStyle">
|
||||
<item name="android:textColor">?attr/vctr_content_primary</item>
|
||||
<item name="android:textSize">@dimen/dialpad_key_numbers_default_size</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_marginBottom">@dimen/dialpad_key_number_default_margin_bottom</item>
|
||||
<item name="android:gravity">center</item>
|
||||
</style>
|
||||
|
||||
<style name="DialpadKeyLettersStyle">
|
||||
<item name="android:textColor">?attr/vctr_content_secondary</item>
|
||||
<item name="android:textSize">@dimen/dialpad_key_letters_size</item>
|
||||
<item name="android:fontFamily">sans-serif-regular</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:gravity">center_horizontal</item>
|
||||
</style>
|
||||
|
||||
<style name="DialpadKeyPoundStyle" parent="DialpadKeyNumberStyle">
|
||||
<item name="android:textSize">@dimen/dialpad_key_pound_size</item>
|
||||
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
|
||||
</style>
|
||||
|
||||
<style name="DialpadKeyStarStyle" parent="DialpadKeyNumberStyle">
|
||||
<item name="android:textSize">@dimen/dialpad_key_star_size</item>
|
||||
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user