yayan 1 năm trước cách đây
mục cha
commit
5ab00d860a

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

@@ -5,6 +5,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi
 import androidx.compose.foundation.background
 import androidx.compose.foundation.combinedClickable
 import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
 import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.Spacer
@@ -39,7 +40,7 @@ fun RightBubbleChat(
     modifier: Modifier,
     message: Message,
     messageStatusModel: MessageStatusViewModel = hiltViewModel(),
-    content: @Composable () -> Unit
+    content: @Composable BoxScope.() -> Unit
 ) {
     Column(
         modifier = modifier
@@ -53,9 +54,8 @@ fun RightBubbleChat(
                 }
                 .combinedClickable(onLongClick = {}, onClick = {})
                 .background(color = MaterialTheme.colorScheme.primaryContainer),
-        ) {
-            content()
-        }
+            content = content
+        )
         Row(
             modifier = Modifier
                 .padding(3.dp)
@@ -95,7 +95,7 @@ fun RightBubbleChat(
 fun LeftBubbleChat(
     modifier: Modifier,
     message: Message,
-    content: @Composable () -> Unit
+    content: @Composable BoxScope.() -> Unit
 ) {
     Column(
         modifier = modifier
@@ -109,9 +109,8 @@ fun LeftBubbleChat(
                 }
                 .combinedClickable(onLongClick = {}, onClick = {})
                 .background(color = MaterialTheme.colorScheme.surface),
-        ) {
-            content()
-        }
+            content = content
+        )
         Row(
             modifier = Modifier
                 .padding(3.dp)

+ 2 - 4
app/src/main/java/io/nexilis/alpha/ui/components/ContentChat.kt

@@ -1,6 +1,5 @@
 package io.nexilis.alpha.ui.components
 
-import android.util.Log
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Column
@@ -36,7 +35,7 @@ import io.nexilis.service.data.entities.Message
 import java.io.File
 
 @Composable
-fun ContentChat(message: Message) {
+fun ContentChat(modifier: Modifier, message: Message) {
     val context = LocalContext.current
     if (message.image_id.isNotEmpty()) {
         Column(modifier = Modifier.padding(2.dp)) {
@@ -47,8 +46,7 @@ fun ContentChat(message: Message) {
             Image(
                 painter = rememberAsyncImagePainter(uri),
                 contentDescription = "",
-                modifier = Modifier
-                    .size(248.dp)
+                modifier = modifier
                     .graphicsLayer {
                         shape = RoundedCornerShape(12.dp)
                         clip = true

+ 8 - 2
app/src/main/java/io/nexilis/alpha/ui/main/Chat.kt

@@ -85,14 +85,20 @@ fun Chat(
                                     modifier = Modifier.weight(weight = 0.9f, fill = false),
                                     message = message,
                                 ) {
-                                    ContentChat(message = message)
+                                    ContentChat(
+                                        modifier = Modifier.fillParentMaxSize(0.65f),
+                                        message = message
+                                    )
                                 }
                             } else {
                                 LeftBubbleChat(
                                     modifier = Modifier.weight(weight = 0.9f, fill = false),
                                     message = message
                                 ) {
-                                    ContentChat(message = message)
+                                    ContentChat(
+                                        modifier = Modifier.fillParentMaxSize(0.65f),
+                                        message = message
+                                    )
                                 }
                                 Spacer(modifier = Modifier.weight(0.1f))
                             }

+ 2 - 9
app/src/main/java/io/nexilis/alpha/ui/main/Sign.kt

@@ -22,7 +22,6 @@ import androidx.hilt.navigation.compose.hiltViewModel
 import androidx.navigation.NavHostController
 import io.nexilis.service.core.getSharedPreferences
 import io.nexilis.service.core.optString
-import io.nexilis.service.core.put
 import io.nexilis.service.data.viewmodels.BuddyViewModel
 
 @Composable
@@ -113,13 +112,11 @@ fun SignUp(
         Spacer(modifier = Modifier.size(8.dp))
         Button(onClick = {
             viewModel.signUp(
+                context,
                 textUsername.text,
                 textConfirmPassword.text
             ) { r, pin ->
                 completion(r)
-                if (r && pin.isNotEmpty()) {
-                    context.getSharedPreferences().put(key = "pin", value = pin)
-                }
             }
         }) {
             Text(text = "Submit")
@@ -183,12 +180,8 @@ fun SignIn(navController: NavHostController, completion: (Boolean) -> Unit) {
         Spacer(modifier = Modifier.size(8.dp))
         Button(onClick = {
             val api = context.getSharedPreferences().optString("api", "")
-            viewModel.signIn(api, textUsername.text, textPassword.text) { r, pin ->
+            viewModel.signIn(context, api, textUsername.text, textPassword.text) { r, pin ->
                 completion(r)
-                if (r && pin.isNotEmpty()) {
-                    context.getSharedPreferences().put(key = "pin", value = pin)
-                    context.getSharedPreferences().put(key = "is_login", value = true)
-                }
             }
         }) {
             Text(text = "Submit")

+ 1 - 4
cpaas-lite/src/main/java/io/nexilis/service/Api.kt

@@ -34,10 +34,7 @@ class Api {
                     ) {
                         Thread.sleep(100)
                     }
-                    val preferences = activity.getSharedPreferences(
-                        namePreference,
-                        Context.MODE_PRIVATE
-                    )
+                    val preferences = activity.getSharedPreferences()
                     preferences.put(key = "api", value = account)
                     val random = String.format("%010d", SecureRandom().nextInt(999999))
                     val session = preferences.optString(

+ 10 - 0
cpaas-lite/src/main/java/io/nexilis/service/data/repositories/BuddyRepository.kt

@@ -1,10 +1,13 @@
 package io.nexilis.service.data.repositories
 
+import android.content.Context
 import android.util.Log
 import androidx.lifecycle.LiveData
 import io.nexilis.service.Service
 import io.nexilis.service.core.Data
 import io.nexilis.service.core.Network
+import io.nexilis.service.core.getSharedPreferences
+import io.nexilis.service.core.put
 import io.nexilis.service.core.toMD5
 import io.nexilis.service.data.daos.BuddyDao
 import io.nexilis.service.data.entities.Buddy
@@ -30,6 +33,7 @@ class BuddyRepository @Inject constructor(private val dao: BuddyDao) : Repositor
     }
 
     suspend fun signUp(
+        context: Context,
         username: String,
         password: String,
         completion: (Boolean, String) -> Unit
@@ -50,6 +54,7 @@ class BuddyRepository @Inject constructor(private val dao: BuddyDao) : Repositor
             val pin = data.bodies["A00real"] ?: ""
             if (data.isOk() && pin.isNotEmpty()) {
                 dao.insert(Buddy(f_pin = pin, first_name = username, image_id = "", type = "1"))
+                context.getSharedPreferences().put(key = "pin", value = pin)
             }
             withContext(Dispatchers.Main) {
                 completion(data.isOk(), pin)
@@ -58,6 +63,7 @@ class BuddyRepository @Inject constructor(private val dao: BuddyDao) : Repositor
     }
 
     suspend fun signIn(
+        context: Context,
         api: String,
         username: String,
         password: String,
@@ -85,6 +91,10 @@ class BuddyRepository @Inject constructor(private val dao: BuddyDao) : Repositor
                     )
                 )
             }
+            if (pin.isNotEmpty()) {
+                context.getSharedPreferences().put(key = "pin", value = pin)
+                context.getSharedPreferences().put(key = "is_login", value = true)
+            }
             withContext(Dispatchers.Main) {
                 completion(data.isOk(), pin)
             }

+ 5 - 3
cpaas-lite/src/main/java/io/nexilis/service/data/viewmodels/BuddyViewModel.kt

@@ -1,5 +1,6 @@
 package io.nexilis.service.data.viewmodels
 
+import android.content.Context
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.viewModelScope
@@ -26,19 +27,20 @@ class BuddyViewModel @Inject constructor(private val repository: BuddyRepository
         repository.insert(buddy)
     }
 
-    fun signUp(username: String, password: String, completion: (Boolean, String) -> Unit) =
+    fun signUp(context: Context, username: String, password: String, completion: (Boolean, String) -> Unit) =
         viewModelScope.launch(Dispatchers.IO) {
-            repository.signUp(username, password, completion)
+            repository.signUp(context, username, password, completion)
         }
 
     fun signIn(
+        context: Context,
         api: String,
         username: String,
         password: String,
         completion: (Boolean, String) -> Unit
     ) =
         viewModelScope.launch(Dispatchers.IO) {
-            repository.signIn(api, username, password, completion)
+            repository.signIn(context, api, username, password, completion)
         }
 
     fun addFriend(pin: String) = viewModelScope.launch(Dispatchers.IO) {