1
0
mirror of https://github.com/vector-im/riotX-android synced 2025-10-06 08:12:46 +02:00

Compare commits

...

563 Commits

Author SHA1 Message Date
ericdecanini
92322aa4c6 Adds conditional transition logic on opening images 2022-06-09 15:05:34 +02:00
Onuray Sahin
3f491018b4 Merge pull request #6244 from vector-im/feature/ons/organize_location_settings_flags
Re-organize location settings flags [PSF-1062]
2022-06-08 13:03:10 +03:00
Benoit Marty
3b2f9d9404 Merge pull request #6029 from vector-im/feature/bma/sdk_sync_service
Feature/bma/sdk sync service
2022-06-08 11:58:38 +02:00
Adam Brown
6ad672e04b Merge pull request #6250 from vector-im/dependabot/gradle/com.autonomousapps.dependency-analysis-1.5.0
Bump com.autonomousapps.dependency-analysis from 1.4.0 to 1.5.0
2022-06-08 10:27:11 +01:00
Benoit Marty
9bc70399f1 Merge pull request #6259 from vector-im/feature/bma/release_store_status
Release recipe: stores live status and update of F-Droid flow.
2022-06-08 11:11:40 +02:00
Adam Brown
a4721033c8 Merge pull request #6229 from vector-im/dependabot/gradle/org.matrix.android-olm-sdk-3.2.12
Bump olm-sdk from 3.2.11 to 3.2.12
2022-06-08 10:04:08 +01:00
Benoit Marty
0b3dfab951 "beta" -> "open testing" PlayStore terminology and move step to update the topic once production is live to a dedicated section. Also update the diary only when production is live. 2022-06-08 10:45:26 +02:00
Benoit Marty
78da5017a9 Update about the F-Droid release flow. 2022-06-08 10:27:46 +02:00
Benoit Marty
b35a09906c Add checks to give the status of the PlayStore submission. 2022-06-08 10:23:19 +02:00
Benoit Marty
ac61aeea29 Fix compilation issue after rebase. 2022-06-08 10:00:48 +02:00
Benoit Marty
1bad8f7741 Introduce SessionState to be able to check the Session state from several places. 2022-06-08 09:55:28 +02:00
Benoit Marty
d3784c8019 Add changelog 2022-06-08 09:55:28 +02:00
Benoit Marty
de960116b3 Rename internal fun. 2022-06-08 09:55:28 +02:00
Benoit Marty
dd22cdf7f2 Rename existing SyncService to SyncAndroidService to avoid confusion 2022-06-08 09:55:28 +02:00
Benoit Marty
f62d598b79 Create a SyncService and move some methods from Session there.
Merge SyncStatusService to SyncService, and rename some classes
2022-06-08 09:53:33 +02:00
Maxime NATUREL
73568dbc86 Merge pull request #6212 from vector-im/fix/mna/6209-wrong-live-status
Fix wrong status of live location sharing in timeline (PSF-1073)
2022-06-08 09:40:33 +02:00
dependabot[bot]
8030a8ceaf Bump com.autonomousapps.dependency-analysis from 1.4.0 to 1.5.0
Bumps com.autonomousapps.dependency-analysis from 1.4.0 to 1.5.0.

---
updated-dependencies:
- dependency-name: com.autonomousapps.dependency-analysis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-07 23:10:08 +00:00
Benoit Marty
733c2848a7 Merge pull request #6226 from vector-im/dependabot/gradle/androidx.core-core-ktx-1.8.0
Bump core-ktx from 1.7.0 to 1.8.0
2022-06-07 23:43:21 +02:00
Benoit Marty
7274924977 Merge pull request #6239 from vector-im/sync-analytics-plan
Sync analytics plan
2022-06-07 23:40:58 +02:00
Adam Brown
462d3071de Merge pull request #6171 from vector-im/feature/adm/sdk-new-password-on-confirmation
[SDK] Allow passwords to be set at the point of reset confirmation
2022-06-07 16:43:28 +01:00
Michael Kaye
93bacc98fe Revert "Ignore tests."
This reverts commit 17d85840a7.
2022-06-07 16:02:53 +01:00
Michael Kaye
49d1c1baee Revert "Remove UI tests from connected android test run via @Ignore"
This reverts commit 5eac30d283.
2022-06-07 16:02:52 +01:00
Michael Kaye
2946f2ec59 Revert "Include vector connected android tests in coverage run."
This reverts commit d43cff9d2f.
2022-06-07 16:02:49 +01:00
Michael Kaye
17d85840a7 Ignore tests.
All failing with
```
im.vector.app.SecurityBootstrapTest > testBasicBootstrap[Nexus_5X_API_28(AVD) - 9] FAILED
        java.lang.IllegalStateException: Method addObserver must be called on the main thread
        at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.java:317)

im.vector.app.VerifySessionInteractiveTest > checkVerifyPopup[Nexus_5X_API_28(AVD) - 9] FAILED
        java.lang.IllegalStateException: Method addObserver must be called on the main thread
        at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.java:317)

im.vector.app.VerifySessionPassphraseTest > checkVerifyWithPassphrase[Nexus_5X_API_28(AVD) - 9] FAILED
        java.lang.IllegalStateException: Method addObserver must be called on the main thread
        at androidx.lifecycle.LifecycleRegistry.enforceMainThreadIfNeeded(LifecycleRegistry.java:317)

```
2022-06-07 15:44:27 +01:00
Michael Kaye
5eac30d283 Remove UI tests from connected android test run via @Ignore 2022-06-07 15:42:58 +01:00
Michael Kaye
d43cff9d2f Include vector connected android tests in coverage run. 2022-06-07 15:42:42 +01:00
Benoit Marty
c2bf6ab7e3 Merge branch 'hotfix/v1.4.19' into develop 2022-06-07 15:14:47 +02:00
Benoit Marty
26dcc9bc52 Merge hotfix 1.4.19 into develop 2022-06-07 15:14:29 +02:00
Benoit Marty
b2f67f971b Prepare v1.4.19 2022-06-07 15:11:46 +02:00
ericdecanini
6513210904 Changes space subtitle in explore rooms from joined string to direct space parent 2022-06-07 15:02:15 +02:00
Valere
a6113526d0 code review 2022-06-07 15:01:57 +02:00
Valere
2fa25f8b5e Fix param name 2022-06-07 15:01:29 +02:00
Valere
d67f86a1e0 fix slow paged room list 2022-06-07 15:00:54 +02:00
Onuray Sahin
ea714bbdaa Fix lint errors - unused string resources. 2022-06-07 13:06:09 +03:00
Adam Brown
4ffce89ef2 adding fallback locale for when the configuration locale is missing 2022-06-07 10:37:18 +01:00
ClaireG
0602f58074 Merge pull request #6234 from vector-im/cgizard/ISSUE-6232
Text cropped: "Secure backup"
2022-06-07 11:19:10 +02:00
Michael Kaye
10125f4738 Merge pull request #6111 from vector-im/michaelk/sonarqube_fixes
Sonarqube including coverage on each PR.
2022-06-07 09:44:00 +01:00
Onuray Sahin
4b862be9df Changelog added. 2022-06-07 01:05:10 +03:00
Michael Kaye
c2ac07b1c9 Fix ktlint error 2022-06-06 18:56:05 +01:00
Michael Kaye
23324990c0 Fix and/&& mixup 2022-06-06 17:55:12 +01:00
Michael Kaye
e9cb417cef We still might be flaky; retry entire test run if so. 2022-06-06 17:43:30 +01:00
Onuray Sahin
e506337522 Remove labs flag for rendering location events. 2022-06-06 19:32:48 +03:00
Michael Kaye
56608d564e Retry ALL THE THINGS, and always send sonarqube 2022-06-06 17:08:02 +01:00
Adam Brown
0ef67b6b64 Merge pull request #6214 from vector-im/feature/adm/homeserver-version-parsing
Homeserver version without patch number parsing
2022-06-06 14:54:32 +01:00
Adam Brown
fa21b6d224 creating generic extension for converting empty strings to null and making use for finding option regex match 2022-06-06 14:16:01 +01:00
Onuray Sahin
d75bd140d9 Remove location sharing flag from preferences. 2022-06-06 15:59:46 +03:00
Adam Brown
edfabb0f26 adding missing loading state when confirming password reset
- adds reset test cases to the onboarding view model
2022-06-06 13:59:34 +01:00
Adam Brown
fa5b7c66ca adding dedicated fail event in the legacy onboarding flow when the reset password new password is not set 2022-06-06 13:59:34 +01:00
Adam Brown
32389a9b33 removing impossible case 2022-06-06 13:59:33 +01:00
Adam Brown
93a247e0ce converting if/else and try/catch to when and runCatching 2022-06-06 13:58:55 +01:00
Adam Brown
cc8f17b786 moving the reset password new password to the reset confirmation step
- the new password is moved to the in memory view model state
2022-06-06 13:57:59 +01:00
Adam Brown
35163f77ba allow passing the new password when resetting passwords either upfront or as part of the confirmation step 2022-06-06 13:57:59 +01:00
Adam Brown
e3d46cfd15 introducing a reset state for holding onto the reset inputs 2022-06-06 13:57:58 +01:00
Adam Brown
a5f404f247 Merge pull request #6042 from vector-im/feature/adm/ftue-analytics
FTUE - Sign up analytics
2022-06-06 13:52:01 +01:00
Adam Brown
db3cb42cc3 renaming getter to imply the function does more than simply get a value 2022-06-06 11:41:36 +01:00
Adam Brown
06e67a313b correctly casing github/gitlab 2022-06-06 11:39:59 +01:00
Adam Brown
49930773e7 handling the legacy onboarding complete navigation by inferring the auth description from the sign mode
- the type is set to other as the legacy viewmodel doesn't support tracking the sso provider
2022-06-06 11:38:29 +01:00
Onuray Sahin
bae830dd03 Merge pull request #6222 from vector-im/feature/ons/fix_voice_message_stackoverflow
Fix StackOverflowError while recording voice message [PSF-1065]
2022-06-06 12:58:15 +03:00
Adam Brown
6fcbd24ce1 reverting instance check, no longer needed as the event no longer contains any data
- it's part of the initialstate instead
2022-06-06 10:23:06 +01:00
Adam Brown
5d0d177a7a including null case in the authentication when 2022-06-06 10:22:22 +01:00
Onuray Sahin
0b9db0ee6b Code review fix. 2022-06-06 12:19:09 +03:00
bmarty
0104fe70ab Sync analytics plan 2022-06-06 00:03:15 +00:00
Jorge Martin Espinosa
166d2a3ba0 Merge pull request #6151 from vector-im/feature/jorgem/outbound_presharing_keys_mode
Allow .well-known configuration to override key sharing mode.
2022-06-03 15:33:59 +02:00
Claire G
6ed6b49d7f fix text cropped 2022-06-03 14:41:43 +02:00
dependabot[bot]
941d5844b5 Bump olm-sdk from 3.2.11 to 3.2.12
Bumps olm-sdk from 3.2.11 to 3.2.12.

---
updated-dependencies:
- dependency-name: org.matrix.android:olm-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-03 01:03:37 +00:00
Benoit Marty
b6b487dfa0 Merge pull request #6094 from vector-im/feature/adm/ftue-avoid-resetting-login-state
SDK - Avoid resetting login state when calling `AuthenticationService.getLoginFlow`
2022-06-02 23:11:52 +02:00
dependabot[bot]
524dcbb3d1 Bump core-ktx from 1.7.0 to 1.8.0
Bumps core-ktx from 1.7.0 to 1.8.0.

---
updated-dependencies:
- dependency-name: androidx.core:core-ktx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-02 10:50:27 +00:00
Benoit Marty
e53c0909dc Merge pull request #6227 from vector-im/dependabot/gradle/androidx.appcompat-appcompat-1.4.2
Bump appcompat from 1.4.1 to 1.4.2
2022-06-02 12:49:13 +02:00
dependabot[bot]
7c50720b76 Bump appcompat from 1.4.1 to 1.4.2
Bumps appcompat from 1.4.1 to 1.4.2.

---
updated-dependencies:
- dependency-name: androidx.appcompat:appcompat
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 23:19:50 +00:00
Adam Brown
8e8d38c3bb adding changelog entry 2022-06-01 16:48:10 +01:00
Adam Brown
4f8aedb038 moving and updating duplicated service function doc 2022-06-01 16:48:10 +01:00
Adam Brown
b0c294b41b avoiding resetting pending state when starting a new login flow
- fixes selecting a incorrect homeserver and returning to the previous login page also failing
2022-06-01 16:48:10 +01:00
Eric Decanini
e18146a006 Merge pull request #6219 from gsouquet/gsouquet/delight-automation
Remove spaces issues to delight board automation
2022-06-01 16:39:32 +02:00
Onuray Sahin
807e89521f Changelog added. 2022-06-01 17:02:17 +03:00
Onuray Sahin
966b3ce54a Create a new list for sublist to fix stackoverflowerror. 2022-06-01 16:55:42 +03:00
Adam Brown
033b877269 Merge pull request #6216 from vector-im/dependabot/gradle/com.google.android.material-material-1.6.1
Bump material from 1.6.0 to 1.6.1
2022-06-01 13:48:09 +01:00
Adam Brown
10016fcb15 using correct license for matrix sdk class 2022-06-01 13:45:59 +01:00
Germain Souquet
3b680e27e8 Fix label name 2022-06-01 11:46:51 +01:00
Germain Souquet
de3e0acb56 move issues with the team delight label 2022-06-01 11:37:33 +01:00
Adam Brown
3756b2d240 adding trailing commas to lists 2022-06-01 10:44:23 +01:00
Adam Brown
4501c7cf45 adding test case for trailing . on the version 2022-06-01 10:44:10 +01:00
Adam Brown
b3841c9006 adding changelog entry 2022-06-01 10:41:37 +01:00
Adam Brown
289ce7419d supporting homeserver versions without a patch value 2022-06-01 10:41:37 +01:00
Adam Brown
ea151b37f0 adding test cases around parsing homeserver versions 2022-06-01 10:41:37 +01:00
Germain Souquet
0287153e56 Remove spaces issues to delight board automation 2022-06-01 10:04:47 +01:00
Adam Brown
d002ab6a6b removing unused imports 2022-06-01 09:11:05 +01:00
Adam Brown
8d3c70f522 removing unused imports 2022-06-01 09:11:05 +01:00
Adam Brown
70c35304ce aligning the with develop to use the initial state for reading the activity arguments 2022-06-01 09:11:05 +01:00
Adam Brown
15765166fb adding changelog entry 2022-06-01 09:11:05 +01:00
Adam Brown
28050488ba passing the authentication state from the onboarding and tracking sign up after the user has consented to tracking 2022-06-01 09:11:04 +01:00
Adam Brown
ac89495348 chaining the current authentication type into the onboarding state 2022-06-01 09:09:56 +01:00
Adam Brown
e89f9eae1a providing the full SSOProvider instead of selection instead of just the id 2022-06-01 09:09:56 +01:00
Adam Brown
9110fe8a6a lifting unavailable homeserver rendering to the activity/ftuevariant
- the viewmodel is now responsible for inferring connectivity errors and providing a retry action
2022-06-01 09:09:56 +01:00
dependabot[bot]
5934043d17 Bump material from 1.6.0 to 1.6.1
Bumps [material](https://github.com/material-components/material-components-android) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.6.0...1.6.1)

---
updated-dependencies:
- dependency-name: com.google.android.material:material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-31 23:06:50 +00:00
Benoit Marty
e6beb73e3d Merge pull request #5970 from ofalvai/feature/ofa/read-receipts-design
Make read receipt avatar list more compact
2022-05-31 18:26:57 +02:00
Benoit Marty
8e709dbbdb Merge pull request #5528 from SpiritCroc/chunk-modification-issue
Fix missing/swapped/duplicated messages due to wrong TimelineChunk modifications or insertions
2022-05-31 18:24:08 +02:00
Benoit Marty
1fe4ecee99 Merge pull request #5888 from vector-im/feature/bma/issue_tmpl
Add a final question to know if the issue submitter will provide a PR
2022-05-31 18:18:59 +02:00
Benoit Marty
884525bef0 Merge pull request #6125 from vector-im/task/eric/code-style-parenthesis
Code Style - New line before and after method parentheses
2022-05-31 18:17:07 +02:00
Benoit Marty
1c73e28226 Version++ 2022-05-31 17:58:09 +02:00
Benoit Marty
ba5828711b Merge branch 'release/1.4.18' into main 2022-05-31 17:56:43 +02:00
Benoit Marty
e3c72876df Merge branch 'release/1.4.18' into develop 2022-05-31 17:56:42 +02:00
Benoit Marty
bd970505f1 Fastlane 2022-05-31 17:56:19 +02:00
Benoit Marty
6f7f61f33f Towncrier 2022-05-31 17:55:26 +02:00
Olivér Falvai
b5168f27dd Merge remote-tracking branch 'origin/develop' into feature/ofa/read-receipts-design 2022-05-31 17:50:02 +02:00
Olivér Falvai
3146920c04 Add changelog entry 2022-05-31 17:49:47 +02:00
Benoit Marty
19fa2f273d Rename folder to please the PlayStore. 2022-05-31 16:47:59 +02:00
Benoit Marty
8e5c96adf5 Merge pull request #6205 from vector-im/johannes/fatal
Use fatalError instead of NPE
2022-05-31 16:37:49 +02:00
Benoit Marty
fd5c30c8a9 Fix formatting issue. 2022-05-31 16:36:59 +02:00
Benoit Marty
5b985dc032 Merge pull request #5827 from mikonse/fix-notification-space-switch
do not switch away from home space on notification
2022-05-31 16:34:47 +02:00
Johannes Marbach
637b3bb5ba Fix tests 2022-05-31 16:16:54 +02:00
Maxime NATUREL
de185b94f3 Merge pull request #6199 from vector-im/feature/mna/6198-remove-background-location-permission
Remove background location permission
2022-05-31 15:58:57 +02:00
Maxime NATUREL
b1750c1c21 Adding log in worker 2022-05-31 15:56:36 +02:00
Maxime NATUREL
102684ed88 Fixing aggregation process 2022-05-31 15:56:23 +02:00
Maxime NATUREL
9874bdeeab Adding changelog entry 2022-05-31 15:56:16 +02:00
Benoit Marty
df23fd10bc Remove unused import 2022-05-31 14:42:09 +02:00
Maxime NATUREL
2ca96a770d Declaring tools namespace prefix to fix strange build error 2022-05-31 14:24:09 +02:00
ericdecanini
8af49891ff Post merge conflict reformatting 2022-05-31 14:23:02 +02:00
ericdecanini
e6e05317e1 Merge remote-tracking branch 'origin/develop' into task/eric/code-style-parenthesis
# Conflicts:
#	matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/internal/crypto/verification/qrcode/VerificationTest.kt
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/keysbackup/DefaultKeysBackupService.kt
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/DefaultRoomService.kt
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt
#	vector/src/main/java/im/vector/app/features/home/room/list/RoomSummaryItemFactory.kt
#	vector/src/main/java/im/vector/app/features/media/ImageContentRenderer.kt
2022-05-31 14:21:16 +02:00
Benoit Marty
9cf9e10e5c Merge pull request #6202 from vector-im/feature/bma/cleanup_string
Remove unused strings.
2022-05-31 14:19:13 +02:00
Adam Brown
b88ddbc854 Merge pull request #6201 from vector-im/feature/adm/build-health-false-positives
Build health false positives
2022-05-31 13:15:25 +01:00
Maxime NATUREL
4f3b4a71ce Ignore unused strings to be deleted 2022-05-31 13:46:14 +02:00
Johannes Marbach
4fc6cb1de3 Use fatalError instead of NPE
Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-05-31 13:42:31 +02:00
Adam Brown
3f670045b3 ordering alphabetically and leaving a trailing comma 2022-05-31 11:20:14 +01:00
Benoit Marty
9d60aff8a2 Remove unused strings. 2022-05-31 12:11:16 +02:00
Adam Brown
2ce64b8f87 excluding the emoji dependencies from the unused check, their resources are used 2022-05-31 10:46:50 +01:00
Benoit Marty
3cc1951587 Merge pull request #6196 from vector-im/feature/bma/lao
Make Lao language available in the in app setting.
2022-05-31 11:42:07 +02:00
Benoit Marty
d6b68a33c9 Merge pull request #6194 from vector-im/bma/translators_note
Add note to translators.
2022-05-31 11:40:52 +02:00
Benoit Marty
aa753e4845 Merge pull request #6197 from RiotTranslateBot/weblate-element-android-element-app
Translations update from Weblate
2022-05-31 11:38:41 +02:00
Jorge Martín
2271df9907 Add support for setting pre sharing keys mode from .well-known 2022-05-31 11:32:39 +02:00
Maxime NATUREL
233fe21f26 Remove runtime permission request 2022-05-31 11:04:48 +02:00
Maxime NATUREL
90cda6b2be Adding todo to delete some strings 2022-05-31 11:04:29 +02:00
Maxime NATUREL
00002105cf Remove permission declaration in Manifests 2022-05-31 11:04:14 +02:00
Maxime NATUREL
e337035aec Add changelog entry 2022-05-31 11:03:49 +02:00
Jorge Martin Espinosa
2e1a11e10e Merge pull request #6134 from vector-im/feature/jorgem/mandatory-backup-passphrase
Add support for mandatory backup or passphrase from .well-known home server configuration
2022-05-31 11:02:02 +02:00
Johannes Marbach
7dd5b801bb Merge pull request #6149 from vector-im/johannes/widget-system-permissions
Make widget web view request system permissions for camera and microphone (PSF-1061)
2022-05-31 10:54:45 +02:00
Adam Brown
7fdf138e5a Merge pull request #6036 from vector-im/feature/adm/ftue-deeplinks
FTUE - Homeserver sign in/up deeplinks
2022-05-31 09:30:17 +01:00
Weblate
7f59efb876 Merge branch 'origin/develop' into Weblate. 2022-05-31 08:04:30 +00:00
Mr.Narsus
2e7c7c94fb Translated using Weblate (Arabic)
Currently translated at 44.0% (981 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ar/
2022-05-31 08:04:18 +00:00
Jorge Martín
130ed63b03 Add support for mandatory backup or passphrase from .well-known configuration 2022-05-31 10:00:46 +02:00
Benoit Marty
9ed62ac9f7 Changelog 2022-05-31 09:58:13 +02:00
Johannes Marbach
4ebb26d3d3 Merge branch 'develop' into johannes/widget-system-permissions 2022-05-31 09:53:31 +02:00
Benoit Marty
c6c96677e2 Make Lao language available in the in app setting. 2022-05-31 09:52:11 +02:00
Johannes Marbach
373991915e Add missing file 2022-05-31 08:10:13 +02:00
Benoit Marty
8cddd9f575 Add note to translators. 2022-05-30 21:20:15 +02:00
Benoit Marty
483b1ab503 Merge pull request #6132 from jtbx/patch-1
Fixed grammar in 2 English strings
2022-05-30 21:18:08 +02:00
Benoit Marty
5de6771547 Merge pull request #6166 from networkException/autoplay-animated-images
[Feature] Add the option to autoplay animated images
2022-05-30 20:42:19 +02:00
Johannes Marbach
70bb2b7fee Combine event listener interfaces 2022-05-30 20:28:09 +02:00
Benoit Marty
bd2cd3ad96 Merge pull request #6183 from SpiritCroc/persist-image-notification
Fix some notifications never getting dismissed
2022-05-30 20:24:11 +02:00
Benoit Marty
16554bf351 Merge pull request #6189 from vector-im/dependabot/gradle/androidx.activity-activity-1.4.0
Bump activity from 1.2.4 to 1.4.0
2022-05-30 20:23:17 +02:00
Johannes Marbach
5b64946dfb Remove empty default implementation 2022-05-30 20:18:56 +02:00
Onuray Sahin
4ccd242cbf Merge pull request #6170 from vector-im/feature/ons/live_location_bottom_sheet
Live Location Sharing - User List Bottom Sheet [PSF-890]
2022-05-30 21:07:25 +03:00
networkException
fedc637dee Changelog: Add .feature entry for pull request #6166
Signed-off-by: networkException <git@nwex.de>
2022-05-30 20:05:26 +02:00
networkException
b138ac8601 MessageImageVideoItem: Hide play button for autoplaying animated images
This patch updates the logic checking whether to show the
playContentView to not show it when an animated image message would
autoplay its animation.

Signed-off-by: networkException <git@nwex.de>
2022-05-30 20:05:26 +02:00
networkException
9d0fe46723 ImageContentRenderer: Enable image animation if enabled in preferences
This patch removes dontAnimate() in the createGlideRequest() builder
conditionally depending on the user's animated image autoplay
preferences.

Resolves #1160, #5094

Signed-off-by: networkException <git@nwex.de>
2022-05-30 20:05:26 +02:00
networkException
9b60ee70c5 MessageInformationData: Add messageType field
This patch adds the messageType field to MessageInformationData,
containing a nullable string representation of the message event's type.

Signed-off-by: networkException <git@nwex.de>
2022-05-30 20:05:26 +02:00
networkException
f86362f065 VectorPreferences: Add switch for autoplaying animated images
This patch adds a new switch to VectorPreferences, the vector settings
preferences view and various classes propergating the set value of the
switch into parts of the application touched by the following patches.

Signed-off-by: networkException <git@nwex.de>
2022-05-30 20:05:26 +02:00
Benoit Marty
2f983d46b7 Merge pull request #6188 from vector-im/dependabot/gradle/com.autonomousapps.dependency-analysis-1.4.0
Bump com.autonomousapps.dependency-analysis from 1.2.1 to 1.4.0
2022-05-30 18:42:16 +02:00
Benoit Marty
ae94f45f34 Merge pull request #5952 from vector-im/feature/bma/sdk_user_story
Sdk user story
2022-05-30 18:30:56 +02:00
Onuray Sahin
353f290f0c Fix unit tests. 2022-05-30 19:21:57 +03:00
Benoit Marty
afaa89ad42 Merge pull request #6186 from vector-im/feature/bma/knit_toc
Generate toc in md files using knit
2022-05-30 18:14:51 +02:00
Johannes Marbach
75da9887be Move test to the right folder 2022-05-30 17:09:28 +02:00
dependabot[bot]
41a37ae83f Bump com.autonomousapps.dependency-analysis from 1.2.1 to 1.4.0
Bumps com.autonomousapps.dependency-analysis from 1.2.1 to 1.4.0.

---
updated-dependencies:
- dependency-name: com.autonomousapps.dependency-analysis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 14:58:14 +00:00
Johannes Marbach
769b217c7e Remove unused imports 2022-05-30 16:53:59 +02:00
Onuray Sahin
84b3d5520c Fix unit tests. 2022-05-30 17:41:26 +03:00
Johannes Marbach
d757914225 Unsuppress lint rule 2022-05-30 16:35:44 +02:00
Johannes Marbach
73d78646ea Turn test into normal unit test 2022-05-30 16:34:19 +02:00
Auri B. P
a10e67c594 Translated using Weblate (Catalan)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ca/
2022-05-30 14:32:30 +00:00
Mr.Narsus
1e5b378fbf Translated using Weblate (Arabic)
Currently translated at 44.0% (979 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ar/
2022-05-30 14:32:10 +00:00
dependabot[bot]
cb3e2b6a0c Bump activity from 1.2.4 to 1.4.0
Bumps activity from 1.2.4 to 1.4.0.

---
updated-dependencies:
- dependency-name: androidx.activity:activity
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 14:23:11 +00:00
Benoit Marty
0806e7358a Merge pull request #5780 from ofalvai/dependency-cleanup
Remove unused dependencies
2022-05-30 15:41:10 +02:00
Onuray Sahin
04679ea21d Merge branch 'develop' into feature/ons/live_location_bottom_sheet
* develop: (114 commits)
  Docs: Fix various formatting and spelling issues in notifications.md
  Fixing non necessary breaking line
  continuing to the originally supplied url when a rtl override character is detected
  splitting url detection condition into separate branches
  Cleaner code
  Create extension `String?.toActiveSpaceOrOrphanRooms()` to reduce noise.
  Add changelog
  Fix test compilation
  Add some Kdoc
  Add some Kdoc
  Create SpaceFilter.OrphanRooms to improve the API. Not 100% of the side effect. There is probably some (fixed?) bugs here.
  Rename ActiveSpaceFilter to SpaceFilter
  Remove `ActiveSpaceFilter.None` Prefer nullability for API coherency of `RoomSummaryQueryParams`
  Add some Kdoc
  Remove duplicated lines of code (the same code is done a few lines later)
  Remove `RoomCategoryFilter.ALL` Prefer nullability for API coherency of `RoomSummaryQueryParams`
  `displayName` default value is now `QueryStringValue.NoCondition`. It was working fine since in the DB we always have a name using `RoomDisplayNameFallbackProvider`, which in our current implementation always return a non empty String.
  Small rework for nicer code
  Remove duplicated code lines
  Remove `roomId` from `RoomSummaryQueryParams.Builder()`. Create a new API in RoomService to observe a room summary from a roomId.
  ...

# Conflicts:
#	vector/src/main/java/im/vector/app/features/location/live/map/LocationLiveMapViewFragment.kt
2022-05-30 16:27:11 +03:00
Aris Kotsomitopoulos
9a756f2b7a Merge pull request #6168 from vector-im/feature/aris/threads_update_icons
Fix wrong rendered vector icon
2022-05-30 15:59:18 +03:00
SpiritCroc
0670c3c6ee Update unit test for imageUriString 2022-05-30 14:55:08 +02:00
Benoit Marty
fb884e29b5 Update the title, since knit is not clever enough to handle &.
And run `.gradlew knit` again to update the toc.
2022-05-30 14:41:41 +02:00
Onuray Sahin
21abc3fa77 Code review fixes. 2022-05-30 15:40:36 +03:00
Benoit Marty
aa9b5ce0bd Call ./gradlew knit to generate the TOC 2022-05-30 14:35:11 +02:00
Benoit Marty
bc7a50124f Setup knit TOC.
Only ## and more heading will be listed, so add a "h" level.
2022-05-30 14:34:32 +02:00
Benoit Marty
3d437f94f1 Call ./gradlew knit to regenerate the TOC 2022-05-30 14:31:31 +02:00
Benoit Marty
b3a5812a61 Setup knit TOC.
Only ## and more heading will be listed, so add a "h" level.
2022-05-30 14:30:28 +02:00
Benoit Marty
828e13f9be Merge pull request #6182 from networkException/notification-documentation-fixes
Docs: Fix various formatting and spelling issues in notifications.md
2022-05-30 14:26:57 +02:00
Benoit Marty
a94bea3b91 Merge pull request #6173 from vector-im/dependabot/gradle/kotlinCoroutines-1.6.2
Bump kotlinCoroutines from 1.6.1 to 1.6.2
2022-05-30 14:23:22 +02:00
Benoit Marty
816be72386 Merge pull request #6181 from vector-im/dependabot/gradle/vanniktechEmoji-0.15.0
Bump vanniktechEmoji from 0.13.0 to 0.15.0
2022-05-30 14:08:12 +02:00
Benoit Marty
ab651cbe50 Merge pull request #6164 from vector-im/bug/adm/link-checking
Ask the user to confirm urls which contain unicode direction overrides
2022-05-30 14:07:23 +02:00
networkException
609cdf72ae Docs: Fix various formatting and spelling issues in notifications.md
Signed-off-by: networkException <git@nwex.de>
2022-05-30 13:38:53 +02:00
SpiritCroc
292020e95d Fix some notifications never getting dismissed
Persisting notification info fails for non-null Uris:

E NotificationEventPersistence: ## Failed to save cached notification info
E NotificationEventPersistence: java.io.NotSerializableException: android.net.Uri$HierarchicalUri
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1240)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1604)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1565)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
E NotificationEventPersistence: 	at java.util.ArrayList.writeObject(ArrayList.java:762)
E NotificationEventPersistence: 	at java.lang.reflect.Method.invoke(Native Method)
E NotificationEventPersistence: 	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1036)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1552)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1488)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1234)
E NotificationEventPersistence: 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:354)
E NotificationEventPersistence: 	at org.matrix.android.sdk.internal.session.securestorage.SecretStoringUtils.saveSecureObjectM(SecretStoringUtils.kt:283)
E NotificationEventPersistence: 	at org.matrix.android.sdk.internal.session.securestorage.SecretStoringUtils.securelyStoreObject(SecretStoringUtils.kt:150)
E NotificationEventPersistence: 	at org.matrix.android.sdk.internal.session.securestorage.DefaultSecureStorageService.securelyStoreObject(DefaultSecureStorageService.kt:27)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationEventPersistence.persistEvents(NotificationEventPersistence.kt:58)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationDrawerManager$persistEvents$1.invoke(NotificationDrawerManager.kt:183)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationDrawerManager$persistEvents$1.invoke(NotificationDrawerManager.kt:182)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationState.queuedEvents(NotificationState.kt:55)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationDrawerManager.persistEvents(NotificationDrawerManager.kt:182)
E NotificationEventPersistence: 	at im.vector.app.features.notifications.NotificationDrawerManager.refreshNotificationDrawerBg(NotificationDrawerManager.kt:177)

Accordingly, if a notification for an image is shown, and the
notification state is loaded from storage later, none of the previously
shown notifications will get dismissed once read.

Likely addresses https://github.com/vector-im/element-android/issues/4862.

Change-Id: I2d6be497e8b92e770b680e16e42b3610add57323
2022-05-30 13:06:09 +02:00
Onuray Sahin
aa344b1ecd Code documentation. 2022-05-30 13:56:17 +03:00
Maxime NATUREL
eeaf9fd616 Merge pull request #6129 from vector-im/feature/mna/PSF-1019-user-pins
[Location sharing] - Show user live location pins in map view (PSF-1019)
2022-05-30 12:32:09 +02:00
Onuray Sahin
b262aad3a8 Remove unused layout. 2022-05-30 13:24:31 +03:00
Benoit Marty
17ccccc6e6 Merge pull request #6143 from vector-im/feature/bma/cleanup_RoomSummaryQueryParams
Cleanup room summary query params
2022-05-30 12:22:26 +02:00
Maxime NATUREL
538c099913 Fixing non necessary breaking line 2022-05-30 11:44:03 +02:00
Adam Brown
67f1929784 continuing to the originally supplied url when a rtl override character is detected 2022-05-30 10:42:42 +01:00
Adam Brown
e6198d7bf6 splitting url detection condition into separate branches 2022-05-30 10:38:42 +01:00
Benoit Marty
ec498cf054 Cleaner code 2022-05-30 11:38:31 +02:00
Benoit Marty
c071dc502e Create extension String?.toActiveSpaceOrOrphanRooms() to reduce noise. 2022-05-30 11:38:31 +02:00
Benoit Marty
d7a1ae3a00 Add changelog 2022-05-30 11:38:03 +02:00
Benoit Marty
ad60467ae7 Fix test compilation 2022-05-30 11:38:03 +02:00
Benoit Marty
cffdb7f7a6 Add some Kdoc 2022-05-30 11:38:03 +02:00
Benoit Marty
5fbcec0c9c Add some Kdoc 2022-05-30 11:34:55 +02:00
Benoit Marty
0b6f35b256 Create SpaceFilter.OrphanRooms to improve the API.
Not 100% of the side effect. There is probably some (fixed?) bugs here.
2022-05-30 11:34:55 +02:00
Benoit Marty
c7997edf9a Rename ActiveSpaceFilter to SpaceFilter 2022-05-30 11:34:55 +02:00
Benoit Marty
00809027c1 Remove ActiveSpaceFilter.None
Prefer nullability for API coherency of `RoomSummaryQueryParams`
2022-05-30 11:34:55 +02:00
Benoit Marty
289f27b738 Add some Kdoc 2022-05-30 11:34:55 +02:00
Benoit Marty
3442829e11 Remove duplicated lines of code (the same code is done a few lines later) 2022-05-30 11:34:55 +02:00
Benoit Marty
8843fe0a54 Remove RoomCategoryFilter.ALL
Prefer nullability for API coherency of `RoomSummaryQueryParams`
2022-05-30 11:34:55 +02:00
Benoit Marty
8d7a54a6cf displayName default value is now QueryStringValue.NoCondition.
It was working fine since in the DB we always have a name using `RoomDisplayNameFallbackProvider`, which in our current implementation always return a non empty String.
2022-05-30 11:34:55 +02:00
Benoit Marty
2b0077b138 Small rework for nicer code 2022-05-30 11:34:55 +02:00
Benoit Marty
6a728e3851 Remove duplicated code lines 2022-05-30 11:34:55 +02:00
Benoit Marty
bfdc885d7f Remove roomId from RoomSummaryQueryParams.Builder().
Create a new API in RoomService to observe a room summary from a roomId.
2022-05-30 11:34:55 +02:00
Benoit Marty
49a29fb56f Always use roomSummaryQueryParams, and not directly a RoomSummaryQueryParams.Builder()
Also format and add some Kdoc
2022-05-30 11:34:55 +02:00
Benoit Marty
12b3afbc50 Always use roomSummaryQueryParams, and not directly a RoomSummaryQueryParams.Builder()
Also format and add some Kdoc
2022-05-30 11:34:55 +02:00
Maxime NATUREL
1756fa26e1 Using @AndroidEntryPoint for map fragment 2022-05-30 11:21:23 +02:00
Eric Decanini
eeb7d60e59 Merge pull request #5860 from vector-im/feature/eric/replace-search-room-subheader
Replaces subtitle in Search Rooms with room context rather than last event
2022-05-30 11:13:10 +02:00
Adam Brown
d18e7ad001 Merge branch 'develop' of github.com:vector-im/element-android into michaelk/sonarqube_fixes 2022-05-30 10:07:43 +01:00
Eric Decanini
b8c0c61a4c Merge pull request #6073 from vector-im/feature/eric/improve-back-navigation
Adds up navigation in spaces
2022-05-30 10:38:28 +02:00
Maxime NATUREL
7f2279c8a8 Improving view state mapper 2022-05-30 10:37:58 +02:00
Adam Brown
ead189a9c7 temporarily ignoring flaky test when ran on the CI 2022-05-30 09:37:39 +01:00
Maxime NATUREL
066c540eb7 Filter event id in the DB query for active lives 2022-05-30 10:06:04 +02:00
Maxime NATUREL
f707f177d9 Improving mapper tests 2022-05-30 10:03:27 +02:00
dependabot[bot]
174e1fe332 Bump vanniktechEmoji from 0.13.0 to 0.15.0
Bumps `vanniktechEmoji` from 0.13.0 to 0.15.0.

Updates `emoji-material` from 0.13.0 to 0.15.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.13.0...0.15.0)

Updates `emoji-google` from 0.13.0 to 0.15.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.13.0...0.15.0)

---
updated-dependencies:
- dependency-name: com.vanniktech:emoji-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.vanniktech:emoji-google
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 07:40:59 +00:00
Adam Brown
f7f924ce6b Merge pull request #6175 from vector-im/dependabot/gradle/com.googlecode.libphonenumber-libphonenumber-8.12.49
Bump libphonenumber from 8.12.48 to 8.12.49
2022-05-30 08:40:23 +01:00
dependabot[bot]
c6751f00ab Bump libphonenumber from 8.12.48 to 8.12.49
Bumps [libphonenumber](https://github.com/google/libphonenumber) from 8.12.48 to 8.12.49.
- [Release notes](https://github.com/google/libphonenumber/releases)
- [Changelog](https://github.com/google/libphonenumber/blob/master/making-metadata-changes.md)
- [Commits](https://github.com/google/libphonenumber/compare/v8.12.48...v8.12.49)

---
updated-dependencies:
- dependency-name: com.googlecode.libphonenumber:libphonenumber
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-27 23:07:12 +00:00
dependabot[bot]
ff1dbf6f22 Bump kotlinCoroutines from 1.6.1 to 1.6.2
Bumps `kotlinCoroutines` from 1.6.1 to 1.6.2.

Updates `kotlinx-coroutines-core` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md)
- [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.6.1...1.6.2)

Updates `kotlinx-coroutines-android` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md)
- [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.6.1...1.6.2)

Updates `kotlinx-coroutines-test` from 1.6.1 to 1.6.2
- [Release notes](https://github.com/Kotlin/kotlinx.coroutines/releases)
- [Changelog](https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md)
- [Commits](https://github.com/Kotlin/kotlinx.coroutines/compare/1.6.1...1.6.2)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-android
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.jetbrains.kotlinx:kotlinx-coroutines-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-27 23:05:23 +00:00
Onuray Sahin
8bc7d3e073 Changelog added. 2022-05-27 17:55:51 +03:00
ericdecanini
90ab67e1fc Removes unused string 2022-05-27 16:38:33 +02:00
Onuray Sahin
8018ba3213 Zoom to selected user from bottom sheet. 2022-05-27 17:21:49 +03:00
Onuray Sahin
2eaf843031 Implement stop sharing function from bottom sheet. 2022-05-27 16:52:20 +03:00
Onuray Sahin
83e79207c1 Implement stop sharing button visibility. 2022-05-27 16:33:55 +03:00
ericdecanini
e54a82f658 Deletes ic_arrow_back 2022-05-27 15:09:50 +02:00
ericdecanini
a5dc8ec181 Only gets flattenParents if specifically requested 2022-05-27 15:05:39 +02:00
Onuray Sahin
daa0734e5b Implement user list bottom sheet. 2022-05-27 15:34:42 +03:00
Onuray Sahin
8247b1dd7a Add location update timestamp live location view state mapper. 2022-05-27 15:33:57 +03:00
Onuray Sahin
924d7e10a1 Implement bottom sheet controller. 2022-05-27 15:28:18 +03:00
Onuray Sahin
44b2a7fb72 Refactor duration formatter to be able to user StringProvider. 2022-05-27 15:27:38 +03:00
Onuray Sahin
88de113a4e Add bottom sheet layout. 2022-05-27 15:26:40 +03:00
Onuray Sahin
453aa28380 Add required resources. 2022-05-27 15:25:59 +03:00
ariskotsomitopoulos
21225b8a28 Replace old drawable from 2022-05-27 13:56:52 +03:00
Adam Brown
b0f4c87d6b triggering actions 2022-05-27 11:41:43 +01:00
ariskotsomitopoulos
1d36269b03 Fix wrong rendered vector icon 2022-05-27 13:40:53 +03:00
Valere
1b8b4de690 Merge pull request #6048 from vector-im/feature/bca/test_stability
Improve test stability
2022-05-27 11:07:17 +02:00
Anderson Ivanovich
ddd9749177 Translated using Weblate (Tamil)
Currently translated at 5.0% (3 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/ta/
2022-05-27 08:32:07 +00:00
Anderson Ivanovich
bbef119f62 Translated using Weblate (Tamil)
Currently translated at 3.3% (75 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ta/
2022-05-27 08:32:07 +00:00
Valere
c8b44bfd4c fix test post rebase 2022-05-27 10:17:40 +02:00
Onuray Sahin
03a8289a13 Code review fixes. 2022-05-26 15:45:53 +03:00
Olivér Falvai
fe4abf9d78 Add another false positive 2022-05-26 14:33:28 +02:00
Olivér Falvai
9ce9ad6d3a Merge remote-tracking branch 'origin/develop' into dependency-cleanup 2022-05-26 14:04:39 +02:00
Adam Brown
913c6b0f14 warning the user when urls contain directional overrides and allowing them to confirm the url 2022-05-26 12:32:22 +01:00
ericdecanini
d5432cd0e7 Merge remote-tracking branch 'origin/develop' into task/eric/code-style-parenthesis
# Conflicts:
#	vector/src/main/java/im/vector/app/features/onboarding/DirectLoginUseCase.kt
2022-05-26 10:37:19 +02:00
kingoflove819
6a52ff4da2 Translated using Weblate (Tamil)
Currently translated at 3.2% (72 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ta/
2022-05-26 07:32:17 +00:00
Anderson Ivanovich
c6e5a75448 Translated using Weblate (Tamil)
Currently translated at 3.2% (72 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ta/
2022-05-26 07:32:16 +00:00
Glandos
897d28bb03 Translated using Weblate (French)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/fr/
2022-05-26 07:32:13 +00:00
homocomputeris
fc3ebca273 Translated using Weblate (Russian)
Currently translated at 97.6% (2172 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ru/
2022-05-26 07:32:12 +00:00
Didek
7a9b931a36 Translated using Weblate (Polish)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pl/
2022-05-26 07:32:11 +00:00
Johan Smits
fef3cdaeb1 Translated using Weblate (Dutch)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/nl/
2022-05-26 07:32:11 +00:00
Sveinn í Felli
e6614fc4fc Translated using Weblate (Icelandic)
Currently translated at 84.0% (1870 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/is/
2022-05-26 07:32:11 +00:00
Szimszon
bc8432418d Translated using Weblate (Hungarian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/hu/
2022-05-26 07:32:08 +00:00
Vancha
24dc5b10e8 Translated using Weblate (Frisian)
Currently translated at 40.6% (905 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fy/
2022-05-26 07:32:08 +00:00
Glandos
e1285aa50b Translated using Weblate (French)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fr/
2022-05-26 07:32:08 +00:00
Auri B. P
3336249b00 Translated using Weblate (Catalan)
Currently translated at 84.2% (1874 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ca/
2022-05-26 07:32:07 +00:00
Olivér Falvai
2802a714ab Fix concurrency group 2022-05-26 08:36:12 +02:00
Johannes Marbach
92a140b504 Add unit tests for filter/map logic 2022-05-25 20:50:58 +02:00
Valere
5735b094ac post rebase fix 2022-05-25 18:41:37 +02:00
Valere
e1292c03a1 code review 2022-05-25 18:40:33 +02:00
Valere
adb5b4c1b9 Fix closing deactivated accounts in tests 2022-05-25 18:40:33 +02:00
Valere
3332d827f0 rename testHelpers and make constructor private 2022-05-25 18:40:33 +02:00
Valere
29ff4d1e84 use withTestHelpers in sanity tests 2022-05-25 18:40:33 +02:00
Valere
e18402f834 Improve test stability 2022-05-25 18:40:33 +02:00
Adam Brown
096db6c35d giving arugment a proper name 2022-05-25 17:34:00 +01:00
Adam Brown
0675b7c16c Merge pull request #5995 from vector-im/feature/adm/ftue-sign-in
FTUE - Sign in
2022-05-25 17:30:03 +01:00
ericdecanini
927f526c6c Post merge conflict reformatting 2022-05-25 17:35:54 +02:00
ericdecanini
8647400dda Merge remote-tracking branch 'origin/develop' into task/eric/code-style-parenthesis
# Conflicts:
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/MXOlmDevice.kt
2022-05-25 17:35:31 +02:00
Valere
8b2d6c8dc2 Merge pull request #6148 from vector-im/feature/bca/fix_decrypt_redacted_event
Fix decrypting redacted event
2022-05-25 17:26:54 +02:00
Valere
d7c8abbe98 quick format 2022-05-25 16:52:56 +02:00
Valere
abb335c43d Improve redaction test 2022-05-25 16:52:56 +02:00
Valere
136d2e330a added change log 2022-05-25 16:52:56 +02:00
Valere
755da616ed Fix decrypting redacted event 2022-05-25 16:52:56 +02:00
Johannes Marbach
9e084ec372 Inject permission utils 2022-05-25 16:22:16 +02:00
Valere
52eb48d808 Merge pull request #6077 from vector-im/feature/aris/crypto_replay_attack
Feature/aris/crypto replay attack
2022-05-25 16:20:26 +02:00
Johannes Marbach
6ec6d41aa9 Make permission utils instantiable and throw when permission request is null 2022-05-25 15:53:58 +02:00
Michael Kaye
9f4f3f482c Merge branch 'develop' into michaelk/sonarqube_fixes 2022-05-25 14:22:10 +01:00
Michael Kaye
f5b4e897fa Merge pull request #6099 from vector-im/michaelk/retry_keys_backup_test
Track number of retries of tests,retry KeysBackupTest, Ignore E2eeSanityTests
2022-05-25 14:16:47 +01:00
Michael Kaye
fd5b7099af Add commented out version of building integration tests for reference. 2022-05-25 14:10:50 +01:00
Benoit Marty
8f06415744 Fix compilation issue after rebase 2022-05-25 15:08:13 +02:00
Michael Kaye
40e4c4ce1e Update README.md with latest links generated from sonarcloud site. 2022-05-25 14:03:08 +01:00
Maxime NATUREL
c8fb034c57 Merge pull request #6128 from vector-im/feature/mna/PSF-999-auto-refresh-db
[Location sharing] - Update DB entity when a live is timed out (PSF-999)
2022-05-25 14:59:54 +02:00
Michael Kaye
ba109a486f Update to build scripts to enable sonarqube reporting including coverage. 2022-05-25 13:35:40 +01:00
Adam Brown
86c9e60129 formatting 2022-05-25 13:34:08 +01:00
Adam Brown
f6190b125c removing extra line 2022-05-25 13:34:08 +01:00
Adam Brown
73c93958c2 adding changelog entry 2022-05-25 13:34:08 +01:00
Adam Brown
75d038b058 adding test case around invalid deeplinks within the onboarding flow 2022-05-25 13:34:08 +01:00
Adam Brown
797e0ee706 creating a build meta abstraction for allowing testing classes with build version checks 2022-05-25 13:34:08 +01:00
Adam Brown
ea7df9b673 lifting unavailable homeserver rendering to the activity/ftuevariant
- the viewmodel is now responsible for inferring connectivity errors and providing a retry action
2022-05-25 13:34:08 +01:00
Adam Brown
100aa24021 adding helper for inferring if the device has connectivity, this helps with breaking down UnknownHost exceptioncauses and shouldn't be used for checking offline status 2022-05-25 13:34:07 +01:00
Adam Brown
59afb5cf4c downscoping the possible action types when selecting homeservers 2022-05-25 13:34:07 +01:00
Adam Brown
b8418f97dc extracting server selection branches to their own functions 2022-05-25 13:34:07 +01:00
Adam Brown
690fda180c providing dedicated reset action for resetting invalid deeplink homeserver
- also fixes the usecase screen becoming stuck with an invalid homeserver deeplink
2022-05-25 13:34:07 +01:00
Maxime NATUREL
eda0aa97d0 Fixing code quality issues 2022-05-25 14:11:18 +02:00
Maxime NATUREL
aa65d82341 Adding unit tests for ViewModel 2022-05-25 14:05:14 +02:00
Maxime NATUREL
33151eef73 Move the default implementation of location sharing service into internal package 2022-05-25 14:05:14 +02:00
Maxime NATUREL
8d2debf47e Adding missing ending dots in comments 2022-05-25 14:05:14 +02:00
Maxime NATUREL
1b8440d7c8 Removing unused imports 2022-05-25 14:05:14 +02:00
Maxime NATUREL
65d7ec8696 Adding unit tests for use case to get the list of current running lives 2022-05-25 14:05:14 +02:00
Maxime NATUREL
095cc12e10 Fixing unit tests of the mapper 2022-05-25 14:05:14 +02:00
Maxime NATUREL
d9480bb136 Adding todo to add unit tests on aggregation process 2022-05-25 14:05:14 +02:00
Maxime NATUREL
5efe26c7dd Fix code quality issues 2022-05-25 14:05:14 +02:00
Maxime NATUREL
8145049315 Fix potential access to null value 2022-05-25 14:05:14 +02:00
Maxime NATUREL
c07bc0890f WIP - unit tests 2022-05-25 14:05:14 +02:00
Maxime NATUREL
7ef91ce717 Adding unit tests for view state mapper 2022-05-25 14:05:14 +02:00
Maxime NATUREL
401027e919 Adding end of live timestamp into view state 2022-05-25 14:05:14 +02:00
Maxime NATUREL
bd473375a1 Fix no text visible if using direct pin drawable 2022-05-25 14:05:14 +02:00
Maxime NATUREL
79212321a2 Deactivate all previous active beacons when receiving one from user 2022-05-25 14:05:12 +02:00
Maxime NATUREL
40d8d5c605 Updating user pins on location update 2022-05-25 14:04:22 +02:00
Maxime NATUREL
bec3f793f3 Improve query of current running live location shares 2022-05-25 14:04:22 +02:00
Maxime NATUREL
ca9591e423 Fix set of userId in aggregation process 2022-05-25 14:04:22 +02:00
Maxime NATUREL
3b06f18ccb Remove unused imports 2022-05-25 14:04:22 +02:00
Maxime NATUREL
81b90df909 Observe the current live location shares in a room 2022-05-25 14:04:22 +02:00
Maxime NATUREL
7a7af40d61 Creation of LocationSharingService to get current users sharing their live locations 2022-05-25 14:04:20 +02:00
Maxime NATUREL
5410b61ae3 Show user pins with correct zoom when map is first opened 2022-05-25 14:03:37 +02:00
Maxime NATUREL
d6029210d0 Adding use case to get live location of users 2022-05-25 14:03:37 +02:00
Maxime NATUREL
44ca82bbef Adding ViewModel to Activity 2022-05-25 14:03:37 +02:00
Maxime NATUREL
cf90ff9fd2 Adding changelog entry 2022-05-25 14:03:37 +02:00
Johannes Marbach
f5a621a6d5 Merge pull request #6140 from vector-im/johannes/widget-screen-rotation
Prevent widget web view from reloading on screen / orientation change (PSF-1034)
2022-05-25 13:42:24 +02:00
Michael Kaye
c59c5cfb4a Ignore all tests that have failed during testing. 2022-05-25 12:36:21 +01:00
Johannes Marbach
580bbd60e7 Appease the linter 2022-05-25 13:01:42 +02:00
Johannes Marbach
946902719b Add changelog entry 2022-05-25 12:53:47 +02:00
Johannes Marbach
59c13bf8c1 Make widget web view request system permissions for camera and microphone
Previously the widget web view prompted to grant the widget permissions but it didn't
actually request those permissions from the system. So if the web view requested, e.g.
the camera permission but the app hadn't previously been granted that permission, the
web view wouldn't get camera access even when the widget permission request had been
confirmed.

With this commit, the app will also request camera and microphone permissions from the
system when needed.

Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-05-25 12:35:43 +02:00
Adam Brown
8c44c9828c fixing listener import 2022-05-25 10:22:27 +01:00
Adam Brown
8b2132c6dd fixing detekt/formatting issues 2022-05-25 10:22:27 +01:00
Adam Brown
137fe89938 hiding username/password fields when the homeserver doesn't support them and showing SSO options when available 2022-05-25 10:22:27 +01:00
Adam Brown
bc2a99c3cf matching variable name with type 2022-05-25 10:22:27 +01:00
Adam Brown
b76899a6e0 adding changelog entry 2022-05-25 10:22:27 +01:00
Adam Brown
610c1d1150 extracting sso buttons render method to reduce duplication 2022-05-25 10:22:27 +01:00
Adam Brown
d86c12dc7a extracting duplicated field resetting logic 2022-05-25 10:22:27 +01:00
Adam Brown
fb1a686f90 extracting the login error handling to its own class 2022-05-25 10:22:27 +01:00
Adam Brown
d1bafc531e removing input footer fields, they're only needed for sign up, not login 2022-05-25 10:22:27 +01:00
Adam Brown
b2af918969 using correct copy for the login validation errors
- extracts helpers to make the logic more declarative
2022-05-25 10:22:27 +01:00
Adam Brown
25b81c2952 creating subtype for register/login authentication types 2022-05-25 10:22:26 +01:00
Adam Brown
c3ce887e33 minor refactors
- extracting login fields validation
- renaming xml fields to login
- renaming direct login property to matrixId
2022-05-25 10:17:51 +01:00
Adam Brown
b3bbb0329e directing to the combined login after homeserver check
- also removes the subtitle view which is not needed for login
2022-05-25 10:17:51 +01:00
Adam Brown
4b6f74364d adding dedicated login action 2022-05-25 10:17:51 +01:00
Adam Brown
34e97112a4 adding feature flag and redirecting the sign in flow
- temporarily to the combined register fragment
2022-05-25 10:17:51 +01:00
Adam Brown
fdaaed430e Merge pull request #6131 from vector-im/dependabot/gradle/vanniktechEmoji-0.13.0
Bump vanniktechEmoji from 0.9.0 to 0.13.0
2022-05-25 10:14:56 +01:00
Maxime NATUREL
791d4fb1e8 Improve computation of the work name to limit its length 2022-05-25 11:10:54 +02:00
Maxime NATUREL
8864a3cf2c Using replace instead of keep strategy for the worker 2022-05-25 11:06:02 +02:00
Maxime NATUREL
cfdc18d421 Improve code readability in aggregation processor 2022-05-25 11:05:28 +02:00
Maxime NATUREL
b081429725 Replace getOrCreate() by get() in worker 2022-05-25 10:59:08 +02:00
Adam Brown
ae9922a731 Merge pull request #6136 from vector-im/feature/adm/foss-avoid-gms-location-provider
Excluding the gms play-service-location from maplibre for fdroid builds
2022-05-25 08:59:18 +01:00
Glandos
71706bc6a6 Translated using Weblate (French)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fr/
2022-05-25 07:14:58 +00:00
Jean-Luc KABORE-TURQUIN
d0628129f5 Translated using Weblate (French)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fr/
2022-05-25 07:14:56 +00:00
Michael Kaye
e1dde0cef1 Merge pull request #6141 from vector-im/michaelk/downgrade_gradle_dependency
Downgrade gradle from 7.2.0 to 7.1.3
2022-05-24 18:02:40 +01:00
Michael Kaye
5faa2ff205 Add comment linking to an issue 2022-05-24 16:53:17 +01:00
Michael Kaye
20422a5451 towncrier 2022-05-24 16:40:03 +01:00
Michael Kaye
5766414d79 Downgrade gradle from 7.2.0 to 7.1.3 2022-05-24 16:36:14 +01:00
dependabot[bot]
d4af2a7a87 Bump vanniktechEmoji from 0.9.0 to 0.13.0
Bumps `vanniktechEmoji` from 0.9.0 to 0.13.0.

Updates `emoji-material` from 0.9.0 to 0.13.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.9.0...0.13.0)

Updates `emoji-google` from 0.9.0 to 0.13.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.9.0...0.13.0)

---
updated-dependencies:
- dependency-name: com.vanniktech:emoji-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.vanniktech:emoji-google
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-24 15:26:52 +00:00
Adam Brown
b4b2b97eb1 Merge pull request #6068 from vector-im/dependabot/gradle/vanniktechEmoji-0.12.0
Bump vanniktechEmoji from 0.9.0 to 0.12.0
2022-05-24 16:26:06 +01:00
Johannes Marbach
7913a42664 Add changelog file 2022-05-24 16:36:26 +02:00
Johannes Marbach
f95853a7b3 Prevent widget web view from reloading on screen / orientation change (PSF-1034)
Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-05-24 16:29:38 +02:00
ericdecanini
c3209d7049 Manually fixes more formatting issues 2022-05-24 15:31:20 +02:00
ericdecanini
6c21a6b48d Separates some method parameters 2022-05-24 15:26:24 +02:00
Adam Brown
bec72264cd excluding the gms play-service-location optional transistive dependency for the fdroid variant
- fixes fdroid being unable to compile the project due to a non foss dependency
2022-05-24 10:10:03 +01:00
Jeremy
3b1a7f93cb Create 6132.misc 2022-05-24 14:40:13 +12:00
Jeremy
b131848b72 Fix grammar in strings in strings.xml
`room_list_people_empty_body` and `room_list_rooms_empty_body`
2022-05-24 14:12:49 +12:00
Adam Brown
a59b8bf50c Merge pull request #6065 from vector-im/feature/adm/matrix-org-ordering
FTUE - Only override sign up steps for `matrix.org`
2022-05-23 21:24:48 +01:00
Maxime NATUREL
b05fc763ae Rely only on isActive field on UI side 2022-05-23 17:34:52 +02:00
Maxime NATUREL
683a9cdfff Schedule work during aggregation 2022-05-23 17:34:52 +02:00
Maxime NATUREL
47eb7173f0 Creation of a worker to deactivate a live after timeout 2022-05-23 17:34:52 +02:00
Maxime NATUREL
d76b93ced3 Adding comment on isActive field 2022-05-23 17:34:51 +02:00
Maxime NATUREL
695c234139 Adding changelog entry 2022-05-23 17:34:51 +02:00
ericdecanini
a07c1b8afa Removes top bar back arrow 2022-05-23 13:46:53 +01:00
Maxime NATUREL
9a38d59f9a Merge pull request #6092 from vector-im/feature/mna/PSF-888-navigation
[Location sharing] - Navigation to Map view from live location message (PSF-888)
2022-05-23 13:54:04 +02:00
Benoit Marty
fd252dbaff Merge pull request #5856 from ofalvai/bugfix/ofa/read-recept-text-scale
Use fixed text size in read receipt counter
2022-05-23 13:41:03 +02:00
Benoit Marty
ff1099667a Merge pull request #6106 from vector-im/dependabot/gradle/androidx.constraintlayout-constraintlayout-2.1.4
Bump constraintlayout from 2.1.3 to 2.1.4
2022-05-23 12:43:03 +02:00
ericdecanini
3f3662e605 Changes code style method parameters new line around parentheses to true 2022-05-23 12:30:42 +02:00
Adam Brown
98999c754f Merge pull request #5868 from vector-im/feature/adm/ftue-email-verification
[FTUE] - Email input and verification
2022-05-23 11:14:46 +01:00
Maxime NATUREL
7bb73ffb57 Making the layout file more generic 2022-05-23 11:41:33 +02:00
Maxime NATUREL
b331521e93 Improving code in Fragment 2022-05-23 11:30:57 +02:00
Maxime NATUREL
721d7cb6a0 Remove commented code 2022-05-23 11:30:35 +02:00
Maxime NATUREL
c46aaa24a5 Using @AndroidEntryPoint in Fragment 2022-05-23 10:40:52 +02:00
Benoit Marty
0b35ee7c79 Merge pull request #6120 from vector-im/cgizard/fix_issue_number
Update issue number in changes.md
2022-05-23 10:38:58 +02:00
Claire G
7e494786d4 update issue number in changes.md 2022-05-23 09:54:16 +02:00
Benoit Marty
71e14ea43b Merge pull request #6110 from vector-im/defect/jorgem/PSE-613-fix-multi-invites-to-room
Fix sending multiple invites to a room reaching only one or two people
2022-05-23 09:39:47 +02:00
Jorge Martín
96e3544a47 Fix sending multiple invites to a room reaching only one or two people 2022-05-23 08:14:32 +02:00
Auri B. P
76fc3b5336 Translated using Weblate (Catalan)
Currently translated at 83.3% (1855 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ca/
2022-05-22 20:32:05 +00:00
anoloth
5e359101d2 Translated using Weblate (Lao)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/lo/
2022-05-21 17:32:32 +00:00
anoloth
9779e9b9a5 Translated using Weblate (Lao)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/lo/
2022-05-21 17:32:31 +00:00
Piotr Strebski
94f2640f5c Translated using Weblate (Polish)
Currently translated at 66.6% (40 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/pl/
2022-05-21 17:32:31 +00:00
Linerly
b1e045d911 Translated using Weblate (Indonesian)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/id/
2022-05-21 17:32:30 +00:00
waclaw66
62dd47b15d Translated using Weblate (Czech)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/cs/
2022-05-21 17:32:28 +00:00
Jeff Huang
cd27ea69bb Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/zh_Hant/
2022-05-21 17:32:27 +00:00
Danial Behzadi
182fae77da Translated using Weblate (Persian)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/fa/
2022-05-21 17:32:25 +00:00
random
bda822d2e5 Translated using Weblate (Italian)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/it/
2022-05-21 17:32:24 +00:00
Priit Jõerüüt
90c78f1244 Translated using Weblate (Estonian)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/et/
2022-05-21 17:32:22 +00:00
Ihor Hordiichuk
311374d642 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/uk/
2022-05-21 17:32:21 +00:00
LinAGKar
afa0090c78 Translated using Weblate (Swedish)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/sv/
2022-05-21 17:32:19 +00:00
Jozef Gaal
69aabb56a0 Translated using Weblate (Slovak)
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/sk/
2022-05-21 17:32:18 +00:00
lvre
a7a1645abe Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (60 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/pt_BR/
2022-05-21 17:32:16 +00:00
John Doe
ddd6fc214f Translated using Weblate (Spanish)
Currently translated at 61.6% (37 of 60 strings)

Translation: Element Android/Element Android Store
Translate-URL: https://translate.element.io/projects/element-android/element-store/es/
2022-05-21 17:32:15 +00:00
Jeff Huang
7d9cb1dc0c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hant/
2022-05-21 17:32:13 +00:00
Ihor Hordiichuk
b784c0fcc2 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/uk/
2022-05-21 17:32:13 +00:00
LinAGKar
3826b7ba28 Translated using Weblate (Swedish)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sv/
2022-05-21 17:32:13 +00:00
Jozef Gaal
096e51951a Translated using Weblate (Slovak)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/sk/
2022-05-21 17:32:12 +00:00
homocomputeris
79858a6560 Translated using Weblate (Russian)
Currently translated at 97.6% (2172 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ru/
2022-05-21 17:32:12 +00:00
lvre
b12e0cd9f3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/
2022-05-21 17:32:10 +00:00
Didek
946353aeb9 Translated using Weblate (Polish)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pl/
2022-05-21 17:32:10 +00:00
Piotr Strebski
9710447ea3 Translated using Weblate (Polish)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/pl/
2022-05-21 17:32:09 +00:00
random
165b8d1b93 Translated using Weblate (Italian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/it/
2022-05-21 17:32:09 +00:00
Linerly
d307349ae2 Translated using Weblate (Indonesian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/id/
2022-05-21 17:32:09 +00:00
Danial Behzadi
7ff9566788 Translated using Weblate (Persian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/fa/
2022-05-21 17:32:08 +00:00
Priit Jõerüüt
49acc6704f Translated using Weblate (Estonian)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/et/
2022-05-21 17:32:08 +00:00
John Doe
aac075fa89 Translated using Weblate (Spanish)
Currently translated at 99.8% (2221 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/es/
2022-05-21 17:32:08 +00:00
waclaw66
422487ea9f Translated using Weblate (Czech)
Currently translated at 100.0% (2225 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/cs/
2022-05-21 17:32:07 +00:00
Auri B. P
97b2dd3d14 Translated using Weblate (Catalan)
Currently translated at 83.3% (1854 of 2225 strings)

Translation: Element Android/Element Android App
Translate-URL: https://translate.element.io/projects/element-android/element-app/ca/
2022-05-21 17:32:07 +00:00
Benoit Marty
53c83ab8d8 Add missing punctuation 2022-05-20 21:22:47 +02:00
Benoit Marty
92d54dc733 Fix compilation issue 2022-05-20 21:14:42 +02:00
Benoit Marty
0307e572c0 Add note about API renaming 2022-05-20 21:14:42 +02:00
Benoit Marty
b86693580e class with private constructor instead of object 2022-05-20 21:14:42 +02:00
Benoit Marty
827c7e58f6 Package have been renamed, so also rename it here.
Dokka does not complain about unknown package in this file :/
2022-05-20 21:14:42 +02:00
Benoit Marty
8218d8f267 Typo: isStucked -> isStuck 2022-05-20 21:14:42 +02:00
Benoit Marty
8d74acf060 Fix post rebase issue 2022-05-20 21:14:42 +02:00
Benoit Marty
268c41a0ee Changelog 2022-05-20 21:14:42 +02:00
Benoit Marty
dc1eba2847 Improve documentation 2022-05-20 21:14:42 +02:00
Benoit Marty
d92875e3c2 Improve documentation 2022-05-20 21:14:42 +02:00
Benoit Marty
6e3979a32d Fix test compilation 2022-05-20 21:14:42 +02:00
Benoit Marty
740acda60b Please ktlint. Ok, the user story will appear at the end of the doc. 2022-05-20 21:14:42 +02:00
Benoit Marty
853c0a25bf Method onSecretKeyGossip doe snot have to be in the public interface 2022-05-20 21:14:42 +02:00
Benoit Marty
ede784684f Change in KeysBackupService: isEnabled and isStucked are now fun, and state has been renamed to getState and is now a fun. 2022-05-20 21:14:42 +02:00
Benoit Marty
1ab4ae9eac Extract KeyRef to its own file 2022-05-20 21:14:42 +02:00
Benoit Marty
d3d17ebbcb Extract HttpPusher to its own file 2022-05-20 21:14:42 +02:00
Benoit Marty
768df330b5 Rename currentThreePid to getCurrentThreePid 2022-05-20 21:14:42 +02:00
Benoit Marty
e6c8ffd1b8 Change val to fun on the SDK interfaces.
Dokka will generate a better documentation (`Functions` and `Properties` are 2 distinct tab), and for Service it's better to have only `fun`
2022-05-20 21:14:42 +02:00
Benoit Marty
cfd6456614 Add other user stories (with TODO) 2022-05-20 21:14:42 +02:00
Benoit Marty
96c825e265 Create _userstories package and add the 2 first user stories 2022-05-20 21:14:42 +02:00
Benoit Marty
bad62be497 Use Kdoc format, else it's not extracted to the documentation by dokka 2022-05-20 21:14:42 +02:00
Onuray Sahin
109b381e2e Merge pull request #6103 from vector-im/feature/ons/fix_live_location_flickering
Glide - Use current drawable while loading new static map image
2022-05-20 18:36:12 +03:00
Adam Brown
2d351aa60f applying api changes 2022-05-20 15:20:24 +01:00
ariskotsomitopoulos
85f3592938 PR remarks 2022-05-20 17:03:15 +03:00
ariskotsomitopoulos
1bea28e27a fix documentation format 2022-05-20 16:03:39 +03:00
ariskotsomitopoulos
e323caa233 Merge branch 'develop' into feature/aris/crypto_replay_attack
# Conflicts:
#	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/MXOlmDevice.kt
2022-05-20 15:46:15 +03:00
ariskotsomitopoulos
c958d3a383 Merge branch 'develop' into feature/aris/crypto_replay_attack 2022-05-20 15:43:08 +03:00
ariskotsomitopoulos
7bc880e6bf Improve documentation 2022-05-20 15:33:29 +03:00
Adam Brown
c71f9c81cd provides a dedicated job for the email verification polling to allow it to be cancelled when resetting the auth flow
- extracts an auto cancelling job delegate
2022-05-20 13:10:03 +01:00
Adam Brown
2378643071 adding missing punctuation 2022-05-20 12:13:09 +01:00
Adam Brown
4bcdaa309e removing unused imports 2022-05-20 12:11:44 +01:00
Adam Brown
9fddd09f1c using direct string reference for design preview 2022-05-20 12:11:44 +01:00
Adam Brown
47635aae6e avoiding cancelling the polling job when resending verification email 2022-05-20 12:11:44 +01:00
Adam Brown
bc5ebb20b5 adding gradient background to xml preview 2022-05-20 12:11:44 +01:00
Adam Brown
0979d56a36 inlining single use extension function 2022-05-20 12:11:44 +01:00
Adam Brown
4dc8d23826 removing unneeded state reacting when entering email address for verification 2022-05-20 12:11:44 +01:00
Adam Brown
641c06f10d removing this usage for project consistency 2022-05-20 12:11:44 +01:00
Adam Brown
80b6b77a3a reusing editText unboxing extension 2022-05-20 12:11:44 +01:00
Adam Brown
c414f80fa6 adding listener suffix for consistency 2022-05-20 12:11:44 +01:00
Adam Brown
c4834a44d1 aligning the carousel listener removal with the viewLifecycleOwner
- fixes crash where the scheduled callbacks can attempt to trigger after the view has been destroyed
2022-05-20 12:11:44 +01:00
Adam Brown
a4b5d1819d renaming sdk model to matrix 2022-05-20 12:11:44 +01:00
Adam Brown
8136f57b5e making use of the view lifecycle scope for the view based fragment logic 2022-05-20 12:11:44 +01:00
Adam Brown
c0efd9f1af updating ignored result register action as the one being used is now consumed 2022-05-20 12:11:44 +01:00
Adam Brown
735adf0c96 adding changelog entry 2022-05-20 12:11:44 +01:00
Adam Brown
8e7ae5e9d2 removing extra end of file lines 2022-05-20 12:11:44 +01:00
Adam Brown
350643c8a4 resetting authentication state when the viewmodel resets whilst in the email entry step - matching legacy flow 2022-05-20 12:11:44 +01:00
Adam Brown
9cc646760a removing copied back behaviour, isn't needed for the email entry screen 2022-05-20 12:11:44 +01:00
Adam Brown
8a53eafa72 adding gradient background to the waiting for verification screen, matching designs
- renames drawable which redirects to the attribute colorBackground
2022-05-20 12:11:44 +01:00
Adam Brown
eb4d31e955 extracting reusable logic for styling terminating full stops and applying to the waiting for verification title 2022-05-20 12:11:44 +01:00
Adam Brown
817d692471 renaming xml ids to the email verification domain and attaching the click logic for resending verification emails 2022-05-20 12:11:44 +01:00
Adam Brown
4964c9f151 showing loading spinner when returning to the email verification waiting screen 2022-05-20 12:11:44 +01:00
Adam Brown
02b6916487 adding UI for updated email verification waiting screen 2022-05-20 12:11:44 +01:00
Adam Brown
b2d8163aad adding unit test around polling for email verification 2022-05-20 12:11:44 +01:00
Adam Brown
074e5bcfb6 porting registration email verification polling to the registration action handler instead of the fragment 2022-05-20 12:11:44 +01:00
Adam Brown
d4a5b71a4d adding email input FTUE screen
- lifts the threepid email error handling to the RegistrationActionHandler rather than having the UI infer success from a 401
2022-05-20 12:11:44 +01:00
ariskotsomitopoulos
2081e2c45b Reduce log visibility to verbose 2022-05-20 13:32:55 +03:00
Benoit Marty
4094a66f3c Merge pull request #6084 from vector-im/feature/bma/detekt_outdated_doc
Feature/bma/detekt outdated doc
2022-05-20 12:06:34 +02:00
dependabot[bot]
13175212a0 Bump constraintlayout from 2.1.3 to 2.1.4
Bumps [constraintlayout](https://github.com/androidx/constraintlayout) from 2.1.3 to 2.1.4.
- [Release notes](https://github.com/androidx/constraintlayout/releases)
- [Commits](https://github.com/androidx/constraintlayout/commits)

---
updated-dependencies:
- dependency-name: androidx.constraintlayout:constraintlayout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-20 09:55:29 +00:00
Benoit Marty
99b3ec606c Merge pull request #6081 from vector-im/dependabot/gradle/com.likethesalad.android-stem-plugin-2.1.1
Bump stem-plugin from 2.0.0 to 2.1.1
2022-05-20 11:53:44 +02:00
Onuray Sahin
468cc30019 Changelog added. 2022-05-20 12:22:24 +03:00
Onuray Sahin
2b681a43c8 Use current drawable while loading new map image. 2022-05-20 12:16:35 +03:00
Benoit Marty
b547a49ab3 Merge pull request #6089 from vector-im/feature/bma/real_fail
Ensure calling 'fail()' is not caught by the Exception handler
2022-05-20 10:33:02 +02:00
Benoit Marty
f5d0663b06 Remove non needed extra spaces 2022-05-20 09:48:17 +02:00
Benoit Marty
5b185152c6 Remove non needed extra spaces: add a check 2022-05-20 09:48:05 +02:00
Benoit Marty
dae0b66c90 PR review 2022-05-20 09:48:05 +02:00
Benoit Marty
51fe7b9a93 Detekt: Fix OutdatedDocumentation 2022-05-20 09:48:05 +02:00
Benoit Marty
2a66e03742 Kdoc: remove unnecessary : 2022-05-20 09:47:54 +02:00
Benoit Marty
e00a9278d5 Detekt: Enable OutdatedDocumentation 2022-05-20 09:47:54 +02:00
Michael Kaye
a4fa65b4fd Fix linting 2022-05-19 12:37:41 +01:00
Michael Kaye
fe793798fa Ignore E2eeSanityTests.
They fail infrequently, but in a way that takes the entire test framework down,
so ignore them for now and open an issue to fix.
2022-05-19 12:06:54 +01:00
Olivér Falvai
f036d35829 Merge branch 'develop' into dependency-cleanup 2022-05-19 12:27:09 +02:00
Olivér Falvai
4290945118 Enable parallelism 2022-05-19 12:09:45 +02:00
Olivér Falvai
bc050d3030 Tweak JVM memory settings 2022-05-19 12:08:17 +02:00
Michael Kaye
28c4abb505 Track number of retries of tests, and retry KeysBackupTest 2022-05-19 10:34:38 +01:00
Olivér Falvai
464735f829 Move dependency analysis to its own job 2022-05-19 11:31:32 +02:00
Olivér Falvai
c093b3476f Limit parallel Gradle tasks 2022-05-19 10:57:06 +02:00
ericdecanini
93264812c0 Adds back navigation to spaces 2022-05-19 10:20:46 +02:00
Olivér Falvai
86663ec073 Fine tune dependency analysis, add CI workflow 2022-05-18 18:47:52 +02:00
Olivér Falvai
6c569e6f9d Bring back a false positive 2022-05-18 18:22:36 +02:00
Maxime NATUREL
5265856772 Remove unused imports 2022-05-18 14:44:44 +02:00
Maxime NATUREL
4864980a5a Enable navigation only from running state item 2022-05-18 14:44:44 +02:00
Maxime NATUREL
23e8cad10f Rollback to Fragment to be able to use Maverick capabilities 2022-05-18 14:44:44 +02:00
Maxime NATUREL
26cddd2d0d Use SupportMapFragment instead of custom fragment 2022-05-18 14:44:44 +02:00
Maxime NATUREL
54d7d47dfc Updating the title of the map view screen 2022-05-18 14:44:44 +02:00
Maxime NATUREL
52c0fa41c6 Creation of map view screen and basic navigation 2022-05-18 14:44:44 +02:00
Maxime NATUREL
b2765e4b63 Adding changelog entry 2022-05-18 14:44:44 +02:00
Olivér Falvai
388e35e828 Remove even more deps 2022-05-18 14:19:11 +02:00
Benoit Marty
99d4bbe74b Fix bad copyright 2022-05-18 14:12:44 +02:00
ariskotsomitopoulos
5532e7dfa1 Fix copyright 2022-05-18 14:57:50 +03:00
dependabot[bot]
dc1a4ae3a2 Bump stem-plugin from 2.0.0 to 2.1.1
Bumps [stem-plugin](https://github.com/LikeTheSalad/android-stem) from 2.0.0 to 2.1.1.
- [Release notes](https://github.com/LikeTheSalad/android-stem/releases)
- [Changelog](https://github.com/LikeTheSalad/android-stem/blob/master/CHANGELOG.md)
- [Commits](https://github.com/LikeTheSalad/android-stem/compare/2.0.0...2.1.1)

---
updated-dependencies:
- dependency-name: com.likethesalad.android:stem-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-18 11:28:16 +00:00
Benoit Marty
328d834851 changelog 2022-05-18 13:09:58 +02:00
ariskotsomitopoulos
b9adbb7d60 PR remarks 2022-05-18 14:05:58 +03:00
Benoit Marty
5c9281bc7e Ensure calling 'fail()' is not caught by the Exception handler 2022-05-18 12:26:09 +02:00
Olivér Falvai
aa64eb14b7 Merge remote-tracking branch 'fork/dependency-cleanup' into dependency-cleanup
# Conflicts:
#	build.gradle
2022-05-18 11:48:45 +02:00
Olivér Falvai
2dcc120cf7 Merge remote-tracking branch 'origin/develop' into dependency-cleanup
# Conflicts:
#	build.gradle
#	dependencies.gradle
2022-05-18 11:47:21 +02:00
ericdecanini
d12ab17516 Fixes lint errors 2022-05-18 11:29:23 +02:00
Benoit Marty
4184aaba76 Merge branch 'release/1.4.16' into main 2022-05-17 21:27:12 +02:00
ericdecanini
03acf4505a Uses second layout to center room summary item title 2022-05-17 18:03:34 +02:00
ariskotsomitopoulos
abbc57429a Add changelog 2022-05-17 17:16:27 +03:00
ariskotsomitopoulos
a0a7d3e7f6 Enhance reply attack to prevent DUPLICATED_MESSAGE_INDEX while decrypting the same event 2022-05-17 16:28:30 +03:00
ericdecanini
4adaa20f72 Fixes default visibilities in fragment_home_detail 2022-05-17 12:16:45 +02:00
ericdecanini
520c3e474c Adds changelog file 2022-05-17 12:02:29 +02:00
Adam Brown
5f2cb671e2 making comparator override non null as kotlin guards against this 2022-05-17 10:35:14 +01:00
Adam Brown
1ec99ee89e renaming comparator to only specify the matrix.org domain 2022-05-17 10:31:32 +01:00
ericdecanini
bc500a567a Adds back button implementation of navigating up spaces 2022-05-17 11:28:37 +02:00
ericdecanini
e706c5a3c8 Adds up navigation from spaces 2022-05-17 11:09:14 +02:00
dependabot[bot]
271bc91303 Bump vanniktechEmoji from 0.9.0 to 0.12.0
Bumps `vanniktechEmoji` from 0.9.0 to 0.12.0.

Updates `emoji-material` from 0.9.0 to 0.12.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.9.0...0.12.0)

Updates `emoji-google` from 0.9.0 to 0.12.0
- [Release notes](https://github.com/vanniktech/Emoji/releases)
- [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/Emoji/compare/0.9.0...0.12.0)

---
updated-dependencies:
- dependency-name: com.vanniktech:emoji-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.vanniktech:emoji-google
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-16 23:08:43 +00:00
Adam Brown
444980395e inlining single use extension 2022-05-16 17:26:12 +01:00
Adam Brown
51ffe26a91 renaming comparator to give more context to its usage 2022-05-16 17:17:15 +01:00
Adam Brown
6c3150edb7 using compareTo instead of direct subtraction 2022-05-16 17:16:37 +01:00
Adam Brown
a893f5acdb applying the manual reordering of the sign up stages only when matrix.org is selected
- lifts the logic up to the view model
2022-05-16 12:33:54 +01:00
ariskotsomitopoulos
2e08c07dad Enhance decryption to prevent DUPLICATED_MESSAGE_INDEX when decrypting the same eventId
Improve code format
2022-05-16 13:05:38 +03:00
ericdecanini
83bd9bca86 Fixes lint error 2022-05-16 10:31:16 +02:00
ericdecanini
7c1d1c3464 Adds centering of items with no subtitles 2022-05-16 10:26:28 +02:00
ericdecanini
50839c206b Adds flattenParents field to RoomSummary and corresponding mapping 2022-05-13 20:43:03 +02:00
ericdecanini
21fe5a23fb Adds vertical centering of title when no subtitle is present 2022-05-13 13:07:20 +02:00
ericdecanini
52c404ac9c Merge remote-tracking branch 'origin/develop' into feature/eric/replace-search-room-subheader 2022-05-12 14:36:04 +02:00
Benoit Marty
7018fdb2f5 Merge branch 'develop' into dependency-cleanup 2022-05-10 15:18:19 +02:00
Olivér Falvai
ed1179b155 Ignore lint warning about negative margin 2022-05-07 20:44:58 +02:00
Olivér Falvai
87e740973c Make read receipt avatar list compact 2022-05-07 20:06:03 +02:00
ericdecanini
b46794d4df Adds changelog file 2022-05-02 14:44:23 +02:00
ericdecanini
c9b32fec44 Changes ordering of room subtitles used 2022-05-02 14:42:56 +02:00
Benoit Marty
7881f7f9ea Add a final question to know if the issue submitter will provide a PR 2022-05-02 14:41:58 +02:00
ericdecanini
47493fcfa1 Replaces method for getting the space parents of rooms 2022-05-02 14:11:17 +02:00
ericdecanini
f70a24d257 Changes IncomingShareController display mode to FILTERED 2022-04-29 13:18:46 +02:00
ericdecanini
a355b625e9 Adds displayMode to RoomSummaryListController 2022-04-29 13:05:08 +02:00
ericdecanini
7cc79fef0f Refactors RoomSummaryItem 2022-04-29 12:37:19 +02:00
Olivér Falvai
042ec3628f Extract text size to style 2022-04-28 19:02:48 +02:00
ericdecanini
7e415e82b0 Fixes lint error 2022-04-28 12:37:54 +02:00
ericdecanini
962e9abc6b Fixes lint error 2022-04-28 12:04:54 +02:00
ericdecanini
4784717b0c Fixes lint error 2022-04-28 12:02:04 +02:00
ericdecanini
b280358077 Adds more named arguments to RoomSummaryUpdater 2022-04-28 11:55:44 +02:00
ericdecanini
33475602f8 Adds canonical named argument to RoomSummaryUpdater 2022-04-28 11:54:51 +02:00
ericdecanini
87ad35dca6 Disables typing indicator in filtered search 2022-04-28 11:46:02 +02:00
ericdecanini
70cded2733 Adds user id and canonical alias to search result subtitles 2022-04-28 11:12:47 +02:00
ericdecanini
9e53e6cc8f Adds space name to rooms in filtered search 2022-04-28 10:41:40 +02:00
Olivér Falvai
3b2e61fa66 Add changelog 2022-04-27 20:34:03 +02:00
Olivér Falvai
45afc04421 Use fixed text size in read receipt counter 2022-04-27 20:24:57 +02:00
ericdecanini
a3367d4075 Replaces else cases in when branches to RoomListDisplayMode.FILTERED 2022-04-26 15:48:49 +02:00
ericdecanini
0250f61d10 Replaces izPublic with isPublic 2022-04-26 15:48:34 +02:00
Michael Loipführer
6b9b688072 do not switch away from home space on notification
If the preference "Show all Rooms in Home" is selected element should
not switch away from the home space when clicking a notification for a
room in some other space.
With this change one stays in the home space when the said preference is
active.
fixes #5180

Signed-off-by: Michael Loipführer <milo@sft.lol>
2022-04-23 01:03:25 +02:00
Olivér Falvai
2bbecd4cc5 Fix regressions 2022-04-17 11:35:30 +02:00
Olivér Falvai
2c84f234a6 Cleanup 2022-04-17 11:09:10 +02:00
Olivér Falvai
4305b21ba8 Remove unused resource to make lint happy 2022-04-16 20:36:43 +02:00
Olivér Falvai
2138ec0799 Remove unused resource to make lint happy 2022-04-16 11:14:04 +02:00
Olivér Falvai
cdd7db4174 Fix unused resource references properly 2022-04-16 09:40:15 +02:00
Olivér Falvai
b3cfc88773 Fix androidTest 2022-04-15 23:36:42 +02:00
Olivér Falvai
a8bbf29b42 Remove unused dependencies 2022-04-15 22:50:54 +02:00
SpiritCroc
7c0cd1dc52 Fix ktLint / op-spacing 2022-04-12 19:17:07 +02:00
SpiritCroc
6a8230239b Avoid inconsistent timelines by db insertions before fully loaded chunk 2022-03-21 10:50:55 +01:00
SpiritCroc
626395304d Fix crash on Android 6 2022-03-19 12:01:01 +01:00
SpiritCroc
cd45248f40 Fix modifying the wrong events in TimelineChunk
I was observing cases where builtEvents[modificationIndex] was not
having the same eventId as the udpatedEntity in handleDatabaseChangeSet.

In particular, I observed both cases that
- there was no item in the list yet with the same eventId as the updated
  one
- there was an item with the same eventId already in the list, but at a
  different position.

Whenever this happened, the timeline would render missing, duplicated,
or swapped messages in the timeline.

Instead of relying on the modificationIndex to be the same for both the
change set and builtEvents, look up the proper index by eventId.
2022-03-13 08:19:47 +01:00
1006 changed files with 15891 additions and 7608 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -73,3 +73,14 @@ body:
- 'No' - 'No'
validations: validations:
required: true required: true
- type: dropdown
id: pr
attributes:
label: Are you willing to provide a PR?
description: |
Providing a PR can drastically speed up the process of fixing this bug. Don't worry, it's still OK to answer 'No' :).
options:
- 'Yes'
- 'No'
validations:
required: true

View File

@@ -34,3 +34,14 @@ body:
placeholder: Is there anything else you'd like to add? placeholder: Is there anything else you'd like to add?
validations: validations:
required: false required: false
- type: dropdown
id: pr
attributes:
label: Are you willing to provide a PR?
description: |
Don't worry, it's still OK to answer 'No' :).
options:
- 'Yes'
- 'No'
validations:
required: true

View File

@@ -49,24 +49,34 @@ body:
### Once tested and validated internally ### Once tested and validated internally
- [ ] Create a new beta release on the GooglePlay console and upload the 4 signed Apks. - [ ] Create a new open testing release on the GooglePlay console and upload the 4 signed Apks.
- [ ] Check that the version codes are correct - [ ] Check that the version codes are correct
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB. - [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
- [ ] Push to beta release to 100% of the users - [ ] Push the open testing release to 100% of the users
- [ ] Notify the F-Droid team so that they can schedule the publication on F-Droid - [ ] Notify the F-Droid team [here](https://matrix.to/#/!LAAuJLQXYHjMNWKrCK:matrix.org?via=matrix.org&via=bubu1.eu&via=lant.uk) so that they can schedule the publication on F-Droid
- [ ] The application is available to the PlayStore testers (live). Google can take between 1 hour and up to 7 days to approve the release.
- [ ] The application is available to the F-Droid users.
### Once Live on PlayStore ### Once open testing is live on PlayStore
- [ ] Ping the Android public room and update its topic - [ ] Ping the Android public room and update its topic
- [ ] Add an entry in the internal diary
### After at least 2 days ### Once Live on F-Droid
- [ ] Update the Android public room topic
### After at least 2 days (generally next Monday)
- [ ] Check the [rageshakes](https://github.com/matrix-org/element-android-rageshakes/issues) - [ ] Check the [rageshakes](https://github.com/matrix-org/element-android-rageshakes/issues)
- [ ] Check the crash reports on the GooglePlay console - [ ] Check the crash reports on the GooglePlay console
- [ ] Check the Android Element room for any reported issues on the new version - [ ] Check the Android Element room for any reported issues on the new version
- [ ] If all is OK, push to production and notify Markus (Bubu) to release the F-Droid version - [ ] If all is OK, promote the open testing release to production. Generally using a 100% roll out, but can be a smaller value depending on the release content.
- [ ] Ping the Android public room and update its topic with the new available version - [ ] The application is available to the PlayStore users (live). Google can take (again!) between 1 hour and up to 7 days to approve the release.
### Once production is live on PlayStore
- [ ] Ping the Android public room and update its topic
- [ ] Add an entry in the internal diary
### Android SDK2 ### Android SDK2

View File

@@ -29,200 +29,6 @@ jobs:
steps: steps:
- run: echo "Run those tests!" # no-op success - run: echo "Run those tests!" # no-op success
# Run Android Tests
integration-tests:
name: Matrix SDK - Running Integration Tests
needs: should-i-run
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
api-level: [ 28 ]
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
- uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: 11
- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: 3.8
- 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: Start synapse server
uses: michaelkaye/setup-matrix-synapse@v1.0.3
with:
uploadLogs: true
httpPort: 8080
disableRateLimiting: true
public_baseurl: "http://10.0.2.2:8080/"
# 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
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: |
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
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: |
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()
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: |
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()
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: |
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()
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: |
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'
uses: peter-evans/find-comment@v2
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
if: always() && github.event_name == 'pull_request'
uses: peter-evans/create-or-update-comment@v2
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
- name: Upload Test Report Log
uses: actions/upload-artifact@v3
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: ui-tests:
name: UI Tests (Synapse) name: UI Tests (Synapse)
needs: should-i-run needs: should-i-run
@@ -282,42 +88,13 @@ jobs:
emulator.log emulator.log
failure_screenshots/ failure_screenshots/
codecov-units:
name: Unit tests with code coverage
needs: should-i-run
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
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@v3
if: always()
with:
name: codecov-xml
path: |
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
# Notify the channel about delayed failures # Notify the channel about delayed failures
notify: notify:
name: Notify matrix name: Notify matrix
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: needs:
- should-i-run - should-i-run
- integration-tests
- ui-tests - ui-tests
- codecov-units
if: always() && (needs.should-i-run.result == 'success' ) && ((needs.codecov-units.result != 'success' ) || (needs.ui-tests.result != 'success') || (needs.integration-tests.result != 'success')) if: always() && (needs.should-i-run.result == 'success' ) && ((needs.codecov-units.result != 'success' ) || (needs.ui-tests.result != 'success') || (needs.integration-tests.result != 'success'))
# No concurrency required, runs every time on a schedule. # No concurrency required, runs every time on a schedule.
steps: steps:

View File

@@ -5,6 +5,11 @@ on:
push: push:
branches: [ main, develop ] branches: [ main, develop ]
# Enrich gradle.properties for CI/CD
env:
CI_GRADLE_ARG_PROPERTIES: >
-Porg.gradle.jvmargs=-Xmx4g
jobs: jobs:
check: check:
name: Project Check Suite name: Project Check Suite
@@ -97,6 +102,25 @@ jobs:
comment_id: ${{ steps.fc.outputs.comment-id }} comment_id: ${{ steps.fc.outputs.comment-id }}
}) })
# Gradle dependency analysis using https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin
dependency-analysis:
name: Dependency analysis
runs-on: ubuntu-latest
# Allow all jobs on main and develop. Just one per PR.
concurrency:
group: ${{ github.ref == 'refs/heads/main' && format('dep-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('dep-develop-{0}', github.sha) || format('dep-{0}', github.ref) }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v3
- name: Dependency analysis
run: ./gradlew buildHealth $CI_GRADLE_ARG_PROPERTIES
- name: Upload dependency analysis
if: always()
uses: actions/upload-artifact@v3
with:
name: dependency-analysis
path: build/reports/dependency-analysis/build-health-report.txt
# Lint for main module # Lint for main module
android-lint: android-lint:
name: Android Linter name: Android Linter

View File

@@ -1,81 +0,0 @@
name: Sonarqube nightly
on:
schedule:
- cron: '0 20 * * *'
# Enrich gradle.properties for CI/CD
env:
CI_GRADLE_ARG_PROPERTIES: >
-Porg.gradle.jvmargs=-Xmx4g
-Porg.gradle.parallel=false
jobs:
codecov-units:
name: Unit tests with code coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
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@v3
if: always()
with:
name: codecov-xml
path: |
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
sonarqube:
name: Sonarqube upload
runs-on: ubuntu-latest
needs:
- codecov-units
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
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 sonarqube failures
notify:
name: Notify matrix
runs-on: ubuntu-latest
needs:
- sonarqube
- codecov-units
if: always() && (needs.sonarqube.result != 'success' || needs.codecov-units.result != 'success')
steps:
- uses: michaelkaye/matrix-hookshot-action@v1.0.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
text_template: "Sonarqube run (on ${{ github.ref }}): {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
html_template: "Sonarqube run (on ${{ 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}}"

View File

@@ -12,73 +12,98 @@ env:
-Porg.gradle.parallel=false -Porg.gradle.parallel=false
jobs: jobs:
# Build Android Tests tests:
build-android-tests: name: Runs all tests
name: Build Android Tests runs-on: macos-latest # for the emulator
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@v3
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
# Allow all jobs on main and develop. Just one per PR. # Allow all jobs on main and develop. Just one per PR.
concurrency: 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('unit-tests-{0}', github.ref) }} 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 cancel-in-progress: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: actions/cache@v3
with: with:
path: | fetch-depth: 0
~/.gradle/caches - uses: actions/setup-java@v3
~/.gradle/wrapper with:
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} distribution: 'adopt'
restore-keys: | java-version: '11'
${{ runner.os }}-gradle- - uses: gradle/gradle-build-action@v2
- name: Run unit tests - uses: actions/setup-python@v3
run: ./gradlew clean test $CI_GRADLE_ARG_PROPERTIES --stacktrace with:
python-version: 3.8
- uses: michaelkaye/setup-matrix-synapse@v1.0.3
with:
uploadLogs: true
httpPort: 8080
disableRateLimiting: true
public_baseurl: "http://10.0.2.2:8080/"
- name: Run all the codecoverage tests at once
id: tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 28
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
disable-animations: true
emulator-build: 7425822
script: ./gradlew theCodeCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
- name: Run all the codecoverage tests at once (retry if emulator failed)
uses: reactivecircus/android-emulator-runner@v2
if: always() && steps.tests.outcome == 'failure' # don't run if previous step succeeded.
with:
api-level: 28
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
disable-animations: true
emulator-build: 7425822
script: ./gradlew theCodeCoverageReport --stacktrace $CI_GRADLE_ARG_PROPERTIES
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
if: always() # we may have failed a previous step and retried, that's OK
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
- name: Format unit test results - name: Format unit test results
if: always() if: always()
run: python3 ./tools/ci/render_test_output.py unit ./**/build/test-results/**/*.xml 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() &&
github.event.sender.login != 'dependabot[bot]' &&
( 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. # can't be run on macos due to containers.
notify: # - name: Publish Unit Test Results
runs-on: ubuntu-latest # uses: EnricoMi/publish-unit-test-result-action@v1
needs: # if: always() &&
- unit-tests # github.event.sender.login != 'dependabot[bot]' &&
- build-android-tests # ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository )
if: ${{ (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' ) && failure() }} # with:
steps: # files: ./**/build/test-results/**/*.xml
- uses: michaelkaye/matrix-hookshot-action@v0.3.0
with: # Unneeded as part of the test suite above, kept around in case we want to re-enable them.
github_token: ${{ secrets.GITHUB_TOKEN }} #
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }} # # Build Android Tests
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }} # build-android-tests:
text_template: "Build is broken for ${{ github.ref }}: {{#each job_statuses }}{{#with this }}{{#if completed }}{{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}" # name: Build Android Tests
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}}" # 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@v3
# 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

View File

@@ -9,15 +9,15 @@ jobs:
name: Add Z-Labs label for features behind labs flags name: Add Z-Labs label for features behind labs flags
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: > if: >
contains(github.event.issue.labels.*.name, 'A-Maths') || contains(github.event.issue.labels.*.name, 'A-Maths') ||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') || contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
contains(github.event.issue.labels.*.name, 'A-Polls') || contains(github.event.issue.labels.*.name, 'A-Polls') ||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') || contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') || contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
contains(github.event.issue.labels.*.name, 'Z-IA') || contains(github.event.issue.labels.*.name, 'Z-IA') ||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') || contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') || contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
contains(github.event.issue.labels.*.name, 'A-Tags') contains(github.event.issue.labels.*.name, 'A-Tags')
steps: steps:
- uses: actions/github-script@v5 - uses: actions/github-script@v5
with: with:
@@ -79,7 +79,7 @@ jobs:
name: X-Needs-Product to Design project board name: X-Needs-Product to Design project board
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: > if: >
contains(github.event.issue.labels.*.name, 'X-Needs-Product') contains(github.event.issue.labels.*.name, 'X-Needs-Product')
steps: steps:
- uses: octokit/graphql-action@v2.x - uses: octokit/graphql-action@v2.x
id: add_to_project id: add_to_project
@@ -105,10 +105,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, 'A-Spaces') || (contains(github.event.issue.labels.*.name, 'Team: Delight'))
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: steps:
- uses: octokit/graphql-action@v2.x - uses: octokit/graphql-action@v2.x
with: with:
@@ -201,7 +198,7 @@ jobs:
env: env:
PROJECT_ID: "PN_kwDOAM0swc3m-g" PROJECT_ID: "PN_kwDOAM0swc3m-g"
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
move_ftue_issues: move_ftue_issues:
name: Z-FTUE to Mobile FTUE board name: Z-FTUE to Mobile FTUE board
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -15,9 +15,6 @@ jobs:
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') && !contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
!contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') && !contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') && !contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
!contains(github.event.issue.labels.*.name, 'A-Spaces') &&
!contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') &&
!contains(github.event.issue.labels.*.name, 'A-Subspaces')) &&
(contains(github.event.issue.labels.*.name, 'T-Defect') && (contains(github.event.issue.labels.*.name, 'T-Defect') &&
contains(github.event.issue.labels.*.name, 'S-Critical') && contains(github.event.issue.labels.*.name, 'S-Critical') &&
(contains(github.event.issue.labels.*.name, 'O-Frequent') || (contains(github.event.issue.labels.*.name, 'O-Frequent') ||

View File

@@ -1,3 +1,75 @@
Changes in Element 1.4.19 (2022-06-07)
======================================
Bugfixes 🐛
----------
- Fix | performance regression on roomlist + proper display of space parents in explore rooms. ([#6233](https://github.com/vector-im/element-android/issues/6233))
Changes in Element v1.4.18 (2022-05-31)
=======================================
Features ✨
----------
- Space explore screen changes: removed space card, added rooms filtering ([#5658](https://github.com/vector-im/element-android/issues/5658))
- Adds space or user id as a subtitle under rooms in search ([#5860](https://github.com/vector-im/element-android/issues/5860))
- Adds up navigation in spaces ([#6073](https://github.com/vector-im/element-android/issues/6073))
- Labs flag for enabling live location sharing ([#6098](https://github.com/vector-im/element-android/issues/6098))
- Added support for mandatory backup or passphrase from .well-known configuration. ([#6133](https://github.com/vector-im/element-android/issues/6133))
- Security - Asking for user confirmation when tapping URLs which contain unicode directional overrides ([#6163](https://github.com/vector-im/element-android/issues/6163))
- Add settings switch to allow autoplaying animated images ([#6166](https://github.com/vector-im/element-android/issues/6166))
- Live Location Sharing - User List Bottom Sheet ([#6170](https://github.com/vector-im/element-android/issues/6170))
Bugfixes 🐛
----------
- Fix some notifications not clearing when read ([#4862](https://github.com/vector-im/element-android/issues/4862))
- Do not switch away from home space on notification when "Show all Rooms in Home" is selected. ([#5827](https://github.com/vector-im/element-android/issues/5827))
- Use fixed text size in read receipt counter ([#5856](https://github.com/vector-im/element-android/issues/5856))
- Revert: Use member name instead of room name in DM creation item ([#6032](https://github.com/vector-im/element-android/issues/6032))
- Poll refactoring with unit tests ([#6074](https://github.com/vector-im/element-android/issues/6074))
- Correct .well-known/matrix/client handling for server_names which include ports. ([#6095](https://github.com/vector-im/element-android/issues/6095))
- Glide - Use current drawable while loading new static map image ([#6103](https://github.com/vector-im/element-android/issues/6103))
- Fix sending multiple invites to a room reaching only one or two people ([#6109](https://github.com/vector-im/element-android/issues/6109))
- Prevent widget web view from reloading on screen / orientation change ([#6140](https://github.com/vector-im/element-android/issues/6140))
- Fix decrypting redacted event from sending errors ([#6148](https://github.com/vector-im/element-android/issues/6148))
- Make widget web view request system permissions for camera and microphone (PSF-1061) ([#6149](https://github.com/vector-im/element-android/issues/6149))
In development 🚧
----------------
- Adds email input and verification screens to the new FTUE onboarding flow ([#5278](https://github.com/vector-im/element-android/issues/5278))
- FTUE - Adds the redesigned Sign In screen ([#5283](https://github.com/vector-im/element-android/issues/5283))
- [Live location sharing] Update message in timeline during the live ([#5689](https://github.com/vector-im/element-android/issues/5689))
- FTUE - Overrides sign up flow ordering for matrix.org only ([#5783](https://github.com/vector-im/element-android/issues/5783))
- Live location sharing: navigation from timeline to map screen
Live location sharing: show user pins on map screen ([#6012](https://github.com/vector-im/element-android/issues/6012))
- FTUE - Adds homeserver login/register deeplink support ([#6023](https://github.com/vector-im/element-android/issues/6023))
- [Live location sharing] Update entity in DB when a live is timed out ([#6123](https://github.com/vector-im/element-android/issues/6123))
SDK API changes ⚠️
------------------
- Notifies other devices when a verification request sent from an Android device is accepted.` ([#5724](https://github.com/vector-im/element-android/issues/5724))
- Some `val` have been changed to `fun` to increase their visibility in the generated documentation. Just add `()` if you were using them.
- `KeysBackupService.state` has been replaced by `KeysBackupService.getState()`
- `KeysBackupService.isStucked` has been replaced by `KeysBackupService.isStuck()`
- SDK documentation improved ([#5952](https://github.com/vector-im/element-android/issues/5952))
- Improve replay attacks and reduce duplicate message index errors ([#6077](https://github.com/vector-im/element-android/issues/6077))
- Remove `RoomSummaryQueryParams.roomId`. If you need to observe a single room, use the new API `RoomService.getRoomSummaryLive(roomId: String)`
- `ActiveSpaceFilter` has been renamed to `SpaceFilter`
- `RoomCategoryFilter.ALL` has been removed, just pass `null` to not filter on Room category. ([#6143](https://github.com/vector-im/element-android/issues/6143))
Other changes
-------------
- leaving space experience changed to be aligned with iOS ([#5728](https://github.com/vector-im/element-android/issues/5728))
- @Ignore a number of tests that are currently failing in CI. ([#6025](https://github.com/vector-im/element-android/issues/6025))
- Remove ShortcutBadger lib and usage (it was dead code) ([#6041](https://github.com/vector-im/element-android/issues/6041))
- Test: Ensure calling 'fail()' is not caught by the catch block ([#6089](https://github.com/vector-im/element-android/issues/6089))
- Excludes transitive optional non FOSS google location dependency from fdroid builds ([#6100](https://github.com/vector-im/element-android/issues/6100))
- Fixed grammar errors in /vector/src/main/res/values/strings.xml ([#6132](https://github.com/vector-im/element-android/issues/6132))
- Downgrade gradle from 7.2.0 to 7.1.3 ([#6141](https://github.com/vector-im/element-android/issues/6141))
- Add Lao language to the in-app settings. ([#6196](https://github.com/vector-im/element-android/issues/6196))
- Remove the background location permission request ([#6198](https://github.com/vector-im/element-android/issues/6198))
Changes in Element v1.4.16 (2022-05-17) Changes in Element v1.4.16 (2022-05-17)
======================================= =======================================
@@ -36,7 +108,7 @@ Other changes
- Reformatted project code ([#5953](https://github.com/vector-im/element-android/issues/5953)) - Reformatted project code ([#5953](https://github.com/vector-im/element-android/issues/5953))
- Update check for server-side threads support to match spec. ([#5997](https://github.com/vector-im/element-android/issues/5997)) - Update check for server-side threads support to match spec. ([#5997](https://github.com/vector-im/element-android/issues/5997))
- Setup detekt ([#6038](https://github.com/vector-im/element-android/issues/6038)) - Setup detekt ([#6038](https://github.com/vector-im/element-android/issues/6038))
- Notify the user for each new message ([#46312](https://github.com/vector-im/element-android/issues/46312)) - Notify the user for each new message ([#4632](https://github.com/vector-im/element-android/issues/4632))
Changes in Element v1.4.14 (2022-05-05) Changes in Element v1.4.14 (2022-05-05)

View File

@@ -1,9 +1,9 @@
[![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) [![Buildkite](https://badge.buildkite.com/ad0065c1b70f557cd3b1d3d68f9c2154010f83c4d6f71706a9.svg?branch=develop)](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
[![Weblate](https://translate.element.io/widgets/element-android/-/svg-badge.svg)](https://translate.element.io/engage/element-android/?utm_source=widget) [![Weblate](https://translate.element.io/widgets/element-android/-/svg-badge.svg)](https://translate.element.io/engage/element-android/?utm_source=widget)
[![Element Android Matrix room #element-android:matrix.org](https://img.shields.io/matrix/element-android:matrix.org.svg?label=%23element-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-android:matrix.org) [![Element Android Matrix room #element-android:matrix.org](https://img.shields.io/matrix/element-android:matrix.org.svg?label=%23element-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-android:matrix.org)
[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=im.vector.app.android&metric=alert_status)](https://sonarcloud.io/dashboard?id=im.vector.app.android) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=im.vector.app.android&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=im.vector.app.android) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=im.vector.app.android&metric=bugs)](https://sonarcloud.io/dashboard?id=im.vector.app.android) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=bugs)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
# Element Android # Element Android

View File

@@ -27,7 +27,7 @@ buildscript {
classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.gms:google-services:4.3.10'
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3' classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5' classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
classpath "com.likethesalad.android:stem-plugin:2.0.0" classpath "com.likethesalad.android:stem-plugin:2.1.1"
classpath 'org.owasp:dependency-check-gradle:7.1.0.1' classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21" classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0" classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
@@ -41,6 +41,9 @@ plugins {
id "org.jlleitschuh.gradle.ktlint" version "10.3.0" id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
// Detekt // Detekt
id "io.gitlab.arturbosch.detekt" version "1.20.0" id "io.gitlab.arturbosch.detekt" version "1.20.0"
// Dependency Analysis
id 'com.autonomousapps.dependency-analysis' version "1.5.0"
} }
// https://github.com/jeremylong/DependencyCheck // https://github.com/jeremylong/DependencyCheck
@@ -177,8 +180,8 @@ apply plugin: 'org.sonarqube'
sonarqube { sonarqube {
properties { properties {
property "sonar.projectName", "Element-Android" property "sonar.projectName", "element-android"
property "sonar.projectKey", "im.vector.app.android" property "sonar.projectKey", "vector-im_element-android"
property "sonar.host.url", "https://sonarcloud.io" property "sonar.host.url", "https://sonarcloud.io"
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
property "sonar.sourceEncoding", "UTF-8" property "sonar.sourceEncoding", "UTF-8"
@@ -188,7 +191,7 @@ sonarqube {
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues" property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
property "sonar.organization", "new_vector_ltd_organization" property "sonar.organization", "new_vector_ltd_organization"
property "sonar.java.coveragePlugin", "jacoco" property "sonar.java.coveragePlugin", "jacoco"
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml" property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/theCodeCoverageReport/theCodeCoverageReport.xml"
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid" property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
} }
} }
@@ -219,3 +222,61 @@ project(":library:diff-match-patch") {
// } // }
// } // }
//} //}
dependencyAnalysis {
dependencies {
bundle("kotlin-stdlib") {
includeGroup("org.jetbrains.kotlin")
}
bundle("react") {
includeGroup("com.facebook.react")
}
}
issues {
all {
ignoreKtx(true)
onUsedTransitiveDependencies {
// Transitively used dependencies that should be declared directly
severity("ignore")
}
onUnusedDependencies {
severity("fail")
}
onUnusedAnnotationProcessors {
severity("fail")
exclude("com.airbnb.android:epoxy-processor", "com.google.dagger:hilt-compiler") // False positives
}
}
project(":library:jsonviewer") {
onUnusedDependencies {
exclude("org.json:json") // Used in unit tests, overwrites the one bundled into Android
}
}
project(":library:ui-styles") {
onUnusedDependencies {
exclude("com.github.vector-im:PFLockScreen-Android") // False positive
}
}
project(":matrix-sdk-android") {
onUnusedDependencies {
exclude("io.reactivex.rxjava2:rxkotlin") // Transitively required for mocking realm as monarchy doesn't expose Rx
}
}
project(":matrix-sdk-android-flow") {
onUnusedDependencies {
exclude("androidx.paging:paging-runtime-ktx") // False positive
}
}
project(":vector") {
onUnusedDependencies {
// False positives
exclude(
"com.vanniktech:emoji-google",
"com.vanniktech:emoji-material",
"org.maplibre.gl:android-plugin-annotation-v9",
"org.maplibre.gl:android-sdk",
)
}
}
}
}

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

@@ -0,0 +1 @@
FTUE - Adds Sign Up tracking

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

@@ -0,0 +1 @@
Fix cases of missing, swapped, or duplicated messages

View File

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

View File

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

View File

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

View File

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

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

@@ -0,0 +1 @@
Make read receipt avatar list more compact

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

@@ -0,0 +1 @@
Adds support for parsing homeserver versions without a patch number

View File

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

5
changelog.d/6029.sdk Normal file
View File

@@ -0,0 +1,5 @@
Some methods from `Session` have been moved to a new `SyncService`, that you can retrieve from a `Session`.
- `SyncStatusService` method has been moved to the new `SyncService`
- `InitSyncStep` have been moved and renamed to `InitialSyncStep`
- `SyncStatusService.Status` has been renamed to `SyncRequestState`
- The existing `SyncService` has been renamed to `SyncAndroidService` because of name clash with the new SDK Service

View File

@@ -1 +0,0 @@
Revert: Use member name instead of room name in DM creation item

View File

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

View File

@@ -1 +0,0 @@
Poll refactoring with unit tests

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

@@ -0,0 +1 @@
Allowing AuthenticationService.getLoginFlow to fail without resetting state from previously successful calls

View File

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

View File

@@ -1 +0,0 @@
Labs flag for enabling live location sharing

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

@@ -0,0 +1 @@
Allow .well-known configuration to override key sharing mode

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

@@ -0,0 +1 @@
Allows new passwords to be passed at the point of confirmation when resetting a password

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

@@ -0,0 +1 @@
Fix wrong status of live location sharing in timeline

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

@@ -0,0 +1 @@
Fix StackOverflowError while recording voice message

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

@@ -0,0 +1 @@
Text cropped: "Secure backup"

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

@@ -0,0 +1 @@
Re-organize location settings flags

View File

@@ -2,7 +2,10 @@ def excludes = [ ]
def initializeReport(report, projects, classExcludes) { def initializeReport(report, projects, classExcludes) {
projects.each { project -> project.apply plugin: 'jacoco' } projects.each { project -> project.apply plugin: 'jacoco' }
report.executionData { fileTree(rootProject.rootDir.absolutePath).include("**/build/jacoco/*.exec") } report.executionData { fileTree(rootProject.rootDir.absolutePath).include(
"**/build/outputs/unit_test_code_coverage/**/*.exec",
"**/build/outputs/code_coverage/**/coverage.ec"
) }
report.reports { report.reports {
xml.enabled true xml.enabled true
@@ -18,11 +21,13 @@ def initializeReport(report, projects, classExcludes) {
switch (project) { switch (project) {
case { project.plugins.hasPlugin("com.android.application") }: case { project.plugins.hasPlugin("com.android.application") }:
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/gplayDebug") androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/gplayDebug")
androidSourceDirs.add("${project.buildDir}/generated/source/kapt/gplayDebug")
androidSourceDirs.add("${project.projectDir}/src/main/kotlin") androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
androidSourceDirs.add("${project.projectDir}/src/main/java") androidSourceDirs.add("${project.projectDir}/src/main/java")
break break
case { project.plugins.hasPlugin("com.android.library") }: case { project.plugins.hasPlugin("com.android.library") }:
androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug") androidClassDirs.add("${project.buildDir}/tmp/kotlin-classes/debug")
androidSourceDirs.add("${project.buildDir}/generated/source/kapt/debug")
androidSourceDirs.add("${project.projectDir}/src/main/kotlin") androidSourceDirs.add("${project.projectDir}/src/main/kotlin")
androidSourceDirs.add("${project.projectDir}/src/main/java") androidSourceDirs.add("${project.projectDir}/src/main/java")
break break
@@ -43,13 +48,17 @@ def collectProjects(predicate) {
return subprojects.findAll { it.buildFile.isFile() && predicate(it) } return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
} }
task allCodeCoverageReport(type: JacocoReport) { task theCodeCoverageReport(type: JacocoReport) {
outputs.upToDateWhen { false } outputs.upToDateWhen { false }
rootProject.apply plugin: 'jacoco' rootProject.apply plugin: 'jacoco'
// to limit projects in a specific report, add tasks.withType(Test) {
// def excludedProjects = [ ... ] jacoco.includeNoLocationClasses = true
// def projects = collectProjects { !excludedProjects.contains(it.name) } }
def projects = collectProjects { true } def projects = collectProjects { ['vector','matrix-sdk-android'].contains(it.name) }
dependsOn { projects*.test } dependsOn {
[':matrix-sdk-android:testDebugUnitTest'] +
[':vector:testGplayDebugUnitTest'] +
[':matrix-sdk-android:connectedDebugAndroidTest']
}
initializeReport(it, projects, excludes) initializeReport(it, projects, excludes)
} }

View File

@@ -7,10 +7,13 @@ ext.versions = [
'targetCompat' : JavaVersion.VERSION_11, 'targetCompat' : JavaVersion.VERSION_11,
] ]
def gradle = "7.2.0"
// Pinned to 7.1.3 because of https://github.com/vector-im/element-android/issues/6142
// Please test carefully before upgrading again.
def gradle = "7.1.3"
// Ref: https://kotlinlang.org/releases.html // Ref: https://kotlinlang.org/releases.html
def kotlin = "1.6.21" def kotlin = "1.6.21"
def kotlinCoroutines = "1.6.1" def kotlinCoroutines = "1.6.2"
def dagger = "2.42" def dagger = "2.42"
def retrofit = "2.9.0" def retrofit = "2.9.0"
def arrow = "0.8.2" def arrow = "0.8.2"
@@ -23,7 +26,7 @@ def mavericks = "2.6.1"
def glide = "4.13.2" def glide = "4.13.2"
def bigImageViewer = "1.8.1" def bigImageViewer = "1.8.1"
def jjwt = "0.11.5" def jjwt = "0.11.5"
def vanniktechEmoji = "0.9.0" def vanniktechEmoji = "0.15.0"
// Testing // Testing
def mockk = "1.12.4" def mockk = "1.12.4"
@@ -45,12 +48,13 @@ ext.libs = [
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines" 'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
], ],
androidx : [ androidx : [
'appCompat' : "androidx.appcompat:appcompat:1.4.1", 'activity' : "androidx.activity:activity:1.4.0",
'core' : "androidx.core:core-ktx:1.7.0", 'appCompat' : "androidx.appcompat:appcompat:1.4.2",
'core' : "androidx.core:core-ktx:1.8.0",
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1", 'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3", 'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.1", 'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.1",
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.3", 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
'work' : "androidx.work:work-runtime-ktx:2.7.1", 'work' : "androidx.work:work-runtime-ktx:2.7.1",
'autoFill' : "androidx.autofill:autofill:1.1.0", 'autoFill' : "androidx.autofill:autofill:1.1.0",
'preferenceKtx' : "androidx.preference:preference-ktx:1.2.0", 'preferenceKtx' : "androidx.preference:preference-ktx:1.2.0",
@@ -69,10 +73,12 @@ ext.libs = [
'testRules' : "androidx.test:rules:$androidxTest", 'testRules' : "androidx.test:rules:$androidxTest",
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso", 'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso", 'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso",
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso" 'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso",
'viewpager2' : "androidx.viewpager2:viewpager2:1.0.0",
'transition' : "androidx.transition:transition:1.2.0",
], ],
google : [ google : [
'material' : "com.google.android.material:material:1.6.0" 'material' : "com.google.android.material:material:1.6.1"
], ],
dagger : [ dagger : [
'dagger' : "com.google.dagger:dagger:$dagger", 'dagger' : "com.google.dagger:dagger:$dagger",
@@ -81,7 +87,7 @@ ext.libs = [
'hiltCompiler' : "com.google.dagger:hilt-compiler:$dagger" 'hiltCompiler' : "com.google.dagger:hilt-compiler:$dagger"
], ],
squareup : [ squareup : [
'moshi' : "com.squareup.moshi:moshi-adapters:$moshi", 'moshi' : "com.squareup.moshi:moshi:$moshi",
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi", 'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit", 'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit",
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit" 'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
@@ -107,6 +113,10 @@ ext.libs = [
'mavericks' : "com.airbnb.android:mavericks:$mavericks", 'mavericks' : "com.airbnb.android:mavericks:$mavericks",
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks" 'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
], ],
maplibre : [
'androidSdk' : "org.maplibre.gl:android-sdk:9.5.2",
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
],
mockk : [ mockk : [
'mockk' : "io.mockk:mockk:$mockk", 'mockk' : "io.mockk:mockk:$mockk",
'mockkAndroid' : "io.mockk:mockk-android:$mockk" 'mockkAndroid' : "io.mockk:mockk-android:$mockk"

View File

@@ -1,5 +1,34 @@
# Adding and removing ThreePids to an account # Adding and removing ThreePids to an account
<!--- TOC -->
* [Add email](#add-email)
* [User enter the email](#user-enter-the-email)
* [The email is already added to an account](#the-email-is-already-added-to-an-account)
* [The email is free](#the-email-is-free)
* [User receives an e-mail](#user-receives-an-e-mail)
* [User clicks on the link](#user-clicks-on-the-link)
* [User returns on Element](#user-returns-on-element)
* [User enters his password](#user-enters-his-password)
* [The link has not been clicked](#the-link-has-not-been-clicked)
* [Wrong password](#wrong-password)
* [The link has been clicked and the account password is correct](#the-link-has-been-clicked-and-the-account-password-is-correct)
* [Remove email](#remove-email)
* [User want to remove an email from his account](#user-want-to-remove-an-email-from-his-account)
* [Email was not bound to an identity server](#email-was-not-bound-to-an-identity-server)
* [Email was bound to an identity server](#email-was-bound-to-an-identity-server)
* [Add phone number](#add-phone-number)
* [The phone number is already added to an account](#the-phone-number-is-already-added-to-an-account)
* [The phone number is free](#the-phone-number-is-free)
* [User receive a text message](#user-receive-a-text-message)
* [User enter the code to the app](#user-enter-the-code-to-the-app)
* [Wrong code](#wrong-code)
* [Correct code](#correct-code)
* [Remove phone number](#remove-phone-number)
* [User wants to remove a phone number from his account](#user-wants-to-remove-a-phone-number-from-his-account)
<!--- END -->
## Add email ## Add email
### User enter the email ### User enter the email

View File

@@ -1,5 +1,13 @@
# Analytics in Element # Analytics in Element
<!--- TOC -->
* [Solution](#solution)
* [How to add a new Event](#how-to-add-a-new-event)
* [Forks of Element](#forks-of-element)
<!--- END -->
## Solution ## Solution
Element is using PostHog to send analytics event. Element is using PostHog to send analytics event.

View File

@@ -1,5 +1,14 @@
# Color migration # Color migration
<!--- TOC -->
* [Changes](#changes)
* [Main change for developers](#main-change-for-developers)
* [Remaining work](#remaining-work)
* [Migration guide](#migration-guide)
<!--- END -->
### Changes ### Changes
- use colors defined in https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=557%3A0 - use colors defined in https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=557%3A0

View File

@@ -1,5 +1,31 @@
# Element Android design # Element Android design
<!--- TOC -->
* [Introduction](#introduction)
* [How to import from Figma to the Element Android project](#how-to-import-from-figma-to-the-element-android-project)
* [Colors](#colors)
* [Text](#text)
* [Dimension, position and margin](#dimension-position-and-margin)
* [Icons](#icons)
* [Export drawable from Figma](#export-drawable-from-figma)
* [Import in Android Studio](#import-in-android-studio)
* [Images](#images)
* [Figma links](#figma-links)
* [Coumpound](#coumpound)
* [Login](#login)
* [Login v2](#login-v2)
* [Room list](#room-list)
* [Timeline](#timeline)
* [Voice message](#voice-message)
* [Room settings](#room-settings)
* [VoIP](#voip)
* [Presence](#presence)
* [Spaces](#spaces)
* [List to be continued...](#list-to-be-continued)
<!--- END -->
## Introduction ## Introduction
Design at element.io is done using Figma - https://www.figma.com Design at element.io is done using Figma - https://www.figma.com

View File

@@ -1,5 +1,19 @@
# Identity server # Identity server
<!--- TOC -->
* [Introduction](#introduction)
* [Implementation](#implementation)
* [Related MSCs](#related-mscs)
* [Steps and requirements](#steps-and-requirements)
* [Screens](#screens)
* [Settings](#settings)
* [Discovery screen](#discovery-screen)
* [Set identity server screen](#set-identity-server-screen)
* [Ref:](#ref:)
<!--- END -->
Issue: #607 Issue: #607
PR: #1354 PR: #1354

View File

@@ -1,5 +1,18 @@
# Integration tests # Integration tests
<!--- TOC -->
* [Pre requirements](#pre-requirements)
* [Install and run Synapse](#install-and-run-synapse)
* [Run the test](#run-the-test)
* [Stop Synapse](#stop-synapse)
* [Troubleshoot](#troubleshoot)
* [Android Emulator does cannot reach the homeserver](#android-emulator-does-cannot-reach-the-homeserver)
* [Tests partially run but some fail with "Unable to contact localhost:8080"](#tests-partially-run-but-some-fail-with-"unable-to-contact-localhost:8080")
* [virtualenv command fails](#virtualenv-command-fails)
<!--- END -->
Integration tests are useful to ensure that the code works well for any use cases. Integration tests are useful to ensure that the code works well for any use cases.
They can also be used as sample on how to use the Matrix SDK. They can also be used as sample on how to use the Matrix SDK.

View File

@@ -1,20 +1,32 @@
# Jitsi in Element Android # Jitsi in Element Android
<!--- TOC -->
* [Native Jitsi SDK](#native-jitsi-sdk)
* [How to build the Jitsi Meet SDK](#how-to-build-the-jitsi-meet-sdk)
* [Jitsi version](#jitsi-version)
* [Run the build script](#run-the-build-script)
* [Link with the new generated library](#link-with-the-new-generated-library)
* [Sanity tests](#sanity-tests)
* [Export the build library](#export-the-build-library)
<!--- END -->
Native Jitsi support has been added to Element Android by the PR [#1914](https://github.com/vector-im/element-android/pull/1914). The description of the PR contains some documentation about the behaviour in each possible room configuration. Native Jitsi support has been added to Element Android by the PR [#1914](https://github.com/vector-im/element-android/pull/1914). The description of the PR contains some documentation about the behaviour in each possible room configuration.
Also, ensure to have a look on [the documentation from Element Web](https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md) Also, ensure to have a look on [the documentation from Element Web](https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md)
The official documentation about how to integrate the Jitsi SDK in an Android app is available here: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk. The official documentation about how to integrate the Jitsi SDK in an Android app is available here: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk.
# Native Jitsi SDK ## Native Jitsi SDK
The Jitsi SDK is built by ourselves with the flag LIBRE_BUILD, to be able to be integrated on the F-Droid version of Element Android. The Jitsi SDK is built by ourselves with the flag LIBRE_BUILD, to be able to be integrated on the F-Droid version of Element Android.
The generated maven repository is then host in the project https://github.com/vector-im/jitsi_libre_maven The generated maven repository is then host in the project https://github.com/vector-im/jitsi_libre_maven
## How to build the Jitsi Meet SDK ### How to build the Jitsi Meet SDK
### Jitsi version #### Jitsi version
Update the script `./tools/jitsi/build_jisti_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`. Update the script `./tools/jitsi/build_jisti_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`.
@@ -22,7 +34,7 @@ Latest tag can be found from this page: https://github.com/jitsi/jitsi-meet-rele
Currently we are building the version with the tag `android-sdk-3.10.0`. Currently we are building the version with the tag `android-sdk-3.10.0`.
### Run the build script #### Run the build script
At the root of the Element Android, run the following script: At the root of the Element Android, run the following script:
@@ -32,7 +44,7 @@ At the root of the Element Android, run the following script:
It will build the Jitsi Meet Android library and put every generated files in the folder `/tmp/jitsi` It will build the Jitsi Meet Android library and put every generated files in the folder `/tmp/jitsi`
### Link with the new generated library #### Link with the new generated library
- Update the file `./build.gradle` to use the previously created local Maven repository. Currently we have this line: - Update the file `./build.gradle` to use the previously created local Maven repository. Currently we have this line:
@@ -57,7 +69,7 @@ implementation('com.facebook.react:react-native-webrtc:1.92.1-jitsi-9093212@aar'
- Perform a gradle sync and build the project - Perform a gradle sync and build the project
- Perform test - Perform test
### Sanity tests #### Sanity tests
In order to validate that the upgrade of the Jitsi and WebRTC dependency does not break anything, the following sanity tests have to be performed, using two devices: In order to validate that the upgrade of the Jitsi and WebRTC dependency does not break anything, the following sanity tests have to be performed, using two devices:
- Make 1-1 audio call (so using WebRTC) - Make 1-1 audio call (so using WebRTC)
@@ -65,7 +77,7 @@ In order to validate that the upgrade of the Jitsi and WebRTC dependency does no
- Create and join a conference call with audio only (so using Jitsi library). Leave the conference. Join it again. - Create and join a conference call with audio only (so using Jitsi library). Leave the conference. Join it again.
- Create and join a conference call with audio and video (so using Jitsi library) Leave the conference. Join it again. - Create and join a conference call with audio and video (so using Jitsi library) Leave the conference. Join it again.
### Export the build library #### Export the build library
If all the tests are passed, you can export the generated Jitsi library to our Maven repository. If all the tests are passed, you can export the generated Jitsi library to our Maven repository.
@@ -81,4 +93,4 @@ url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.10.
- Build the project and perform the sanity tests again. - Build the project and perform the sanity tests again.
- Update the file `/CHANGES.md` to notify about the library upgrade, and create a regular PR for project Element Android. - Update the file `/CHANGES.md` to notify about the library upgrade, and create a regular PR for project Element Android.

View File

@@ -1,37 +1,42 @@
This document aims to describe how Element android displays notifications to the end user. It also clarifies notifications and background settings in the app. This document aims to describe how Element android displays notifications to the end user. It also clarifies notifications and background settings in the app.
# Table of Contents # Table of Contents
1. [Prerequisites Knowledge](#prerequisites-knowledge)
* [How does a matrix client get a message from a homeserver?](#how-does-a-matrix-client-get-a-message-from-a-homeserver) <!--- TOC -->
* [How does a mobile app receives push notification?](#how-does-a-mobile-app-receives-push-notification)
* [Push VS Notification](#push-vs-notification) * [Prerequisites Knowledge](#prerequisites-knowledge)
* [Push in the matrix federated world](#push-in-the-matrix-federated-world) * [How does a matrix client get a message from a homeserver?](#how-does-a-matrix-client-get-a-message-from-a-homeserver?)
* [How does the homeserver know when to notify a client?](#how-does-the-homeserver-know-when-to-notify-a-client) * [How does a mobile app receives push notification](#how-does-a-mobile-app-receives-push-notification)
* [Push vs privacy, and mitigation](#push-vs-privacy-and-mitigation) * [Push VS Notification](#push-vs-notification)
* [Background processing limitations](#background-processing-limitations) * [Push in the matrix federated world](#push-in-the-matrix-federated-world)
2. [Element Notification implementations](#element-notification-implementations) * [How does the homeserver know when to notify a client?](#how-does-the-homeserver-know-when-to-notify-a-client?)
* [Requirements](#requirements) * [Push vs privacy, and mitigation](#push-vs-privacy-and-mitigation)
* [Foreground sync mode (Gplay & F-Droid)](#foreground-sync-mode-gplay-f-droid) * [Background processing limitations](#background-processing-limitations)
* [Push (FCM) received in background](#push-fcm-received-in-background) * [Element Notification implementations](#element-notification-implementations)
* [FCM Fallback mode](#fcm-fallback-mode) * [Requirements](#requirements)
* [F-Droid background Mode](#f-droid-background-mode) * [Foreground sync mode (Gplay and F-Droid)](#foreground-sync-mode-gplay-and-f-droid)
3. [Application Settings](#application-settings) * [Push (FCM) received in background](#push-fcm-received-in-background)
* [FCM Fallback mode](#fcm-fallback-mode)
* [F-Droid background Mode](#f-droid-background-mode)
* [Application Settings](#application-settings)
<!--- END -->
First let's start with some prerequisite knowledge First let's start with some prerequisite knowledge
# Prerequisites Knowledge ## Prerequisites Knowledge
## How does a matrix client get a message from a homeserver? ### How does a matrix client get a message from a homeserver?
In order to get messages from a homeserver, a matrix client need to perform a ``sync`` operation. In order to get messages from a homeserver, a matrix client need to perform a ``sync`` operation.
`To read events, the intended flow of operation is for clients to first call the /sync API without a since parameter. This returns the most recent message events for each room, as well as the state of the room at the start of the returned timeline. ` `To read events, the intended flow of operation is for clients to first call the /sync API without a since parameter. This returns the most recent message events for each room, as well as the state of the room at the start of the returned timeline. `
The client need to call the `sync`API periodically in order to get incremental updates of the server state (new messages). The client need to call the `sync` API periodically in order to get incremental updates of the server state (new messages).
This mechanism is known as **HTTP long Polling**. This mechanism is known as **HTTP long Polling**.
Using the **HTTP Long Polling** mechanism a client polls a server requesting new information. Using the **HTTP Long Polling** mechanism a client polls a server requesting new information.
The server *holds the request open until new data is available*. The server *holds the request open until new data is available*.
Once available, the server responds and sends the new information. Once available, the server responds and sends the new information.
When the client receives the new information, it immediately sends another request, and the operation is repeated. When the client receives the new information, it immediately sends another request, and the operation is repeated.
@@ -52,7 +57,7 @@ By default, this is 0, so the server will return immediately even if the respons
When the Element Android app is open (i.e in foreground state), the default timeout is 30 seconds, and delay is 0. When the Element Android app is open (i.e in foreground state), the default timeout is 30 seconds, and delay is 0.
## How does a mobile app receives push notification ### How does a mobile app receives push notification
Push notification is used as a way to wake up a mobile application when some important information is available and should be processed. Push notification is used as a way to wake up a mobile application when some important information is available and should be processed.
@@ -66,22 +71,22 @@ FCM will only work on android devices that have Google plays services installed
(In simple terms, Google Play Services is a background service that runs on Android, which in turn helps in integrating Googles advanced functionalities to other applications) (In simple terms, Google Play Services is a background service that runs on Android, which in turn helps in integrating Googles advanced functionalities to other applications)
De-Googlified devices need to rely on something else in order to stay up to date with a server. De-Googlified devices need to rely on something else in order to stay up to date with a server.
There some cases when devices with google services cannot use FCM (network infrastructure limitations -firewalls- , There some cases when devices with google services cannot use FCM (network infrastructure limitations -firewalls-,
privacy and or independency requirement, source code licence) privacy and or independence requirement, source code licence)
## Push VS Notification ### Push VS Notification
This need some disambiguation, because it is the source of common confusion: This need some disambiguation, because it is the source of common confusion:
*The fact that you see a notification on your screen does not mean that you have successfully configured your PUSH plateform.* *The fact that you see a notification on your screen does not mean that you have successfully configured your PUSH platform.*
Technically there is a difference between a push and a notification. A notification is what you see on screen and/or in the notification Menu/Drawer (in the top bar of the phone). Technically there is a difference between a push and a notification. A notification is what you see on screen and/or in the notification Menu/Drawer (in the top bar of the phone).
Notifications are not always triggered by a push (One can display a notification locally triggered by an alarm) Notifications are not always triggered by a push (One can display a notification locally triggered by an alarm)
## Push in the matrix federated world ### Push in the matrix federated world
In order to send a push to a mobile, App developers need to have a server that will use the FCM APIs, and these APIs requires authentication! In order to send a push to a mobile, App developers need to have a server that will use the FCM APIs, and these APIs requires authentication!
This server is called a **Push Gateway** in the matrix world This server is called a **Push Gateway** in the matrix world
@@ -118,11 +123,11 @@ Client/Server API + | | | | |
``` ```
Recommended reading: Recommended reading:
* https://thomask.sdf.org/blog/2016/12/11/riots-magical-push-notifications-in-ios.html * https://thomask.sdf.org/blog/2016/12/11/riots-magical-push-notifications-in-ios.html
* https://matrix.org/docs/spec/client_server/r0.4.0.html#id128 * https://matrix.org/docs/spec/client_server/r0.4.0.html#id128
## How does the homeserver know when to notify a client? ### How does the homeserver know when to notify a client?
This is defined by [**push rules**](https://matrix.org/docs/spec/client_server/r0.4.0.html#push-rules-). This is defined by [**push rules**](https://matrix.org/docs/spec/client_server/r0.4.0.html#push-rules-).
@@ -140,14 +145,14 @@ Of course, content patterns matching cannot be used for encrypted messages serve
That is why clients are able to **process the push rules client side** to decide what kind of notification should be presented for a given event. That is why clients are able to **process the push rules client side** to decide what kind of notification should be presented for a given event.
## Push vs privacy, and mitigation ### Push vs privacy, and mitigation
As seen previously, App developers don't directly send a push to the end user's device, they use a Push Provider as intermediary. So technically this intermediary is able to read the content of what is sent. As seen previously, App developers don't directly send a push to the end user's device, they use a Push Provider as intermediary. So technically this intermediary is able to read the content of what is sent.
App developers usually mitigate this by sending a `silent notification`, that is a notification with no identifiable data, or with an encrypted payload. When the push is received the app can then synchronise to it's server in order to generate a local notification. App developers usually mitigate this by sending a `silent notification`, that is a notification with no identifiable data, or with an encrypted payload. When the push is received the app can then synchronise to it's server in order to generate a local notification.
## Background processing limitations ### Background processing limitations
A mobile applications process live in a managed word, meaning that its process can be limited (e.g no network access), stopped or killed at almost anytime by the Operating System. A mobile applications process live in a managed word, meaning that its process can be limited (e.g no network access), stopped or killed at almost anytime by the Operating System.
@@ -167,15 +172,15 @@ The documentation on this subject is vague, and as per our experiments not alway
It is getting more and more complex to have reliable notifications when FCM is not used. It is getting more and more complex to have reliable notifications when FCM is not used.
# Element Notification implementations ## Element Notification implementations
## Requirements ### Requirements
Element Android must work with and without FCM. Element Android must work with and without FCM.
* The Element android app published on F-Droid do not rely on FCM (all related dependencies are not present) * The Element android app published on F-Droid do not rely on FCM (all related dependencies are not present)
* The Element android app published on google play rely on FCM, with a fallback mode when FCM registration has failed (e.g outdated or missing Google Play Services) * The Element android app published on google play rely on FCM, with a fallback mode when FCM registration has failed (e.g outdated or missing Google Play Services)
## Foreground sync mode (Gplay & F-Droid) ### Foreground sync mode (Gplay and F-Droid)
When in foreground, Element performs sync continuously with a timeout value set to 10 seconds (see HttpPooling). When in foreground, Element performs sync continuously with a timeout value set to 10 seconds (see HttpPooling).
@@ -183,9 +188,9 @@ As this mode does not need to live beyond the scope of the application, and as p
This mode is turned on when the app enters foreground, and off when enters background. This mode is turned on when the app enters foreground, and off when enters background.
In background, and depending on wether push is available or not, Element will use different methods to perform the syncs (Workers / Alarms / Service) In background, and depending on whether push is available or not, Element will use different methods to perform the syncs (Workers / Alarms / Service)
## Push (FCM) received in background ### Push (FCM) received in background
In order to enable Push, Element must first get a push token from the firebase SDK, then register a pusher with this token on the homeserver. In order to enable Push, Element must first get a push token from the firebase SDK, then register a pusher with this token on the homeserver.
@@ -225,10 +230,10 @@ Upon reception of the FCM push, Element will perform a sync call to the homeserv
Element implements several strategies in these cases (TODO document) Element implements several strategies in these cases (TODO document)
## FCM Fallback mode ### FCM Fallback mode
It is possible that Element is not able to get a FCM push token. It is possible that Element is not able to get a FCM push token.
Common errors (amoung several others) that can cause that: Common errors (among several others) that can cause that:
* Google Play Services is outdated * Google Play Services is outdated
* Google Play Service fails in someways with FCM servers (infamous `SERVICE_NOT_AVAILABLE`) * Google Play Service fails in someways with FCM servers (infamous `SERVICE_NOT_AVAILABLE`)
@@ -246,7 +251,7 @@ Usually in this mode, what happen is when you take back your phone in your hand,
The fallback mode is supposed to be a temporary state waiting for the user to fix issues for FCM, or for App Developers that has done a fork to correctly configure their FCM settings. The fallback mode is supposed to be a temporary state waiting for the user to fix issues for FCM, or for App Developers that has done a fork to correctly configure their FCM settings.
## F-Droid background Mode ### F-Droid background Mode
The F-Droid Element flavor has no dependencies to FCM, therefore cannot relies on Push. The F-Droid Element flavor has no dependencies to FCM, therefore cannot relies on Push.
@@ -256,7 +261,7 @@ Only solution left is to use `AlarmManager`, that offers new API to allow launch
Notice that these alarms, due to their potential impact on battery life, can still be restricted by the system. Documentation says that they will not be triggered more than every minutes under normal system operation, and when in low power mode about every 15 mn. Notice that these alarms, due to their potential impact on battery life, can still be restricted by the system. Documentation says that they will not be triggered more than every minutes under normal system operation, and when in low power mode about every 15 mn.
These restrictions can be relaxed by requirering the app to be white listed from battery optimization. These restrictions can be relaxed by requiring the app to be white listed from battery optimization.
F-Droid version will schedule alarms that will then trigger a Broadcast Receiver, that in turn will launch a Service (in the classic android way), and the reschedule an alarm for next time. F-Droid version will schedule alarms that will then trigger a Broadcast Receiver, that in turn will launch a Service (in the classic android way), and the reschedule an alarm for next time.
@@ -266,9 +271,7 @@ That is why on Element F-Droid, the broadcast receiver will acquire a temporary
Note that foreground services require to put a notification informing the user that the app is doing something even if not launched). Note that foreground services require to put a notification informing the user that the app is doing something even if not launched).
## Application Settings
# Application Settings
**Notifications > Enable notifications for this account** **Notifications > Enable notifications for this account**

View File

@@ -1,5 +1,43 @@
# Pull requests # Pull requests
<!--- TOC -->
* [Introduction](#introduction)
* [Who should read this document?](#who-should-read-this-document?)
* [Submitting PR](#submitting-pr)
* [Who can submit pull requests?](#who-can-submit-pull-requests?)
* [Humans](#humans)
* [Draft PR?](#draft-pr?)
* [Base branch](#base-branch)
* [PR Review Assignment](#pr-review-assignment)
* [PR review time](#pr-review-time)
* [Re-request PR review](#re-request-pr-review)
* [When create split PR?](#when-create-split-pr?)
* [Avoid fixing other unrelated issue in a big PR](#avoid-fixing-other-unrelated-issue-in-a-big-pr)
* [Bots](#bots)
* [Dependabot](#dependabot)
* [Gradle wrapper](#gradle-wrapper)
* [Sync analytics plan](#sync-analytics-plan)
* [Reviewing PR](#reviewing-pr)
* [Who can review pull requests?](#who-can-review-pull-requests?)
* [What to have in mind when reviewing a PR](#what-to-have-in-mind-when-reviewing-a-pr)
* [Rules](#rules)
* [Check the form](#check-the-form)
* [PR title](#pr-title)
* [PR description](#pr-description)
* [File change](#file-change)
* [Check the commit](#check-the-commit)
* [Check the substance](#check-the-substance)
* [Make a dedicated meeting to review the PR](#make-a-dedicated-meeting-to-review-the-pr)
* [What happen to the issue(s)?](#what-happen-to-the-issues?)
* [Merge conflict](#merge-conflict)
* [When and who can merge PR](#when-and-who-can-merge-pr)
* [Merge type](#merge-type)
* [Resolve conversation](#resolve-conversation)
* [Responsibility](#responsibility)
<!--- END -->
## Introduction ## Introduction
This document gives some clue about how to efficiently manage Pull Requests (PR). This document is a first draft and may be improved later. This document gives some clue about how to efficiently manage Pull Requests (PR). This document is a first draft and may be improved later.

View File

@@ -2,6 +2,27 @@
This document describes the flow of signin to a homeserver, and also the flow when user want to reset his password. Examples come from the `matrix.org` homeserver. This document describes the flow of signin to a homeserver, and also the flow when user want to reset his password. Examples come from the `matrix.org` homeserver.
<!--- TOC -->
* [Sign in flows](#sign-in-flows)
* [Get the flow](#get-the-flow)
* [Login with username](#login-with-username)
* [Incorrect password](#incorrect-password)
* [Correct password:](#correct-password:)
* [Login with email](#login-with-email)
* [Unknown email](#unknown-email)
* [Known email, wrong password](#known-email-wrong-password)
* [Known email, correct password](#known-email-correct-password)
* [Login with Msisdn](#login-with-msisdn)
* [Login with SSO](#login-with-sso)
* [Reset password](#reset-password)
* [Send email](#send-email)
* [When the email is not known](#when-the-email-is-not-known)
* [When the email is known](#when-the-email-is-known)
* [User clicks on the link](#user-clicks-on-the-link)
<!--- END -->
## Sign in flows ## Sign in flows
### Get the flow ### Get the flow
@@ -322,4 +343,4 @@ curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":
{} {}
``` ```
The password has been changed, and all the existing token are invalidated. User can now login with the new password. The password has been changed, and all the existing token are invalidated. User can now login with the new password.

View File

@@ -4,6 +4,20 @@ This document describes the flow of registration to a homeserver. Examples come
*Ref*: https://matrix.org/docs/spec/client_server/latest#account-registration-and-management *Ref*: https://matrix.org/docs/spec/client_server/latest#account-registration-and-management
<!--- TOC -->
* [Sign up flows](#sign-up-flows)
* [First step](#first-step)
* [Step 1: entering user name and password](#step-1:-entering-user-name-and-password)
* [If username already exists](#if-username-already-exists)
* [Step 2: entering email](#step-2:-entering-email)
* [Step 2 bis: user enters an email](#step-2-bis:-user-enters-an-email)
* [Step 3: Accepting T&C](#step-3:-accepting-t&c)
* [Step 4: Captcha](#step-4:-captcha)
* [Step 5: MSISDN](#step-5:-msisdn)
<!--- END -->
## Sign up flows ## Sign up flows
### First step ### First step

View File

@@ -10,6 +10,20 @@ Currently the test are covering a small set of application flows:
- Self verification via emoji - Self verification via emoji
- Self verification via passphrase - Self verification via passphrase
<!--- TOC -->
* [Prerequisites:](#prerequisites:)
* [Run the tests](#run-the-tests)
* [From the source code](#from-the-source-code)
* [From command line](#from-command-line)
* [Recipes](#recipes)
* [Wait for initial sync](#wait-for-initial-sync)
* [Accessing current activity](#accessing-current-activity)
* [Interact with other session](#interact-with-other-session)
* [Contributing to the UiAllScreensSanityTest](#contributing-to-the-uiallscreenssanitytest)
<!--- END -->
## Prerequisites: ## Prerequisites:
Out of the box, the tests use one of the homeservers (located at http://localhost:8080) of the "Demo Federation of Homeservers" (https://github.com/matrix-org/synapse#running-a-demo-federation-of-synapses). Out of the box, the tests use one of the homeservers (located at http://localhost:8080) of the "Demo Federation of Homeservers" (https://github.com/matrix-org/synapse#running-a-demo-federation-of-synapses).

View File

@@ -0,0 +1,2 @@
Hlavní změny v této verzi: Zlepšení správy ignorovaných uživatelů. Opravy různých chyb a vylepšení stability.
Úplný seznam změn: https://github.com/vector-im/element-android/releases

View 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

View 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

View File

@@ -0,0 +1,2 @@
Cambios principales en esta versión: Mejoras en la administración de usuarios ignorados. Varias correciones de bugs y mejoras en la estabilidad.
Registro de cambios: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Põhilised muutused selles versioonis: eiratud kasutajate parem haldus ning erinevate vigade parandused ja stabiilsust edendavad kohendused.
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases

View File

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

View File

@@ -0,0 +1,2 @@
Principaux changements pour cette version : Défilement dans les messages vocaux. Plusieurs corrections de bogues et daméliorations de stabilité.
Intégralité des changements : https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Principaux changements pour cette version : Plusieurs corrections de bogues et daméliorations de stabilité.
Intégralité des changements : https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Principaux changements pour cette version : Les utilisateurs peuvent apparaître hors-ligne. Ajout dun lecteur pour les pièces jointes audio
Intégralité des changements : https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Principaux changements pour cette version : Les utilisateurs peuvent apparaître hors-ligne. Ajout dun lecteur pour les pièces jointes audio
Intégralité des changements : https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Principaux changements pour cette version : Amélioration de la gestion des utilisateurs ignorés. Plusieurs corrections de bogues et daméliorations de stabilité.
Intégralité des changements : https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Perubahan utama dalam versi ini: Tingkatkan pengelolaan pengguna yang diabaikan. Beberapa perbaikan kutu dan stabilitas.
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Modifiche principali in questa versione: migliorata la gestione degli utenti ignorati. Varie correzioni e miglioramenti della stabilità.
Cronologia completa: https://github.com/vector-im/element-android/releases

View File

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

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: aktualizacja motywu i stylu oraz naprawa awarii po rozmowie wideo
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.12

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: głównie aktualizacja stabilności i poprawki błędów.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.13

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: naprawienie problemu z zaszyfrowanymi wiadomościami.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.14

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: implementacja wiadomości głosowych w ustawieniach laboratorium.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.15

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Naprawiono błąd podczas wysyłania zaszyfrowanej wiadomości, jeśli ktoś w pokoju się wyloguje.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.1.16

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Wiadomość głosowa jest domyślnie włączona.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.2.0

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Wiele ulepszeń w VoIP i Przestrzeniach (nadal w wersji beta).
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.2.1

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Organizuj swoje pokoje za pomocą Przestrzeni!
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.0

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Organizuj swoje pokoje za pomocą Przestrzeni! Wersja 1.3.1 naprawia awarię, która może wystąpić w wersji 1.3.0.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.1

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Dodano obsługę Android Auto. Wiele poprawek błędów!
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.2

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Uwidocznij politykę(-i) serwera tożsamości w ustawieniach. Tymczasowo usunięto obsługę Androida Auto.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.3

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Dodanie obsługi obecności, dla pokoju wiadomości bezpośrednich (uwaga: obecność jest wyłączona na matrix.org). Dodano ponownie obsługę Androida Auto.
Pełna lista zmian: https://github.com/vector-im/element-android/releases/tag/v1.3.4

View File

@@ -0,0 +1,2 @@
Główne zmiany w tej wersji: Poprawa zarządzania ignorowanymi użytkownikami. Różne poprawki błędów i ulepszenia stabilności.
Pełna lista zmian: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Principais mudanças nesta versão: Melhorar gerenciamento de usuárias(os) ignoradas(os). Vários consertos de bugs e melhorias de estabilidade.
Changelog completo: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Hlavné zmeny v tejto verzii: Zlepšenie správy ignorovaných používateľov. Rôzne opravy chýb a vylepšenia stability.
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
Huvudsakliga ändringar i den här versionen: Förbättra hantering av ignorerade användare. Diverse buggfixar och stabilitetsförbättringar.
Full ändringslogg: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
இந்த பதிப்பில் உள்ள முதன்மை மாற்றங்கள்: தவிர்க்கப்பட்ட பயனர்களின் மேலாண்மை மேம்படுத்தப்பட்டுள்ளது. வெவ்வேறு வழுக்களைச் சரிசெய்தல் மற்றும் நிலைப்புத்தன்மையை மேம்படுத்தல்.
முழு மாற்ற அறிக்கை: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,42 @@
Element is both a secure messenger and a productivity team collaboration app that is ideal for group chats while remote working. This chat app uses end-to-end encryption to provide powerful video conferencing, file sharing and voice calls.
<b>Element இன் தனிச்சிறப்புகளுள் சில:</b>
- மேம்பட்ட இயங்கலை தொடர்பு கருவிகள்
- தொலைநிலையில் உள்ள ஊழியர்களுக்கும், பாதுகாப்பான நிறும கருத்து பரிமாற்றங்களை அனுமதிப்பதற்காக, முழுவதுமாக மறைகுறியாக்கப்பட்ட செய்திகள்
- MATRIX திறந்த மூல கட்டமைப்பை அடிப்படையாக கொண்டு செயல்படும் அதிகாரப்பரவலாக்கப்பட்ட அரட்டை
- செயல்திட்டங்களை மேலாண்மை செய்யும் போது, மறைகுறியாக்கப்பட்ட தரவுடன் கூடிய பாதுகாப்பான கோப்பு பகிரல்
- IP மூலம் குரல் (VoIP) மற்றும் திரை பகிரல் உடன் கூடிய குரல் அரட்டைகள்
- உங்கள் மனம் கவர்ந்த இயங்கலை உடனிணைவு கருவிகள், செயல்திட்ட மேலாண்மை கருவிகள், VoIP சேவைகள் மற்றும் இதர குழு தூதுரை செயலிகள் உடன் கூடிய எளிமையான ஒருமைப்பாடு
Element is completely different from other messaging and collaboration apps. It operates on Matrix, an open network for secure messaging and decentralized communication. It allows self-hosting to give users maximum ownership and control of their data and messages.
<b>தனியுரிமை மற்றும் மறைகுறியாக்கப்பட்ட செய்தி அனுப்பல்</b>
தேவையில்லாத விளம்பரங்கள், தரவு சுரண்டல் மற்றும் தகவல் கட்டுப்பாடு போன்றவற்றில் இருந்து Element உங்களை பாதுகாக்கிறது. மேலும், இது முனைக்கு-முனை மறைகுறியாக்கம் மற்றும் குறுக்கு-ஒப்பமிடப்பட்ட சாதன சரிபார்ப்பு ஆகியவற்றின் மூலம் உங்கள் எல்லா தரவுகள், ஒன்றுக்கொன்றான காணொளி மற்றும் குரல் அழைப்புகளை பாதுகாக்கிறது.
Element gives you control over your privacy while allowing you to communicate securely with யாரோனும் ஒருவருடன் on the Matrix network, or other business collaboration tools by integrating with apps such as Slack.
<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>உங்கள் தரவைச் சொந்தமாக்கிக் கொள்ளுங்கள்</b>
தரவுகள் மற்றும் செய்திகளை எங்கு சேமித்து வைக்க வேண்டும் என்பதை நீங்கள் முடிவு செய்கிறீர்கள். இதன்மூலம், தரவு சுரண்டல் மற்றும் மூன்றாம் தரப்பினர் அனுகல் ஆகிய இடர்களை தவிர்க்கலாம்.
Element வெவ்வேறு வகையில் கட்டுப்பாட்டை உங்களிடம் அளிக்கிறது:
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>திறந்த செய்தி அனுப்பல் மற்றும் ஒருமைப்பாடு</b>
You can chat with anyone on the Matrix network, whether theyre using Element, another Matrix app or even if they are using a different messaging app.
<b>மிகவும் பாதுகாப்பானது</b>
உண்மையான முனைக்கு-முனை மறைகுறியாக்கம் (உரையாடலில் உள்ளவர்கள் மட்டுமே மறைகுறியாக்கத்தை நீக்கி செய்தியை காண இயலும்) மற்றும் குறுக்கு-ஒப்பமிடப்பட்ட சாதன சரிபார்ப்பு.
<b>முழுமையான தொடர்பு மற்றும் ஒருமைப்பாடு</b>
செய்தி அனுப்பல், காணொளி மற்றும் குரல் அழைப்புகளை, கோப்பு பகிரல், திரை பகிரல் மற்றும் ஒருமைப்பாடுகள், இயலிகள் மற்றும் நிரல் பலகைகளின் மொத்த கொத்து. அறைகள், குழுக்களை உருவாக்கி, அவர்களுடன் உரையாடி, வேலையை எளிமையாக்கவும்.
<b>எங்கு விட்டு சென்றீர்களோ அதிலிருந்த துவங்கவும்</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>திறந்த மூலம்</b>
Element Android ஒரு திறந்த மூல செயல் திட்டமாகும். இது GitHub இல் தொகுத்து வழங்கப்பட்டுள்ளது. வழுக்கள் ஏதேனும் கண்டறிந்தால் மற்றும்/அல்லது இதன் வளர்ச்சிக்கு பங்களிக்க விரும்பினால், https://github.com/vector-im/element-android என்னும் தளத்திற்கு வருகை தரவும்.

View File

@@ -0,0 +1 @@
மறைகுறியாக்கப்பட்ட செய்தி அனுப்பல், குழு அரட்டை மற்றும் காணொளி அழைப்புகள்

View File

@@ -0,0 +1 @@
Element - பாதுகாப்பான தூதுரை சேவை

View File

@@ -0,0 +1,2 @@
Основні зміни у цій версії: Удосконалено керування нехтуваними користувачами. Різні виправлення помилок та поліпшення стабільності.
Вичерпний журнал змін: https://github.com/vector-im/element-android/releases

View File

@@ -0,0 +1,2 @@
此版本中的主要變動:改善被忽略使用者的管理。多個臭蟲修復與穩定性改善。
完整的變更紀錄https://github.com/vector-im/element-android/releases

View File

@@ -55,5 +55,6 @@ dependencies {
implementation libs.androidx.appCompat implementation libs.androidx.appCompat
implementation libs.androidx.recyclerview implementation libs.androidx.recyclerview
implementation libs.google.material api libs.androidx.viewpager2
} implementation libs.androidx.transition
}

View File

@@ -44,7 +44,7 @@ class SwipeToDismissHandler(
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
override fun onTouch(v: View, event: MotionEvent): Boolean { override fun onTouch(v: View, event: MotionEvent): Boolean {
when (event.action) { when (event.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
if (swipeView.hitRect.contains(event.x.toInt(), event.y.toInt())) { if (swipeView.hitRect.contains(event.x.toInt(), event.y.toInt())) {
isTracking = true isTracking = true
} }
@@ -58,7 +58,7 @@ class SwipeToDismissHandler(
} }
return true return true
} }
MotionEvent.ACTION_MOVE -> { MotionEvent.ACTION_MOVE -> {
if (isTracking) { if (isTracking) {
val translationY = event.y - startY val translationY = event.y - startY
swipeView.translationY = translationY swipeView.translationY = translationY
@@ -66,7 +66,7 @@ class SwipeToDismissHandler(
} }
return true return true
} }
else -> { else -> {
return false return false
} }
} }

View File

@@ -50,6 +50,5 @@ android {
} }
dependencies { dependencies {
implementation libs.androidx.appCompat
implementation libs.jetbrains.coroutinesAndroid implementation libs.jetbrains.coroutinesAndroid
} }

View File

@@ -52,6 +52,7 @@ dependencies {
implementation libs.androidx.appCompat implementation libs.androidx.appCompat
implementation libs.androidx.core implementation libs.androidx.core
implementation libs.androidx.recyclerview
implementation libs.airbnb.epoxy implementation libs.airbnb.epoxy
kapt libs.airbnb.epoxyProcessor kapt libs.airbnb.epoxyProcessor
@@ -60,7 +61,6 @@ dependencies {
// Span utils // Span utils
implementation 'me.gujun.android:span:1.7' implementation 'me.gujun.android:span:1.7'
implementation libs.google.material
implementation libs.jetbrains.coroutinesCore implementation libs.jetbrains.coroutinesCore
implementation libs.jetbrains.coroutinesAndroid implementation libs.jetbrains.coroutinesAndroid

View File

@@ -38,9 +38,9 @@ android {
} }
dependencies { dependencies {
implementation libs.androidx.appCompat api libs.androidx.activity
implementation libs.androidx.fragmentKtx
implementation libs.androidx.exifinterface implementation libs.androidx.exifinterface
implementation libs.androidx.core
// Log // Log
implementation libs.jakewharton.timber implementation libs.jakewharton.timber

View File

@@ -60,4 +60,4 @@ dependencies {
implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12' implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12'
// dialpad dimen // dialpad dimen
implementation 'im.dlg:android-dialer:1.2.5' implementation 'im.dlg:android-dialer:1.2.5'
} }

View File

@@ -10,4 +10,4 @@
android:height="70dp" /> android:height="70dp" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:angle="@integer/rtl_mirror_flip"
android:endColor="#55DFD1FF"
android:startColor="#55A5F2E0" />
</shape>
</item>
<item>
<shape>
<gradient
android:angle="90"
android:endColor="@android:color/transparent"
android:startColor="?android:colorBackground" />
</shape>
</item>
</layer-list>

View File

@@ -10,4 +10,4 @@
<size <size
android:width="24dp" android:width="24dp"
android:height="24dp"/> android:height="24dp"/>
</shape> </shape>

View File

@@ -9,4 +9,4 @@
<size <size
android:width="24dp" android:width="24dp"
android:height="24dp"/> android:height="24dp"/>
</shape> </shape>

View File

@@ -6,4 +6,4 @@
android:drawable="@drawable/pin_code_dot_fill"/> android:drawable="@drawable/pin_code_dot_fill"/>
<item <item
android:drawable="@drawable/pin_code_dot_empty"/> android:drawable="@drawable/pin_code_dot_empty"/>
</selector> </selector>

View File

@@ -18,4 +18,26 @@
<item name="android:gravity">center</item> <item name="android:gravity">center</item>
</style> </style>
<style name="TextAppearance.Vector.Body.BottomSheetDisplayName">
<item name="android:textSize">16sp</item>
</style>
<style name="TextAppearance.Vector.Body.BottomSheetRemainingTime">
<item name="android:textSize">12sp</item>
</style>
<style name="TextAppearance.Vector.Body.BottomSheetLastUpdatedAt">
<item name="android:textSize">12sp</item>
<item name="android:textColor">?vctr_content_tertiary</item>
</style>
<style name="Widget.Vector.Button.Text.BottomSheetStopSharing">
<item name="android:foreground">?selectableItemBackground</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:textAppearance">@style/TextAppearance.Vector.Body.Medium</item>
<item name="android:textColor">?colorError</item>
<item name="android:padding">0dp</item>
<item name="android:gravity">center</item>
</style>
</resources> </resources>

View File

@@ -41,4 +41,4 @@
<item name="android:textColor">?vctr_content_primary</item> <item name="android:textColor">?vctr_content_primary</item>
</style> </style>
</resources> </resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources xmlns:tools="http://schemas.android.com/tools">
<style name="TimelineContentStubBaseParams"> <style name="TimelineContentStubBaseParams">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
@@ -33,5 +33,8 @@
<item name="android:gravity">center</item> <item name="android:gravity">center</item>
</style> </style>
<style name="TimelineFixedSizeCaptionStyle" parent="@style/Widget.Vector.TextView.Caption">
<item name="android:textSize" tools:ignore="SpUsage">12dp</item>
</style>
</resources> </resources>

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