From c9d497ddca24bc6a0da11162fe47a4333cd8a2a9 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 04:28:35 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[ADD/#231]=20ColorType=20=EC=86=8D=EC=84=B1?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/terning/core/type/ColorType.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/terning/core/type/ColorType.kt b/core/src/main/java/com/terning/core/type/ColorType.kt index 7d35c8f65..b2ea4fe52 100644 --- a/core/src/main/java/com/terning/core/type/ColorType.kt +++ b/core/src/main/java/com/terning/core/type/ColorType.kt @@ -21,16 +21,17 @@ import com.terning.core.designsystem.theme.CalRedBc import com.terning.core.designsystem.theme.CalRedLi enum class ColorType( + val typeName: String, val main: Color, val border: Color, val sub: Color ) { - RED(main = CalRed, border = CalRedLi, sub = CalRedBc), - ORANGE(main = CalOrange2, border = CalOrangeLi, sub = CalOrangeBc), - GREEN(main = CalGreen2, border = CalGreenLi, sub = CalGreenBc), - BLUE(main = CalBlue2, border = CalBlueLi, sub = CalBlueBc), - PURPLE(main = CalPurple, border = CalPurpleLi, sub = CalPurpleBc), - PINK(main = CalPink, border = CalPinkLi, sub = CalPinkBc); + RED(typeName = "red", main = CalRed, border = CalRedLi, sub = CalRedBc), + ORANGE(typeName = "orange", main = CalOrange2, border = CalOrangeLi, sub = CalOrangeBc), + GREEN(typeName = "green", main = CalGreen2, border = CalGreenLi, sub = CalGreenBc), + BLUE(typeName = "blue", main = CalBlue2, border = CalBlueLi, sub = CalBlueBc), + PURPLE(typeName = "purple", main = CalPurple, border = CalPurpleLi, sub = CalPurpleBc), + PINK(typeName = "pink", main = CalPink, border = CalPinkLi, sub = CalPinkBc); companion object { fun findColorType(mainColor: Color): ColorType? = entries.find { it.main == mainColor } From 07a40ec79ed50b570b04ea24076917ddb6e436aa Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 04:30:13 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[FEAT/#231]=20=EC=8A=A4=ED=81=AC=EB=9E=A9?= =?UTF-8?q?=20dto=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/dto/request/ScrapColorRequestDto.kt | 2 +- .../entity/calendar/CalendarScrapRequest.kt | 2 +- .../dialog/detail/ScrapDialogViewModel.kt | 30 ++----------------- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/data/src/main/java/com/terning/data/dto/request/ScrapColorRequestDto.kt b/data/src/main/java/com/terning/data/dto/request/ScrapColorRequestDto.kt index b6d626dbe..c6d96ce50 100644 --- a/data/src/main/java/com/terning/data/dto/request/ScrapColorRequestDto.kt +++ b/data/src/main/java/com/terning/data/dto/request/ScrapColorRequestDto.kt @@ -6,5 +6,5 @@ import kotlinx.serialization.Serializable @Serializable data class ScrapColorRequestDto( @SerialName("color") - val color: Int? = null, + val color: String? = null, ) \ No newline at end of file diff --git a/domain/src/main/java/com/terning/domain/entity/calendar/CalendarScrapRequest.kt b/domain/src/main/java/com/terning/domain/entity/calendar/CalendarScrapRequest.kt index 8b4d047d2..05019d644 100644 --- a/domain/src/main/java/com/terning/domain/entity/calendar/CalendarScrapRequest.kt +++ b/domain/src/main/java/com/terning/domain/entity/calendar/CalendarScrapRequest.kt @@ -2,5 +2,5 @@ package com.terning.domain.entity.calendar data class CalendarScrapRequest( val id: Long, - val color: Int? = 0, + val color: String? = "red", ) \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt index b74b3e27c..6a72a30f7 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt @@ -1,18 +1,7 @@ package com.terning.feature.dialog.detail -import androidx.compose.ui.graphics.Color import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.terning.core.designsystem.theme.CalBlue1 -import com.terning.core.designsystem.theme.CalBlue2 -import com.terning.core.designsystem.theme.CalGreen1 -import com.terning.core.designsystem.theme.CalGreen2 -import com.terning.core.designsystem.theme.CalOrange1 -import com.terning.core.designsystem.theme.CalOrange2 -import com.terning.core.designsystem.theme.CalPink -import com.terning.core.designsystem.theme.CalPurple -import com.terning.core.designsystem.theme.CalRed -import com.terning.core.designsystem.theme.CalYellow import com.terning.core.type.ColorType import com.terning.domain.entity.calendar.CalendarScrapRequest import com.terning.domain.repository.ScrapRepository @@ -76,9 +65,8 @@ class ScrapDialogViewModel @Inject constructor( } fun postScrap(id: Long, color: ColorType) { - val colorIndex = getColorIndex(color.main) viewModelScope.launch { - scrapRepository.postScrap(CalendarScrapRequest(id, colorIndex)) + scrapRepository.postScrap(CalendarScrapRequest(id, color.typeName)) .onSuccess { with(_sideEffect) { emit(ScrapDialogSideEffect.ShowToast(R.string.dialog_scrap_scrapped)) @@ -91,8 +79,7 @@ class ScrapDialogViewModel @Inject constructor( } fun patchScrap(scrapId: Long, color: ColorType) = viewModelScope.launch { - val colorIndex = getColorIndex(color.main) - scrapRepository.patchScrap(CalendarScrapRequest(scrapId, colorIndex)) + scrapRepository.patchScrap(CalendarScrapRequest(scrapId, color.typeName)) .onSuccess { _sideEffect.emit(ScrapDialogSideEffect.PatchedScrap) _uiState.update { currentState -> @@ -106,17 +93,4 @@ class ScrapDialogViewModel @Inject constructor( _sideEffect.emit(ScrapDialogSideEffect.ShowToast(R.string.server_failure)) } } - - private fun getColorIndex(color: Color): Int = listOf( - CalRed, - CalOrange1, - CalOrange2, - CalYellow, - CalGreen1, - CalGreen2, - CalBlue1, - CalBlue2, - CalPurple, - CalPink - ).indexOf(color) } \ No newline at end of file From 8bd69a70cd3fac9f6a8a699eed1d4de7bd43b909 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 04:33:11 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[FEAT/#231]=20=EC=8A=A4=ED=81=AC=EB=9E=A9?= =?UTF-8?q?=EC=8B=9C=20=ED=98=B8=EC=B6=9C=20=ED=95=A8=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/dialog/detail/ScrapDialog.kt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt index 57ab067dc..0b37b6bca 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt @@ -64,9 +64,10 @@ fun ScrapDialog( internshipAnnouncementId: Long, companyImage: String, isScrapped: Boolean, - onDismissRequest: () -> Unit, - onClickChangeColor: () -> Unit, - onClickNavigateButton: (Long) -> Unit, + onDismissRequest: () -> Unit = {}, + onScrapAnnouncement: () -> Unit = {}, + onClickChangeColor: () -> Unit = {}, + onClickNavigateButton: (Long) -> Unit = {}, viewModel: ScrapDialogViewModel = hiltViewModel() ) { val context = LocalContext.current @@ -79,6 +80,7 @@ fun ScrapDialog( is ScrapDialogSideEffect.ShowToast -> { context.toast(sideEffect.message) } + is ScrapDialogSideEffect.DismissDialog -> { viewModel.initUiState() onDismissRequest() @@ -89,8 +91,7 @@ fun ScrapDialog( internshipAnnouncementId ) - is ScrapDialogSideEffect.ScrappedAnnouncement -> { - } + is ScrapDialogSideEffect.ScrappedAnnouncement -> onScrapAnnouncement() } } } @@ -115,8 +116,11 @@ fun ScrapDialog( isColorChangedOnce = uiState.isColorChangedOnce, onClickColorButton = viewModel::changeSelectedColor, onClickColorChangeButton = { - if(uiState.isColorChanged) - viewModel.patchScrap(scrapId = internshipAnnouncementId, color = uiState.selectedColorType) + if (uiState.isColorChanged) + viewModel.patchScrap( + scrapId = internshipAnnouncementId, + color = uiState.selectedColorType + ) }, onClickNavigateButton = viewModel::navigateToDetail, onClickScrapButton = { From 127ae5b4f0a3d13ed4fc730969d48cc741c69969 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 04:36:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[FEAT/#231]=20=EC=8A=A4=ED=81=AC=EB=9E=A9?= =?UTF-8?q?=EC=8B=9C=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=8B=AB=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/terning/feature/dialog/detail/ScrapDialog.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt index 0b37b6bca..7d6df6fe3 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt @@ -91,7 +91,10 @@ fun ScrapDialog( internshipAnnouncementId ) - is ScrapDialogSideEffect.ScrappedAnnouncement -> onScrapAnnouncement() + is ScrapDialogSideEffect.ScrappedAnnouncement -> { + onScrapAnnouncement() + onDismissRequest() + } } } }