Commit Graph

4900 Commits

Author SHA1 Message Date
SpiritCroc d9e5dfa90a Do not insert empty chunks that loop to themselves
We were getting some stuck timelines because of the insertion of empty
chunks that link to themselves in both directions.

Change-Id: Id3672e6704d82cbcdafa2fa5ded716b624db3680
2022-05-13 11:37:54 +02:00
SpiritCroc 85a26ae8be Render image reactions (MSC3746)
Some notes:
- Doesn't re-parse reactions already in the db to add the url field - so
  may need an initial sync for those.
- Since some clients don't really follow MSC3746, as in: they don't use
  the url field, but instead only write and check the key if it is an
  mxc-url, support those as well.
- Accordingly, initial sync is likely not required for those reactions
  I've seen in the wild so far, as it's common to use the mxc url also
  as key.

Change-Id: Ib1c50315425494986fa2e794d165658220a4f342
2022-05-11 21:50:49 +02:00
SpiritCroc 30d7c9b09b [merge] Fix realm migration from v1.4.13
Change-Id: If402ca9e48871ef086f173843d6b42d850294e6e
2022-05-05 18:33:17 +02:00
SpiritCroc 4617d2d698 Merge tag 'v1.4.14' into sc
v1.4.14

Change-Id: I3667009380f1e35ce05c75c3769e62e3446212db

Conflicts:
	.editorconfig
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/actions/MegolmSessionDataImporter.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/send/LocalEchoEventFactory.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/DefaultTimeline.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/SyncTask.kt
	matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/database/RealmMigrator.kt
	vector/src/fdroid/java/im/vector/app/push/fcm/FcmHelper.kt
	vector/src/gplay/java/im/vector/app/gplay/push/fcm/VectorFirebaseMessagingService.kt
	vector/src/gplay/java/im/vector/app/push/fcm/FcmHelper.kt
	vector/src/main/java/im/vector/app/AppStateHandler.kt
	vector/src/main/java/im/vector/app/VectorApplication.kt
	vector/src/main/java/im/vector/app/core/pushers/PushersManager.kt
	vector/src/main/java/im/vector/app/core/receiver/BackgroundSyncStarter.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/TimelineViewModel.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/timeline/factory/MessageItemFactory.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/TimelineControllerInterceptorHelper.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/timeline/style/TimelineMessageLayout.kt
	vector/src/main/java/im/vector/app/features/home/room/detail/timeline/style/TimelineMessageLayoutFactory.kt
	vector/src/main/java/im/vector/app/features/home/room/list/RoomListSectionBuilderSpace.kt
	vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt
	vector/src/main/java/im/vector/app/features/navigation/Navigator.kt
	vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListViewModel.kt
	vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListViewState.kt
	vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt
	vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsNotificationPreferenceFragment.kt
	vector/src/main/java/im/vector/app/features/settings/troubleshoot/TestTokenRegistration.kt
	vector/src/main/java/im/vector/app/features/spaces/SpaceSummaryController.kt
2022-05-05 17:41:26 +02:00
Benoit Marty 2d98cbd915 Rename `now` to more explicit `currentTimeMillis` 2022-05-04 17:48:36 +02:00
Benoit Marty 09e628f227
Merge branch 'develop' into feature/bma/currentTimeMillis 2022-05-04 17:43:03 +02:00
Adam Brown 1d59f69a57
Merge pull request #5909 from vector-im/defect/adm/crash-when-processing-call-events
Fixes crash when accepting VOIP calls
2022-05-04 11:16:51 +01:00
Benoit Marty dcc20bbfeb
Merge pull request #5854 from vector-im/feature/bma/small_fixies
Documentation update
2022-05-04 11:57:19 +02:00
Benoit Marty 5076b2cdbd
Merge pull request #5858 from vector-im/feature/bma/room_api
Room now exposes methods to get the various Services
2022-05-04 11:55:04 +02:00
Benoit Marty b5a0c944d1
Merge pull request #5869 from vector-im/feature/mna/PSF-884-live-location-aggregation
[Live location sharing] Improve aggregation process of events
2022-05-04 11:11:39 +02:00
Benoit Marty 2ff6604555
Merge pull request #5890 from vector-im/feature/bma/another_cleanup
This is not necessary to map the EventId
2022-05-04 10:47:05 +02:00
SpiritCroc 8158fff0f7 Still need to link empty chunks to glue everything together
Change-Id: Ic037db94d044c7271fe2f016a58c153945b73615
2022-05-04 08:03:15 +02:00
Maxime NATUREL 3b022eee83 Adding return type description in doc of StateService 2022-05-03 15:20:06 +02:00
Maxime NATUREL e5bb7ae5cd Return the created eventId in methods to send state events 2022-05-03 15:06:04 +02:00
Benoit Marty 6a61e639e0 SDK: Replace usage of `System.currentTimeMillis()` by a `Clock` interface (#4562)
Sometimes move to UUID or Random numbers instead.
2022-05-03 15:02:34 +02:00
Benoit Marty 40e26900b0 Create a Clock SDK side (#4562) 2022-05-03 15:02:34 +02:00
Adam Brown c09a93c171 fixes crash when accepting calls
- the event insert logic is designed to be single threaded however the scope will allow coroutine continuation which leads to unintended multiple thread access for processing and post processing
- the fix is to convert the launching to a flow which will sequentially process the launch logic on the single threaded scope
2022-05-03 12:26:13 +01:00
Maxime NATUREL a971b19f5c Removing location info from log 2022-05-02 15:06:13 +02:00
Benoit Marty 672023e94b This is not necessary to map the EventId, it does not bring any new information. 2022-05-02 15:01:02 +02:00
Maxime NATUREL 1720dc1fac Removing non necessary fields when mapping from DB model 2022-05-02 14:23:24 +02:00
Maxime NATUREL 3201308125 Renaming other timestamps with shorter names 2022-05-02 14:05:05 +02:00
Maxime NATUREL 11ebab094b Fixing aggregation and adding debug logs 2022-05-02 12:24:30 +02:00
Maxime NATUREL 0fc2352c07 Adding docs to describe message contents 2022-05-02 11:21:41 +02:00
Maxime NATUREL a27569770b Renaming timestamp fields 2022-05-02 11:10:36 +02:00
SpiritCroc 099bf5a016 Fix stuck timeline for new messages
Change-Id: Id560898844438d88194a7211cac6d4db9853bceb
2022-04-29 15:30:14 +02:00
SpiritCroc afe9c47086 Do not link in pagination direction for events at start of chunk
If we link chunks in pagination direction, and discard all events after
that, we assume that we reached a point in the chunk that is already
covered by a different chunk.
If we however haven't seen any new events in that chunk yet, chances are
this is the wrong direction we are linking. So in this case, better just
skip related events and continue processing later events - making sure
we don't lose new events and don't link in the wrong direction.

Note we could also enforce links into the opposite direction in this case.
Since in the cases I observed so far, such link already existed, so I
think this is probably not necessary.

Change-Id: Ia4d2fd87188b9757ed68416e883c3fb489cdfa6e
2022-04-29 15:29:36 +02:00
SpiritCroc bda09aa03f Do not delete events from the last forward chunk
We get end up with missing messages by the combination of
- deleting the last forward chunk when receiving a new one
- not adding events to a chunk that are already found in another chunk

Accordingly, when using chunk tokens to load more messages, those
messages that were not added to a chunk due to a /sync chunk will get
lost. More thorough steps to reproduce:

- Receive e.g. 30 new messages while offline
- Use /sync in the room overview, this will fetch the latest 10 events
- Open a chat in the past before the latest unread messages
- Scroll down a little, in order to fill the message gap and load all
  unread messages
- Close the chat
- Receive another e.g. 60 messages while offline
- Re-open the chat at some time in the past, before the latest 70
  messages
  => messages from the old /sync chunk will be missing

Change-Id: Ia3f2d2715a3edfd0b3fe5c3d48a02ade4ea49c4d
2022-04-29 15:29:03 +02:00
Maxime NATUREL e82e79d7e2 Fixing code quality issues 2022-04-29 14:21:44 +02:00
Maxime NATUREL e8556ec830 Renaming aggregated summary model 2022-04-29 14:17:35 +02:00
Maxime NATUREL 1db0e71796 Moving beacon info structure into message package 2022-04-29 14:01:01 +02:00
Maxime NATUREL 444d2c6491 Renaming message contents 2022-04-29 13:59:47 +02:00
Maxime NATUREL 3460df7ac8 Rename isLive field to isActive 2022-04-29 13:47:12 +02:00
Maxime NATUREL f9220e4185 Adding helper method to avoid adding comment 2022-04-29 13:37:14 +02:00
Maxime NATUREL 61b1e84e61 Making eventId as primary key 2022-04-29 13:10:37 +02:00
Benoit Marty cbc29d0699
Merge pull request #5872 from vector-im/feature/bca/crypto_olm_faster_decrypt
olm try to decrypt with recent session first
2022-04-29 11:49:22 +02:00
Valere 50a4d2ba0a olm try to decrypt with recent session first 2022-04-29 11:01:45 +02:00
Valere a1e980d103 fix doing password stretching on main thread 2022-04-29 10:41:14 +02:00
Maxime NATUREL a2aafb9b6b Fixing code quality issues 2022-04-28 17:16:13 +02:00
Maxime NATUREL 4f1596d105 Removing TODOs 2022-04-28 17:03:17 +02:00
Maxime NATUREL 779cbc8c08 Realm migration 2022-04-28 16:43:47 +02:00
Maxime NATUREL 6e68a5187e Fixing wrong timestamp unit for location event 2022-04-28 14:51:02 +02:00
Maxime NATUREL 65724fbdd4 Mapping between entity/model 2022-04-28 14:36:23 +02:00
Maxime NATUREL f283a95c03 Implementing aggregation processor methods 2022-04-28 14:24:17 +02:00
Maxime NATUREL b788a82d0d Adding live summary entity into annotation entity 2022-04-28 12:10:39 +02:00
Maxime NATUREL 25ca50c7bd Fix final members in Entity 2022-04-28 11:58:49 +02:00
Benoit Marty 3bcfd7c103 Fix tests 2022-04-28 11:03:46 +02:00
Benoit Marty 2ce92f0d41 Fix wrong copyright 2022-04-28 10:50:47 +02:00
Benoit Marty f4b7161db2 Room now exposes methods to get the various Services 2022-04-28 09:37:58 +02:00
Maxime NATUREL f04b67ba29 Adding missing internal qualifier 2022-04-27 18:01:10 +02:00
Benoit Marty a27ecac598 Update the doc 2022-04-27 17:30:34 +02:00