Add banner for optional migration to simplified sliding sync (#3429)

* Add banner for optional migration to native sliding sync

- Add `MatrixClient.isNativeSlidingSyncSupported()` and `MatrixClient.isUsingNativeSlidingSync` to check whether the home server supports native sliding sync and we're already using it.
- Add `NativeSlidingSyncMigrationBanner` composable to the `RoomList` screen when the home server supports native sliding sync but the current session is not using it.
- Add an extra logout successful action to the logout flow, create `EnableNativeSlidingSyncUseCase` so it can be used there.

* Update screenshots

* Make sure the sliding sync migration banner has lower priority than the encryption setup ones

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
Jorge Martin Espinosa 2024-09-09 18:13:19 +02:00 committed by GitHub
parent 7549d5f475
commit 67e262fdc8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 283 additions and 12 deletions

View file

@ -56,6 +56,7 @@ dependencies {
implementation(projects.features.roomlist.impl)
implementation(projects.features.leaveroom.impl)
implementation(projects.features.login.impl)
implementation(projects.features.logout.impl)
implementation(projects.features.networkmonitor.impl)
implementation(projects.services.toolbox.impl)
implementation(projects.libraries.featureflag.impl)

View file

@ -14,6 +14,7 @@ import androidx.compose.ui.Modifier
import io.element.android.features.invite.impl.response.AcceptDeclineInvitePresenter
import io.element.android.features.invite.impl.response.AcceptDeclineInviteView
import io.element.android.features.leaveroom.impl.DefaultLeaveRoomPresenter
import io.element.android.features.logout.impl.direct.DefaultDirectLogoutPresenter
import io.element.android.features.networkmonitor.impl.DefaultNetworkMonitor
import io.element.android.features.roomlist.impl.RoomListPresenter
import io.element.android.features.roomlist.impl.RoomListView
@ -144,6 +145,7 @@ class RoomListScreen(
}
},
notificationCleaner = FakeNotificationCleaner(),
logoutPresenter = DefaultDirectLogoutPresenter(matrixClient, encryptionService),
)
@Composable
@ -172,7 +174,8 @@ class RoomListScreen(
modifier = modifier,
acceptDeclineInviteView = {
AcceptDeclineInviteView(state = state.acceptDeclineInviteState, onAcceptInvite = {}, onDeclineInvite = {})
}
},
onMigrateToNativeSlidingSyncClick = {},
)
DisposableEffect(Unit) {