Prevent multiple clicks of navigation and check icons on baresip contacts screen

This commit is contained in:
Juha Heinanen
2025-12-29 07:56:46 +02:00
parent f2e7506073
commit 412a67a44f

View File

@ -52,6 +52,7 @@ import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
@ -124,7 +125,7 @@ private fun ContactScreen(
) { ) {
val ctx = LocalContext.current val ctx = LocalContext.current
var clicks by remember { mutableIntStateOf(0) }
var screenState by remember { mutableStateOf(ScreenState()) } var screenState by remember { mutableStateOf(ScreenState()) }
val title = if (screenState.new) val title = if (screenState.new)
@ -170,23 +171,31 @@ private fun ContactScreen(
} }
val onBack: () -> Unit = { val onBack: () -> Unit = {
screenState.tmpAvatarFile?.let { tempFile -> clicks++
if (tempFile.exists()) { if (clicks == 1) {
Log.d(TAG, "Back pressed, deleting temp avatar: ${tempFile.name}") screenState.tmpAvatarFile?.let { tempFile ->
Utils.deleteFile(tempFile) if (tempFile.exists()) {
Log.d(TAG, "Back pressed, deleting temp avatar: ${tempFile.name}")
Utils.deleteFile(tempFile)
}
} }
navController.popBackStack()
} }
navController.popBackStack()
} }
val onCheck: () -> Unit = { val onCheck: () -> Unit = {
val result = checkOnClick( clicks++
ctx = ctx, if (clicks == 1) {
currentState = screenState, val result = checkOnClick(
uriOrNameArg = uriOrNameArg, ctx = ctx,
) currentState = screenState,
if (result) uriOrNameArg = uriOrNameArg,
navController.popBackStack() )
if (result)
navController.popBackStack()
else
clicks = 0
}
} }
BackHandler(enabled = true) { BackHandler(enabled = true) {