|
@@ -26,6 +26,8 @@ import coil.request.ImageRequest
|
|
|
import io.nexilis.alpha.ui.screen.Screen
|
|
|
import io.nexilis.alpha.ui.viewmodel.MainViewModel
|
|
|
import io.nexilis.service.data.viewmodels.BuddyViewModel
|
|
|
+import io.nexilis.service.data.viewmodels.MessageSummaryViewModel
|
|
|
+import io.nexilis.service.data.viewmodels.MessageViewModel
|
|
|
|
|
|
@OptIn(ExperimentalMaterial3Api::class)
|
|
|
@Composable
|
|
@@ -37,23 +39,27 @@ fun Chats(
|
|
|
LaunchedEffect(Unit) {
|
|
|
mainViewModel.setTitle("Chats")
|
|
|
}
|
|
|
- val viewModel: BuddyViewModel = hiltViewModel()
|
|
|
- val all by viewModel.all.observeAsState()
|
|
|
+ val messageSummaryViewModel: MessageSummaryViewModel = hiltViewModel()
|
|
|
+ val chats by messageSummaryViewModel.all.observeAsState()
|
|
|
+ val messageViewModel: MessageViewModel = hiltViewModel()
|
|
|
+ val buddyViewModel: BuddyViewModel = hiltViewModel()
|
|
|
var selectedItem by remember { mutableStateOf(0) }
|
|
|
LazyColumn(
|
|
|
contentPadding = contentPadding,
|
|
|
) {
|
|
|
items(
|
|
|
- count = all?.size ?: 0,
|
|
|
+ count = chats?.size ?: 0,
|
|
|
key = {
|
|
|
- all?.get(it)?.f_pin ?: 0
|
|
|
+ chats?.get(it)?.l_pin ?: 0
|
|
|
}
|
|
|
) { item ->
|
|
|
- val buddy = all?.get(item)
|
|
|
+ val chat = chats?.get(item)
|
|
|
+ val message by messageViewModel.get(chat?.message_id ?: "").observeAsState()
|
|
|
+ val buddy by buddyViewModel.getBuddy(chat?.l_pin ?: "").observeAsState()
|
|
|
ListItem(
|
|
|
modifier = Modifier.selectable(selected = selectedItem == item, onClick = {
|
|
|
selectedItem = item
|
|
|
- navController.navigate(Screen.Chat.route + "/${buddy?.f_pin}") {
|
|
|
+ navController.navigate(Screen.Chat.route + "/${chat?.l_pin}") {
|
|
|
launchSingleTop = true
|
|
|
restoreState = true
|
|
|
}
|
|
@@ -66,7 +72,7 @@ fun Chats(
|
|
|
},
|
|
|
supportingText = {
|
|
|
Text(
|
|
|
- buddy?.image_id ?: "Secondary text",
|
|
|
+ message?.message_text ?: "Secondary text",
|
|
|
style = MaterialTheme.typography.bodySmall
|
|
|
)
|
|
|
},
|
|
@@ -74,7 +80,7 @@ fun Chats(
|
|
|
AsyncImage(
|
|
|
model = ImageRequest.Builder(LocalContext.current)
|
|
|
.data("https://digixplatform.com/filepalio/image/${buddy?.image_id}")
|
|
|
- .addHeader("Cookie" , "PHPSESSID=123;MOBILE=123")
|
|
|
+ .addHeader("Cookie", "PHPSESSID=123;MOBILE=123")
|
|
|
.crossfade(true)
|
|
|
.build(),
|
|
|
placeholder = rememberVectorPainter(image = Icons.Default.Person),
|