feat(core): gateway connection and identify
This commit is contained in:
parent
3a28fe17f8
commit
cd50f75c10
13 changed files with 418 additions and 40 deletions
|
|
@ -18,11 +18,14 @@ import androidx.compose.runtime.setValue
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.ContributesIntoMap
|
||||
import dev.zacsweers.metro.Inject
|
||||
import dev.zacsweers.metrox.viewmodel.ViewModelKey
|
||||
import dev.zacsweers.metrox.viewmodel.metroViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
import moe.lava.neon.core.api.gateway.Gateway
|
||||
import moe.lava.neon.core.repository.AuthRepository
|
||||
import moe.lava.neon.resources.Res
|
||||
import moe.lava.neon.resources.compose_multiplatform
|
||||
|
|
@ -54,6 +57,16 @@ fun Sample(onRequestLogout: () -> Unit) {
|
|||
Text("Passed token: ${viewModel.token?.slice(0..10)}...")
|
||||
}
|
||||
}
|
||||
Button(onClick = {
|
||||
viewModel.connect()
|
||||
}) {
|
||||
Text("Connect!")
|
||||
}
|
||||
Button(onClick = {
|
||||
viewModel.disconnect()
|
||||
}) {
|
||||
Text("Disconnect!")
|
||||
}
|
||||
Button(onClick = {
|
||||
viewModel.logout()
|
||||
onRequestLogout()
|
||||
|
|
@ -67,10 +80,21 @@ fun Sample(onRequestLogout: () -> Unit) {
|
|||
@ViewModelKey(SampleViewModel::class)
|
||||
@ContributesIntoMap(AppScope::class)
|
||||
class SampleViewModel(
|
||||
private val auth: AuthRepository
|
||||
private val auth: AuthRepository,
|
||||
private val gateway: Gateway,
|
||||
) : ViewModel() {
|
||||
val token get() = auth.token
|
||||
|
||||
fun connect() {
|
||||
viewModelScope.launch {
|
||||
gateway.connect()
|
||||
}
|
||||
}
|
||||
fun disconnect() {
|
||||
viewModelScope.launch {
|
||||
gateway.disconnect()
|
||||
}
|
||||
}
|
||||
fun logout() {
|
||||
auth.logout()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue