davidliu

Add node failure as a debug menu option

... ... @@ -27,7 +27,6 @@ import io.livekit.android.sample.service.ForegroundService
import io.livekit.android.util.flow
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.launch
import livekit.LivekitRtc
class CallViewModel(
val url: String,
... ... @@ -280,11 +279,11 @@ class CallViewModel(
// Debug functions
fun simulateMigration() {
room.sendSimulateScenario(
LivekitRtc.SimulateScenario.newBuilder()
.setMigration(true)
.build()
)
room.sendSimulateScenario(Room.SimulateScenario.MIGRATION)
}
fun simulateNodeFailure() {
room.sendSimulateScenario(Room.SimulateScenario.NODE_FAILURE)
}
fun reconnect() {
... ...
... ... @@ -86,6 +86,7 @@ class CallActivity : AppCompatActivity() {
onExitClick = { finish() },
onSendMessage = { viewModel.sendData(it) },
onSimulateMigration = { viewModel.simulateMigration() },
onSimulateNodeFailure = { viewModel.simulateNodeFailure() },
fullReconnect = { viewModel.reconnect() },
)
}
... ... @@ -136,6 +137,7 @@ class CallActivity : AppCompatActivity() {
onSnackbarDismiss: () -> Unit = {},
onSendMessage: (String) -> Unit = {},
onSimulateMigration: () -> Unit = {},
onSimulateNodeFailure: () -> Unit = {},
fullReconnect: () -> Unit = {},
) {
AppTheme(darkTheme = true) {
... ... @@ -403,6 +405,7 @@ class CallActivity : AppCompatActivity() {
DebugMenuDialog(
onDismissRequest = { showDebugDialog = false },
simulateMigration = { onSimulateMigration() },
simulateNodeFailure = { onSimulateNodeFailure() },
fullReconnect = { fullReconnect() },
)
}
... ...
... ... @@ -19,6 +19,7 @@ fun DebugMenuDialog(
onDismissRequest: () -> Unit = {},
simulateMigration: () -> Unit = {},
fullReconnect: () -> Unit = {},
simulateNodeFailure: () -> Unit = {},
) {
Dialog(onDismissRequest = onDismissRequest) {
Column(
... ... @@ -38,6 +39,12 @@ fun DebugMenuDialog(
Text("Simulate Migration")
}
Button(onClick = {
simulateNodeFailure()
onDismissRequest()
}) {
Text("Simulate Node Failure")
}
Button(onClick = {
fullReconnect()
onDismissRequest()
}) {
... ...