yayan 1 year ago
parent
commit
6c14954af8

+ 15 - 15
app/src/main/java/io/nexilis/alpha/ui/components/BubleChat.kt

@@ -4,8 +4,8 @@ import android.text.format.DateUtils
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.background
 import androidx.compose.foundation.background
 import androidx.compose.foundation.combinedClickable
 import androidx.compose.foundation.combinedClickable
+import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.ColumnScope
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.Spacer
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.padding
@@ -39,23 +39,23 @@ fun RightBubbleChat(
     modifier: Modifier,
     modifier: Modifier,
     message: Message,
     message: Message,
     messageStatusModel: MessageStatusViewModel = hiltViewModel(),
     messageStatusModel: MessageStatusViewModel = hiltViewModel(),
-    content: @Composable ColumnScope.() -> Unit
+    content: @Composable () -> Unit
 ) {
 ) {
     Column(
     Column(
         modifier = modifier
         modifier = modifier
     ) {
     ) {
-        Column(
+        Box(
             modifier = Modifier
             modifier = Modifier
                 .align(Alignment.End)
                 .align(Alignment.End)
                 .graphicsLayer {
                 .graphicsLayer {
-                    shape = RoundedCornerShape(16.dp)
+                    shape = RoundedCornerShape(12.dp)
                     clip = true
                     clip = true
                 }
                 }
                 .combinedClickable(onLongClick = {}, onClick = {})
                 .combinedClickable(onLongClick = {}, onClick = {})
-                .background(color = MaterialTheme.colorScheme.primaryContainer)
-                .padding(8.dp),
-            content = content
-        )
+                .background(color = MaterialTheme.colorScheme.primaryContainer),
+        ) {
+            content()
+        }
         Row(
         Row(
             modifier = Modifier
             modifier = Modifier
                 .padding(3.dp)
                 .padding(3.dp)
@@ -95,23 +95,23 @@ fun RightBubbleChat(
 fun LeftBubbleChat(
 fun LeftBubbleChat(
     modifier: Modifier,
     modifier: Modifier,
     message: Message,
     message: Message,
-    content: @Composable ColumnScope.() -> Unit
+    content: @Composable () -> Unit
 ) {
 ) {
     Column(
     Column(
         modifier = modifier
         modifier = modifier
     ) {
     ) {
-        Column(
+        Box(
             modifier = Modifier
             modifier = Modifier
                 .align(Alignment.Start)
                 .align(Alignment.Start)
                 .graphicsLayer {
                 .graphicsLayer {
-                    shape = RoundedCornerShape(16.dp)
+                    shape = RoundedCornerShape(12.dp)
                     clip = true
                     clip = true
                 }
                 }
                 .combinedClickable(onLongClick = {}, onClick = {})
                 .combinedClickable(onLongClick = {}, onClick = {})
-                .background(color = MaterialTheme.colorScheme.surface)
-                .padding(8.dp),
-            content = content
-        )
+                .background(color = MaterialTheme.colorScheme.surface),
+        ) {
+            content()
+        }
         Row(
         Row(
             modifier = Modifier
             modifier = Modifier
                 .padding(3.dp)
                 .padding(3.dp)

+ 27 - 18
app/src/main/java/io/nexilis/alpha/ui/components/ContentChat.kt

@@ -1,12 +1,15 @@
 package io.nexilis.alpha.ui.components
 package io.nexilis.alpha.ui.components
 
 
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Text
 import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.graphicsLayer
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.dp
@@ -14,33 +17,39 @@ import androidx.core.content.FileProvider
 import coil.compose.rememberAsyncImagePainter
 import coil.compose.rememberAsyncImagePainter
 import io.nexilis.alpha.BuildConfig
 import io.nexilis.alpha.BuildConfig
 import io.nexilis.service.data.entities.Message
 import io.nexilis.service.data.entities.Message
-import java.util.Objects
 
 
 @Composable
 @Composable
 fun ContentChat(message: Message) {
 fun ContentChat(message: Message) {
     val context = LocalContext.current
     val context = LocalContext.current
     if (message.image_id.isNotEmpty()) {
     if (message.image_id.isNotEmpty()) {
-        val file = context.getFileStreamPath(message.image_id)
-        val uri = FileProvider.getUriForFile(
-            Objects.requireNonNull(context),
-            BuildConfig.APPLICATION_ID + ".provider", file
-        )
-        Image(
-            painter = rememberAsyncImagePainter(uri),
-            contentDescription = "",
-            modifier = Modifier
-                .padding(8.dp)
-                .size(248.dp),
-            contentScale = ContentScale.Crop
-        )
-        if (message.message_text.isNotEmpty()) {
-            Text(
-                text = message.message_text,
-                style = MaterialTheme.typography.bodyMedium,
+        Column(modifier = Modifier.padding(3.dp)) {
+            val file = context.getFileStreamPath(message.image_id)
+            val uri = FileProvider.getUriForFile(
+                context,
+                BuildConfig.APPLICATION_ID + ".provider", file
+            )
+            Image(
+                painter = rememberAsyncImagePainter(uri),
+                contentDescription = "",
+                modifier = Modifier
+                    .size(248.dp)
+                    .graphicsLayer {
+                        shape = RoundedCornerShape(12.dp)
+                        clip = true
+                    },
+                contentScale = ContentScale.Crop
             )
             )
+            if (message.message_text.isNotEmpty()) {
+                Text(
+                    modifier = Modifier.padding(8.dp),
+                    text = message.message_text,
+                    style = MaterialTheme.typography.bodyMedium,
+                )
+            }
         }
         }
     } else {
     } else {
         Text(
         Text(
+            modifier = Modifier.padding(8.dp),
             text = message.message_text,
             text = message.message_text,
             style = MaterialTheme.typography.bodyMedium,
             style = MaterialTheme.typography.bodyMedium,
         )
         )

+ 1 - 2
app/src/main/java/io/nexilis/alpha/ui/main/Profile.kt

@@ -29,7 +29,6 @@ import io.nexilis.alpha.BuildConfig
 import io.nexilis.service.core.createImageFile
 import io.nexilis.service.core.createImageFile
 import io.nexilis.service.data.entities.Buddy
 import io.nexilis.service.data.entities.Buddy
 import io.nexilis.service.data.viewmodels.BuddyViewModel
 import io.nexilis.service.data.viewmodels.BuddyViewModel
-import java.util.Objects
 
 
 @Composable
 @Composable
 fun Profile(contentPadding: PaddingValues = PaddingValues(0.dp), me: Buddy) {
 fun Profile(contentPadding: PaddingValues = PaddingValues(0.dp), me: Buddy) {
@@ -37,7 +36,7 @@ fun Profile(contentPadding: PaddingValues = PaddingValues(0.dp), me: Buddy) {
     val context = LocalContext.current
     val context = LocalContext.current
     val file = context.createImageFile()
     val file = context.createImageFile()
     val uri = FileProvider.getUriForFile(
     val uri = FileProvider.getUriForFile(
-        Objects.requireNonNull(context),
+        context,
         BuildConfig.APPLICATION_ID + ".provider", file
         BuildConfig.APPLICATION_ID + ".provider", file
     )
     )
     var imageUri by remember { mutableStateOf<Uri>(Uri.EMPTY) }
     var imageUri by remember { mutableStateOf<Uri>(Uri.EMPTY) }