Commit graph

533 commits

Author SHA1 Message Date
Damir Jelić
73ba371a3e Add the user certificates as additional certificates to the ClientBuilder
Now, this is a story all about how
Certificates work in Android town
And I'd like to take a minute
Enter, close the door
I'll tell you how I've figured out the inner workings of the Keystore

Well it all boils down the fact that Google got scared
It said, "You're certs are movin' to a place you won't find".

So the directory, user certificates are stored, is hard to find, and possibly
not readable by your application[1]. Instead, we need to use the Keystore[2]
API, specifically we'll need to open the `AndroidCAStore` Keystore type.

The various Keystore types are supposedly documented[3], but I'm failing to
find a logical path that would lead you to conclude that:

    a) System certificates can or should be accessed using the Keystore,
       specifically the AndroidCAStore type
    b) User certificates can be found in the same Keystore type as the system
       certificates

So this was mostly found using random googling, swearing, and a couple of
educated guesses.

[1]: https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html
[2]: https://developer.android.com/reference/java/security/KeyStore
[3]: https://docs.oracle.com/en/java/javase/17/docs/specs/security/standard-names.html#keystore-types
2024-02-21 13:18:11 +01:00
Jorge Martin Espinosa
598bf96208
Do not display empty room list state before the loading one (#2402)
* Do not display empty room list state before the loading one
2024-02-21 12:16:00 +01:00
Jorge Martin Espinosa
e68139bf46
Display banned users in room member list (#2415)
* Display banned users in room member list

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-20 10:07:06 +01:00
ganfra
f171dc94da rust sdk : fix api changes 2024-02-19 21:35:31 +01:00
Jorge Martin Espinosa
0a6f00e9df
Sort the room member list and display member roles (#2412)
* Sort the room member list and display member roles

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-02-19 15:03:36 +00:00
ganfra
bdb660f346 RoomList : clean after PR review 2024-02-19 12:08:11 +01:00
ganfra
ebb07de8a4 RoomList : rework how search is done to prepare for later filtering 2024-02-16 19:35:03 +01:00
ganfra
00f8e32df6 Merge branch 'develop' into feature/fga/mark_room_as_favorite 2024-02-15 10:16:43 +01:00
ganfra
6dc0d8706c read : use the new apis 2024-02-14 11:09:46 +01:00
ganfra
a8bc0cb4ca Merge branch 'develop' into feature/fga/mark_room_as_favorite 2024-02-12 17:08:36 +01:00
Benoit Marty
b8d9c89ec4
Merge pull request #2374 from element-hq/feature/bma/typingRendering
Typing notification rendering
2024-02-09 22:29:14 +01:00
Benoit Marty
3ea448e6bb Fix formatting issue. 2024-02-09 10:43:08 +01:00
Benoit Marty
7831311d14 Fix compilation warning. 2024-02-09 10:12:50 +01:00
ganfra
2c24a48ed7 Rust : map the new filter api, will need more rework when branching the new ui later. 2024-02-08 20:46:27 +01:00
Benoit Marty
5d6716da67 Rendering typing notification #2242 2024-02-08 17:38:59 +01:00
Benoit Marty
d5c123622b
Merge pull request #2354 from element-hq/feature/bma/markUnread
Mark room as unread
2024-02-08 17:36:29 +01:00
Jorge Martín
e77740f1d2 Remove FilterHiddenStateEventsProcessor
The same process is already done by the Rust SDK, so it's now redundant.
2024-02-08 13:38:05 +01:00
Benoit Marty
9d461a4917 Add ability mark as unread / mark as read a room. 2024-02-08 11:33:43 +01:00
Benoit Marty
57d9b262d3 Extract session folder name computation from RustMatrixClient 2024-02-07 16:33:48 +01:00
Benoit Marty
46ff038b98
Merge pull request #2341 from element-hq/fix/jme/forwarding-with-new-timeline-api
Fix message forwarding after SDK API change
2024-02-06 16:11:40 +01:00
ganfra
f3c1eb6738 Use the new setIsFavorite api 2024-02-06 16:04:44 +01:00
Benoit Marty
8c56f0bd92 Fix API break and change from SDK 0.1.97 2024-02-06 09:18:35 +01:00
ganfra
d9017a098c Favorite : rework and add tests 2024-02-02 14:54:28 +01:00
Jorge Martín
686d58ee0a Fix message forwarding after SDK API change
Created `Room.fullRoomWithTimeline` helper to always get an initialized timeline with the room object.
2024-02-02 11:34:12 +01:00
Jorge Martín
5c59ecbaa6 Use MatrixRoom.isEncrypted value to enable encryption in room calls 2024-02-01 11:49:17 +01:00
ganfra
b15597509d favorite : branch RoomNotableTags methods 2024-01-31 21:24:37 +01:00
renovate[bot]
4854733b8d
Update dependency org.matrix.rustcomponents:sdk-android to v0.1.96 (#2323)
* Update dependency org.matrix.rustcomponents:sdk-android to v0.1.96

* Fixes for the SDK upgrade

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jorge Martín <jorgem@element.io>
2024-01-31 11:07:34 +00:00
Jorge Martin Espinosa
c2fc6db423
Add missing device id to settings screen (#2320)
* Add missing device id to settings screen

* Extract footer component

* Restore `@PreviewWithLargeHeight` logic

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-31 10:01:17 +00:00
Jorge Martin Espinosa
ede1dc0fab
Fix crash about several DataStores using the same file (#2312)
* Fix crash about several DataStores using the same file

- Create `@SessionCoroutineScope` annotation to pass a session-managed coroutine scope to the DI.
- Expose this scope from `MatrixClient`.
- Rework DataStore file creation a bit.
- Centralise session preference creation through `DefaultSessionPreferencesStoreFactory` until we figure out what went wrong with the scoping
2024-01-30 11:10:46 +01:00
Benoit Marty
a7541be6bb
Merge pull request #2293 from element-hq/feature/bma/notificationCount
Iterate on notification badges
2024-01-30 10:33:17 +01:00
Benoit Marty
bfb6b32740 Send typing notification #2240 2024-01-26 16:30:43 +01:00
Benoit Marty
0d35e60dac Disambiguate display name in notifications #2224 2024-01-25 18:43:56 +01:00
Benoit Marty
6ea76d9acd Map roomInfo.numUnreadNotifications to RoomSummaryDetails.numUnreadNotifications 2024-01-25 15:00:43 +01:00
Jorge Martin Espinosa
da4825aa44
Return cached room members before fetching new ones, do it in batches (#2274)
* Use cached users from the Rust SDK.

Also lazy load received users by batches.

* Create `RoomMemberListFetcher` to wrap all the room member loading logic

* Ensure we clear `RoomMember` Rust references if the fetching coroutine is canceled
2024-01-23 18:23:20 +01:00
Benoit Marty
f844399025 Fix API break: use new methods canUserRedactOwn and canUserRedactOther. 2024-01-23 13:32:13 +01:00
Benoit Marty
dd12071ea2 Use new Rust fields numUnreadMessages and numUnreadMentions, and iterate on the room badge rendering. 2024-01-22 15:48:46 +01:00
Benoit Marty
c3538e500d
Merge pull request #2130 from element-hq/feature/bma/roomListBadge
Some rework on the codebase
2024-01-22 10:17:38 +01:00
Benoit Marty
b4773d541f
Merge pull request #2244 from element-hq/feature/bma/encryptedDb2
Encrypted db
2024-01-19 17:40:23 +01:00
Jorge Martin Espinosa
5d462d5ba9
Remove some state events at the start of DMs (#2252)
* Remove some initial events for DMs
2024-01-19 17:34:27 +01:00
Benoit Marty
782f73fb7c Remove notificationMode to userDefinedNotificationMode to match SDK name. 2024-01-19 16:46:42 +01:00
Benoit Marty
ecb000b8ed Remove hasOngoingCall to hasRoomCall to match SDK name. 2024-01-19 16:16:57 +01:00
Benoit Marty
2c691d527b Remove RoomSummaryDetails.lastMessageTimestamp and replace by a getter on lastMessage 2024-01-19 16:11:10 +01:00
Benoit Marty
be0da18a7b Rename userAvatarURLString to userAvatarUrl 2024-01-19 15:59:50 +01:00
Benoit Marty
d1c7520065 Rename avatarURLString to avatarUrl 2024-01-19 15:58:37 +01:00
Benoit Marty
ea90b2b833 Remove obsolete comment. 2024-01-19 13:24:50 +01:00
Jorge Martín
48b90fd317 Adapt changes from SDK 0.1.84 2024-01-19 13:20:13 +01:00
Jorge Martin Espinosa
6ecce81f45
Try mitigating unexpected logouts (#2251)
* Try mitigating unexpected logouts.

Try making getting/storing session data use a Mutex for synchronization.

Also added some more logs so we can understand exactly where it's failing.
2024-01-18 16:22:25 +01:00
Benoit Marty
3a91f830da Encrypt databases used by the Rust SDK.
The passphrase is stored in the SessionData, so that a Session created by Element Android can be restored.
Existing sessions will have a null passphrase and will continue to work.
New session will use a passphrase, only on Nightly and Debug build for now.
2024-01-18 12:07:42 +01:00
Benoit Marty
f9c1892f2f SessionData: add the passphrase. 2024-01-18 11:50:05 +01:00
Jorge Martin Espinosa
27f55c0bc4
Replace 'leave room' text with 'leave conversation' for DMs (#2231)
* Replace 'leave room' text with 'leave conversation' for DMs

* Add `isDm` property to both `RoomSummary` and `RoomListRoomSummary`

* Remove redundant `leave_conversation_alert_subtitle_*` texts

* Fix maestro flow

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
2024-01-16 15:49:44 +01:00