From 09ff5ba3e82247b56dcef7e244ea2e6420504eb0 Mon Sep 17 00:00:00 2001 From: SangEun Date: Wed, 22 Nov 2023 02:09:05 +0900 Subject: [PATCH] =?UTF-8?q?=ED=99=88=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dkin/chevit/presentation/home/Home.kt | 15 +++- .../chevit/presentation/home/HomeScreen.kt | 2 + .../template}/TemplateContract.kt | 4 +- .../contents/template/TemplateTabContents.kt | 4 +- .../template}/TemplateViewModel.kt | 7 +- .../{ => contents/template}/model/Template.kt | 2 +- .../{ => contents/user}/MyPageContract.kt | 2 +- .../{ => contents/user}/MyPageViewModel.kt | 21 +++--- .../home/contents/user/UserContents.kt | 3 - .../home/contents/user/UserTabContents.kt | 2 - .../resource/icon/IconCameraFill.kt | 70 ++++++++++++++++++ .../main/res/drawable/ic_profile_empty.png | Bin 0 -> 12033 bytes 12 files changed, 104 insertions(+), 28 deletions(-) rename presentation/home/src/main/java/com/dkin/chevit/presentation/home/{ => contents/template}/TemplateContract.kt (82%) rename presentation/home/src/main/java/com/dkin/chevit/presentation/home/{ => contents/template}/TemplateViewModel.kt (88%) rename presentation/home/src/main/java/com/dkin/chevit/presentation/home/{ => contents/template}/model/Template.kt (73%) rename presentation/home/src/main/java/com/dkin/chevit/presentation/home/{ => contents/user}/MyPageContract.kt (94%) rename presentation/home/src/main/java/com/dkin/chevit/presentation/home/{ => contents/user}/MyPageViewModel.kt (75%) create mode 100644 presentation/resource/src/main/java/com/dkin/chevit/presentation/resource/icon/IconCameraFill.kt create mode 100644 presentation/resource/src/main/res/drawable/ic_profile_empty.png diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/Home.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/Home.kt index 3351237..13208dc 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/Home.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/Home.kt @@ -19,10 +19,17 @@ import com.dkin.chevit.core.mvi.MVIComposeFragment import com.dkin.chevit.presentation.deeplink.DeepLink import com.dkin.chevit.presentation.deeplink.DeepLink.OnBoarding import com.dkin.chevit.presentation.deeplink.deepLink -import com.dkin.chevit.presentation.home.MyPageEffect.NavigateToNotificationSetting -import com.dkin.chevit.presentation.home.MyPageEffect.NavigateToOnBoarding -import com.dkin.chevit.presentation.home.MyPageEffect.NavigateToProfileSetting -import com.dkin.chevit.presentation.home.MyPageEffect.NavigateToTerms +import com.dkin.chevit.presentation.home.contents.template.TemplateEffect +import com.dkin.chevit.presentation.home.contents.template.TemplateState +import com.dkin.chevit.presentation.home.contents.template.TemplateViewModel +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect.NavigateToNotificationSetting +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect.NavigateToOnBoarding +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect.NavigateToProfileSetting +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect.NavigateToTerms +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent +import com.dkin.chevit.presentation.home.contents.user.MyPageState +import com.dkin.chevit.presentation.home.contents.user.MyPageViewModel import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/HomeScreen.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/HomeScreen.kt index d5c2c7f..b46f975 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/HomeScreen.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/HomeScreen.kt @@ -17,6 +17,8 @@ import com.dkin.chevit.presentation.home.component.BottomNavigation import com.dkin.chevit.presentation.home.contents.HomeTabContents import com.dkin.chevit.presentation.home.contents.SearchTabContents import com.dkin.chevit.presentation.home.contents.template.TemplateTabContents +import com.dkin.chevit.presentation.home.contents.template.TemplateViewModel +import com.dkin.chevit.presentation.home.contents.user.MyPageViewModel import com.dkin.chevit.presentation.home.contents.user.UserTabContents import com.dkin.chevit.presentation.resource.ChevitTheme import kotlinx.coroutines.launch diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateContract.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateContract.kt similarity index 82% rename from presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateContract.kt rename to presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateContract.kt index eb481c6..9defb04 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateContract.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateContract.kt @@ -1,10 +1,10 @@ -package com.dkin.chevit.presentation.home +package com.dkin.chevit.presentation.home.contents.template import androidx.compose.runtime.Stable import com.dkin.chevit.core.mvi.ViewEffect import com.dkin.chevit.core.mvi.ViewIntent import com.dkin.chevit.core.mvi.ViewState -import com.dkin.chevit.presentation.home.model.Template +import com.dkin.chevit.presentation.home.contents.template.model.Template sealed interface TemplateIntent : ViewIntent diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateTabContents.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateTabContents.kt index 8038498..735cbdf 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateTabContents.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateTabContents.kt @@ -27,9 +27,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.dkin.chevit.presentation.home.TemplateState -import com.dkin.chevit.presentation.home.TemplateViewModel -import com.dkin.chevit.presentation.home.model.Template +import com.dkin.chevit.presentation.home.contents.template.model.Template import com.dkin.chevit.presentation.resource.util.clickableNoRipple import com.dkin.chevit.presentation.resource.ChevitButtonFillMedium import com.dkin.chevit.presentation.resource.ChevitFloatingButton diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateViewModel.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateViewModel.kt similarity index 88% rename from presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateViewModel.kt rename to presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateViewModel.kt index c070d29..0b14e96 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/TemplateViewModel.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/TemplateViewModel.kt @@ -1,7 +1,10 @@ -package com.dkin.chevit.presentation.home +package com.dkin.chevit.presentation.home.contents.template import com.dkin.chevit.core.mvi.MVIViewModel -import com.dkin.chevit.presentation.home.model.Template +import com.dkin.chevit.presentation.home.contents.template.TemplateEffect +import com.dkin.chevit.presentation.home.contents.template.TemplateIntent +import com.dkin.chevit.presentation.home.contents.template.TemplateState +import com.dkin.chevit.presentation.home.contents.template.model.Template import com.dkin.chevit.presentation.resource.TemplateColor import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/model/Template.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/model/Template.kt similarity index 73% rename from presentation/home/src/main/java/com/dkin/chevit/presentation/home/model/Template.kt rename to presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/model/Template.kt index c14dec1..e50924a 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/model/Template.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/template/model/Template.kt @@ -1,4 +1,4 @@ -package com.dkin.chevit.presentation.home.model +package com.dkin.chevit.presentation.home.contents.template.model import com.dkin.chevit.presentation.resource.TemplateColor diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageContract.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageContract.kt similarity index 94% rename from presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageContract.kt rename to presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageContract.kt index e0e1a78..8dcb619 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageContract.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageContract.kt @@ -1,4 +1,4 @@ -package com.dkin.chevit.presentation.home +package com.dkin.chevit.presentation.home.contents.user import androidx.compose.runtime.Stable import com.dkin.chevit.core.mvi.ViewEffect diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageViewModel.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageViewModel.kt similarity index 75% rename from presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageViewModel.kt rename to presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageViewModel.kt index d02743f..d223afe 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/MyPageViewModel.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/MyPageViewModel.kt @@ -1,4 +1,4 @@ -package com.dkin.chevit.presentation.home +package com.dkin.chevit.presentation.home.contents.user import com.dkin.chevit.core.mvi.MVIViewModel import com.dkin.chevit.domain.base.get @@ -6,18 +6,19 @@ import com.dkin.chevit.domain.base.onComplete import com.dkin.chevit.domain.usecase.auth.GetUserUseCase import com.dkin.chevit.domain.usecase.auth.SignOutUseCase import com.dkin.chevit.domain.usecase.auth.WithDrawUserUseCase -import com.dkin.chevit.domain.usecase.notification.GetNotificationSettingUseCase import com.dkin.chevit.domain.usecase.notification.UpdateNotificationEnableStateUseCase -import com.dkin.chevit.presentation.home.MyPageIntent.AlarmSwitchClicked -import com.dkin.chevit.presentation.home.MyPageIntent.NotificationSettingClicked -import com.dkin.chevit.presentation.home.MyPageIntent.ProfileSettingClicked -import com.dkin.chevit.presentation.home.MyPageIntent.SignOutClicked -import com.dkin.chevit.presentation.home.MyPageIntent.TermsClicked -import com.dkin.chevit.presentation.home.MyPageIntent.ViewCreated -import com.dkin.chevit.presentation.home.MyPageIntent.WithDrawClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageEffect +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.AlarmSwitchClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.NotificationSettingClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.ProfileSettingClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.SignOutClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.TermsClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.ViewCreated +import com.dkin.chevit.presentation.home.contents.user.MyPageIntent.WithDrawClicked +import com.dkin.chevit.presentation.home.contents.user.MyPageState import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject -import kotlinx.coroutines.awaitAll @HiltViewModel class MyPageViewModel @Inject constructor( diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserContents.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserContents.kt index a6fdac7..6032550 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserContents.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserContents.kt @@ -34,9 +34,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import androidx.lifecycle.Lifecycle -import com.dkin.chevit.presentation.home.MyPageIntent -import com.dkin.chevit.presentation.home.MyPageState -import com.dkin.chevit.presentation.home.MyPageViewModel import com.dkin.chevit.presentation.resource.ChevitButtonChip import com.dkin.chevit.presentation.resource.ChevitTheme import com.dkin.chevit.presentation.resource.icon.ChevitIcon diff --git a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserTabContents.kt b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserTabContents.kt index c45cb40..82c9031 100644 --- a/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserTabContents.kt +++ b/presentation/home/src/main/java/com/dkin/chevit/presentation/home/contents/user/UserTabContents.kt @@ -13,8 +13,6 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.dialog import androidx.navigation.compose.rememberNavController import com.dkin.chevit.presentation.home.HomeViewModel -import com.dkin.chevit.presentation.home.MyPageIntent -import com.dkin.chevit.presentation.home.MyPageViewModel import com.dkin.chevit.presentation.resource.ChevitDialog import com.dkin.chevit.presentation.resource.util.clickableNoRipple diff --git a/presentation/resource/src/main/java/com/dkin/chevit/presentation/resource/icon/IconCameraFill.kt b/presentation/resource/src/main/java/com/dkin/chevit/presentation/resource/icon/IconCameraFill.kt new file mode 100644 index 0000000..562cc15 --- /dev/null +++ b/presentation/resource/src/main/java/com/dkin/chevit/presentation/resource/icon/IconCameraFill.kt @@ -0,0 +1,70 @@ +package com.dkin.chevit.presentation.resource.icon + +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.PathFillType.Companion.NonZero +import androidx.compose.ui.graphics.SolidColor +import androidx.compose.ui.graphics.StrokeCap.Companion.Butt +import androidx.compose.ui.graphics.StrokeJoin.Companion.Miter +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.graphics.vector.ImageVector.Builder +import androidx.compose.ui.graphics.vector.group +import androidx.compose.ui.graphics.vector.path +import androidx.compose.ui.unit.dp + +public val ChevitIcon.IconCameraFill: ImageVector + get() { + if (_iconCameraFill != null) { + return _iconCameraFill!! + } + _iconCameraFill = Builder(name = "IconCameraFill", defaultWidth = 25.0.dp, defaultHeight = + 25.0.dp, viewportWidth = 25.0f, viewportHeight = 25.0f).apply { + group { + path(fill = SolidColor(Color(0xFFffffff)), stroke = null, strokeLineWidth = 0.0f, + strokeLineCap = Butt, strokeLineJoin = Miter, strokeLineMiter = 4.0f, + pathFillType = NonZero) { + moveTo(9.9648f, 3.4558f) + horizontalLineTo(15.9648f) + lineTo(17.9648f, 5.4558f) + horizontalLineTo(21.9648f) + curveTo(22.2301f, 5.4558f, 22.4844f, 5.5612f, 22.672f, 5.7487f) + curveTo(22.8595f, 5.9362f, 22.9648f, 6.1906f, 22.9648f, 6.4558f) + verticalLineTo(20.4558f) + curveTo(22.9648f, 20.721f, 22.8595f, 20.9754f, 22.672f, 21.1629f) + curveTo(22.4844f, 21.3505f, 22.2301f, 21.4558f, 21.9648f, 21.4558f) + horizontalLineTo(3.9648f) + curveTo(3.6996f, 21.4558f, 3.4453f, 21.3505f, 3.2577f, 21.1629f) + curveTo(3.0702f, 20.9754f, 2.9648f, 20.721f, 2.9648f, 20.4558f) + verticalLineTo(6.4558f) + curveTo(2.9648f, 6.1906f, 3.0702f, 5.9362f, 3.2577f, 5.7487f) + curveTo(3.4453f, 5.5612f, 3.6996f, 5.4558f, 3.9648f, 5.4558f) + horizontalLineTo(7.9648f) + lineTo(9.9648f, 3.4558f) + close() + moveTo(12.9648f, 19.4558f) + curveTo(14.5561f, 19.4558f, 16.0823f, 18.8237f, 17.2075f, 17.6985f) + curveTo(18.3327f, 16.5732f, 18.9648f, 15.0471f, 18.9648f, 13.4558f) + curveTo(18.9648f, 11.8645f, 18.3327f, 10.3384f, 17.2075f, 9.2132f) + curveTo(16.0823f, 8.0879f, 14.5561f, 7.4558f, 12.9648f, 7.4558f) + curveTo(11.3735f, 7.4558f, 9.8474f, 8.0879f, 8.7222f, 9.2132f) + curveTo(7.597f, 10.3384f, 6.9648f, 11.8645f, 6.9648f, 13.4558f) + curveTo(6.9648f, 15.0471f, 7.597f, 16.5732f, 8.7222f, 17.6985f) + curveTo(9.8474f, 18.8237f, 11.3735f, 19.4558f, 12.9648f, 19.4558f) + close() + moveTo(12.9648f, 17.4558f) + curveTo(11.904f, 17.4558f, 10.8866f, 17.0344f, 10.1364f, 16.2842f) + curveTo(9.3863f, 15.5341f, 8.9648f, 14.5167f, 8.9648f, 13.4558f) + curveTo(8.9648f, 12.3949f, 9.3863f, 11.3775f, 10.1364f, 10.6274f) + curveTo(10.8866f, 9.8772f, 11.904f, 9.4558f, 12.9648f, 9.4558f) + curveTo(14.0257f, 9.4558f, 15.0431f, 9.8772f, 15.7933f, 10.6274f) + curveTo(16.5434f, 11.3775f, 16.9648f, 12.3949f, 16.9648f, 13.4558f) + curveTo(16.9648f, 14.5167f, 16.5434f, 15.5341f, 15.7933f, 16.2842f) + curveTo(15.0431f, 17.0344f, 14.0257f, 17.4558f, 12.9648f, 17.4558f) + close() + } + } + } + .build() + return _iconCameraFill!! + } + +private var _iconCameraFill: ImageVector? = null diff --git a/presentation/resource/src/main/res/drawable/ic_profile_empty.png b/presentation/resource/src/main/res/drawable/ic_profile_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb01e2645c883ffcbe4f29c1be077313eb3cf71 GIT binary patch literal 12033 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