Use natigateup() instead of popBackStack() on contact screens
This commit is contained in:
@ -74,7 +74,7 @@ private fun ContactScreen(ctx: Context, viewModel: ViewModel, navController: Nav
|
||||
val contact = Contact.androidContact(name)
|
||||
if (contact == null) {
|
||||
Log.e(TAG, "No Android contact found with name $name")
|
||||
navController.popBackStack()
|
||||
navController.navigateUp()
|
||||
}
|
||||
Scaffold(
|
||||
modifier = Modifier.fillMaxSize().imePadding(),
|
||||
@ -99,12 +99,7 @@ private fun ContactScreen(ctx: Context, viewModel: ViewModel, navController: Nav
|
||||
@Composable
|
||||
private fun TopAppBar(title: String, navController: NavController) {
|
||||
TopAppBar(
|
||||
title = {
|
||||
Text(
|
||||
text = title,
|
||||
fontWeight = FontWeight.Bold
|
||||
)
|
||||
},
|
||||
title = { Text(text = title, fontWeight = FontWeight.Bold) },
|
||||
colors = TopAppBarDefaults.topAppBarColors(
|
||||
containerColor = MaterialTheme.colorScheme.primary,
|
||||
navigationIconContentColor = MaterialTheme.colorScheme.onPrimary,
|
||||
@ -112,7 +107,7 @@ private fun TopAppBar(title: String, navController: NavController) {
|
||||
),
|
||||
windowInsets = WindowInsets(0, 0, 0, 0),
|
||||
navigationIcon = {
|
||||
IconButton(onClick = { navController.popBackStack() }) {
|
||||
IconButton(onClick = { navController.navigateUp() }) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
contentDescription = "Back",
|
||||
|
||||
@ -52,7 +52,6 @@ import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
@ -125,7 +124,6 @@ private fun ContactScreen(
|
||||
) {
|
||||
|
||||
val ctx = LocalContext.current
|
||||
var clicks by remember { mutableIntStateOf(0) }
|
||||
var screenState by remember { mutableStateOf(ScreenState()) }
|
||||
|
||||
val title = if (screenState.new)
|
||||
@ -171,31 +169,23 @@ private fun ContactScreen(
|
||||
}
|
||||
|
||||
val onBack: () -> Unit = {
|
||||
clicks++
|
||||
if (clicks == 1) {
|
||||
screenState.tmpAvatarFile?.let { tempFile ->
|
||||
if (tempFile.exists()) {
|
||||
Log.d(TAG, "Back pressed, deleting temp avatar: ${tempFile.name}")
|
||||
Utils.deleteFile(tempFile)
|
||||
}
|
||||
screenState.tmpAvatarFile?.let { tempFile ->
|
||||
if (tempFile.exists()) {
|
||||
Log.d(TAG, "Back pressed, deleting temp avatar: ${tempFile.name}")
|
||||
Utils.deleteFile(tempFile)
|
||||
}
|
||||
navController.popBackStack()
|
||||
}
|
||||
navController.navigateUp()
|
||||
}
|
||||
|
||||
val onCheck: () -> Unit = {
|
||||
clicks++
|
||||
if (clicks == 1) {
|
||||
val result = checkOnClick(
|
||||
ctx = ctx,
|
||||
currentState = screenState,
|
||||
uriOrNameArg = uriOrNameArg,
|
||||
)
|
||||
if (result)
|
||||
navController.popBackStack()
|
||||
else
|
||||
clicks = 0
|
||||
}
|
||||
val result = checkOnClick(
|
||||
ctx = ctx,
|
||||
currentState = screenState,
|
||||
uriOrNameArg = uriOrNameArg,
|
||||
)
|
||||
if (result)
|
||||
navController.navigateUp()
|
||||
}
|
||||
|
||||
BackHandler(enabled = true) {
|
||||
|
||||
@ -9,7 +9,6 @@ import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.offset
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
@ -17,6 +16,7 @@ import androidx.compose.foundation.layout.asPaddingValues
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.imePadding
|
||||
import androidx.compose.foundation.layout.offset
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.statusBars
|
||||
@ -38,11 +38,8 @@ import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
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.compose.ui.draw.clip
|
||||
@ -80,7 +77,6 @@ fun NavGraphBuilder.contactsScreenRoute(
|
||||
private fun ContactsScreen(navController: NavController, viewModel: ViewModel) {
|
||||
|
||||
val ctx = LocalContext.current
|
||||
var navigationClicks by remember { mutableIntStateOf(0) }
|
||||
|
||||
Scaffold(
|
||||
modifier = Modifier.fillMaxSize().imePadding(),
|
||||
@ -108,11 +104,7 @@ private fun ContactsScreen(navController: NavController, viewModel: ViewModel) {
|
||||
),
|
||||
navigationIcon = {
|
||||
IconButton(
|
||||
onClick = {
|
||||
navigationClicks++
|
||||
if (navigationClicks == 1)
|
||||
navController.popBackStack()
|
||||
}
|
||||
onClick = { navController.navigateUp() }
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||
|
||||
Reference in New Issue
Block a user