Added BackHandler to some screens
This commit is contained in:
@@ -11,6 +11,7 @@ import android.net.Uri
|
|||||||
import android.provider.ContactsContract
|
import android.provider.ContactsContract
|
||||||
import android.provider.ContactsContract.CommonDataKinds
|
import android.provider.ContactsContract.CommonDataKinds
|
||||||
import android.provider.ContactsContract.Contacts.Data
|
import android.provider.ContactsContract.Contacts.Data
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.activity.compose.rememberLauncherForActivityResult
|
import androidx.activity.compose.rememberLauncherForActivityResult
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.compose.foundation.Canvas
|
import androidx.compose.foundation.Canvas
|
||||||
@@ -187,6 +188,10 @@ private fun ContactScreen(
|
|||||||
navController.popBackStack()
|
navController.popBackStack()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BackHandler(enabled = true) {
|
||||||
|
onBack()
|
||||||
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.tutpro.baresip
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -89,6 +90,11 @@ private fun CallsScreen(navController: NavController, viewModel: ViewModel, aor:
|
|||||||
isHistoryLoaded = true
|
isHistoryLoaded = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BackHandler(enabled = true) {
|
||||||
|
account.missedCalls = false
|
||||||
|
navController.popBackStack()
|
||||||
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = Modifier.fillMaxSize().imePadding(),
|
modifier = Modifier.fillMaxSize().imePadding(),
|
||||||
containerColor = LocalCustomColors.current.background,
|
containerColor = LocalCustomColors.current.background,
|
||||||
@@ -153,8 +159,8 @@ private fun TopAppBar(navController: NavController, account: Account, callHistor
|
|||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(
|
IconButton(
|
||||||
onClick = {
|
onClick = {
|
||||||
navController.popBackStack()
|
|
||||||
account.missedCalls = false
|
account.missedCalls = false
|
||||||
|
navController.popBackStack()
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.text.format.DateUtils.isToday
|
import android.text.format.DateUtils.isToday
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -166,8 +167,14 @@ private fun ChatScreen(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BackHandler(enabled = true) {
|
||||||
|
backAction(navController, account, peerUri)
|
||||||
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
modifier = Modifier.fillMaxSize().imePadding(),
|
modifier = Modifier
|
||||||
|
.fillMaxSize()
|
||||||
|
.imePadding(),
|
||||||
containerColor = LocalCustomColors.current.background,
|
containerColor = LocalCustomColors.current.background,
|
||||||
topBar = {
|
topBar = {
|
||||||
Column(modifier = Modifier
|
Column(modifier = Modifier
|
||||||
@@ -210,11 +217,7 @@ private fun TopAppBar(
|
|||||||
containerColor = LocalCustomColors.current.primary
|
containerColor = LocalCustomColors.current.primary
|
||||||
),
|
),
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
IconButton(onClick = {
|
IconButton(onClick = { backAction(navController, account, peerUri) }) {
|
||||||
Message.updateMessagesFromPearRead(aor, peerUri)
|
|
||||||
account.unreadMessages = Message.unreadMessages(aor)
|
|
||||||
navController.popBackStack()
|
|
||||||
}) {
|
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
|
||||||
contentDescription = "Back",
|
contentDescription = "Back",
|
||||||
@@ -262,7 +265,9 @@ private fun ChatContent(
|
|||||||
onMessageDeleted: () -> Unit
|
onMessageDeleted: () -> Unit
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.fillMaxWidth().padding(contentPadding),
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(contentPadding),
|
||||||
verticalArrangement = Arrangement.Bottom
|
verticalArrangement = Arrangement.Bottom
|
||||||
) {
|
) {
|
||||||
Account(ctx, account)
|
Account(ctx, account)
|
||||||
@@ -331,7 +336,9 @@ private fun Messages(
|
|||||||
}
|
}
|
||||||
|
|
||||||
LazyColumn(
|
LazyColumn(
|
||||||
modifier = Modifier.fillMaxWidth().padding(start = 16.dp, end = 2.dp)
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(start = 16.dp, end = 2.dp)
|
||||||
.verticalScrollbar(
|
.verticalScrollbar(
|
||||||
state = lazyListState,
|
state = lazyListState,
|
||||||
width = 4.dp,
|
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> {
|
private fun loadPeerMessages(aor: String, peerUri: String): List<Message> {
|
||||||
val res = mutableListOf<Message>()
|
val res = mutableListOf<Message>()
|
||||||
for (m in BaresipService.messages.reversed())
|
for (m in BaresipService.messages.reversed())
|
||||||
|
|||||||
Reference in New Issue
Block a user