From ce08d8159da2e0185b5e4a1b98d779c1645b527a Mon Sep 17 00:00:00 2001 From: JI HUN LEE <51016231+easyhooon@users.noreply.github.com> Date: Fri, 29 Dec 2023 11:28:26 +0900 Subject: [PATCH 1/3] =?UTF-8?q?CompleteScreen=20=EA=B0=80=EB=A1=9C=20?= =?UTF-8?q?=EB=AA=A8=EB=93=9C,=20=ED=83=9C=EB=B8=94=EB=A6=BF=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 가로모드일때 이모지가 ide 에서 보이는 이미지와 다르게 보이는 것은 유감 --- .../feature/complete/CompleteScreen.kt | 80 ++++++++++++++----- 1 file changed, 62 insertions(+), 18 deletions(-) diff --git a/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt b/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt index a30cd567..5f3f1916 100644 --- a/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt +++ b/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt @@ -9,14 +9,19 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.airbnb.lottie.compose.LottieAnimation @@ -28,6 +33,7 @@ import com.nexters.bandalart.android.core.designsystem.theme.Gray50 import com.nexters.bandalart.android.core.ui.ObserveAsEvents import com.nexters.bandalart.android.core.ui.R import com.nexters.bandalart.android.core.ui.component.BandalartButton +import com.nexters.bandalart.android.core.ui.component.EmojiText import com.nexters.bandalart.android.core.ui.component.TitleText import com.nexters.bandalart.android.feature.complete.ui.CompleteBandalart import com.nexters.bandalart.android.feature.complete.ui.CompleteTopBar @@ -71,6 +77,12 @@ internal fun CompleteScreen( modifier: Modifier = Modifier, ) { val context = LocalContext.current + val configuration = LocalConfiguration.current + val screenWidth = configuration.screenWidthDp.dp + val screenHeight = configuration.screenHeightDp.dp + + val isLandscape = screenWidth > screenHeight + val composition by rememberLottieComposition( spec = LottieCompositionSpec.RawRes( com.nexters.bandalart.android.core.designsystem.R.raw.lottie_finish, @@ -101,37 +113,69 @@ internal fun CompleteScreen( modifier = modifier.fillMaxSize(), color = Gray50, ) { - Box { - LottieAnimation( - composition = composition, - progress = { progress }, - modifier = Modifier.align(Alignment.TopCenter), - ) - Column( - Modifier.fillMaxSize(), - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Spacer(modifier = Modifier.height(16.dp)) - CompleteTopBar(onNavigateBack = navigateToHome) - Spacer(modifier = Modifier.height(40.dp)) - TitleText(text = context.getString(R.string.complete_title)) - Box(modifier = Modifier.fillMaxSize()) { + if (isLandscape) { + Box { + Column( + modifier = Modifier + .fillMaxSize() + .verticalScroll(rememberScrollState()), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(modifier = Modifier.height(16.dp)) + CompleteTopBar(onNavigateBack = navigateToHome) + TitleText(text = context.getString(R.string.complete_title)) + Spacer(modifier = Modifier.height(32.dp)) + EmojiText(emojiText = "🥳", fontSize = 100.sp) + Spacer(modifier = Modifier.height(32.dp)) CompleteBandalart( - modifier = Modifier.align(Alignment.Center), uiState = uiState, + modifier = Modifier.width(328.dp), ) + Spacer(modifier = Modifier.height(32.dp)) // MVP 제외 // SaveImageButton(modifier = Modifier.align(Alignment.BottomCenter)) BandalartButton( onClick = shareBandalart, text = context.getString(R.string.complete_share), modifier = Modifier - .fillMaxWidth() - .align(Alignment.BottomCenter) + .width(328.dp) .padding(bottom = 32.dp), ) } } + } else { + Box { + LottieAnimation( + composition = composition, + progress = { progress }, + modifier = Modifier.align(Alignment.TopCenter), + ) + Column( + modifier = Modifier.fillMaxSize(), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(modifier = Modifier.height(16.dp)) + CompleteTopBar(onNavigateBack = navigateToHome) + Spacer(modifier = Modifier.height(40.dp)) + TitleText(text = context.getString(R.string.complete_title)) + Box(modifier = Modifier.fillMaxSize()) { + CompleteBandalart( + modifier = Modifier.align(Alignment.Center), + uiState = uiState, + ) + // MVP 제외 + // SaveImageButton(modifier = Modifier.align(Alignment.BottomCenter)) + BandalartButton( + onClick = shareBandalart, + text = context.getString(R.string.complete_share), + modifier = Modifier + .fillMaxWidth() + .align(Alignment.BottomCenter) + .padding(bottom = 32.dp), + ) + } + } + } } } } From 34c72d2040ac49be067bd422f482fe8fe6957dbe Mon Sep 17 00:00:00 2001 From: JI HUN LEE <51016231+easyhooon@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:14:06 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EA=B0=80=EB=A1=9C=20=EB=AA=A8=EB=93=9C=20?= =?UTF-8?q?=ED=8C=90=EB=8B=A8=20=EB=A1=9C=EC=A7=81=20=EA=B0=84=EB=9E=B5?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bandalart/android/feature/complete/CompleteScreen.kt | 9 +++------ .../android/feature/onboarding/OnBoardingScreen.kt | 6 ++---- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt b/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt index ab230abb..7d3588f0 100644 --- a/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt +++ b/feature/complete/src/main/kotlin/com/nexters/bandalart/android/feature/complete/CompleteScreen.kt @@ -1,6 +1,7 @@ package com.nexters.bandalart.android.feature.complete import android.content.Intent +import android.content.res.Configuration import android.widget.Toast import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -79,10 +80,6 @@ internal fun CompleteScreen( ) { val context = LocalContext.current val configuration = LocalConfiguration.current - val screenWidth = configuration.screenWidthDp.dp - val screenHeight = configuration.screenHeightDp.dp - - val isLandscape = screenWidth > screenHeight val composition by rememberLottieComposition( spec = LottieCompositionSpec.RawRes( @@ -114,7 +111,7 @@ internal fun CompleteScreen( modifier = modifier.fillMaxSize(), color = Gray50, ) { - if (isLandscape) { + if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) { Box { Column( modifier = Modifier @@ -131,7 +128,7 @@ internal fun CompleteScreen( CompleteBandalart( profileEmoji = uiState.profileEmoji, title = uiState.title, - modifier = Modifier.align(Alignment.Center), + modifier = Modifier.width(328.dp), ) Spacer(modifier = Modifier.height(32.dp)) // MVP 제외 diff --git a/feature/onboarding/src/main/kotlin/com/nexters/bandalart/android/feature/onboarding/OnBoardingScreen.kt b/feature/onboarding/src/main/kotlin/com/nexters/bandalart/android/feature/onboarding/OnBoardingScreen.kt index d9eed3e2..79376240 100644 --- a/feature/onboarding/src/main/kotlin/com/nexters/bandalart/android/feature/onboarding/OnBoardingScreen.kt +++ b/feature/onboarding/src/main/kotlin/com/nexters/bandalart/android/feature/onboarding/OnBoardingScreen.kt @@ -2,6 +2,7 @@ package com.nexters.bandalart.android.feature.onboarding +import android.content.res.Configuration import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -78,9 +79,6 @@ internal fun OnBoardingScreen( val context = LocalContext.current val currentLocale = context.getCurrentLocale() val configuration = LocalConfiguration.current - val screenWidth = configuration.screenWidthDp.dp - val screenHeight = configuration.screenHeightDp.dp - val isLandscape = screenWidth > screenHeight val composition by rememberLottieComposition( spec = LottieCompositionSpec.RawRes( @@ -207,7 +205,7 @@ internal fun OnBoardingScreen( } } } - if (isLandscape) { + if (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) { BandalartButton( onClick = { setOnboardingCompletedStatus(true) }, text = context.getString(R.string.onboarding_start), From b2d5a6bdf824713ac301db385cc3787395068b27 Mon Sep 17 00:00:00 2001 From: JI HUN LEE <51016231+easyhooon@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:21:25 +0900 Subject: [PATCH 3/3] =?UTF-8?q?DevicePreview=20Portrait,=20Landscape=20?= =?UTF-8?q?=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Galaxy 23, Galaxy 23 Ultra 두 기종의 크기가 유의미하게 다르지 않으므로, 디바이스의 세로모드, 가로모드 확인용 preview 로 devicePreview annotation class 를 변경 --- .../nexters/bandalart/android/core/ui/DevicePreview.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/ui/src/main/kotlin/com/nexters/bandalart/android/core/ui/DevicePreview.kt b/core/ui/src/main/kotlin/com/nexters/bandalart/android/core/ui/DevicePreview.kt index 68b9f459..2c9f16a8 100644 --- a/core/ui/src/main/kotlin/com/nexters/bandalart/android/core/ui/DevicePreview.kt +++ b/core/ui/src/main/kotlin/com/nexters/bandalart/android/core/ui/DevicePreview.kt @@ -3,13 +3,13 @@ package com.nexters.bandalart.android.core.ui import androidx.compose.ui.tooling.preview.Preview @Preview( - name = "Galaxy S23 Ultra", + name = "Portrait", showBackground = true, - device = "spec:width=360dp,height=772dp,dpi=411", + device = "spec:width=360dp,height=800dp,dpi=411", ) @Preview( - name = "Galaxy S23", + name = "Landscape", showBackground = true, - device = "spec:width=360dp,height=800dp,dpi=500", + device = "spec:width=800dp,height=360dp,dpi=411", ) annotation class DevicePreview