SDK 0.1.49: notification decryption is now fully handled by the Rust SDK. (#1231)
* Revert "Ensure the sync is started when receiving a Push, to ensure that the encryption loop is running."
This reverts commit 82f6f358a7.
* Integrate SDK from https://github.com/matrix-org/matrix-rust-sdk/pull/2505
* Enable retryDecryption() on the NotificationClient.
* SDK 0.1.49 - Encryption Sync is enabled by default now, and retryDecryption is the default too.
* Remove feature flag `UseEncryptionSync`
* Fix sample project build
* Exclude `DeveloperSettingsPresenter` from kover verification.
* Add changelog
---------
Co-authored-by: Jorge Martín <jorgem@element.io>
This commit is contained in:
parent
26573f4892
commit
128c4a7b09
17 changed files with 35 additions and 104 deletions
|
|
@ -26,7 +26,6 @@ import io.element.android.libraries.matrix.api.core.UserId
|
|||
import io.element.android.libraries.matrix.api.notification.NotificationContent
|
||||
import io.element.android.libraries.matrix.api.notification.NotificationData
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipState
|
||||
import io.element.android.libraries.matrix.api.sync.StartSyncReason
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType
|
||||
|
|
@ -45,7 +44,6 @@ import io.element.android.libraries.push.impl.notifications.model.NotifiableMess
|
|||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.toolbox.api.strings.StringProvider
|
||||
import io.element.android.services.toolbox.api.systemclock.SystemClock
|
||||
import kotlinx.coroutines.delay
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
|
|
@ -67,14 +65,6 @@ class NotifiableEventResolver @Inject constructor(
|
|||
// Restore session
|
||||
val client = matrixClientProvider.getOrRestore(sessionId).getOrNull() ?: return null
|
||||
val notificationService = client.notificationService()
|
||||
|
||||
// Restart the sync service to ensure that the crypto sync handle the toDevice Events.
|
||||
client.syncService().startSync(StartSyncReason.Notification(roomId, eventId))
|
||||
// Wait for toDevice Event to be processed
|
||||
// FIXME This delay can be removed when the Rust SDK will handle internal retry to get
|
||||
// clear notification content.
|
||||
delay(300)
|
||||
|
||||
val notificationData = notificationService.getNotification(
|
||||
userId = sessionId,
|
||||
roomId = roomId,
|
||||
|
|
@ -83,8 +73,6 @@ class NotifiableEventResolver @Inject constructor(
|
|||
Timber.tag(loggerTag.value).e(it, "Unable to resolve event: $eventId.")
|
||||
}.getOrNull()
|
||||
|
||||
client.syncService().stopSync(StartSyncReason.Notification(roomId, eventId))
|
||||
|
||||
// TODO this notificationData is not always valid at the moment, sometimes the Rust SDK can't fetch the matching event
|
||||
return notificationData?.asNotifiableEvent(sessionId)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue