From 71c20f9eace8bded0251cd6395ebe163f28774ec Mon Sep 17 00:00:00 2001 From: jinuemong Date: Sat, 2 Mar 2024 02:58:46 +0900 Subject: [PATCH 1/2] [Fix] MA00 QA --- .../relation}/DefaultGroupType.kt | 4 +- .../presentation/ui/main/home/HomeScreen.kt | 16 +-- .../home/common/group/get/GetGroupScreen.kt | 2 +- .../history/HistoryBackgroundComponent.kt | 17 ++-- .../ui/main/home/history/HistoryPageScreen.kt | 99 +++++++++++-------- .../main/home/history/HistoryRelationItem.kt | 39 +++----- .../ui/main/home/history/HistoryScreen.kt | 35 ++++--- .../main/home/schedule/ScheduleScreenItem.kt | 3 +- .../me/event/StatisticsMeEventScreen.kt | 2 +- .../main/res/drawable/ic_person_relation.xml | 12 +++ .../src/main/res/raw/history_main_flower.json | 2 +- 11 files changed, 125 insertions(+), 106 deletions(-) rename presentation/src/main/kotlin/ac/dnd/mour/android/presentation/{ui/main/home/common/group/get/type => model/relation}/DefaultGroupType.kt (88%) create mode 100644 presentation/src/main/res/drawable/ic_person_relation.xml diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/type/DefaultGroupType.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/model/relation/DefaultGroupType.kt similarity index 88% rename from presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/type/DefaultGroupType.kt rename to presentation/src/main/kotlin/ac/dnd/mour/android/presentation/model/relation/DefaultGroupType.kt index 5c99b907..0729c3c8 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/type/DefaultGroupType.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/model/relation/DefaultGroupType.kt @@ -1,4 +1,4 @@ -package ac.dnd.mour.android.presentation.ui.main.home.common.group.get.type +package ac.dnd.mour.android.presentation.model.relation import ac.dnd.mour.android.presentation.R @@ -11,6 +11,8 @@ enum class DefaultGroupType( ACQUAINTANCE("지인", R.drawable.ic_group_acquaintance), RECTAL("직장", R.drawable.ic_group_rectal); + fun getTypeName() = typeName + companion object { fun checkEditable(name: String): Boolean { return entries.find { it.typeName == name } == null diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/HomeScreen.kt index 58547313..8139e145 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/HomeScreen.kt @@ -3,7 +3,6 @@ package ac.dnd.mour.android.presentation.ui.main.home import ac.dnd.mour.android.presentation.R import ac.dnd.mour.android.presentation.common.theme.Gray000 import ac.dnd.mour.android.presentation.common.theme.Icon24 -import ac.dnd.mour.android.presentation.common.theme.Primary3 import ac.dnd.mour.android.presentation.common.util.LaunchedEffectWithLifecycle import ac.dnd.mour.android.presentation.common.util.coroutine.event.EventFlow import ac.dnd.mour.android.presentation.common.util.coroutine.event.MutableEventFlow @@ -37,8 +36,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue @@ -59,7 +56,6 @@ fun HomeScreen( handler: CoroutineExceptionHandler ) { val scope = rememberCoroutineScope() - var historyExpandedState by remember { mutableStateOf(false) } val bottomBarItemList: List = listOf( MainBottomBarItem( route = HistoryConstant.ROUTE, @@ -98,11 +94,9 @@ fun HomeScreen( pageCount = { bottomBarItemList.size } ) - LaunchedEffect(selectedItem, historyExpandedState) { - if (selectedItem != 0 || historyExpandedState) { + LaunchedEffect(selectedItem) { + if (selectedItem != 0) { appState.systemUiController.setStatusBarColor(Gray000) - } else { - appState.systemUiController.setStatusBarColor(Primary3) } pagerState.animateScrollToPage(selectedItem) } @@ -129,10 +123,8 @@ fun HomeScreen( when (bottomBarItemList[page].route) { HistoryConstant.ROUTE -> { HistoryScreen( - appState = appState, - changeState = { - historyExpandedState = it - } + selectedItem = selectedItem, + appState = appState ) } diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/GetGroupScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/GetGroupScreen.kt index e70913cf..0f66cf65 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/GetGroupScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/common/group/get/GetGroupScreen.kt @@ -23,10 +23,10 @@ import ac.dnd.mour.android.presentation.common.util.coroutine.event.MutableEvent import ac.dnd.mour.android.presentation.common.util.coroutine.event.eventObserve import ac.dnd.mour.android.presentation.common.view.BottomSheetScreen import ac.dnd.mour.android.presentation.common.view.DialogScreen +import ac.dnd.mour.android.presentation.model.relation.DefaultGroupType import ac.dnd.mour.android.presentation.ui.main.ApplicationState import ac.dnd.mour.android.presentation.ui.main.home.common.group.add.AddGroupScreen import ac.dnd.mour.android.presentation.ui.main.home.common.group.edit.EditGroupScreen -import ac.dnd.mour.android.presentation.ui.main.home.common.group.get.type.DefaultGroupType import ac.dnd.mour.android.presentation.ui.main.rememberApplicationState import androidx.compose.foundation.Image import androidx.compose.foundation.background diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryBackgroundComponent.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryBackgroundComponent.kt index 43f347be..3a74c2a6 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryBackgroundComponent.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryBackgroundComponent.kt @@ -7,7 +7,7 @@ import ac.dnd.mour.android.presentation.R import ac.dnd.mour.android.presentation.common.theme.Body1 import ac.dnd.mour.android.presentation.common.theme.Gray000 import ac.dnd.mour.android.presentation.common.theme.Gray600 -import ac.dnd.mour.android.presentation.common.theme.Gray700 +import ac.dnd.mour.android.presentation.common.theme.Gray800 import ac.dnd.mour.android.presentation.common.theme.Headline1 import ac.dnd.mour.android.presentation.common.theme.Primary2 import ac.dnd.mour.android.presentation.common.theme.Primary3 @@ -166,6 +166,8 @@ fun HistoryBackgroundComponent( .align(Alignment.TopEnd) .padding(top = 8.dp) .offset(x = 23.dp) + .width(236.dp) + .height(160.dp) ) { LottieAnimation( composition = composition, @@ -181,6 +183,7 @@ fun HistoryBackgroundComponent( ) { Spacer(modifier = Modifier.height(40.dp)) Text( + fontWeight = FontWeight.SemiBold, style = Headline1.merge(color = Gray000), text = "총 ${model.groups.size}번의 마음을 \n주고 받았어요", fontSize = 20.scaledSp(), @@ -226,18 +229,14 @@ fun HistoryBackgroundComponent( Column { Text( text = "지난 일정 ${model.unrecordedSchedule.size}개", - style = Body1.merge( - color = Gray700, - fontWeight = FontWeight.SemiBold - ) + fontWeight = FontWeight.SemiBold, + style = Body1.merge(color = Gray800) ) Row(verticalAlignment = Alignment.CenterVertically) { Text( text = "한번에 기록하기", - style = Body1.merge( - color = Gray600, - fontWeight = FontWeight.Medium - ) + fontWeight = FontWeight.Medium, + style = Body1.merge(color = Gray600) ) Image( painter = painterResource(R.drawable.ic_chevron_right_gray), diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryPageScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryPageScreen.kt index 11c40613..46adb159 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryPageScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryPageScreen.kt @@ -21,6 +21,7 @@ import ac.dnd.mour.android.presentation.common.view.chip.ChipItem import ac.dnd.mour.android.presentation.common.view.chip.ChipType import ac.dnd.mour.android.presentation.model.history.HistorySortedType import ac.dnd.mour.android.presentation.model.history.HistoryViewType +import ac.dnd.mour.android.presentation.model.relation.DefaultGroupType import ac.dnd.mour.android.presentation.ui.main.ApplicationState import ac.dnd.mour.android.presentation.ui.main.home.history.detail.HistoryDetailConstant import android.annotation.SuppressLint @@ -66,7 +67,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import kotlinx.coroutines.CoroutineExceptionHandler -import timber.log.Timber @SuppressLint("InvalidColorHexValue") @Composable @@ -95,34 +95,32 @@ fun HistoryPageScreen( } } ) + }.sortedByDescending { + it.relationList.size + }.filter { + if (searchText.isNotEmpty()) { + it.name.contains(searchText) + } else { + true + } } - val relations = - if (selectedGroupId == -1L) groups.flatMap { it.relationList } - else if (selectedGroupId < -1L) listOf() - else groups.find { it.id == selectedGroupId } - ?.relationList - ?: groups.flatMap { it.relationList } - .sortedByDescending { - if (viewSortType == HistorySortedType.LATEST) it.id else null - } - .sortedBy { - if (viewSortType == HistorySortedType.INTIMACY) { - when (viewType) { - HistoryViewType.TOTAL -> it.giveMoney + it.takeMoney - HistoryViewType.GIVE -> it.giveMoney - HistoryViewType.TAKE -> it.takeMoney - } - } else { - null - } - } - .filter { - if (searchText.isNotEmpty()) { - it.name.contains(searchText) - } else { - true - } + + val relations = groups.flatMap { it.relationList } + .sortedByDescending { + when (viewSortType) { + HistorySortedType.LATEST -> it.id + HistorySortedType.INTIMACY -> when (viewType) { + HistoryViewType.TOTAL -> it.giveMoney + it.takeMoney + HistoryViewType.GIVE -> it.giveMoney + HistoryViewType.TAKE -> it.takeMoney } + } + } + .filter { + if (selectedGroupId == -1L) true + else if (selectedGroupId < 0) false + else it.group.id == selectedGroupId + } fun navigateToHistoryDetail(id: Long) { val route = makeRoute( @@ -153,9 +151,9 @@ fun HistoryPageScreen( contentAlignment = Alignment.CenterStart ) { GroupChipListComponent( - chipType = ChipType.MAIN, currentSelectedId = selectedGroupId, groups = groups, + relationCount = model.groups.flatMap { it.relationList }.size, onSelectChip = { groupId -> selectedGroupId = groupId } @@ -166,12 +164,13 @@ fun HistoryPageScreen( .width(56.dp) .fillMaxHeight() .background( - Brush.horizontalGradient( + brush = Brush.horizontalGradient( listOf( Color(0x00F6F6F7), Color(0xFFF6F6F7), ) - ) + ), + alpha = 0.4f ) ) } @@ -240,6 +239,9 @@ fun HistoryPageScreen( }, ) } + item(1) { + Spacer(modifier = Modifier.height(80.dp)) + } } } } @@ -317,33 +319,33 @@ fun HistoryPageScreen( @Composable private fun GroupChipListComponent( - chipType: ChipType = ChipType.LESS_BORDER, currentSelectedId: Long, onSelectChip: (Long) -> Unit, + relationCount: Int, groups: List ) { - val defaultList = listOf("전체", "가족", "친구", "지인", "직장") + val defaultList = DefaultGroupType.entries + .map { it.getTypeName() } .filter { value -> value !in groups.map { it.name } } LazyRow(horizontalArrangement = Arrangement.spacedBy(6.dp)) { - items(defaultList.size) { index -> + item(1) { ChipItem( - chipType = chipType, + chipType = ChipType.MAIN, currentSelectedId = setOf(currentSelectedId), - chipId = (-index - 1).toLong(), - chipText = defaultList[index], - chipCount = if (index==0) groups.size else 0, + chipId = -1L, + chipText = "전체", + chipCount = relationCount, onSelectChip = { - onSelectChip((-index - 1).toLong()) + onSelectChip(-1L) } ) } - items(groups) { group -> ChipItem( - chipType = chipType, + chipType = ChipType.MAIN, currentSelectedId = setOf(currentSelectedId), chipId = group.id, chipText = group.name, @@ -353,6 +355,19 @@ private fun GroupChipListComponent( } ) } + + items(defaultList.size) { index -> + ChipItem( + chipType = ChipType.MAIN, + currentSelectedId = setOf(currentSelectedId), + chipId = (-index - 2).toLong(), + chipText = defaultList[index], + chipCount = 0, + onSelectChip = { + onSelectChip((-index - 2).toLong()) + } + ) + } } } @@ -430,9 +445,9 @@ private fun EmptyRelationViewPreview() { @Preview private fun GroupChipListComponent1Preview() { GroupChipListComponent( - chipType = ChipType.MAIN, currentSelectedId = -1, groups = listOf(), + relationCount = 10, onSelectChip = { } @@ -443,7 +458,6 @@ private fun GroupChipListComponent1Preview() { @Preview private fun GroupChipListComponent2Preview() { GroupChipListComponent( - chipType = ChipType.MAIN, currentSelectedId = -1, groups = listOf( GroupWithRelationDetail( @@ -543,6 +557,7 @@ private fun GroupChipListComponent2Preview() { ) ) ), + relationCount = 10, onSelectChip = { } diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryRelationItem.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryRelationItem.kt index cdfa6517..202adfa4 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryRelationItem.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryRelationItem.kt @@ -4,17 +4,15 @@ import ac.dnd.mour.android.domain.model.feature.relation.RelationDetail import ac.dnd.mour.android.domain.model.feature.relation.RelationDetailGroup import ac.dnd.mour.android.presentation.common.theme.Body1 import ac.dnd.mour.android.presentation.common.theme.Body2 -import ac.dnd.mour.android.presentation.common.theme.Caption1 import ac.dnd.mour.android.presentation.common.theme.Gray000 -import ac.dnd.mour.android.presentation.common.theme.Gray500 import ac.dnd.mour.android.presentation.common.theme.Gray600 -import ac.dnd.mour.android.presentation.common.theme.Gray700 +import ac.dnd.mour.android.presentation.common.theme.Gray800 import ac.dnd.mour.android.presentation.common.theme.Headline3 import ac.dnd.mour.android.presentation.common.theme.Primary4 import ac.dnd.mour.android.presentation.common.theme.Primary5 import ac.dnd.mour.android.presentation.common.theme.Shapes import ac.dnd.mour.android.presentation.model.history.HistoryViewType -import ac.dnd.mour.android.presentation.ui.main.home.common.group.get.type.DefaultGroupType +import ac.dnd.mour.android.presentation.model.relation.DefaultGroupType import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box @@ -31,6 +29,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight @@ -50,9 +49,11 @@ fun HistoryRelationItem( Card( shape = Shapes.large, backgroundColor = Gray000, - modifier = Modifier.clickable { - onSelectCard(relation) - } + modifier = Modifier + .clip(Shapes.large) + .clickable { + onSelectCard(relation) + } ) { Column( modifier = Modifier.padding(horizontal = 12.dp) @@ -70,10 +71,8 @@ fun HistoryRelationItem( Column { Text( text = relation.name, - style = Headline3.merge( - color = Gray700, - fontWeight = FontWeight.SemiBold - ), + fontWeight = FontWeight.SemiBold, + style = Headline3.merge(color = Gray800), lineHeight = 24.sp, textAlign = TextAlign.Left, maxLines = 1, @@ -82,10 +81,8 @@ fun HistoryRelationItem( Spacer(modifier = Modifier.height(1.dp)) Text( text = relation.group.name, - style = Caption1.merge( - color = Gray600, - fontWeight = FontWeight.Normal - ), + fontWeight = FontWeight.Medium, + style = Body1.merge(color = Gray600), lineHeight = 21.sp, ) } @@ -95,10 +92,8 @@ fun HistoryRelationItem( Box(modifier = Modifier.fillMaxWidth()) { Text( text = "받음", - style = Body1.merge( - color = Gray500, - fontWeight = FontWeight.Medium - ), + fontWeight = FontWeight.Medium, + style = Body1.merge(color = Gray600), modifier = Modifier.align(Alignment.CenterStart) ) Row( @@ -128,10 +123,8 @@ fun HistoryRelationItem( Box(modifier = Modifier.fillMaxWidth()) { Text( text = "보냄", - style = Body1.merge( - color = Gray500, - fontWeight = FontWeight.Medium - ), + fontWeight = FontWeight.Medium, + style = Body1.merge(color = Gray600), modifier = Modifier.align(Alignment.CenterStart) ) Row( diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryScreen.kt index 15f6c6fc..e4fc2d6d 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/HistoryScreen.kt @@ -16,7 +16,6 @@ import ac.dnd.mour.android.presentation.common.theme.Gray800 import ac.dnd.mour.android.presentation.common.theme.Headline3 import ac.dnd.mour.android.presentation.common.theme.Primary3 import ac.dnd.mour.android.presentation.common.theme.Primary4 -import ac.dnd.mour.android.presentation.common.theme.Secondary5 import ac.dnd.mour.android.presentation.common.theme.Secondary6 import ac.dnd.mour.android.presentation.common.util.ErrorObserver import ac.dnd.mour.android.presentation.common.util.LaunchedEffectWithLifecycle @@ -110,7 +109,7 @@ import kotlinx.datetime.LocalTime @Composable fun HistoryScreen( appState: ApplicationState, - changeState: (Boolean) -> Unit, + selectedItem: Int, viewModel: HistoryViewModel = hiltViewModel() ) { @@ -132,7 +131,7 @@ fun HistoryScreen( event = viewModel.event, intent = viewModel::onIntent, handler = viewModel.handler, - changeState = changeState + selectedItem = selectedItem ) } @@ -148,7 +147,7 @@ private fun HistoryScreen( event: EventFlow, intent: (HistoryIntent) -> Unit, handler: CoroutineExceptionHandler, - changeState: (Boolean) -> Unit + selectedItem: Int ) { LaunchedEffectWithLifecycle(context = handler) { @@ -169,10 +168,20 @@ private fun HistoryScreen( (if (model.unrecordedSchedule.isNotEmpty() && isViewUnrecordedState) 343.dp else 257.dp) val swipeState = rememberSwipeableState(initialValue = HistoryViewSwipingType.COLLAPSED) - LaunchedEffect(swipeState.progress.to){ - when (swipeState.progress.to) { - HistoryViewSwipingType.EXPANDED -> changeState(true) - HistoryViewSwipingType.COLLAPSED -> changeState(false) +// LaunchedEffect(isDropDownMenuExpanded){ +// appState.systemUiController.isStatusBarVisible = !isDropDownMenuExpanded +// } + LaunchedEffect(swipeState.progress.to, selectedItem, isDropDownMenuExpanded) { + if (selectedItem == 0) { + when (swipeState.progress.to) { + HistoryViewSwipingType.EXPANDED -> { + appState.systemUiController.setStatusBarColor(Gray000) + } + + HistoryViewSwipingType.COLLAPSED -> { + appState.systemUiController.setStatusBarColor(Primary3) + } + } } } @@ -218,7 +227,6 @@ private fun HistoryScreen( val searchBoxHeightState = animateDpAsState( targetValue = when (swipeState.progress.to) { HistoryViewSwipingType.COLLAPSED -> 0.dp - HistoryViewSwipingType.EXPANDED -> 65.dp }, label = "search in EXPANDED " @@ -292,7 +300,6 @@ private fun HistoryScreen( }, onDeleteUnrecorded = { isViewUnrecordedState = false - //TODO delete Unrecorded (api) } ) if (!isPlayingLoading) { @@ -495,7 +502,7 @@ private fun HistoryScreen( } if (isDropDownMenuExpanded) { - val isNotEmptyRelation = true //TODO edit to prevent + val isNotEmptyRelation = model.groups.isNotEmpty() Box( modifier = Modifier @@ -559,6 +566,7 @@ private fun HistoryScreen( x = (-14).dp, y = (-92).dp ) + .clip(RoundedCornerShape(100.dp)) .clickable { isDropDownMenuExpanded = false navigateToAddRelation() @@ -581,8 +589,7 @@ private fun HistoryScreen( horizontalArrangement = Arrangement.Center, ) { Image( - painter = painterResource(R.drawable.ic_person), - colorFilter = ColorFilter.tint(Secondary5), + painter = painterResource(R.drawable.ic_person_relation), modifier = Modifier.size(24.dp), contentDescription = null, ) @@ -762,6 +769,6 @@ private fun HistoryScreenPreview1() { event = MutableEventFlow(), intent = {}, handler = CoroutineExceptionHandler { _, _ -> }, - changeState = {} + selectedItem = 0 ) } diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/schedule/ScheduleScreenItem.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/schedule/ScheduleScreenItem.kt index 295e8983..69b36c31 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/schedule/ScheduleScreenItem.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/schedule/ScheduleScreenItem.kt @@ -18,7 +18,7 @@ import ac.dnd.mour.android.presentation.common.view.confirm.ConfirmButtonPropert import ac.dnd.mour.android.presentation.common.view.confirm.ConfirmButtonSize import ac.dnd.mour.android.presentation.common.view.confirm.ConfirmButtonType import ac.dnd.mour.android.presentation.model.history.HistoryEventType -import ac.dnd.mour.android.presentation.ui.main.home.common.group.get.type.DefaultGroupType +import ac.dnd.mour.android.presentation.model.relation.DefaultGroupType import androidx.annotation.DrawableRes import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -28,7 +28,6 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/statistics/me/event/StatisticsMeEventScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/statistics/me/event/StatisticsMeEventScreen.kt index 7c7056bc..3d24569a 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/statistics/me/event/StatisticsMeEventScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/statistics/me/event/StatisticsMeEventScreen.kt @@ -25,7 +25,7 @@ import ac.dnd.mour.android.presentation.common.view.chip.ChipItem import ac.dnd.mour.android.presentation.common.view.chip.ChipType import ac.dnd.mour.android.presentation.model.history.HistoryEventType import ac.dnd.mour.android.presentation.ui.main.ApplicationState -import ac.dnd.mour.android.presentation.ui.main.home.common.group.get.type.DefaultGroupType +import ac.dnd.mour.android.presentation.model.relation.DefaultGroupType import ac.dnd.mour.android.presentation.ui.main.rememberApplicationState import androidx.compose.foundation.Image import androidx.compose.foundation.background diff --git a/presentation/src/main/res/drawable/ic_person_relation.xml b/presentation/src/main/res/drawable/ic_person_relation.xml new file mode 100644 index 00000000..b63a3f59 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_person_relation.xml @@ -0,0 +1,12 @@ + + + + diff --git a/presentation/src/main/res/raw/history_main_flower.json b/presentation/src/main/res/raw/history_main_flower.json index 3c82a7ec..3f53f457 100644 --- a/presentation/src/main/res/raw/history_main_flower.json +++ b/presentation/src/main/res/raw/history_main_flower.json @@ -1 +1 @@ -{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.4","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":191,"w":240,"h":163,"nm":"main flower","ddd":0,"assets":[{"id":"image_0","w":58,"h":71,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":103,"h":149,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":72,"h":152,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"p flower","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.41],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44,"s":[-2]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":85,"s":[2]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":147,"s":[-2]},{"t":191,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[141.932,140.113,0],"ix":2},"a":{"a":0,"k":[12.998,66.958,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":191,"st":-1,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"y flower","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.318],"y":[1.501]},"o":{"x":[0.494],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.828],"y":[1]},"o":{"x":[0.223],"y":[0.115]},"t":44,"s":[3]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":85,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":147,"s":[3]},{"t":191,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[107.727,150.467,0],"ix":2},"a":{"a":0,"k":[35.694,143.106,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":191,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"w flower","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.955],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.54],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44,"s":[-2]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":85,"s":[2]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":147,"s":[-2]},{"t":191,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[111.922,156.455,0],"ix":2},"a":{"a":0,"k":[61.699,142.62,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":191,"st":0,"bm":0}],"markers":[]} \ No newline at end of file +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.4","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":180.00000733155,"w":475,"h":323,"nm":"main flower","ddd":0,"assets":[{"id":"image_0","w":123,"h":151,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":139,"h":280,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":154,"h":324,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"p flower","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[-2.5]},{"t":180.00000733155,"s":[0]}],"ix":10},"p":{"a":0,"k":[290.087,277.198,0],"ix":2},"a":{"a":0,"k":[28.101,145.007,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"y flower","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[2.5]},{"t":180.00000733155,"s":[0]}],"ix":10},"p":{"a":0,"k":[223.977,294.972,0],"ix":2},"a":{"a":0,"k":[37.268,261.778,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"w flower","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[-2.5]},{"t":180.00000733155,"s":[0]}],"ix":10},"p":{"a":0,"k":[226.915,306.97,0],"ix":2},"a":{"a":0,"k":[127.939,305.131,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]} \ No newline at end of file From 575b9a51379d2f1da7be6d03b838d8ac2c16cc43 Mon Sep 17 00:00:00 2001 From: jinuemong Date: Sat, 2 Mar 2024 15:20:47 +0900 Subject: [PATCH 2/2] [Fix] MA04 QA --- .../presentation/common/view/chip/ChipItem.kt | 11 +-- .../common/view/textfield/TypingPriceField.kt | 7 +- .../unrecorded/HistoryUnrecordedPageScreen.kt | 96 +++++++++---------- 3 files changed, 49 insertions(+), 65 deletions(-) diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/chip/ChipItem.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/chip/ChipItem.kt index 986f4f50..c95628a7 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/chip/ChipItem.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/chip/ChipItem.kt @@ -2,7 +2,6 @@ package ac.dnd.mour.android.presentation.common.view.chip import ac.dnd.mour.android.presentation.common.theme.Body1 import ac.dnd.mour.android.presentation.common.theme.Gray000 -import ac.dnd.mour.android.presentation.common.theme.Gray400 import ac.dnd.mour.android.presentation.common.theme.Gray500 import ac.dnd.mour.android.presentation.common.theme.Gray700 import ac.dnd.mour.android.presentation.common.theme.Gray800 @@ -84,18 +83,14 @@ fun ChipItem( ) { Text( text = chipText, - style = Body1.merge( - color = textColor.value, - fontWeight = if (isSelected) FontWeight.SemiBold else FontWeight.Normal - ) + style = Body1.merge(color = textColor.value), + fontWeight = if (isSelected) FontWeight.SemiBold else FontWeight.Normal, ) if (chipCount > 0) { Spacer(modifier = Modifier.width(4.dp)) Text( text = chipCount.toString(), - style = Body1.merge( - color = textColor.value - ) + style = Body1.merge(color = textColor.value) ) } } diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/textfield/TypingPriceField.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/textfield/TypingPriceField.kt index 9ee3a025..18b56878 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/textfield/TypingPriceField.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/common/view/textfield/TypingPriceField.kt @@ -120,10 +120,8 @@ fun TypingPriceField( placeholder = { Text( text = hintText, - style = Headline3.merge( - color = Gray600, - fontWeight = FontWeight.SemiBold - ) + fontWeight = FontWeight.SemiBold, + style = Headline3.merge(color = Gray600) ) }, visualTransformation = textFormat, @@ -133,7 +131,6 @@ fun TypingPriceField( contentPadding = innerPadding ) } - Spacer(modifier = Modifier.height(8.dp)) Divider( modifier = Modifier .fillMaxWidth() diff --git a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/unrecorded/HistoryUnrecordedPageScreen.kt b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/unrecorded/HistoryUnrecordedPageScreen.kt index 4cd98ddb..cb0ff1f1 100644 --- a/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/unrecorded/HistoryUnrecordedPageScreen.kt +++ b/presentation/src/main/kotlin/ac/dnd/mour/android/presentation/ui/main/home/history/unrecorded/HistoryUnrecordedPageScreen.kt @@ -15,6 +15,7 @@ import ac.dnd.mour.android.presentation.common.theme.Gray900 import ac.dnd.mour.android.presentation.common.theme.Headline1 import ac.dnd.mour.android.presentation.common.theme.Headline2 import ac.dnd.mour.android.presentation.common.theme.Headline3 +import ac.dnd.mour.android.presentation.common.theme.Shapes import ac.dnd.mour.android.presentation.common.view.chip.ChipItem import ac.dnd.mour.android.presentation.common.view.chip.ChipType import ac.dnd.mour.android.presentation.common.view.component.FieldSubject @@ -37,6 +38,7 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState @@ -57,6 +59,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalTime @@ -69,7 +72,10 @@ fun HistoryUnrecordedPageScreen( var moneyText by remember { mutableStateOf("") } val tagIdList = remember { mutableStateListOf() } val scrollState = rememberScrollState() - Box(modifier = Modifier.fillMaxSize()) { + Box(modifier = Modifier + .fillMaxSize() + .background(Gray000) + ) { Column( modifier = Modifier .align(Alignment.TopCenter) @@ -78,27 +84,23 @@ fun HistoryUnrecordedPageScreen( Box( modifier = Modifier .fillMaxWidth() + .offset(x = 0.dp, y = (-7).dp) .padding(horizontal = 20.dp) ) { Column( - modifier = Modifier - .padding(top = 12.dp) - .align(Alignment.TopStart) + modifier = Modifier.align(Alignment.TopStart) ) { + Spacer(modifier = Modifier.height(12.dp)) Text( text = "지난 일정이 \n${unRecordSize}개 있습니다.", - style = Headline1.merge( - color = Gray900, - fontWeight = FontWeight.SemiBold - ), + fontWeight = FontWeight.SemiBold, + style = Headline1.merge(color = Gray900), ) Spacer(modifier = Modifier.height(12.dp)) Text( text = "얼마를 지출하셨나요?", - style = Body1.merge( - color = Gray700, - fontWeight = FontWeight.Medium - ) + fontWeight = FontWeight.Medium, + style = Body1.merge(color = Gray700) ) } Box( @@ -116,18 +118,15 @@ fun HistoryUnrecordedPageScreen( ) } } - Spacer(modifier = Modifier.height(31.dp)) + Spacer(modifier = Modifier.height(24.dp)) Row( modifier = Modifier .padding(horizontal = 20.dp) - .height(83.dp) .background( color = Color.White, - shape = RoundedCornerShape( - topStart = 8.dp, - bottomStart = 8.dp - ) - ), + shape = Shapes.medium + ) + .height(83.dp), verticalAlignment = Alignment.CenterVertically ) { Box( @@ -142,51 +141,50 @@ fun HistoryUnrecordedPageScreen( ) ) ) - Column( + Box( modifier = Modifier .padding( start = 20.dp, + end = 20.dp, top = 12.dp, - bottom = 14.dp, - end = 20.dp + bottom = 14.dp ) + .fillMaxHeight() ) { Text( text = "${unrecordedSchedule.day.year}년 " + "${unrecordedSchedule.day.monthNumber}월 " + "${unrecordedSchedule.day.dayOfMonth}일", - style = Body1.merge( - color = Gray600, - fontWeight = FontWeight.Normal - ) + fontWeight = FontWeight.Normal, + style = Body1.merge(color = Gray700), + letterSpacing = (-0.25).sp, + modifier = Modifier + .height(28.dp) + .align(Alignment.TopStart), ) - Spacer(modifier = Modifier.height(4.dp)) Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .height(29.dp) + .align(Alignment.BottomStart) + .fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { Text( text = unrecordedSchedule.relation.name, - style = Headline2.merge( - color = Gray800, - fontWeight = FontWeight.SemiBold - ) + fontWeight = FontWeight.SemiBold, + style = Headline2.merge(color = Gray900) ) Text( text = "•", - style = Body0.merge( - color = Gray600, - fontWeight = FontWeight.Normal - ), + fontWeight = FontWeight.Normal, + style = Body0.merge(color = Gray700), textAlign = TextAlign.Center, modifier = Modifier.width(16.dp) ) Text( - text = unrecordedSchedule.relation.name, - style = Body0.merge( - color = Gray600, - fontWeight = FontWeight.Normal - ) + text = unrecordedSchedule.relation.group.name, + fontWeight = FontWeight.Normal, + style = Body0.merge(color = Gray700) ) Spacer(modifier = Modifier.weight(1f)) Box( @@ -206,22 +204,18 @@ fun HistoryUnrecordedPageScreen( ) { Text( text = unrecordedSchedule.event, - style = Body1.merge( - color = Gray000, - fontWeight = FontWeight.SemiBold - ) + fontWeight = FontWeight.SemiBold, + style = Body1.merge(color = Gray000) ) } } } } Spacer(modifier = Modifier.height(28.dp)) - Spacer(modifier = Modifier.height(24.dp)) Column( modifier = Modifier .background(Gray000) .verticalScroll(scrollState) - .fillMaxSize() .padding(horizontal = 20.dp) ) { Spacer(modifier = Modifier.height(24.dp)) @@ -288,11 +282,9 @@ fun HistoryUnrecordedPageScreen( } ) { Text( - text = "다음", - style = Headline3.merge( - color = Gray000, - fontWeight = FontWeight.SemiBold - ) + text = if (unRecordSize==1) "완료" else "다음", + fontWeight = FontWeight.SemiBold, + style = Headline3.merge(color = Gray000) ) } Spacer(modifier = Modifier.height(12.dp))