Added BackHandler to some screens

This commit is contained in:
Juha Heinanen
2025-05-27 16:47:56 +03:00
parent 3d456ddcb0
commit 1a428e7d61
3 changed files with 34 additions and 9 deletions

View File

@ -11,6 +11,7 @@ import android.net.Uri
import android.provider.ContactsContract
import android.provider.ContactsContract.CommonDataKinds
import android.provider.ContactsContract.Contacts.Data
import androidx.activity.compose.BackHandler
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.Canvas
@ -187,6 +188,10 @@ private fun ContactScreen(
navController.popBackStack()
}
BackHandler(enabled = true) {
onBack()
}
Scaffold(
modifier = Modifier
.fillMaxSize()

View File

@ -3,6 +3,7 @@ package com.tutpro.baresip
import android.content.Context
import android.content.Intent
import android.graphics.BitmapFactory
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
@ -89,6 +90,11 @@ private fun CallsScreen(navController: NavController, viewModel: ViewModel, aor:
isHistoryLoaded = true
}
BackHandler(enabled = true) {
account.missedCalls = false
navController.popBackStack()
}
Scaffold(
modifier = Modifier.fillMaxSize().imePadding(),
containerColor = LocalCustomColors.current.background,
@ -153,8 +159,8 @@ private fun TopAppBar(navController: NavController, account: Account, callHistor
navigationIcon = {
IconButton(
onClick = {
navController.popBackStack()
account.missedCalls = false
navController.popBackStack()
}
) {
Icon(

View File

@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent
import android.text.format.DateUtils.isToday
import android.widget.Toast
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
@ -166,8 +167,14 @@ private fun ChatScreen(
}
}
BackHandler(enabled = true) {
backAction(navController, account, peerUri)
}
Scaffold(
modifier = Modifier.fillMaxSize().imePadding(),
modifier = Modifier
.fillMaxSize()
.imePadding(),
containerColor = LocalCustomColors.current.background,
topBar = {
Column(modifier = Modifier
@ -210,11 +217,7 @@ private fun TopAppBar(
containerColor = LocalCustomColors.current.primary
),
navigationIcon = {
IconButton(onClick = {
Message.updateMessagesFromPearRead(aor, peerUri)
account.unreadMessages = Message.unreadMessages(aor)
navController.popBackStack()
}) {
IconButton(onClick = { backAction(navController, account, peerUri) }) {
Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = "Back",
@ -262,7 +265,9 @@ private fun ChatContent(
onMessageDeleted: () -> Unit
) {
Column(
modifier = Modifier.fillMaxWidth().padding(contentPadding),
modifier = Modifier
.fillMaxWidth()
.padding(contentPadding),
verticalArrangement = Arrangement.Bottom
) {
Account(ctx, account)
@ -331,7 +336,9 @@ private fun Messages(
}
LazyColumn(
modifier = Modifier.fillMaxWidth().padding(start = 16.dp, end = 2.dp)
modifier = Modifier
.fillMaxWidth()
.padding(start = 16.dp, end = 2.dp)
.verticalScrollbar(
state = lazyListState,
width = 4.dp,
@ -572,6 +579,13 @@ private fun NewMessage(
}
}
private fun backAction(navController: NavController, account: Account, peerUri: String) {
val aor = account.aor
Message.updateMessagesFromPearRead(aor, peerUri)
account.unreadMessages = Message.unreadMessages(aor)
navController.popBackStack()
}
private fun loadPeerMessages(aor: String, peerUri: String): List<Message> {
val res = mutableListOf<Message>()
for (m in BaresipService.messages.reversed())