From 5013a979e8771631bd7bf9cb1a5e9afc4b34e49a Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 16:04:03 +0900 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=ED=95=84=20qa=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flint/android/presentation/profile/ProfileScreen.kt | 2 +- .../profile/component/ProfileKeywordSection.kt | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/profile/ProfileScreen.kt b/app/src/main/java/com/flint/android/presentation/profile/ProfileScreen.kt index d8f689dd..d6354025 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/ProfileScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/ProfileScreen.kt @@ -277,7 +277,7 @@ private fun ProfileScreen( Icon( imageVector = ImageVector.vectorResource(R.drawable.ic_setting), contentDescription = "설정", - tint = FlintTheme.colors.white, + tint = FlintTheme.colors.gray200, modifier = Modifier.flintIconClickable { onSettingsClick() }, ) } diff --git a/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt b/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt index efdf9416..4b22e344 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt @@ -94,10 +94,9 @@ fun ProfileKeywordSection( color = FlintTheme.colors.gray100, ) } - if (isMyProfile) { + if (isMyProfile && isRecalculatable) { ProfileRefreshButton( onRefreshClick = onRefreshClick, - isEnabled = isRecalculatable, isRecalculating = isRecalculating, ) } @@ -129,11 +128,10 @@ fun ProfileKeywordSection( @Composable private fun ProfileRefreshButton( onRefreshClick: () -> Unit, - isEnabled: Boolean, isRecalculating: Boolean = false, modifier: Modifier = Modifier, ) { - val iconTint = if (isEnabled) FlintTheme.colors.secondary400 else FlintTheme.colors.gray400 + val iconTint = FlintTheme.colors.secondary400 val infiniteTransition = rememberInfiniteTransition(label = "refresh_rotation") val rotation by infiniteTransition.animateFloat( @@ -149,7 +147,7 @@ private fun ProfileRefreshButton( verticalArrangement = Arrangement.spacedBy(4.dp), horizontalAlignment = Alignment.CenterHorizontally, modifier = modifier.flintIconClickable( - onClick = { if (isEnabled && !isRecalculating) onRefreshClick() }, + onClick = { if (!isRecalculating) onRefreshClick() }, ), ) { Icon( From dba6ed7cf9e02a6e4d0c14b209761cdc4166bc3d Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 16:07:49 +0900 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20OTT=20=EC=A0=95=EB=B3=B4=20=EB=85=B8?= =?UTF-8?q?=EC=B6=9C=20=EC=B2=98=EB=A6=AC=20qa=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/CollectionCreateContentBookmark.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/profile/component/CollectionCreateContentBookmark.kt b/app/src/main/java/com/flint/android/presentation/profile/component/CollectionCreateContentBookmark.kt index c66725df..08c685aa 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/component/CollectionCreateContentBookmark.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/component/CollectionCreateContentBookmark.kt @@ -69,6 +69,7 @@ fun CollectionCreateContentBookmark( title = title, director = director, createdYear = createdYear, + ottList = ottList, onMoreClick = onMoreClick, modifier = Modifier @@ -114,6 +115,7 @@ private fun CollectionCreateContentBookmarkInfo( title: String, director: String, createdYear: Int, + ottList: List, onMoreClick: () -> Unit, modifier: Modifier = Modifier, ) { @@ -147,9 +149,11 @@ private fun CollectionCreateContentBookmarkInfo( Spacer(modifier = Modifier.weight(1f)) - CollectionCreateContentBookmarkMore( - onClick = onMoreClick, - ) + if (ottList.isNotEmpty()) { + CollectionCreateContentBookmarkMore( + onClick = onMoreClick, + ) + } } } From f5f8ce459c15aeedec0af37f81766a903ed8141d Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 16:26:27 +0900 Subject: [PATCH 3/8] =?UTF-8?q?feat:=20=EB=82=B4=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=ED=95=84=20=EB=B6=81=EB=A7=88=ED=81=AC=20=EC=B7=A8=EC=86=8C=20?= =?UTF-8?q?=EC=8B=9C=20=EB=AA=A9=EB=A1=9D=EC=97=90=EC=84=9C=20=EC=A6=89?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=9C=EA=B1=B0=EB=90=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/profile/ProfileViewModel.kt | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt index 9c0c21e0..a4f9f695 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt @@ -56,12 +56,27 @@ class ProfileViewModel @Inject constructor( val data = (state.sectionData as? UiState.Success)?.data ?: return@update state val updated = when (change) { is BookmarkChange.Content -> { - // 내 프로필 / 타 유저 공통: isBookmarked 토글만, 목록에서 제거하지 않음 - val updatedContents = data.savedContents.copy( - contents = data.savedContents.contents - .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } - .toPersistentList() - ) + val updatedContents = if (userId == null) { + // 내 프로필: 북마크 취소 시 목록에서 제거 + if (change.isBookmarked) { + data.savedContents + } else { + val filtered = data.savedContents.contents + .filter { it.id != change.id } + .toPersistentList() + data.savedContents.copy( + totalCount = maxOf(0, data.savedContents.totalCount - 1), + contents = filtered, + ) + } + } else { + // 타 유저 프로필: isBookmarked 토글만 (상대방 목록에서 제거 X) + data.savedContents.copy( + contents = data.savedContents.contents + .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } + .toPersistentList() + ) + } data.copy(savedContents = updatedContents) } is BookmarkChange.Collection -> { From 426aa8782058ae930c2ad774843bbcba65de98ed Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 16:37:35 +0900 Subject: [PATCH 4/8] =?UTF-8?q?fix:=20=ED=8F=B4=EB=8D=94=20qa=20=EB=B0=98?= =?UTF-8?q?=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/drawable/img_folder_fg.png | Bin 12115 -> 184743 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/src/main/res/drawable/img_folder_fg.png b/app/src/main/res/drawable/img_folder_fg.png index dc732c91b1a2e8083dd8a542c4eb875772192ff7..c9ffa51b094b806b690b00fc3a578e583a52614d 100644 GIT binary patch literal 184743 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 N9H6hL2kDC?nOef}W2QF!(zB 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 FV1kig3=RMQ literal 12115 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 From 063ab6044933cf782a99ee194157390b82a1fcbf Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 16:55:44 +0900 Subject: [PATCH 5/8] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=97=85=EB=A1=9C=EB=93=9C=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/OnboardingViewModel.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt index 905b310b..452150e8 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt @@ -335,18 +335,20 @@ class OnboardingViewModel viewModelScope.launch { _signupUiState.update { it.copy(signupState = UiState.Loading) } - val profileImageUrl = uploadProfileImageIfNeeded() - + // 프로필 이미지 presigned URL 발급 API는 인증(Access Token)이 필요한데, + // 회원가입 전에는 Access Token이 없어 항상 403이 발생한다. + // 따라서 이미지 업로드는 회원가입으로 계정을 만들고 토큰을 발급받은 뒤에 진행한다. val signupRequest = SignupRequestModel( tempToken = tempToken, nickname = _uiState.value.nickname, favoriteContentIds = _contentUiState.value.selectedContents.map { it.id }, agreedTermsIds = _termsUiState.value.agreedTermsIds, - profileImageUrl = profileImageUrl, + profileImageUrl = null, ) authRepository.signup(signupRequest) .onSuccess { response -> + uploadProfileImageIfNeeded() _signupUiState.update { it.copy(signupState = UiState.Success(Unit)) } Timber.d("Signup success: userId=${response.userId}") } @@ -357,8 +359,8 @@ class OnboardingViewModel } } - private suspend fun uploadProfileImageIfNeeded(): String? { - val uri = _uiState.value.profileImageUri ?: return null + private suspend fun uploadProfileImageIfNeeded() { + val uri = _uiState.value.profileImageUri ?: return val mimeType = withContext(Dispatchers.IO) { context.contentResolver.getType(uri) @@ -370,12 +372,12 @@ class OnboardingViewModel extension = extension, ).getOrElse { error -> Timber.e(error, "Failed to get presigned URL") - return null + return } val imageBytes = withContext(Dispatchers.IO) { context.contentResolver.openInputStream(uri)?.use { it.readBytes() } - } ?: return null + } ?: return storageRepository.uploadToS3( uploadUrl = presignedUrl.uploadUrl, @@ -383,10 +385,11 @@ class OnboardingViewModel mimeType = mimeType, ).getOrElse { error -> Timber.e(error, "Failed to upload profile image to S3") - return null + return } - return presignedUrl.key + userRepository.updateProfileImage(presignedUrl.key) + .onFailure { error -> Timber.e(error, "Failed to update profile image after signup") } } private fun mimeTypeToFileExtension(mimeType: String): FileExtension = when (mimeType) { From 837315b904c620b5089b422757108f615087d71d Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 17:09:11 +0900 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EC=84=A4=EC=A0=95=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=EC=9D=98=20=ED=82=A4=EB=B3=B4=EB=93=9C=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91=20=EB=B0=8F=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/OnboardingProfileScreen.kt | 156 ++++++++++-------- 1 file changed, 84 insertions(+), 72 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt index 8a72ff7e..76efe0e5 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt @@ -147,93 +147,105 @@ fun OnboardingProfileScreen( modifier = Modifier .fillMaxSize() .background(color = FlintTheme.colors.background) - .imePadding() ) { - FlintBackTopAppbar( - onClick = onBackClick, - ) - + // "다음" 버튼은 키보드와 무관하게 화면 하단에 고정되어야 하므로, + // 키보드를 따라 올라와야 하는 상단(탑바 + 입력 영역)만 imePadding으로 감싼다. Column( modifier = Modifier .weight(1f) - .padding(horizontal = 16.dp), - horizontalAlignment = Alignment.CenterHorizontally, + .imePadding(), ) { - - EditProfileImage( - imageUrl = profileImageUri?.toString() ?: "", - onEditClick = { showProfileBottomSheet = true } - ) - - Spacer(modifier = Modifier.height(24.dp)) - - Text( - text = "어떤 이름으로 불러드릴까요?", - color = FlintTheme.colors.white, - style = FlintTheme.typography.head3M18, - modifier = Modifier.fillMaxWidth(), + FlintBackTopAppbar( + onClick = onBackClick, ) - Spacer(modifier = Modifier.height(12.dp)) - - Row( + Column( modifier = Modifier - .fillMaxWidth() - .height(40.dp), - horizontalArrangement = Arrangement.spacedBy(8.dp), - verticalAlignment = Alignment.CenterVertically, + .weight(1f) + .padding(horizontal = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, ) { - FlintBasicTextField( - modifier = Modifier - .weight(1f) - .fillMaxHeight(), - placeholder = "닉네임", - value = nickname, - singleLine = true, - maxLines = 1, - maxLength = OnboardingProfileUiState.MAX_LENGTH, - onValueChange = onNicknameChange, - borderColor = if (!isFormatValid || isNicknameAvailable == false) { - FlintTheme.colors.error500 - } else { - Color.Unspecified - }, - trailingContent = { - Text( - text = "${nickname.graphemeLength}/${OnboardingProfileUiState.MAX_LENGTH}", - style = FlintTheme.typography.body1R16, - color = FlintTheme.colors.gray300, - ) - }, + EditProfileImage( + imageUrl = profileImageUri?.toString() ?: "", + onEditClick = { + // 닉네임 입력 중 키보드가 떠 있는 상태에서 바텀시트가 같이 올라오면 + // 키보드가 내려가는 애니메이션과 겹쳐 붕 뜬 것처럼 보이는 문제가 있어 + // 키보드부터 내리고 바텀시트를 띄운다. + keyboardController?.hide() + showProfileBottomSheet = true + } ) - val checkInteractionSource = remember { MutableInteractionSource() } + Spacer(modifier = Modifier.height(24.dp)) + + Text( + text = "어떤 이름으로 불러드릴까요?", + color = FlintTheme.colors.white, + style = FlintTheme.typography.head3M18, + modifier = Modifier.fillMaxWidth(), + ) - Box( + Spacer(modifier = Modifier.height(12.dp)) + + Row( modifier = Modifier - .fillMaxHeight() - .pressScale(checkInteractionSource, enabled = canCheckNickname) - .clip(RoundedCornerShape(8.dp)) - .background( - if (canCheckNickname) FlintTheme.colors.primary400 - else FlintTheme.colors.gray700 - ) - .pressClickable( - interactionSource = checkInteractionSource, - enabled = canCheckNickname, - role = Role.Button, - ) { - keyboardController?.hide() - onCheckNickname() - } - .padding(horizontal = 16.dp, vertical = 10.dp), - contentAlignment = Alignment.Center, + .fillMaxWidth() + .height(40.dp), + horizontalArrangement = Arrangement.spacedBy(8.dp), + verticalAlignment = Alignment.CenterVertically, ) { - Text( - text = "확인", - color = if (canCheckNickname) FlintTheme.colors.white else FlintTheme.colors.gray400, - style = if (canCheckNickname) FlintTheme.typography.body1Sb16 else FlintTheme.typography.body1M16, + FlintBasicTextField( + modifier = Modifier + .weight(1f) + .fillMaxHeight(), + placeholder = "닉네임", + value = nickname, + singleLine = true, + maxLines = 1, + maxLength = OnboardingProfileUiState.MAX_LENGTH, + onValueChange = onNicknameChange, + borderColor = if (!isFormatValid || isNicknameAvailable == false) { + FlintTheme.colors.error500 + } else { + Color.Unspecified + }, + trailingContent = { + Text( + text = "${nickname.graphemeLength}/${OnboardingProfileUiState.MAX_LENGTH}", + style = FlintTheme.typography.body1R16, + color = FlintTheme.colors.gray300, + ) + }, ) + + val checkInteractionSource = remember { MutableInteractionSource() } + + Box( + modifier = Modifier + .fillMaxHeight() + .pressScale(checkInteractionSource, enabled = canCheckNickname) + .clip(RoundedCornerShape(8.dp)) + .background( + if (canCheckNickname) FlintTheme.colors.primary400 + else FlintTheme.colors.gray700 + ) + .pressClickable( + interactionSource = checkInteractionSource, + enabled = canCheckNickname, + role = Role.Button, + ) { + keyboardController?.hide() + onCheckNickname() + } + .padding(horizontal = 16.dp, vertical = 10.dp), + contentAlignment = Alignment.Center, + ) { + Text( + text = "확인", + color = if (canCheckNickname) FlintTheme.colors.white else FlintTheme.colors.gray400, + style = if (canCheckNickname) FlintTheme.typography.body1Sb16 else FlintTheme.typography.body1M16, + ) + } } } } From af340f31bbf2a4fd431007a709858d6582b18377 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 25 Aug 2026 17:39:03 +0900 Subject: [PATCH 7/8] =?UTF-8?q?feat:=20=EC=BD=94=EB=93=9C=EB=9E=98?= =?UTF-8?q?=EB=B9=97=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/OnboardingProfileScreen.kt | 27 ++++++++++++++----- .../onboarding/OnboardingViewModel.kt | 11 ++++++-- .../presentation/profile/ProfileViewModel.kt | 8 +++++- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt index 76efe0e5..72cdc102 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt @@ -16,8 +16,11 @@ 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.WindowInsets import androidx.compose.foundation.layout.consumeWindowInsets +import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.imePadding +import androidx.compose.foundation.layout.isImeVisible import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -112,7 +115,7 @@ fun OnboardingProfileRoute( ) } -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @Composable fun OnboardingProfileScreen( nickname: String, @@ -135,6 +138,15 @@ fun OnboardingProfileScreen( ) { val keyboardController = LocalSoftwareKeyboardController.current var showProfileBottomSheet by remember { mutableStateOf(false) } + var pendingProfileBottomSheet by remember { mutableStateOf(false) } + val imeVisible = WindowInsets.isImeVisible + + LaunchedEffect(imeVisible) { + if (pendingProfileBottomSheet && !imeVisible) { + pendingProfileBottomSheet = false + showProfileBottomSheet = true + } + } val galleryLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.PickVisualMedia() @@ -168,11 +180,14 @@ fun OnboardingProfileScreen( EditProfileImage( imageUrl = profileImageUri?.toString() ?: "", onEditClick = { - // 닉네임 입력 중 키보드가 떠 있는 상태에서 바텀시트가 같이 올라오면 - // 키보드가 내려가는 애니메이션과 겹쳐 붕 뜬 것처럼 보이는 문제가 있어 - // 키보드부터 내리고 바텀시트를 띄운다. - keyboardController?.hide() - showProfileBottomSheet = true + // 키보드가 떠 있으면 먼저 내리고, 완전히 내려간 뒤(위 LaunchedEffect)에 + // 바텀시트를 띄운다. 키보드가 이미 없으면 바로 띄운다. + if (imeVisible) { + keyboardController?.hide() + pendingProfileBottomSheet = true + } else { + showProfileBottomSheet = true + } } ) diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt index 452150e8..f8deb1b0 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt @@ -375,8 +375,15 @@ class OnboardingViewModel return } - val imageBytes = withContext(Dispatchers.IO) { - context.contentResolver.openInputStream(uri)?.use { it.readBytes() } + val imageBytes = runCatching { + withContext(Dispatchers.IO) { + context.contentResolver.openInputStream(uri)?.use { it.readBytes() } + } + }.getOrElse { error -> + // 파일 스트림을 여는/읽는 도중 예외가 나면 회원가입 자체를 실패로 만들지 않도록 + // 여기서 잡아서 이미지 업로드만 건너뛴다. + Timber.e(error, "Failed to read profile image bytes") + return } ?: return storageRepository.uploadToS3( diff --git a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt index a4f9f695..6c195a1f 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt @@ -61,11 +61,17 @@ class ProfileViewModel @Inject constructor( if (change.isBookmarked) { data.savedContents } else { + val hadItem = data.savedContents.contents.any { it.id == change.id } val filtered = data.savedContents.contents .filter { it.id != change.id } .toPersistentList() data.savedContents.copy( - totalCount = maxOf(0, data.savedContents.totalCount - 1), + // 목록에 없던 항목까지 감소시키면 totalCount와 실제 목록이 어긋나므로, 실제로 제거된 경우에만 감소시킨다. + totalCount = if (hadItem) { + maxOf(0, data.savedContents.totalCount - 1) + } else { + data.savedContents.totalCount + }, contents = filtered, ) } From e913857324a1440ed5f6024dd10aab0bf293d040 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Thu, 27 Aug 2026 16:43:59 +0900 Subject: [PATCH 8/8] =?UTF-8?q?feat:=20=EC=BD=94=EB=93=9C=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/mapper/content/ContentMapper.kt | 5 +- .../domain/repository/CollectionRepository.kt | 19 ++- .../domain/repository/ProfileImageUploader.kt | 55 ++++++ .../collectionlist/CollectionListScreen.kt | 11 +- .../collectionlist/CollectionListViewModel.kt | 20 +++ .../uistate/CollectionListUiState.kt | 2 + .../onboarding/OnboardingProfileScreen.kt | 38 +++-- .../onboarding/OnboardingViewModel.kt | 53 +----- .../presentation/profile/ProfileViewModel.kt | 159 ++++++++++++------ .../profile/SavedContentScreen.kt | 8 +- .../profile/SavedContentViewModel.kt | 46 +++-- .../component/ProfileKeywordSection.kt | 5 +- .../setting/editprofile/EditProfileScreen.kt | 35 +++- .../editprofile/EditProfileViewModel.kt | 52 +----- 14 files changed, 321 insertions(+), 187 deletions(-) create mode 100644 app/src/main/java/com/flint/android/domain/repository/ProfileImageUploader.kt diff --git a/app/src/main/java/com/flint/android/domain/mapper/content/ContentMapper.kt b/app/src/main/java/com/flint/android/domain/mapper/content/ContentMapper.kt index d3ec389d..81adc604 100644 --- a/app/src/main/java/com/flint/android/domain/mapper/content/ContentMapper.kt +++ b/app/src/main/java/com/flint/android/domain/mapper/content/ContentMapper.kt @@ -9,6 +9,7 @@ import com.flint.android.domain.model.content.BookmarkedContentListModel import com.flint.android.domain.model.content.ContentModel import com.flint.android.domain.type.OttType import kotlinx.collections.immutable.toImmutableList +import timber.log.Timber // /api/v1/users/{userId}/bookmarked-contents (타 유저) fun BookmarkedContentListResponseDto.toModel() : BookmarkedContentListModel { @@ -27,7 +28,9 @@ fun BookmarkedContentResponseDto.toModel() : BookmarkedContentItemModel { bookmarkCount = bookmarkCount, isBookmarked = isBookmarked, getOttSimpleList = getOttSimpleList.mapNotNull { ottSimple -> - runCatching { OttType.valueOf(ottSimple.ottName) }.getOrNull() + runCatching { OttType.valueOf(ottSimple.ottName) } + .onFailure { Timber.w("Unknown OTT name from server: ${ottSimple.ottName}") } + .getOrNull() } ) } diff --git a/app/src/main/java/com/flint/android/domain/repository/CollectionRepository.kt b/app/src/main/java/com/flint/android/domain/repository/CollectionRepository.kt index 4a38a0bd..9aa04739 100644 --- a/app/src/main/java/com/flint/android/domain/repository/CollectionRepository.kt +++ b/app/src/main/java/com/flint/android/domain/repository/CollectionRepository.kt @@ -12,10 +12,20 @@ import com.flint.android.domain.model.collection.CollectionListModel import com.flint.android.domain.model.collection.CollectionReportRequestModel import com.flint.android.domain.model.collection.CollectionsModel import javax.inject.Inject +import javax.inject.Singleton +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.asSharedFlow +@Singleton class CollectionRepository @Inject constructor( private val apiService: CollectionApi, ) { + // 컬렉션 삭제 시 발생하는 전역 이벤트 (삭제된 collectionId). + // 컬렉션 상세에서 삭제해도 이전 depth의 목록(생성한 컬렉션 리스트, MY 프로필 등)에 + // 즉시 반영되도록 구독한다. + private val _collectionDeletions = MutableSharedFlow() + val collectionDeletions = _collectionDeletions.asSharedFlow() + // 컬렉션 목록 조회 (페이지네이션) suspend fun getCollections(cursor: Long?, size: Int): Result = suspendRunCatching { @@ -54,11 +64,16 @@ class CollectionRepository @Inject constructor( } // 컬렉션 삭제 - suspend fun deleteCollection(collectionId: String): Result = - suspendRunCatching { + suspend fun deleteCollection(collectionId: String): Result { + val result = suspendRunCatching { apiService.deleteCollection(collectionId) Unit } + if (result.isSuccess) { + _collectionDeletions.emit(collectionId) + } + return result + } // 최근 본 컬렉션 목록 조회 suspend fun getRecentCollectionList(): Result = diff --git a/app/src/main/java/com/flint/android/domain/repository/ProfileImageUploader.kt b/app/src/main/java/com/flint/android/domain/repository/ProfileImageUploader.kt new file mode 100644 index 00000000..a39ff967 --- /dev/null +++ b/app/src/main/java/com/flint/android/domain/repository/ProfileImageUploader.kt @@ -0,0 +1,55 @@ +package com.flint.android.domain.repository + +import android.content.Context +import android.net.Uri +import com.flint.android.core.common.util.suspendRunCatching +import com.flint.android.domain.type.FileExtension +import com.flint.android.domain.type.StoragePathType +import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import javax.inject.Inject + +// 온보딩(회원가입)과 프로필 수정 화면에서 공통으로 쓰는 +// "이미지 읽기 -> presigned URL 발급 -> S3 업로드 -> 서버에 반영" 흐름을 한 곳에 모아둔다. +class ProfileImageUploader @Inject constructor( + @ApplicationContext private val context: Context, + private val storageRepository: StorageRepository, + private val userRepository: UserRepository, +) { + suspend fun upload(uri: Uri): Result { + val (mimeType, imageBytes) = suspendRunCatching { + withContext(Dispatchers.IO) { + val resolvedMimeType = context.contentResolver.getType(uri) ?: "image/jpeg" + val bytes = context.contentResolver.openInputStream(uri)?.use { it.readBytes() } + resolvedMimeType to bytes + } + }.getOrElse { error -> return Result.failure(error) } + + if (imageBytes == null) { + return Result.failure(IllegalStateException("Failed to open image stream")) + } + + val extension = mimeTypeToFileExtension(mimeType) + + val presignedUrl = storageRepository.getPresignedUrl( + pathType = StoragePathType.USER_PROFILE, + extension = extension, + ).getOrElse { error -> return Result.failure(error) } + + storageRepository.uploadToS3( + uploadUrl = presignedUrl.uploadUrl, + imageBytes = imageBytes, + mimeType = mimeType, + ).getOrElse { error -> return Result.failure(error) } + + return userRepository.updateProfileImage(presignedUrl.key) + } + + private fun mimeTypeToFileExtension(mimeType: String): FileExtension = when (mimeType) { + "image/png" -> FileExtension.PNG + "image/gif" -> FileExtension.GIF + "image/webp" -> FileExtension.WEBP + else -> FileExtension.JPEG + } +} diff --git a/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListScreen.kt b/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListScreen.kt index e55aeb2a..ad34b975 100644 --- a/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListScreen.kt @@ -56,6 +56,7 @@ fun CollectionListRoute( CollectionListScreen( modifier = Modifier.padding(paddingValues), title = uiState.appbarTitle, + routeType = uiState.routeType, onBackClick = navigateUp, onCollectionItemClick = navigateToCollectionDetail, onBookmarkClick = viewModel::toggleCollectionBookmark, @@ -109,6 +110,7 @@ fun CollectionListRoute( private fun CollectionListScreen( onBackClick: () -> Unit, title: String, + routeType: CollectionListRouteType, collectionList: UiState, onCollectionItemClick: (collectionId: String) -> Unit, onBookmarkClick: (collectionId: String) -> Unit, @@ -145,8 +147,14 @@ private fun CollectionListScreen( ) { Spacer(Modifier.height(12.dp)) + val displayCount = if (routeType == CollectionListRouteType.SAVED) { + collections.count { it.isBookmarked } + } else { + collections.size + } + Text( - text = "총 ${collections.size}개", + text = "총 ${displayCount}개", color = FlintTheme.colors.gray100, modifier = Modifier @@ -207,6 +215,7 @@ private fun CollectionListScreenPreview() { CollectionListScreen( onBackClick = {}, title = "전체 컬렉션", + routeType = CollectionListRouteType.CREATED, collectionList = UiState.Success(CollectionListModel.FakeList), onCollectionItemClick = {}, onBookmarkClick = {}, diff --git a/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListViewModel.kt b/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListViewModel.kt index 85bff31b..404d81e9 100644 --- a/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/collectionlist/CollectionListViewModel.kt @@ -48,7 +48,27 @@ class CollectionListViewModel @Inject constructor( init { val routeReceiveData = savedStateHandle.toRoute() setAppBarTitle(routeReceiveData.routeType.title) + _uiState.update { it.copy(routeType = routeReceiveData.routeType) } getCollectionList(routeReceiveData) + observeCollectionDeletions() + } + + // 컬렉션 상세 등 다른 화면에서 컬렉션을 삭제해도 이 목록에 즉시 반영되도록 구독한다. + private fun observeCollectionDeletions() { + viewModelScope.launch { + collectionRepository.collectionDeletions.collect { deletedCollectionId -> + _uiState.update { currentState -> + val collectionList = currentState.collectionList + if (collectionList !is UiState.Success) return@update currentState + + val filtered = collectionList.data.collections + .filter { it.id != deletedCollectionId } + .toImmutableList() + + currentState.copy(collectionList = UiState.Success(CollectionListModel(collections = filtered))) + } + } + } } private fun setAppBarTitle(title: String) { diff --git a/app/src/main/java/com/flint/android/presentation/collectionlist/uistate/CollectionListUiState.kt b/app/src/main/java/com/flint/android/presentation/collectionlist/uistate/CollectionListUiState.kt index 6e6f1c3a..7c6ad70b 100644 --- a/app/src/main/java/com/flint/android/presentation/collectionlist/uistate/CollectionListUiState.kt +++ b/app/src/main/java/com/flint/android/presentation/collectionlist/uistate/CollectionListUiState.kt @@ -1,9 +1,11 @@ package com.flint.android.presentation.collectionlist.uistate import com.flint.android.core.common.util.UiState +import com.flint.android.core.navigation.model.CollectionListRouteType import com.flint.android.domain.model.collection.CollectionListModel data class CollectionListUiState( val appbarTitle: String = "", + val routeType: CollectionListRouteType = CollectionListRouteType.CREATED, val collectionList: UiState = UiState.Loading ) \ No newline at end of file diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt index 72cdc102..9f39fbe7 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingProfileScreen.kt @@ -9,17 +9,16 @@ import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.consumeWindowInsets 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.WindowInsets -import androidx.compose.foundation.layout.consumeWindowInsets -import androidx.compose.foundation.layout.ExperimentalLayoutApi -import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.isImeVisible import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding @@ -32,6 +31,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -59,6 +59,7 @@ import com.flint.android.core.designsystem.interaction.pressClickable import com.flint.android.core.designsystem.interaction.pressScale import com.flint.android.core.designsystem.theme.FlintTheme import com.flint.android.presentation.onboarding.event.OnboardingProfileEvent +import kotlinx.coroutines.delay @Composable fun OnboardingProfileRoute( @@ -137,13 +138,25 @@ fun OnboardingProfileScreen( modifier: Modifier = Modifier, ) { val keyboardController = LocalSoftwareKeyboardController.current - var showProfileBottomSheet by remember { mutableStateOf(false) } - var pendingProfileBottomSheet by remember { mutableStateOf(false) } + var showProfileBottomSheet by rememberSaveable { mutableStateOf(false) } + // 0이면 대기 중인 요청이 없다는 뜻. 클릭할 때마다 증가시켜서, 이전 요청과 새 요청을 + // 구분하고(회전 등 config change에도 rememberSaveable로 값이 유지된다). + var pendingBottomSheetToken by rememberSaveable { mutableStateOf(0) } val imeVisible = WindowInsets.isImeVisible - LaunchedEffect(imeVisible) { - if (pendingProfileBottomSheet && !imeVisible) { - pendingProfileBottomSheet = false + LaunchedEffect(pendingBottomSheetToken, imeVisible) { + val token = pendingBottomSheetToken + if (token == 0) return@LaunchedEffect + + if (imeVisible) { + // 키보드가 내려갔다는 신호(WindowInsets.isImeVisible == false)가 오지 않는 + // 기기(하드웨어 키보드 등)를 대비해, 일정 시간 뒤에는 강제로 바텀시트를 띄운다. + delay(300) + } + + // delay 도중 새 클릭이 들어와 token이 바뀌었다면 그 요청은 무시한다. + if (pendingBottomSheetToken == token) { + pendingBottomSheetToken = 0 showProfileBottomSheet = true } } @@ -160,12 +173,9 @@ fun OnboardingProfileScreen( .fillMaxSize() .background(color = FlintTheme.colors.background) ) { - // "다음" 버튼은 키보드와 무관하게 화면 하단에 고정되어야 하므로, - // 키보드를 따라 올라와야 하는 상단(탑바 + 입력 영역)만 imePadding으로 감싼다. Column( modifier = Modifier - .weight(1f) - .imePadding(), + .weight(1f), ) { FlintBackTopAppbar( onClick = onBackClick, @@ -184,7 +194,7 @@ fun OnboardingProfileScreen( // 바텀시트를 띄운다. 키보드가 이미 없으면 바로 띄운다. if (imeVisible) { keyboardController?.hide() - pendingProfileBottomSheet = true + pendingBottomSheetToken += 1 } else { showProfileBottomSheet = true } diff --git a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt index f8deb1b0..cadd530c 100644 --- a/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/onboarding/OnboardingViewModel.kt @@ -1,6 +1,5 @@ package com.flint.android.presentation.onboarding -import android.content.Context import android.net.Uri import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel @@ -11,18 +10,14 @@ import com.flint.android.core.navigation.Route import com.flint.android.domain.model.auth.SignupRequestModel import com.flint.android.domain.model.search.SearchContentItemModel import com.flint.android.domain.repository.AuthRepository +import com.flint.android.domain.repository.ProfileImageUploader import com.flint.android.domain.repository.SearchRepository -import com.flint.android.domain.repository.StorageRepository import com.flint.android.domain.repository.TermsRepository import com.flint.android.domain.repository.UserRepository -import com.flint.android.domain.type.FileExtension import com.flint.android.domain.type.OttType -import com.flint.android.domain.type.StoragePathType import com.flint.android.presentation.onboarding.event.OnboardingProfileEvent import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.collections.immutable.toImmutableList -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -31,18 +26,16 @@ import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import timber.log.Timber import javax.inject.Inject @HiltViewModel class OnboardingViewModel @Inject constructor( - @ApplicationContext private val context: Context, private val userRepository: UserRepository, private val searchRepository: SearchRepository, private val authRepository: AuthRepository, - private val storageRepository: StorageRepository, + private val profileImageUploader: ProfileImageUploader, private val termsRepository: TermsRepository, savedStateHandle: SavedStateHandle, ) : ViewModel() { @@ -362,47 +355,7 @@ class OnboardingViewModel private suspend fun uploadProfileImageIfNeeded() { val uri = _uiState.value.profileImageUri ?: return - val mimeType = withContext(Dispatchers.IO) { - context.contentResolver.getType(uri) - } ?: "image/jpeg" - val extension = mimeTypeToFileExtension(mimeType) - - val presignedUrl = storageRepository.getPresignedUrl( - pathType = StoragePathType.USER_PROFILE, - extension = extension, - ).getOrElse { error -> - Timber.e(error, "Failed to get presigned URL") - return - } - - val imageBytes = runCatching { - withContext(Dispatchers.IO) { - context.contentResolver.openInputStream(uri)?.use { it.readBytes() } - } - }.getOrElse { error -> - // 파일 스트림을 여는/읽는 도중 예외가 나면 회원가입 자체를 실패로 만들지 않도록 - // 여기서 잡아서 이미지 업로드만 건너뛴다. - Timber.e(error, "Failed to read profile image bytes") - return - } ?: return - - storageRepository.uploadToS3( - uploadUrl = presignedUrl.uploadUrl, - imageBytes = imageBytes, - mimeType = mimeType, - ).getOrElse { error -> - Timber.e(error, "Failed to upload profile image to S3") - return - } - - userRepository.updateProfileImage(presignedUrl.key) + profileImageUploader.upload(uri) .onFailure { error -> Timber.e(error, "Failed to update profile image after signup") } } - - private fun mimeTypeToFileExtension(mimeType: String): FileExtension = when (mimeType) { - "image/png" -> FileExtension.PNG - "image/gif" -> FileExtension.GIF - "image/webp" -> FileExtension.WEBP - else -> FileExtension.JPEG - } } diff --git a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt index 6c195a1f..95bc9c0b 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/ProfileViewModel.kt @@ -10,6 +10,7 @@ import com.flint.android.core.navigation.Route import com.flint.android.domain.model.bookmark.BookmarkChange import com.flint.android.domain.model.user.KeywordListModel import com.flint.android.domain.repository.BookmarkRepository +import com.flint.android.domain.repository.CollectionRepository import com.flint.android.domain.repository.ContentRepository import com.flint.android.domain.repository.UserRepository import com.flint.android.presentation.profile.sideeffect.ProfileSideEffect @@ -34,6 +35,7 @@ class ProfileViewModel @Inject constructor( private val userRepository: UserRepository, private val contentRepository: ContentRepository, private val bookmarkRepository: BookmarkRepository, + private val collectionRepository: CollectionRepository, ) : ViewModel() { val userId = savedStateHandle.toRoute().userId @@ -47,68 +49,119 @@ class ProfileViewModel @Inject constructor( init { getProfile() observeBookmarkChanges() + observeCollectionDeletions() } - private fun observeBookmarkChanges() { + // 컬렉션 상세 등 다른 화면에서 컬렉션을 삭제해도 + // 내가 생성한 컬렉션 / 저장한 컬렉션 가로 리스트에 즉시 반영되도록 구독한다. + private fun observeCollectionDeletions() { viewModelScope.launch { - bookmarkRepository.bookmarkChanges.collect { change -> + collectionRepository.collectionDeletions.collect { deletedCollectionId -> _uiState.update { state -> val data = (state.sectionData as? UiState.Success)?.data ?: return@update state - val updated = when (change) { - is BookmarkChange.Content -> { - val updatedContents = if (userId == null) { - // 내 프로필: 북마크 취소 시 목록에서 제거 - if (change.isBookmarked) { - data.savedContents - } else { - val hadItem = data.savedContents.contents.any { it.id == change.id } - val filtered = data.savedContents.contents - .filter { it.id != change.id } - .toPersistentList() - data.savedContents.copy( - // 목록에 없던 항목까지 감소시키면 totalCount와 실제 목록이 어긋나므로, 실제로 제거된 경우에만 감소시킨다. - totalCount = if (hadItem) { - maxOf(0, data.savedContents.totalCount - 1) - } else { - data.savedContents.totalCount - }, - contents = filtered, - ) - } - } else { - // 타 유저 프로필: isBookmarked 토글만 (상대방 목록에서 제거 X) - data.savedContents.copy( - contents = data.savedContents.contents - .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } - .toPersistentList() - ) - } - data.copy(savedContents = updatedContents) + val updated = data.copy( + createCollections = data.createCollections.copy( + collections = data.createCollections.collections + .filter { it.id != deletedCollectionId } + .toPersistentList(), + ), + savedCollections = data.savedCollections.copy( + collections = data.savedCollections.collections + .filter { it.id != deletedCollectionId } + .toPersistentList(), + ), + ) + state.copy(sectionData = UiState.Success(updated)) + } + } + } + } + + private fun observeBookmarkChanges() { + viewModelScope.launch { + bookmarkRepository.bookmarkChanges.collect { change -> + when (change) { + is BookmarkChange.Content -> handleContentBookmarkChange(change) + is BookmarkChange.Collection -> handleCollectionBookmarkChange(change) + } + } + } + } + + private fun handleContentBookmarkChange(change: BookmarkChange.Content) { + if (userId == null && change.isBookmarked) { + // 내 프로필에서 재북마크된 경우: 취소되면서 목록에서 이미 제거된 아이템은 + // 로컬에 제목/이미지 등 정보가 남아있지 않아 그대로 되살릴 수 없다. + // 그래서 depth 0 가로 리스트에 정확한 데이터/순서로 다시 보이도록 목록 자체를 다시 불러온다. + // (다른 화면의 북마크 토글이 이 네트워크 호출 때문에 밀리지 않도록 별도 코루틴으로 처리한다.) + viewModelScope.launch { + userRepository.getUserBookmarkedContents(userId = null) + .onSuccess { refreshed -> + _uiState.update { state -> + val current = (state.sectionData as? UiState.Success)?.data ?: return@update state + state.copy(sectionData = UiState.Success(current.copy(savedContents = refreshed))) } - is BookmarkChange.Collection -> { - val updatedCollections = if (userId == null) { - // 내 프로필: 북마크 취소 시 목록에서 제거 - if (change.isBookmarked) data.savedCollections - else { - val filtered = data.savedCollections.collections - .filter { it.id != change.id } - .toPersistentList() - data.savedCollections.copy(collections = filtered) - } - } else { - // 타 유저 프로필: isBookmarked 토글만 (상대방 목록에서 제거 X) - data.savedCollections.copy( - collections = data.savedCollections.collections - .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } - .toPersistentList() - ) - } - data.copy(savedCollections = updatedCollections) + } + .onFailure { Timber.e(it, "Failed to reload saved contents after re-bookmark") } + } + return + } + + _uiState.update { state -> + val data = (state.sectionData as? UiState.Success)?.data ?: return@update state + val updatedContents = if (userId == null) { + // 내 프로필: 북마크 취소 시 목록에서 제거 + data.savedContents.copy( + totalCount = maxOf(0, data.savedContents.totalCount - 1), + contents = data.savedContents.contents + .filter { it.id != change.id } + .toPersistentList(), + ) + } else { + // 타 유저 프로필: isBookmarked 토글만 (상대방 목록에서 제거 X) + data.savedContents.copy( + contents = data.savedContents.contents + .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } + .toPersistentList() + ) + } + state.copy(sectionData = UiState.Success(data.copy(savedContents = updatedContents))) + } + } + + private fun handleCollectionBookmarkChange(change: BookmarkChange.Collection) { + if (userId == null && change.isBookmarked) { + // 콘텐츠와 동일한 이유로, 내 프로필에서 재북마크된 컬렉션도 목록을 다시 불러온다. + viewModelScope.launch { + userRepository.getUserBookmarkedCollections(userId = null) + .onSuccess { refreshed -> + _uiState.update { state -> + val current = (state.sectionData as? UiState.Success)?.data ?: return@update state + state.copy(sectionData = UiState.Success(current.copy(savedCollections = refreshed))) } } - state.copy(sectionData = UiState.Success(updated)) - } + .onFailure { Timber.e(it, "Failed to reload saved collections after re-bookmark") } + } + return + } + + _uiState.update { state -> + val data = (state.sectionData as? UiState.Success)?.data ?: return@update state + val updatedCollections = if (userId == null) { + // 내 프로필: 북마크 취소 시 목록에서 제거 + val filtered = data.savedCollections.collections + .filter { it.id != change.id } + .toPersistentList() + data.savedCollections.copy(collections = filtered) + } else { + // 타 유저 프로필: isBookmarked 토글만 (상대방 목록에서 제거 X) + data.savedCollections.copy( + collections = data.savedCollections.collections + .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } + .toPersistentList() + ) } + state.copy(sectionData = UiState.Success(data.copy(savedCollections = updatedCollections))) } } diff --git a/app/src/main/java/com/flint/android/presentation/profile/SavedContentScreen.kt b/app/src/main/java/com/flint/android/presentation/profile/SavedContentScreen.kt index d4916f7c..2cf552b5 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/SavedContentScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/SavedContentScreen.kt @@ -150,8 +150,14 @@ fun SavedContentScreen( if (uiState.contents is UiState.Success && uiState.filteredContents.isNotEmpty()) { Spacer(modifier = Modifier.height(16.dp)) + val displayCount = if (uiState.searchKeyword.isBlank()) { + uiState.totalCount + } else { + uiState.filteredContents.size + } + Text( - text = "총 ${uiState.filteredContents.size}개", + text = "총 ${displayCount}개", modifier = Modifier.padding(horizontal = 16.dp), color = FlintTheme.colors.gray100, style = FlintTheme.typography.body2R14, diff --git a/app/src/main/java/com/flint/android/presentation/profile/SavedContentViewModel.kt b/app/src/main/java/com/flint/android/presentation/profile/SavedContentViewModel.kt index b25b5a4c..1389669b 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/SavedContentViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/SavedContentViewModel.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.viewModelScope import androidx.navigation.toRoute import com.flint.android.core.common.util.UiState import com.flint.android.core.navigation.Route +import com.flint.android.domain.model.bookmark.BookmarkChange import com.flint.android.domain.model.bookmark.BookmarkException import com.flint.android.domain.repository.BookmarkRepository import com.flint.android.domain.repository.UserRepository @@ -40,6 +41,40 @@ class SavedContentViewModel @Inject constructor( init { loadBookmarkedContents() + observeBookmarkChanges() + } + + private fun observeBookmarkChanges() { + viewModelScope.launch { + bookmarkRepository.bookmarkChanges.collect { change -> + if (change !is BookmarkChange.Content) return@collect + + _uiState.update { state -> + val currentList = (state.contents as? UiState.Success)?.data ?: return@update state + val hasItem = currentList.contents.any { it.id == change.id } + + val updatedContents = if (hasItem) { + currentList.contents + .map { if (it.id == change.id) it.copy(isBookmarked = change.isBookmarked) else it } + .toPersistentList() + } else { + currentList.contents + } + + val updatedTotalCount = if (userId == null) { + maxOf(0, currentList.totalCount + if (change.isBookmarked) 1 else -1) + } else { + currentList.totalCount + } + + state.copy( + contents = UiState.Success( + currentList.copy(totalCount = updatedTotalCount, contents = updatedContents), + ), + ) + } + } + } } @@ -89,17 +124,6 @@ class SavedContentViewModel @Inject constructor( bookmarkRepository.toggleContentBookmark(contentId) .onSuccess { isBookmarked -> Timber.d("toggleBookmark success: isBookmarked=$isBookmarked") - _uiState.update { state -> - val currentList = (state.contents as? UiState.Success)?.data - ?: return@update state - val updated = currentList.copy( - totalCount = maxOf(0, currentList.totalCount + if (isBookmarked) 1 else -1), - contents = currentList.contents - .map { if (it.id == contentId) it.copy(isBookmarked = isBookmarked) else it } - .toPersistentList() - ) - state.copy(contents = UiState.Success(updated)) - } _sideEffect.emit(SavedContentSideEffect.ToggleBookmarkSuccess(isBookmarked)) } .onFailure { throwable -> diff --git a/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt b/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt index 4b22e344..13121501 100644 --- a/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt +++ b/app/src/main/java/com/flint/android/presentation/profile/component/ProfileKeywordSection.kt @@ -94,7 +94,7 @@ fun ProfileKeywordSection( color = FlintTheme.colors.gray100, ) } - if (isMyProfile && isRecalculatable) { + if (isMyProfile && (isRecalculatable || isRecalculating)) { ProfileRefreshButton( onRefreshClick = onRefreshClick, isRecalculating = isRecalculating, @@ -147,7 +147,8 @@ private fun ProfileRefreshButton( verticalArrangement = Arrangement.spacedBy(4.dp), horizontalAlignment = Alignment.CenterHorizontally, modifier = modifier.flintIconClickable( - onClick = { if (!isRecalculating) onRefreshClick() }, + enabled = !isRecalculating, + onClick = onRefreshClick, ), ) { Icon( diff --git a/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileScreen.kt b/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileScreen.kt index 51e51ac1..cb9f6c27 100644 --- a/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileScreen.kt +++ b/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileScreen.kt @@ -8,14 +8,17 @@ import androidx.compose.foundation.background import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets 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.imePadding +import androidx.compose.foundation.layout.isImeVisible import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.systemBarsPadding @@ -27,6 +30,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -53,6 +57,7 @@ import com.flint.android.core.designsystem.component.topappbar.FlintBackTopAppba import com.flint.android.core.designsystem.interaction.pressClickable import com.flint.android.core.designsystem.interaction.pressScale import com.flint.android.core.designsystem.theme.FlintTheme +import kotlinx.coroutines.delay @Composable fun EditProfileRoute( @@ -83,7 +88,7 @@ fun EditProfileRoute( ) } -@OptIn(ExperimentalMaterial3Api::class) +@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @Composable private fun EditProfileScreen( uiState: EditProfileUiState, @@ -98,7 +103,24 @@ private fun EditProfileScreen( var showToast by remember { mutableStateOf(false) } var toastMessage by remember { mutableStateOf("") } var isToastSuccess by remember { mutableStateOf(false) } - var showProfileBottomSheet by remember { mutableStateOf(false) } + var showProfileBottomSheet by rememberSaveable { mutableStateOf(false) } + var pendingBottomSheetToken by rememberSaveable { mutableStateOf(0) } + val imeVisible = WindowInsets.isImeVisible + + LaunchedEffect(pendingBottomSheetToken, imeVisible) { + val token = pendingBottomSheetToken + if (token == 0) return@LaunchedEffect + + if (imeVisible) { + // 하드웨어 키보드 등 IME 숨김 신호가 오지 않는 기기를 대비한 타임아웃. + delay(300) + } + + if (pendingBottomSheetToken == token) { + pendingBottomSheetToken = 0 + showProfileBottomSheet = true + } + } val galleryLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.PickVisualMedia() @@ -149,7 +171,14 @@ private fun EditProfileScreen( uiState.profileImageUri != null -> uiState.profileImageUri.toString() else -> uiState.profileImageUrl ?: "" }, - onEditClick = { showProfileBottomSheet = true }, + onEditClick = { + if (imeVisible) { + keyboardController?.hide() + pendingBottomSheetToken += 1 + } else { + showProfileBottomSheet = true + } + }, ) Spacer(modifier = Modifier.height(32.dp)) diff --git a/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileViewModel.kt b/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileViewModel.kt index 0cf66fd5..7d3715d0 100644 --- a/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileViewModel.kt +++ b/app/src/main/java/com/flint/android/presentation/setting/editprofile/EditProfileViewModel.kt @@ -1,18 +1,13 @@ package com.flint.android.presentation.setting.editprofile -import android.content.Context import android.net.Uri import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.flint.android.core.common.util.DataStoreKey.USER_NAME import com.flint.android.data.local.PreferencesManager -import com.flint.android.domain.repository.StorageRepository +import com.flint.android.domain.repository.ProfileImageUploader import com.flint.android.domain.repository.UserRepository -import com.flint.android.domain.type.FileExtension -import com.flint.android.domain.type.StoragePathType import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -21,16 +16,14 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import timber.log.Timber import javax.inject.Inject @HiltViewModel class EditProfileViewModel @Inject constructor( - @ApplicationContext private val context: Context, private val preferencesManager: PreferencesManager, private val userRepository: UserRepository, - private val storageRepository: StorageRepository, + private val profileImageUploader: ProfileImageUploader, ) : ViewModel() { private val _uiState = MutableStateFlow(EditProfileUiState()) @@ -119,7 +112,7 @@ class EditProfileViewModel @Inject constructor( } } state.profileImageUri != null -> { - uploadProfileImage(state.profileImageUri) + profileImageUploader.upload(state.profileImageUri) .onFailure { Timber.e(it, "Failed to save profile image") return@launch @@ -137,43 +130,4 @@ class EditProfileViewModel @Inject constructor( _navigateUp.emit(Unit) } } - - private suspend fun uploadProfileImage(uri: Uri): Result { - val mimeType = withContext(Dispatchers.IO) { - context.contentResolver.getType(uri) - } ?: "image/jpeg" - - val extension = mimeTypeToFileExtension(mimeType) - - val presignedUrl = storageRepository.getPresignedUrl( - pathType = StoragePathType.USER_PROFILE, - extension = extension, - ).getOrElse { error -> - Timber.e(error, "Failed to get presigned URL") - return Result.failure(error) - } - - val imageBytes = withContext(Dispatchers.IO) { - context.contentResolver.openInputStream(uri)?.use { it.readBytes() } - } ?: return Result.failure(IllegalStateException("Failed to open image stream")) - - storageRepository.uploadToS3( - uploadUrl = presignedUrl.uploadUrl, - imageBytes = imageBytes, - mimeType = mimeType, - ).getOrElse { error -> - Timber.e(error, "Failed to upload profile image to S3") - return Result.failure(error) - } - - return userRepository.updateProfileImage(presignedUrl.key) - .map { } - } - - private fun mimeTypeToFileExtension(mimeType: String): FileExtension = when (mimeType) { - "image/png" -> FileExtension.PNG - "image/gif" -> FileExtension.GIF - "image/webp" -> FileExtension.WEBP - else -> FileExtension.JPEG - } }