diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/component/Grid.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/component/Grid.kt index eeffe52..454f647 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/component/Grid.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/component/Grid.kt @@ -44,8 +44,8 @@ fun VerticalGrid( val column = index % columns val row = index / columns placeable.placeRelative( - x = column * itemWidth + if(column > 0) gap else 0, - y = columnY[column] + if(row > 0) verticalGap else 0, + x = column * itemWidth + if (column > 0) gap else 0, + y = columnY[column] + if (row > 0) verticalGap else 0, ) columnY[column] += placeable.height } diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/component/button/FlatButton.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/component/button/FlatButton.kt index 7af3b16..8525833 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/component/button/FlatButton.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/component/button/FlatButton.kt @@ -23,7 +23,7 @@ fun FlatButton( modifier: Modifier = Modifier, buttonColor: Color = MaterialTheme.bbibbiScheme.mainYellow, textColor: Color = MaterialTheme.bbibbiScheme.backgroundPrimary, - contentPadding: PaddingValues = PaddingValues( + contentPadding: PaddingValues = PaddingValues( start = 24.dp, top = 12.dp, end = 24.dp, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/uistate/post/CalendarFeedUiState.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/uistate/post/CalendarFeedUiState.kt index 5ef2594..12b86ab 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/uistate/post/CalendarFeedUiState.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/uistate/post/CalendarFeedUiState.kt @@ -3,7 +3,6 @@ package com.no5ing.bbibbi.presentation.feature.uistate.post import com.no5ing.bbibbi.data.model.BaseModel import com.no5ing.bbibbi.data.model.member.Member import com.no5ing.bbibbi.data.model.post.DailyCalendarElement -import com.no5ing.bbibbi.data.model.post.Post data class CalendarFeedUiState( val post: DailyCalendarElement, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/CustomAlertDialog.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/CustomAlertDialog.kt index bf9c200..83fd55a 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/CustomAlertDialog.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/CustomAlertDialog.kt @@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.Button diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/GenericPopup.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/GenericPopup.kt index e8d1c1b..00e914e 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/GenericPopup.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/GenericPopup.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.Button @@ -17,23 +16,13 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties -import com.no5ing.bbibbi.R -import com.no5ing.bbibbi.presentation.feature.view.common.AlertDialogContent -import com.no5ing.bbibbi.presentation.feature.view.common.AlertDialogFlowRow -import com.no5ing.bbibbi.presentation.feature.view.common.ButtonsCrossAxisSpacing -import com.no5ing.bbibbi.presentation.feature.view.common.ButtonsMainAxisSpacing import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/PostTypeSwitchButton.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/PostTypeSwitchButton.kt index 37c25bf..3d260e1 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/PostTypeSwitchButton.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/common/PostTypeSwitchButton.kt @@ -47,19 +47,20 @@ fun PostTypeSwitchButton( ) { val isSurvival = state.value == PostType.SURVIVAL val widthMax = 138.dp.dpToPx() - val buttonPosition: Dp by animateDpAsState(targetValue = - if(isSurvival) 0.dp else 69.dp, animationSpec = tween( - durationMillis = 130, - easing = LinearEasing, - ), + val buttonPosition: Dp by animateDpAsState( + targetValue = + if (isSurvival) 0.dp else 69.dp, animationSpec = tween( + durationMillis = 130, + easing = LinearEasing, + ), label = "" ) val survivalButtonColor: Color by animateColorAsState( - targetValue =if(isSurvival) MaterialTheme.bbibbiScheme.backgroundPrimary else MaterialTheme.bbibbiScheme.gray500, + targetValue = if (isSurvival) MaterialTheme.bbibbiScheme.backgroundPrimary else MaterialTheme.bbibbiScheme.gray500, label = "", ) val missionButtonColor: Color by animateColorAsState( - targetValue = if(isSurvival) MaterialTheme.bbibbiScheme.gray500 else MaterialTheme.bbibbiScheme.backgroundPrimary, + targetValue = if (isSurvival) MaterialTheme.bbibbiScheme.gray500 else MaterialTheme.bbibbiScheme.backgroundPrimary, label = "", ) Box( @@ -77,7 +78,7 @@ fun PostTypeSwitchButton( Timber.d("offset: $offset") } } - //.padding(vertical = 8.dp, horizontal = 12.dp) + //.padding(vertical = 8.dp, horizontal = 12.dp) ) { Box( modifier = Modifier diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/detail/CalendarDetailPage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/detail/CalendarDetailPage.kt index e7101d6..d604182 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/detail/CalendarDetailPage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/detail/CalendarDetailPage.kt @@ -56,7 +56,6 @@ import com.no5ing.bbibbi.presentation.component.snackBarWarning import com.no5ing.bbibbi.presentation.feature.uistate.family.MainFeedUiState import com.no5ing.bbibbi.presentation.feature.view.main.calendar.MainCalendarDay import com.no5ing.bbibbi.presentation.feature.view.main.post_view.PostViewContent -import com.no5ing.bbibbi.presentation.feature.view_model.mission.GetMissionByIdViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.AddPostReactionViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.CalendarWeekViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.FamilySwipePostsViewModel @@ -316,7 +315,10 @@ fun CalendarDetailPage( CalendarDetailBody( onTapProfile = onTapProfile, onTapRealEmojiCreate = onTapRealEmojiCreate, - item = MainFeedUiState(item.post.toPost(), item.writer), + item = MainFeedUiState( + item.post.toPost(), + item.writer + ), familyPostReactionBarViewModel = familyPostReactionBarViewModel, removePostReactionViewModel = removePostReactionViewModel, addPostReactionViewModel = addPostReactionViewModel, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePage.kt index 3f47a7d..16092a5 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePage.kt @@ -77,7 +77,7 @@ fun HomePage( unsavedDialogUri.value = tempUri unsavedDialogEnabled.value = true } - if(isDayTime) { + if (isDayTime) { mainPageViewModel.invoke(Arguments()) } else { mainPageNightViewModel.invoke(Arguments()) @@ -135,7 +135,7 @@ fun HomePage( isUploadAbleTime = remember { gapUntilNext() > 0 }, isAlreadyUploaded = !mainPageState.value.isReady() || mainPageState.value.data.isMeSurvivalUploadedToday, - pickers = if(mainPageState.value.isReady()) mainPageState.value.data.pickers + pickers = if (mainPageState.value.isReady()) mainPageState.value.data.pickers else emptyList(), ) } else { diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageContent.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageContent.kt index 31c3bff..d8178d0 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageContent.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageContent.kt @@ -72,7 +72,7 @@ fun HomePageContent( val survivalFeedItems = if (mainPageModel.isReady()) mainPageModel.data.survivalFeeds - else emptyList() + else emptyList() val missionFeedItems = if (mainPageModel.isReady()) mainPageModel.data.missionFeeds else emptyList() @@ -124,14 +124,14 @@ fun HomePageContent( ) Spacer(modifier = Modifier.height(24.dp)) UploadCountDownBar(warningState = warningState) - if(postViewTypeState.value == PostType.SURVIVAL) { + if (postViewTypeState.value == PostType.SURVIVAL) { SurvivalTextDescription(warningState = warningState) } else { MissionTextDescription( warningState = warningState, isMissionUnlocked = mainPageModel.isReady() && mainPageModel.data.isMissionUnlocked, - missionText = if(mainPageModel.isReady()) mainPageModel.data.dailyMissionContent else "", - remainingMemberCnt = if(mainPageModel.isReady()) mainPageModel.data.leftUploadCountUntilMissionUnlock else 0 + missionText = if (mainPageModel.isReady()) mainPageModel.data.dailyMissionContent else "", + remainingMemberCnt = if (mainPageModel.isReady()) mainPageModel.data.leftUploadCountUntilMissionUnlock else 0 ) } @@ -227,8 +227,10 @@ fun MissionFeedTab( verticalArrangement = Arrangement.Center, ) { Image( - painter = painterResource(if(isMissionUnlocked) R.drawable.bbibbi - else R.drawable.chest_bibbi), + painter = painterResource( + if (isMissionUnlocked) R.drawable.bbibbi + else R.drawable.chest_bibbi + ), contentDescription = null, // 필수 param modifier = Modifier .fillMaxWidth(), @@ -257,7 +259,9 @@ fun MissionFeedTab( @Composable fun SurvivalTextDescription(warningState: MutableState) { Row( - modifier = Modifier.fillMaxWidth().height(20.dp), + modifier = Modifier + .fillMaxWidth() + .height(20.dp), horizontalArrangement = Arrangement.spacedBy(2.dp, Alignment.CenterHorizontally), verticalAlignment = Alignment.CenterVertically, ) { @@ -294,7 +298,9 @@ fun MissionTextDescription( remainingMemberCnt: Int, ) { Row( - modifier = Modifier.fillMaxWidth().height(20.dp), + modifier = Modifier + .fillMaxWidth() + .height(20.dp), horizontalArrangement = Arrangement.spacedBy(2.dp, Alignment.CenterHorizontally), verticalAlignment = Alignment.CenterVertically, ) { @@ -305,7 +311,7 @@ fun MissionTextDescription( } append("만 더 올리면 미션 열쇠를 받아요!") } - if(isMissionUnlocked) { + if (isMissionUnlocked) { Text( text = missionText, color = MaterialTheme.bbibbiScheme.textSecondary, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageFeedElement.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageFeedElement.kt index 35850c8..0941448 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageFeedElement.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageFeedElement.kt @@ -26,7 +26,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import com.no5ing.bbibbi.R -import com.no5ing.bbibbi.presentation.component.MicroTextBubbleBox import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo import com.no5ing.bbibbi.util.asyncImagePainter diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageStoryBar.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageStoryBar.kt index e3db64a..04cd319 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageStoryBar.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageStoryBar.kt @@ -20,7 +20,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -30,32 +29,27 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.no5ing.bbibbi.R -import com.no5ing.bbibbi.data.model.APIResponse -import com.no5ing.bbibbi.data.model.member.Member -import com.no5ing.bbibbi.data.model.view.MainPageModel import com.no5ing.bbibbi.data.model.view.MainPageTopBarModel import com.no5ing.bbibbi.presentation.component.CircleProfileImage -import com.no5ing.bbibbi.presentation.feature.uistate.family.MainFeedStoryElementUiState import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo import com.no5ing.bbibbi.util.LocalSessionState -import com.no5ing.bbibbi.util.gapBetweenNow import com.no5ing.bbibbi.util.gapUntilNext import kotlinx.coroutines.flow.StateFlow @Composable fun HomePageStoryBar( //mainPageState: StateFlow>, - items: List, + items: List, deferredPickStateSet: StateFlow>, onTapProfile: (String) -> Unit = {}, onTapPick: (MainPageTopBarModel) -> Unit = {}, onTapInvite: () -> Unit = {}, ) { val meId = LocalSessionState.current.memberId - // val mainPageModel by mainPageState.collectAsState() + // val mainPageModel by mainPageState.collectAsState() val deferredPickSet = deferredPickStateSet.collectAsState() - // val items = if (mainPageModel.isReady()) mainPageModel.data.topBarElements else emptyList() + // val items = if (mainPageModel.isReady()) mainPageModel.data.topBarElements else emptyList() if (items.size == 1) { HomePageNoFamilyBar( diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageUploadButton.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageUploadButton.kt index b5ed452..0102152 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageUploadButton.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/HomePageUploadButton.kt @@ -5,7 +5,6 @@ import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.foundation.Canvas import androidx.compose.foundation.background -import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -30,7 +29,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Outline import androidx.compose.ui.graphics.Paint import androidx.compose.ui.graphics.Path @@ -40,13 +38,11 @@ import androidx.compose.ui.graphics.drawscope.drawIntoCanvas import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage import com.no5ing.bbibbi.R import com.no5ing.bbibbi.data.model.view.MainPagePickerModel -import com.no5ing.bbibbi.presentation.component.CircleProfileImage import com.no5ing.bbibbi.presentation.component.button.CameraCaptureButton import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo @@ -72,7 +68,7 @@ fun BoxScope.HomePageSurvivalUploadButton( exit = fadeOut(), ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { - if(pickers.isNotEmpty() && isUploadAbleTime && !isAlreadyUploaded && !isLoading) { + if (pickers.isNotEmpty() && isUploadAbleTime && !isAlreadyUploaded && !isLoading) { WaitingMembersPop( pickers = pickers, ) @@ -119,7 +115,7 @@ fun BoxScope.HomePageMissionUploadButton( Column(horizontalAlignment = Alignment.CenterHorizontally) { UploadHelperPop( text = - if(!isMeUploadedToday) + if (!isMeUploadedToday) "생존신고 후 미션 사진을 올릴 수 있어요" else if (!isMissionUnlocked) "아직 미션 사진을 찍을 수 없어요" @@ -228,7 +224,7 @@ fun WaitingMembersPop( } Spacer(modifier = Modifier.width(16.dp.times(pickersShattered.size - 1))) } - if(pickers.size == 1) { + if (pickers.size == 1) { Text( text = "${pickers.first().displayName}님이 기다리고 있어요", style = MaterialTheme.bbibbiTypo.bodyTwoRegular, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/NightHomePageContent.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/NightHomePageContent.kt index 25a387c..6429f2a 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/NightHomePageContent.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/NightHomePageContent.kt @@ -151,7 +151,7 @@ fun NightHomePageContent( UploadCountDownBar(warningState = warningState) SurvivalTextDescription(warningState = warningState) Spacer(modifier = Modifier.height(24.dp)) - if(mainPageModel.isReady()) { + if (mainPageModel.isReady()) { val ranking = mainPageModel.data.familyMemberMonthlyRanking Box( modifier = Modifier @@ -161,7 +161,7 @@ fun NightHomePageContent( MaterialTheme.bbibbiScheme.backgroundSecondary, RoundedCornerShape(24.dp) ) - ){ + ) { Column( modifier = Modifier.padding(vertical = 20.dp, horizontal = 20.dp), horizontalAlignment = Alignment.CenterHorizontally, @@ -218,7 +218,7 @@ fun NightHomePageContent( horizontalArrangement = Arrangement.SpaceBetween, ) { Box( - Modifier.padding(top = 36.dp) + Modifier.padding(top = 36.dp) ) { RankIcon( model = ranking.secondRanker, @@ -255,7 +255,7 @@ fun NightHomePageContent( } } Spacer(modifier = Modifier.height(36.dp)) - if(ranking.isAllRankersNull()) { + if (ranking.isAllRankersNull()) { Text( text = "아직 활동한 가족이 없어요", style = MaterialTheme.bbibbiTypo.bodyOneBold, @@ -295,7 +295,7 @@ fun RankIcon( rankImage: Painter, badgeHeight: Dp, ) { - if(model == null) { + if (model == null) { Column( verticalArrangement = Arrangement.spacedBy(9.dp), horizontalAlignment = Alignment.CenterHorizontally, @@ -312,10 +312,12 @@ fun RankIcon( .background(MaterialTheme.bbibbiScheme.backgroundHover, CircleShape), contentAlignment = Alignment.Center, ) { - Text(text = "?", style = TextStyle( - fontSize = 33.75.sp, - fontWeight = FontWeight.SemiBold - ), color = MaterialTheme.colorScheme.onSurface) + Text( + text = "?", style = TextStyle( + fontSize = 33.75.sp, + fontWeight = FontWeight.SemiBold + ), color = MaterialTheme.colorScheme.onSurface + ) } Image( painter = noRankImage, @@ -369,13 +371,15 @@ fun CommonEmptyBlock() { verticalArrangement = Arrangement.spacedBy(4.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { - Box(modifier = Modifier - .size(width = 53.dp, height = 16.dp) - .background(MaterialTheme.bbibbiScheme.gray600, RoundedCornerShape(4.dp)) + Box( + modifier = Modifier + .size(width = 53.dp, height = 16.dp) + .background(MaterialTheme.bbibbiScheme.gray600, RoundedCornerShape(4.dp)) ) - Box(modifier = Modifier - .size(width = 29.dp, height = 12.dp) - .background(MaterialTheme.bbibbiScheme.button, RoundedCornerShape(4.dp)) + Box( + modifier = Modifier + .size(width = 29.dp, height = 12.dp) + .background(MaterialTheme.bbibbiScheme.button, RoundedCornerShape(4.dp)) ) } } diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryPickPopup.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryPickPopup.kt index 2e06260..a2c4c0b 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryPickPopup.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryPickPopup.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.Button @@ -17,21 +16,16 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.MutableState -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties import com.no5ing.bbibbi.R import com.no5ing.bbibbi.presentation.feature.view.common.AlertDialogContent import com.no5ing.bbibbi.presentation.feature.view.common.AlertDialogFlowRow -import com.no5ing.bbibbi.presentation.feature.view.common.ButtonsCrossAxisSpacing import com.no5ing.bbibbi.presentation.feature.view.common.ButtonsMainAxisSpacing import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryWidgetPopup.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryWidgetPopup.kt index e9b8bab..36dbf5b 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryWidgetPopup.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/TryWidgetPopup.kt @@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.Button diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/UploadCountDownBar.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/UploadCountDownBar.kt index 04c9263..830d70d 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/UploadCountDownBar.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/home/UploadCountDownBar.kt @@ -1,13 +1,9 @@ package com.no5ing.bbibbi.presentation.feature.view.main.home -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -18,10 +14,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.no5ing.bbibbi.R import com.no5ing.bbibbi.presentation.theme.bbibbiScheme import com.no5ing.bbibbi.presentation.theme.bbibbiTypo import com.no5ing.bbibbi.util.gapUntilNext diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload/MissionUploadPage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload/MissionUploadPage.kt index 8989ee1..a1635b9 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload/MissionUploadPage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload/MissionUploadPage.kt @@ -114,7 +114,7 @@ fun MissionUploadPage( ) Spacer(modifier = Modifier.height(48.dp)) UploadMissionDisplayBar( - missionText = if(missionModel.isReady()) missionModel.data.content else "" + missionText = if (missionModel.isReady()) missionModel.data.content else "" ) Spacer(modifier = Modifier.height(16.dp)) PostUploadPageImagePreview( diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt index a690a6e..1812071 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt @@ -196,7 +196,7 @@ fun UploadMissionCamera( ) Spacer(modifier = Modifier.height(48.dp)) UploadMissionDisplayBar( - missionText = if(missionModel.isReady()) missionModel.data.content else "" + missionText = if (missionModel.isReady()) missionModel.data.content else "" ) Spacer(modifier = Modifier.height(16.dp)) UploadMissionPreviewBox( diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionDisplayBar.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionDisplayBar.kt index 2bc37a2..04fee99 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionDisplayBar.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionDisplayBar.kt @@ -34,6 +34,6 @@ fun UploadMissionDisplayBar( text = missionText, style = MaterialTheme.bbibbiTypo.bodyTwoBold, color = MaterialTheme.bbibbiScheme.mainYellow, - ) + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionPreviewBox.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionPreviewBox.kt index 7249961..1e13a8c 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionPreviewBox.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionPreviewBox.kt @@ -1,7 +1,6 @@ package com.no5ing.bbibbi.presentation.feature.view.main.mission_upload_camera import androidx.camera.view.PreviewView -import androidx.compose.foundation.Canvas import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box @@ -14,12 +13,6 @@ 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.geometry.Rect -import androidx.compose.ui.graphics.ClipOp -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Path -import androidx.compose.ui.graphics.SolidColor -import androidx.compose.ui.graphics.drawscope.clipPath import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/post_view/PostViewPage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/post_view/PostViewPage.kt index 32a1251..55abde2 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/post_view/PostViewPage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/post_view/PostViewPage.kt @@ -46,7 +46,6 @@ import com.no5ing.bbibbi.presentation.component.CircleProfileImage import com.no5ing.bbibbi.presentation.feature.state.post.view.PostViewPageState import com.no5ing.bbibbi.presentation.feature.state.post.view.rememberPostViewPageState import com.no5ing.bbibbi.presentation.feature.uistate.family.MainFeedUiState -import com.no5ing.bbibbi.presentation.feature.view_model.mission.GetMissionByIdViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.AddPostReactionViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.FamilyPostViewModel import com.no5ing.bbibbi.presentation.feature.view_model.post.FamilySwipePostsViewModel @@ -151,7 +150,9 @@ fun PostViewPage( model = asyncImagePainter( source = if (postState.isReady()) - if (siblingPostState.isReady()) siblingPostState.data.getOrNull(pagerState.currentPage)?.post?.postImgUrl + if (siblingPostState.isReady()) siblingPostState.data.getOrNull( + pagerState.currentPage + )?.post?.postImgUrl else postState.data.post.imageUrl else null ), @@ -175,7 +176,8 @@ fun PostViewPage( if (postState.isReady()) { if (isPagerReady) { HorizontalPager(state = pagerState) { page -> - val postData = siblingPostState.data.getOrNull(page) ?: return@HorizontalPager + val postData = + siblingPostState.data.getOrNull(page) ?: return@HorizontalPager PostViewBody( onDispose = onDispose, onTapProfile = onTapProfile, @@ -183,7 +185,10 @@ fun PostViewPage( familyPostReactionBarViewModel = familyPostReactionBarViewModel, removePostReactionViewModel = removePostReactionViewModel, addPostReactionViewModel = addPostReactionViewModel, - postData = MainFeedUiState(postData.post.toPost(), postData.writer), + postData = MainFeedUiState( + postData.post.toPost(), + postData.writer + ), postCommentDialogState = postCommentDialogState, missionText = postData.post.missionContent ) diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/profile/ProfilePageContent.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/profile/ProfilePageContent.kt index a5bcd9b..eebca0b 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/profile/ProfilePageContent.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/profile/ProfilePageContent.kt @@ -89,13 +89,14 @@ fun ProfilePageContent( state = pagerState, verticalAlignment = Alignment.Top, ) { - when(it) { + when (it) { 0 -> { SurvivalProfilePageFeed( postItemsState = postItemsState, onTapContent = onTapContent ) } + 1 -> { MissionProfilePageFeed( postItemsState = missionItemState, @@ -103,7 +104,7 @@ fun ProfilePageContent( ) } } - + } } @@ -245,6 +246,7 @@ fun MissionProfilePageFeed( ) } } + @Composable fun ProfilePageContentItem( imageUrl: String, diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/setting_home/SettingHomePage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/setting_home/SettingHomePage.kt index eb55820..25c36d4 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/setting_home/SettingHomePage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/setting_home/SettingHomePage.kt @@ -20,7 +20,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.content.ContextCompat.startActivity import androidx.hilt.navigation.compose.hiltViewModel import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted @@ -151,7 +150,7 @@ fun SettingHomePage( ) }, onTapFormBanner = { - context.openBrowser("https://docs.google.com/forms/d/e/1FAIpQLSeeIRAn45EBU4otZ5y2X4QPA9pCzU1Vw6IaDFF7czSrpgAeRg/viewform") + context.openBrowser("https://docs.google.com/forms/d/e/1FAIpQLSeeIRAn45EBU4otZ5y2X4QPA9pCzU1Vw6IaDFF7czSrpgAeRg/viewform") }, onTapMarketOpen = { context.openMarket() diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_controller/main/HomePageController.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_controller/main/HomePageController.kt index e972870..44de6b5 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_controller/main/HomePageController.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_controller/main/HomePageController.kt @@ -56,14 +56,15 @@ object HomePageController : NavigationDestination( } } LaunchedEffect(postViewTypeState.value) { - if(postViewTypeState.value == PostType.MISSION) { + if (postViewTypeState.value == PostType.MISSION) { //미션 피드 진입 val mainPageState = mainPageViewModel.uiState.value - if(mainPageState.isReady() + if (mainPageState.isReady() && mainPageState.data.isMissionUnlocked && mainPageState.data.isMeSurvivalUploadedToday - && !mainPageState.data.isMeMissionUploadedToday) { - if(mainPageViewModel.isMissionPopupShowable()) + && !mainPageState.data.isMeMissionUploadedToday + ) { + if (mainPageViewModel.isMissionPopupShowable()) isTryMissionPictureDialogVisible = true } } @@ -75,7 +76,7 @@ object HomePageController : NavigationDestination( isPickDialogVisible = false mainPageViewModel.addPickMembersSet(tryPickDialogMember?.memberId ?: "") snackBarHost.showSnackBarWithDismiss( - message = "${tryPickDialogMember?.displayName?:""}님에게 생존신고 알림을 보냈어요", + message = "${tryPickDialogMember?.displayName ?: ""}님에게 생존신고 알림을 보냈어요", actionLabel = snackBarPick, ) pickMemberViewModel.invoke( @@ -155,14 +156,14 @@ object HomePageController : NavigationDestination( && uiValue.data.isMissionUnlocked && !uiValue.data.isMeSurvivalUploadedToday && !uiValue.data.isMeMissionUploadedToday - ) { + ) { isRequireSurvivalDialogVisible = true - } else if(uiValue.isReady() + } else if (uiValue.isReady() && !uiValue.data.isMeMissionUploadedToday && uiValue.data.isMeSurvivalUploadedToday && uiValue.data.isMissionUnlocked && gapUntilNext() > 0 - ) { + ) { //MISSION UPLOAD PAGE navController.goMissionUploadPage() navController.goMissionCameraPage() diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/MainPageViewModel.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/MainPageViewModel.kt index 0d93db2..4f85201 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/MainPageViewModel.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/MainPageViewModel.kt @@ -24,7 +24,7 @@ class MainPageViewModel @Inject constructor( fun isMissionPopupShowable(): Boolean { val today = LocalDate.now() val lastSeen = localDataStorage.getLastWidgetPopupSeenDate() - if(lastSeen == null || lastSeen.isBefore(today)) { + if (lastSeen == null || lastSeen.isBefore(today)) { localDataStorage.setLastWidgetPopupSeenDate(today) return true } diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/FamilySwipePostsViewModel.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/FamilySwipePostsViewModel.kt index d4a92c8..1c9dd7f 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/FamilySwipePostsViewModel.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/FamilySwipePostsViewModel.kt @@ -5,7 +5,6 @@ import com.no5ing.bbibbi.data.datasource.network.RestAPI import com.no5ing.bbibbi.data.model.APIResponse import com.no5ing.bbibbi.data.model.member.Member import com.no5ing.bbibbi.data.repository.Arguments -import com.no5ing.bbibbi.presentation.feature.uistate.family.MainFeedUiState import com.no5ing.bbibbi.presentation.feature.uistate.post.CalendarFeedUiState import com.no5ing.bbibbi.presentation.feature.view_model.BaseViewModel import com.skydoves.sandwich.suspendMapSuccess diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/PostCommentViewModel.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/PostCommentViewModel.kt index 55ad231..ec8796b 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/PostCommentViewModel.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view_model/post/PostCommentViewModel.kt @@ -16,7 +16,6 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted -import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.stateIn import javax.inject.Inject @@ -27,16 +26,17 @@ class PostCommentViewModel @Inject constructor( private val _currentQuery = MutableLiveData() val currentQuery: LiveData = _currentQuery - val commentLiveData: Flow> = currentQuery.switchMap { arguments -> - getCommentsRepository - .fetch(arguments) - .cachedIn(viewModelScope) - .stateIn( - scope = viewModelScope, - started = SharingStarted.WhileSubscribed(5_000), - initialValue = PagingData.empty() - ).asLiveData(Dispatchers.IO) - }.asFlow() + val commentLiveData: Flow> = + currentQuery.switchMap { arguments -> + getCommentsRepository + .fetch(arguments) + .cachedIn(viewModelScope) + .stateIn( + scope = viewModelScope, + started = SharingStarted.WhileSubscribed(5_000), + initialValue = PagingData.empty() + ).asLiveData(Dispatchers.IO) + }.asFlow() override fun initState(): PagingData { return PagingData.empty() diff --git a/app/src/main/java/com/no5ing/bbibbi/util/DateParser.kt b/app/src/main/java/com/no5ing/bbibbi/util/DateParser.kt index 7da1787..120b573 100644 --- a/app/src/main/java/com/no5ing/bbibbi/util/DateParser.kt +++ b/app/src/main/java/com/no5ing/bbibbi/util/DateParser.kt @@ -111,7 +111,7 @@ fun LocalDate.isBirthdayNow(): Boolean { fun formatYearMonth(year: Int, month: Int): String { val isSameYear = year == ZonedDateTime.now().year val currentYearMonth = YearMonth.of(year, month) - return if(isSameYear) + return if (isSameYear) currentYearMonth.format(sameYearMonthFormatter) - else currentYearMonth.format(yearMonthFormatter) + else currentYearMonth.format(yearMonthFormatter) }