feat: auto reconnect (3 attempts)

This commit is contained in:
Infi 2023-02-18 14:59:35 +01:00
parent 2d7cc2077a
commit 14a4a4fec0
1 changed files with 20 additions and 0 deletions

View File

@ -12,6 +12,9 @@ import androidx.compose.material.icons.filled.Warning
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
@ -60,6 +63,23 @@ fun DisconnectedNotice(
state: DisconnectionState, state: DisconnectionState,
onReconnect: () -> Unit onReconnect: () -> Unit
) { ) {
val retries = remember { mutableStateOf(0) }
LaunchedEffect(state) {
when (state) {
DisconnectionState.Disconnected -> {
if (retries.value < 3) {
onReconnect()
retries.value++
}
}
DisconnectionState.Connected -> {
retries.value = 0
}
else -> Unit
}
}
when (state) { when (state) {
DisconnectionState.Disconnected -> DisconnectedNoticeBase( DisconnectionState.Disconnected -> DisconnectedNoticeBase(
background = Color(0xfffe4654), background = Color(0xfffe4654),