Prevent multiple clicks of navigation and check icons on baresip contacts screen
This commit is contained in:
@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user