@@ -27,6 +27,7 @@ import android.widget.Toast
2727import androidx.activity.ComponentActivity
2828import androidx.activity.compose.BackHandler
2929import androidx.activity.compose.setContent
30+ import androidx.compose.animation.AnimatedVisibility
3031import androidx.compose.animation.fadeIn
3132import androidx.compose.animation.fadeOut
3233import androidx.compose.foundation.background
@@ -53,10 +54,11 @@ import androidx.compose.foundation.shape.RoundedCornerShape
5354import androidx.compose.foundation.text.KeyboardActions
5455import androidx.compose.foundation.text.KeyboardOptions
5556import androidx.compose.material.icons.Icons
56- import androidx.compose.material.icons.automirrored.filled.ArrowForward
57+ import androidx.compose.material.icons.automirrored.filled.Send
5758import androidx.compose.material.icons.filled.Android
5859import androidx.compose.material.icons.filled.DragHandle
5960import androidx.compose.material.icons.filled.MoreVert
61+ import androidx.compose.material.icons.filled.Send
6062import androidx.compose.material.icons.filled.Stop
6163import androidx.compose.material3.CircularProgressIndicator
6264import androidx.compose.material3.DrawerValue
@@ -85,6 +87,7 @@ import androidx.compose.runtime.setValue
8587import androidx.compose.ui.Alignment
8688import androidx.compose.ui.Modifier
8789import androidx.compose.ui.draw.clip
90+ import androidx.compose.ui.draw.shadow
8891import androidx.compose.ui.graphics.Color
8992import androidx.compose.ui.graphics.toArgb
9093import androidx.compose.ui.platform.LocalContext
@@ -106,6 +109,7 @@ import io.shubham0204.smollmandroid.data.Task
106109import io.shubham0204.smollmandroid.ui.components.AppBarTitleText
107110import io.shubham0204.smollmandroid.ui.components.MediumLabelText
108111import io.shubham0204.smollmandroid.ui.components.TextFieldDialog
112+ import io.shubham0204.smollmandroid.ui.components.noRippleClickable
109113import io.shubham0204.smollmandroid.ui.screens.chat.ChatScreenViewModel.ModelLoadingState
110114import io.shubham0204.smollmandroid.ui.screens.manage_tasks.ManageTasksActivity
111115import io.shubham0204.smollmandroid.ui.screens.manage_tasks.TasksList
@@ -234,6 +238,7 @@ fun ChatActivityScreenUI(
234238 modifier = Modifier .fillMaxSize(),
235239 topBar = {
236240 TopAppBar (
241+ modifier = Modifier .shadow(2 .dp),
237242 title = {
238243 Column (
239244 modifier = Modifier .fillMaxWidth(),
@@ -259,6 +264,7 @@ fun ChatActivityScreenUI(
259264 Icon (
260265 Icons .Default .DragHandle ,
261266 contentDescription = stringResource(R .string.chat_view_chats),
267+ tint = MaterialTheme .colorScheme.secondary,
262268 )
263269 }
264270 },
@@ -271,6 +277,7 @@ fun ChatActivityScreenUI(
271277 Icon (
272278 Icons .Default .MoreVert ,
273279 contentDescription = " Options" ,
280+ tint = MaterialTheme .colorScheme.secondary,
274281 )
275282 }
276283 ChatMoreOptionsPopup (viewModel, onEditChatParamsClick)
@@ -284,7 +291,7 @@ fun ChatActivityScreenUI(
284291 modifier =
285292 Modifier
286293 .padding(innerPadding)
287- .background(MaterialTheme .colorScheme.background ),
294+ .background(MaterialTheme .colorScheme.surface ),
288295 ) {
289296 if (currChat != null ) {
290297 ScreenUI (viewModel, currChat!! )
@@ -307,6 +314,7 @@ private fun ColumnScope.ScreenUI(
307314) {
308315 val isGeneratingResponse by viewModel.isGeneratingResponse.collectAsStateWithLifecycle()
309316 RAMUsageLabel (viewModel)
317+ Spacer (modifier = Modifier .height(4 .dp))
310318 MessagesList (
311319 viewModel,
312320 isGeneratingResponse,
@@ -333,6 +341,7 @@ private fun RAMUsageLabel(viewModel: ChatScreenViewModel) {
333341 }
334342 }
335343 if (showRAMUsageLabel) {
344+ Spacer (modifier = Modifier .height(4 .dp))
336345 Text (
337346 labelText,
338347 style = MaterialTheme .typography.labelSmall,
@@ -496,7 +505,7 @@ private fun LazyItemScope.MessageListItem(
496505 modifier =
497506 Modifier
498507 .padding(4 .dp)
499- .background(MaterialTheme .colorScheme.background )
508+ .background(MaterialTheme .colorScheme.surface )
500509 .padding(4 .dp)
501510 .fillMaxSize(),
502511 textColor = MaterialTheme .colorScheme.onBackground.toArgb(),
@@ -565,7 +574,7 @@ private fun LazyItemScope.MessageListItem(
565574 Modifier
566575 .padding(8 .dp)
567576 .background(
568- MaterialTheme .colorScheme.primaryContainer ,
577+ MaterialTheme .colorScheme.surfaceContainerHighest ,
569578 RoundedCornerShape (16 .dp),
570579 ).padding(8 .dp)
571580 .widthIn(max = 250 .dp),
@@ -581,13 +590,13 @@ private fun LazyItemScope.MessageListItem(
581590 ChatMessageText (
582591 modifier =
583592 Modifier
584- .padding(8 .dp)
593+ .padding(4 .dp)
585594 .background(
586- MaterialTheme .colorScheme.primary ,
595+ MaterialTheme .colorScheme.surfaceContainerHighest ,
587596 RoundedCornerShape (16 .dp),
588597 ).padding(8 .dp)
589598 .widthIn(max = 250 .dp),
590- textColor = android.graphics. Color . WHITE ,
599+ textColor = MaterialTheme .colorScheme.onSurface.toArgb() ,
591600 textSize = 16f ,
592601 message = messageStr,
593602 )
@@ -596,13 +605,14 @@ private fun LazyItemScope.MessageListItem(
596605 Row (verticalAlignment = Alignment .CenterVertically ) {
597606 Text (
598607 text = stringResource(R .string.chat_message_copy),
599- modifier = Modifier .clickable { onCopyClicked() },
608+ modifier = Modifier .noRippleClickable { onCopyClicked() },
600609 fontSize = 6 .sp,
610+ lineHeight = 6 .sp,
601611 )
602612 Spacer (modifier = Modifier .width(8 .dp))
603613 Text (
604614 text = stringResource(R .string.chat_message_share),
605- modifier = Modifier .clickable { onShareClicked() },
615+ modifier = Modifier .noRippleClickable { onShareClicked() },
606616 fontSize = 6 .sp,
607617 )
608618 if (allowEditing) {
@@ -657,23 +667,28 @@ private fun MessageInput(
657667 } else {
658668 var questionText by remember { mutableStateOf(viewModel.questionTextDefaultVal ? : " " ) }
659669 val keyboardController = LocalSoftwareKeyboardController .current
660- Row (verticalAlignment = Alignment .CenterVertically , modifier = Modifier .padding(8 .dp)) {
661- when (modelLoadingState) {
662- ChatScreenViewModel .ModelLoadingState .IN_PROGRESS -> {
663- Text (
664- modifier = Modifier .padding(8 .dp),
665- text = stringResource(R .string.chat_loading_model),
666- )
667- }
668-
669- ChatScreenViewModel .ModelLoadingState .FAILURE -> {
670- Text (
671- modifier = Modifier .padding(8 .dp),
672- text = stringResource(R .string.chat_model_cannot_be_loaded),
673- )
674- }
675-
676- ChatScreenViewModel .ModelLoadingState .SUCCESS -> {
670+ Row (
671+ verticalAlignment = Alignment .CenterVertically ,
672+ horizontalArrangement = Arrangement .Center ,
673+ modifier = Modifier .padding(8 .dp),
674+ ) {
675+ AnimatedVisibility (modelLoadingState == ModelLoadingState .IN_PROGRESS ) {
676+ Text (
677+ modifier = Modifier .padding(8 .dp),
678+ text = stringResource(R .string.chat_loading_model),
679+ )
680+ }
681+ AnimatedVisibility (modelLoadingState == ModelLoadingState .FAILURE ) {
682+ Text (
683+ modifier = Modifier .padding(8 .dp),
684+ text = stringResource(R .string.chat_model_cannot_be_loaded),
685+ )
686+ }
687+ AnimatedVisibility (modelLoadingState == ModelLoadingState .SUCCESS ) {
688+ Row (
689+ modifier = Modifier .fillMaxWidth(),
690+ verticalAlignment = Alignment .CenterVertically ,
691+ ) {
677692 TextField (
678693 modifier =
679694 Modifier
@@ -729,15 +744,13 @@ private fun MessageInput(
729744 },
730745 ) {
731746 Icon (
732- imageVector = Icons .AutoMirrored .Filled .ArrowForward ,
747+ imageVector = Icons .AutoMirrored .Filled .Send ,
733748 contentDescription = " Send text" ,
734749 tint = MaterialTheme .colorScheme.onPrimaryContainer,
735750 )
736751 }
737752 }
738753 }
739-
740- else -> {}
741754 }
742755 }
743756 }
0 commit comments