guilds, lifecycle gateway disconnector, base channels

This commit is contained in:
Cilly Leang 2026-03-21 18:53:24 +11:00
parent fcdd237809
commit 0781606a00
Signed by: cilly
GPG key ID: 6500251E087653C9
14 changed files with 292 additions and 6 deletions

View file

@ -11,13 +11,17 @@ import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.ViewModel
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.viewModelScope
import co.touchlab.kermit.Logger
import kotlinx.coroutines.launch
@ -34,6 +38,32 @@ fun Sample(
onRequestLogout: () -> Unit,
) {
val viewModel: SampleViewModel = koinViewModel()
val li = LocalLifecycleOwner.current
DisposableEffect(li) {
val observer = LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_PAUSE -> {
viewModel.disconnect()
}
Lifecycle.Event.ON_RESUME -> {
viewModel.connect()
}
Lifecycle.Event.ON_DESTROY -> {
viewModel.disconnect()
}
else -> {}
}
}
li.lifecycle.addObserver(observer)
onDispose {
li.lifecycle.removeObserver(observer)
}
}
var showContent by remember { mutableStateOf(false) }
Column(
modifier = Modifier