From 4b72c85bff424e91be376eed2831e186d8bb12e2 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:05:04 +0900 Subject: [PATCH 01/33] =?UTF-8?q?chore=20-=20=EC=95=88=EB=93=9C=EB=A1=9C?= =?UTF-8?q?=EC=9D=B4=EB=93=9CX=20=EC=82=AC=EC=9A=A9=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 3c5031eb..aa5fda35 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,5 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.enableJetifier=true From a82478c3ae60d9cf1e6542aba71c1555c4fb21b4 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:09:30 +0900 Subject: [PATCH 02/33] =?UTF-8?q?design=20-=20Home=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EC=97=90=20=EC=82=AC=EC=9A=A9=EB=90=98=EB=8A=94=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/ic_arrow_left.xml | 19 ----- .../src/main/res/drawable/ic_arrow_right.xml | 19 ----- .../src/main/res/drawable/ic_calendar.xml | 32 ++++---- .../res/drawable/ic_calendar_arrow_left.xml | 19 +++++ .../res/drawable/ic_calendar_arrow_right.xml | 19 +++++ .../res/drawable/ic_default_user_image.png | Bin 0 -> 17898 bytes .../src/main/res/drawable/ic_event_note.xml | 35 -------- .../main/res/drawable/ic_have_not_plan.xml | 36 ++++++++ .../src/main/res/drawable/ic_list.xml | 29 +++++++ .../src/main/res/drawable/ic_plan_etc.xml | 42 ++++++++++ .../src/main/res/drawable/ic_plan_meal.xml | 18 ++++ .../src/main/res/drawable/ic_plan_meeting.xml | 77 ++++++++++++++++++ .../src/main/res/drawable/ic_plan_trip.xml | 31 +++++++ .../drawable/ic_transparent_arrow_bottom.xml | 9 ++ .../drawable/ic_transparent_arrow_right.xml | 13 +++ .../res/drawable/ic_transparent_arrow_top.xml | 9 ++ 16 files changed, 318 insertions(+), 89 deletions(-) delete mode 100644 presentation/src/main/res/drawable/ic_arrow_left.xml delete mode 100644 presentation/src/main/res/drawable/ic_arrow_right.xml create mode 100644 presentation/src/main/res/drawable/ic_calendar_arrow_left.xml create mode 100644 presentation/src/main/res/drawable/ic_calendar_arrow_right.xml create mode 100644 presentation/src/main/res/drawable/ic_default_user_image.png delete mode 100644 presentation/src/main/res/drawable/ic_event_note.xml create mode 100644 presentation/src/main/res/drawable/ic_have_not_plan.xml create mode 100644 presentation/src/main/res/drawable/ic_list.xml create mode 100644 presentation/src/main/res/drawable/ic_plan_etc.xml create mode 100644 presentation/src/main/res/drawable/ic_plan_meal.xml create mode 100644 presentation/src/main/res/drawable/ic_plan_meeting.xml create mode 100644 presentation/src/main/res/drawable/ic_plan_trip.xml create mode 100644 presentation/src/main/res/drawable/ic_transparent_arrow_bottom.xml create mode 100644 presentation/src/main/res/drawable/ic_transparent_arrow_right.xml create mode 100644 presentation/src/main/res/drawable/ic_transparent_arrow_top.xml diff --git a/presentation/src/main/res/drawable/ic_arrow_left.xml b/presentation/src/main/res/drawable/ic_arrow_left.xml deleted file mode 100644 index b7dcd266..00000000 --- a/presentation/src/main/res/drawable/ic_arrow_left.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/presentation/src/main/res/drawable/ic_arrow_right.xml b/presentation/src/main/res/drawable/ic_arrow_right.xml deleted file mode 100644 index 62b354de..00000000 --- a/presentation/src/main/res/drawable/ic_arrow_right.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/presentation/src/main/res/drawable/ic_calendar.xml b/presentation/src/main/res/drawable/ic_calendar.xml index 7da49450..68257deb 100644 --- a/presentation/src/main/res/drawable/ic_calendar.xml +++ b/presentation/src/main/res/drawable/ic_calendar.xml @@ -1,34 +1,34 @@ + android:width="22dp" + android:height="22dp" + android:viewportWidth="22" + android:viewportHeight="22"> + android:strokeColor="#1B1B1B"/> + android:strokeColor="#1B1B1B"/> + android:pathData="M9.166,15.858C8.916,15.858 8.708,15.631 8.708,15.356V13.088L8.592,13.228C8.42,13.436 8.133,13.449 7.944,13.268C7.754,13.081 7.742,12.766 7.907,12.559L8.824,11.441C8.952,11.288 9.154,11.234 9.331,11.307C9.509,11.381 9.625,11.568 9.625,11.776V15.356C9.625,15.637 9.423,15.858 9.166,15.858Z" + android:fillColor="#1B1B1B"/> + android:pathData="M12.375,15.858C11.362,15.858 10.542,15.035 10.542,14.018V13.115C10.542,12.098 11.362,11.275 12.375,11.275C13.388,11.275 14.208,12.098 14.208,13.115V14.018C14.208,15.035 13.388,15.858 12.375,15.858ZM12.375,12.285C11.915,12.285 11.542,12.66 11.542,13.122V14.025C11.542,14.487 11.915,14.861 12.375,14.861C12.835,14.861 13.208,14.487 13.208,14.025V13.122C13.208,12.66 12.835,12.285 12.375,12.285Z" + android:fillColor="#1B1B1B"/> diff --git a/presentation/src/main/res/drawable/ic_calendar_arrow_left.xml b/presentation/src/main/res/drawable/ic_calendar_arrow_left.xml new file mode 100644 index 00000000..7dc914cb --- /dev/null +++ b/presentation/src/main/res/drawable/ic_calendar_arrow_left.xml @@ -0,0 +1,19 @@ + + + + diff --git a/presentation/src/main/res/drawable/ic_calendar_arrow_right.xml b/presentation/src/main/res/drawable/ic_calendar_arrow_right.xml new file mode 100644 index 00000000..c0d2a016 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_calendar_arrow_right.xml @@ -0,0 +1,19 @@ + + + + diff --git a/presentation/src/main/res/drawable/ic_default_user_image.png b/presentation/src/main/res/drawable/ic_default_user_image.png new file mode 100644 index 0000000000000000000000000000000000000000..628547ea7a162d10e9b50071cd0d724e2748f085 GIT binary patch literal 17898 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

J~0jl5w%?+}P-}6Jyf8S%t@KFVP@Q2^DeDMXl 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 Z{|9fp{esB->W}~c002ovPDHLkV1kg$*rxyh literal 0 HcmV?d00001 diff --git a/presentation/src/main/res/drawable/ic_event_note.xml b/presentation/src/main/res/drawable/ic_event_note.xml deleted file mode 100644 index bbc8c3c4..00000000 --- a/presentation/src/main/res/drawable/ic_event_note.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - diff --git a/presentation/src/main/res/drawable/ic_have_not_plan.xml b/presentation/src/main/res/drawable/ic_have_not_plan.xml new file mode 100644 index 00000000..28923732 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_have_not_plan.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/ic_list.xml b/presentation/src/main/res/drawable/ic_list.xml new file mode 100644 index 00000000..3f3d162b --- /dev/null +++ b/presentation/src/main/res/drawable/ic_list.xml @@ -0,0 +1,29 @@ + + + + + + diff --git a/presentation/src/main/res/drawable/ic_plan_etc.xml b/presentation/src/main/res/drawable/ic_plan_etc.xml new file mode 100644 index 00000000..c8246a78 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_plan_etc.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/ic_plan_meal.xml b/presentation/src/main/res/drawable/ic_plan_meal.xml new file mode 100644 index 00000000..2e30df2c --- /dev/null +++ b/presentation/src/main/res/drawable/ic_plan_meal.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/presentation/src/main/res/drawable/ic_plan_meeting.xml b/presentation/src/main/res/drawable/ic_plan_meeting.xml new file mode 100644 index 00000000..2c94a005 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_plan_meeting.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/ic_plan_trip.xml b/presentation/src/main/res/drawable/ic_plan_trip.xml new file mode 100644 index 00000000..8fd95692 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_plan_trip.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/presentation/src/main/res/drawable/ic_transparent_arrow_bottom.xml b/presentation/src/main/res/drawable/ic_transparent_arrow_bottom.xml new file mode 100644 index 00000000..8e008037 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_transparent_arrow_bottom.xml @@ -0,0 +1,9 @@ + + + diff --git a/presentation/src/main/res/drawable/ic_transparent_arrow_right.xml b/presentation/src/main/res/drawable/ic_transparent_arrow_right.xml new file mode 100644 index 00000000..a316a378 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_transparent_arrow_right.xml @@ -0,0 +1,13 @@ + + + diff --git a/presentation/src/main/res/drawable/ic_transparent_arrow_top.xml b/presentation/src/main/res/drawable/ic_transparent_arrow_top.xml new file mode 100644 index 00000000..ff1408a5 --- /dev/null +++ b/presentation/src/main/res/drawable/ic_transparent_arrow_top.xml @@ -0,0 +1,9 @@ + + + From f48e6725bb3d192178d30cdd1ef8ed5a600ab516 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:09:50 +0900 Subject: [PATCH 03/33] =?UTF-8?q?chore=20-=20Compose=20ConstraintLayout=20?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buildSrc/src/main/java/Versions.kt | 1 + buildSrc/src/main/java/app/ModuleDependencies.kt | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index 59075e2d..db59adc7 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -6,6 +6,7 @@ object Versions { const val COIL = "1.4.0" const val COMPOSE = "1.1.1" const val COMPOSE_ACTIVITY = "1.4.0" + const val COMPOSE_CONSTRAINT_LAYOUT = "1.0.1" const val CONSTRAINT_LAYOUT = "2.1.3" const val COMPOSE_NAVIGATION = "2.4.2" const val FIREBASE_BOM = "29.1.0" diff --git a/buildSrc/src/main/java/app/ModuleDependencies.kt b/buildSrc/src/main/java/app/ModuleDependencies.kt index 91023278..ce7ad7c0 100644 --- a/buildSrc/src/main/java/app/ModuleDependencies.kt +++ b/buildSrc/src/main/java/app/ModuleDependencies.kt @@ -66,6 +66,11 @@ object ModuleDependencies { Versions.COMPOSE_ACTIVITY, Method.IMPLEMENTATION ), + DependencyInfo( + "androidx.constraintlayout:constraintlayout-compose", + Versions.COMPOSE_CONSTRAINT_LAYOUT, + Method.IMPLEMENTATION + ), DependencyInfo("io.coil-kt:coil-compose", Versions.COIL, Method.IMPLEMENTATION), DependencyInfo("androidx.navigation:navigation-compose", Versions.COMPOSE_NAVIGATION, Method.IMPLEMENTATION) ) From 83451191fdec21f1d2e20a3861b245061a57aee7 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:16:58 +0900 Subject: [PATCH 04/33] =?UTF-8?q?chore=20-=20Material=20CalendarView=20?= =?UTF-8?q?=EC=8D=A8=EB=93=9C=ED=8C=8C=ED=8B=B0=20=EC=9D=98=EC=A1=B4?= =?UTF-8?q?=EC=84=B1=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buildSrc/src/main/java/Versions.kt | 3 ++- buildSrc/src/main/java/app/ModuleDependencies.kt | 4 ++++ presentation/build.gradle.kts | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index db59adc7..6010880f 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -17,10 +17,11 @@ object Versions { const val JUNIT = "4.13.2" const val KOTLIN = "1.6.10" const val KOTLIN_COROUTINES = "1.5.1" + const val MATERIAL_CALENDAR = "1.4.3" const val LIFECYCLE = "2.4.1" const val OKHTTP = "4.3.1" const val RETROFIT = "2.7.1" const val TIMBER = "5.0.1" const val MOSHI = "1.13.0" const val INJECT = "1" -} \ No newline at end of file +} diff --git a/buildSrc/src/main/java/app/ModuleDependencies.kt b/buildSrc/src/main/java/app/ModuleDependencies.kt index ce7ad7c0..adb4bd2d 100644 --- a/buildSrc/src/main/java/app/ModuleDependencies.kt +++ b/buildSrc/src/main/java/app/ModuleDependencies.kt @@ -140,6 +140,10 @@ object ModuleDependencies { DependencyInfo("javax.inject:javax.inject", Versions.INJECT, Method.IMPLEMENTATION) ) + val materialCalendarView = arrayOf( + DependencyInfo("com.prolificinteractive:material-calendarview", Versions.MATERIAL_CALENDAR, Method.IMPLEMENTATION) + ) + const val FIREBASE_BOM = "com.google.firebase:firebase-bom:${Versions.FIREBASE_BOM}" const val FIREBASE_ANALYTICS = "com.google.firebase:firebase-analytics-ktx" const val FIREBASE_CRASHLYTICS = "com.google.firebase:firebase-crashlytics-ktx" diff --git a/presentation/build.gradle.kts b/presentation/build.gradle.kts index 70864bc1..dd70c834 100644 --- a/presentation/build.gradle.kts +++ b/presentation/build.gradle.kts @@ -43,6 +43,7 @@ dependencies { app.ModuleDependencies.hilt.implement(this) app.ModuleDependencies.hiltAndroid.implement(this) app.ModuleDependencies.timber.implement(this) + app.ModuleDependencies.materialCalendarView.implement(this) implementation(platform(app.ModuleDependencies.FIREBASE_BOM)) implementation(app.ModuleDependencies.FIREBASE_ANALYTICS) From 7562e0f4e95ada232fa20d94f3fec093cf16a80e Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:18:03 +0900 Subject: [PATCH 05/33] =?UTF-8?q?feat=20-=20BottomNavigation=EC=9D=B4=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=EC=9D=84=20=EA=B0=80=EB=A6=AC=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/PlanzScreen.kt | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/PlanzScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/PlanzScreen.kt index ad42c61a..6685abbd 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/PlanzScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/PlanzScreen.kt @@ -2,6 +2,7 @@ package com.yapp.growth.presentation.ui.main import androidx.annotation.DrawableRes import androidx.annotation.StringRes +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -67,25 +68,27 @@ fun PlanzScreen( }, isFloatingActionButtonDocked = true, floatingActionButtonPosition = FabPosition.Center, - ) { - NavHost( - navController = navController, - startDestination = PlanzScreenRoute.HOME.route - ) { - composable(route = PlanzScreenRoute.HOME.route) { - HomeScreen() - } + ) { innerPadding -> + Box(modifier = Modifier.padding(innerPadding)) { + NavHost( + navController = navController, + startDestination = PlanzScreenRoute.HOME.route + ) { + composable(route = PlanzScreenRoute.HOME.route) { + HomeScreen() + } - composable(route = PlanzScreenRoute.CREATE_PLAN.route) { - CreatePlanScreen() - } + composable(route = PlanzScreenRoute.CREATE_PLAN.route) { + CreatePlanScreen() + } - composable(route = PlanzScreenRoute.MANAGE_PLAN.route) { - ManagePlanScreen() - } + composable(route = PlanzScreenRoute.MANAGE_PLAN.route) { + ManagePlanScreen() + } - composable(route = PlanzScreenRoute.SAMPLE.route) { - SampleScreen() + composable(route = PlanzScreenRoute.SAMPLE.route) { + SampleScreen() + } } } } From d6b19f4fe89697d2163dc26e7e5fc752b49715d2 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:19:54 +0900 Subject: [PATCH 06/33] =?UTF-8?q?feat=20-=20HomeContract,=20HomeViewModel?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeContract.kt | 15 +++++++++++++++ .../presentation/ui/main/home/HomeViewModel.kt | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt create mode 100644 presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt new file mode 100644 index 00000000..75d0aaed --- /dev/null +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt @@ -0,0 +1,15 @@ +package com.yapp.growth.presentation.ui.main.home + +import com.yapp.growth.base.ViewEvent +import com.yapp.growth.base.ViewSideEffect +import com.yapp.growth.base.ViewState + +class HomeContract { + object HomeViewState : ViewState + + sealed class HomeSideEffect : ViewSideEffect { + } + + sealed class HomeEvent : ViewEvent { + } +} \ No newline at end of file diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt new file mode 100644 index 00000000..64613854 --- /dev/null +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt @@ -0,0 +1,15 @@ +package com.yapp.growth.presentation.ui.main.home + +import com.yapp.growth.base.BaseViewModel +import com.yapp.growth.presentation.ui.main.home.HomeContract.* +import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject + +@HiltViewModel +class HomeViewModel @Inject constructor( +) : BaseViewModel(HomeViewState) { + + override fun handleEvents(event: HomeEvent) { + + } +} \ No newline at end of file From 244e3abd9a642e361cf8d7d532ecd6f1ccd0dff7 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:25:06 +0900 Subject: [PATCH 07/33] =?UTF-8?q?feat=20-=20Home=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8,=20=EC=82=AC=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EC=9D=B4=ED=8E=99=ED=8A=B8=20=EB=A1=9C=EC=A7=81=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 --- .../presentation/ui/main/home/HomeContract.kt | 17 ++++++- .../presentation/ui/main/home/HomeScreen.kt | 50 +++++++++++++------ .../ui/main/home/HomeViewModel.kt | 18 +++++-- 3 files changed, 65 insertions(+), 20 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt index 75d0aaed..629b0293 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeContract.kt @@ -5,11 +5,24 @@ import com.yapp.growth.base.ViewSideEffect import com.yapp.growth.base.ViewState class HomeContract { - object HomeViewState : ViewState + data class HomeViewState( + val loginState: LoginState = LoginState.LOGIN + ) : ViewState + // TODO : 유저 아이콘 클릭 시 내 정보 창으로 이동 (정호) sealed class HomeSideEffect : ViewSideEffect { + object NavigateToInfoScreen : HomeSideEffect() + object NavigateDetailPlanScreen : HomeSideEffect() + object OpenBottomSheet : HomeSideEffect() } sealed class HomeEvent : ViewEvent { + object OnUserImageButtonClicked : HomeEvent() + object OnPlanClicked : HomeEvent() + object OnCalendarDayClicked : HomeEvent() } -} \ No newline at end of file + + enum class LoginState { + NONE, LOGIN + } +} diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 9cc93258..6c30ffa2 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -1,25 +1,45 @@ package com.yapp.growth.presentation.ui.main.home -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.Surface -import androidx.compose.material.Text import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.ui.tooling.preview.Preview +import androidx.hilt.navigation.compose.hiltViewModel +import com.yapp.growth.presentation.theme.PlanzTheme +import com.yapp.growth.presentation.ui.main.home.HomeContract.HomeSideEffect +import kotlinx.coroutines.flow.collect + @Composable -fun HomeScreen() { - Surface( - modifier = Modifier.fillMaxSize(), - color = Color(0xFFF7F7F8) - ) { - Text(text = "Home") +fun HomeScreen( + viewModel: HomeViewModel = hiltViewModel(), +) { + + val viewState by viewModel.viewState.collectAsState() + + // TODO : 이벤트에 따라 사이드 이펙트 적용되게 설정 (정호) + LaunchedEffect(key1 = viewModel.effect) { + viewModel.effect.collect { effect -> + when (effect) { + is HomeSideEffect.NavigateToInfoScreen -> { + // onUserIconClick() + } + is HomeSideEffect.NavigateDetailPlanScreen -> { + // onDetailPlanClick() + } + is HomeSideEffect.OpenBottomSheet -> { + // sheet.show() + } + } + } } } -@Preview +@Preview(showBackground = true, widthDp = 360, heightDp = 640) @Composable -fun HomeScreenPreview() { - HomeScreen() -} \ No newline at end of file +fun PreviewHomeScreen() { + PlanzTheme { + HomeScreen() + } +} diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt index 64613854..959021ba 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeViewModel.kt @@ -7,9 +7,21 @@ import javax.inject.Inject @HiltViewModel class HomeViewModel @Inject constructor( -) : BaseViewModel(HomeViewState) { +) : BaseViewModel(HomeViewState()) { - override fun handleEvents(event: HomeEvent) { + // TODO : 로그인 여부 체크(정호) + override fun handleEvents(event: HomeEvent) { + when (event) { + is HomeEvent.OnCalendarDayClicked -> { + sendEffect({ HomeSideEffect.OpenBottomSheet }) + } + is HomeEvent.OnPlanClicked -> { + sendEffect({ HomeSideEffect.NavigateDetailPlanScreen }) + } + is HomeEvent.OnUserImageButtonClicked -> { + sendEffect({ HomeSideEffect.NavigateToInfoScreen }) + } + } } -} \ No newline at end of file +} From 18b332df7682418815e962c406f180f4fc540675 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:27:46 +0900 Subject: [PATCH 08/33] =?UTF-8?q?feat=20-=20Home=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=95=B1=EB=B0=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 74 ++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 6c30ffa2..8f61cfc3 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -1,12 +1,29 @@ package com.yapp.growth.presentation.ui.main.home +import androidx.compose.foundation.Image +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.IconButton +import androidx.compose.material.Scaffold +import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout import androidx.hilt.navigation.compose.hiltViewModel -import com.yapp.growth.presentation.theme.PlanzTheme +import com.yapp.growth.presentation.R +import com.yapp.growth.presentation.theme.* import com.yapp.growth.presentation.ui.main.home.HomeContract.HomeSideEffect import kotlinx.coroutines.flow.collect @@ -34,6 +51,61 @@ fun HomeScreen( } } } + + Scaffold( + backgroundColor = BackgroundColor1, + topBar = { + HomeAppBar( + userName = "김정호", + onUserIconClick = { /* TODO */ } + ) + }, + modifier = Modifier.fillMaxSize(), + ) { + } +} + +// TODO : 클릭 시 내 정보 화면으로 네비게이션 (정호) +@Composable +private fun HomeAppBar( + modifier: Modifier = Modifier, + userName: String, + onUserIconClick: () -> Unit, +) { + ConstraintLayout( + modifier = modifier + .fillMaxWidth() + .height(60.dp) + ) { + val (userImage, nameText) = createRefs() + + IconButton( + modifier = Modifier + .size(30.dp, 30.dp) + .constrainAs(userImage) { + start.linkTo(parent.start, margin = 22.dp) + top.linkTo(parent.top, margin = 14.dp) + }, + onClick = { onUserIconClick() }) { + Image( + painter = painterResource(R.drawable.ic_default_user_image), + contentScale = ContentScale.Crop, + modifier = Modifier + .clip(CircleShape) + .border(0.79.dp, MainPurple900, CircleShape), + contentDescription = null, + ) + } + Text( + modifier = Modifier.constrainAs(nameText) { + start.linkTo(userImage.end, margin = 12.dp) + top.linkTo(parent.top, margin = 16.dp) + }, + text = userName, + style = PlanzTypography.h3, + color = Gray900, + ) + } } @Preview(showBackground = true, widthDp = 360, heightDp = 640) From 3aa4b4dfe806ec7ce5776b476dcdf7dba8a36a83 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:31:06 +0900 Subject: [PATCH 09/33] =?UTF-8?q?feat=20-=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EC=83=81?= =?UTF-8?q?=EB=8B=A8=20=EB=B0=95=EC=8A=A4=EA=B0=80=20=EB=8B=A4=EB=A5=B4?= =?UTF-8?q?=EA=B2=8C=20=EB=B3=B4=EC=9D=B4=EB=8F=84=EB=A1=9D=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 8f61cfc3..03cad1e9 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -2,11 +2,10 @@ package com.yapp.growth.presentation.ui.main.home import androidx.compose.foundation.Image import androidx.compose.foundation.border -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material.IconButton import androidx.compose.material.Scaffold import androidx.compose.material.Text @@ -62,6 +61,13 @@ fun HomeScreen( }, modifier = Modifier.fillMaxSize(), ) { + Column( + modifier = Modifier + .fillMaxSize() + .verticalScroll(rememberScrollState()) + ) { + HomeTopBox(loginState = viewState.loginState) + } } } @@ -108,6 +114,24 @@ private fun HomeAppBar( } } +@Composable +fun HomeTopBox(loginState: HomeContract.LoginState) { + when (loginState) { + HomeContract.LoginState.LOGIN -> HomeIsLoginBox() + HomeContract.LoginState.NONE -> HomeIsNotLoginBox() + } +} + +@Composable +fun HomeIsLoginBox() { + +} + +@Composable +fun HomeIsNotLoginBox() { + +} + @Preview(showBackground = true, widthDp = 360, heightDp = 640) @Composable fun PreviewHomeScreen() { From 06ac039e3b160d8a242d42d24ce5c1303d58a59f Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:34:14 +0900 Subject: [PATCH 10/33] =?UTF-8?q?feat=20-=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=83=81=ED=83=9C=EC=9D=BC=20=EB=95=8C=20=EB=B3=B4=EC=97=AC?= =?UTF-8?q?=EC=A4=84=20=EB=B0=95=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 105 ++++++++++++++++-- 1 file changed, 94 insertions(+), 11 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 03cad1e9..074de0bd 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -1,22 +1,22 @@ package com.yapp.growth.presentation.ui.main.home -import androidx.compose.foundation.Image -import androidx.compose.foundation.border +import androidx.compose.animation.animateContentSize +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring +import androidx.compose.foundation.* import androidx.compose.foundation.layout.* -import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.foundation.verticalScroll -import androidx.compose.material.IconButton -import androidx.compose.material.Scaffold -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout @@ -122,11 +122,94 @@ fun HomeTopBox(loginState: HomeContract.LoginState) { } } +// TODO : 약속 수 들어가는 로직 넣기 (정호) @Composable fun HomeIsLoginBox() { + var expanded by remember { mutableStateOf(false) } + Surface( + color = Color.White, + shape = RoundedCornerShape(12.dp), + modifier = Modifier + .padding(horizontal = 16.dp), + ) { + Box( + modifier = Modifier + .wrapContentHeight() + .fillMaxWidth() + .padding(horizontal = 20.dp) + .animateContentSize( + animationSpec = spring( + dampingRatio = Spring.DampingRatioLowBouncy, + stiffness = Spring.StiffnessLow + ) + ), + ) { + Column { + Row( + modifier = Modifier + .padding(top = 16.dp) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + ) { + Text( + text = "오늘의 약속", + color = Color.Black, + style = MaterialTheme.typography.h3, + ) + Spacer(modifier = Modifier.padding(4.dp)) + Box( + modifier = Modifier + .size(27.dp, 18.dp) + .clip(RoundedCornerShape(10.dp)) + .background(color = MainPurple300), + contentAlignment = Alignment.Center, + ) { + Text( + modifier = Modifier.fillMaxHeight(), + text = "0", + color = MainPurple900, + style = MaterialTheme.typography.caption, + ) + } + } + + Column( + modifier = Modifier.padding(top = 22.dp, bottom = 36.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + // TODO : API 연동 + if (expanded) { + for (i in 0 until 3) { + // ItemTodayPlan() + } + } else { + // ItemTodayPlan() + } + } + } + IconButton( + modifier = Modifier + .padding(bottom = 9.dp) + .size(12.3.dp, 6.47.dp) + .align(Alignment.BottomCenter), + onClick = { expanded = !expanded }) { + Icon( + tint = Color.Unspecified, + imageVector = ( + if (expanded) { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_top) + } else { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_bottom) + }), + contentDescription = null, + ) + } + } + } } + @Composable fun HomeIsNotLoginBox() { From 8847a1a2a030c2c46dc085e2a6de5c01fe4a10a4 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:34:49 +0900 Subject: [PATCH 11/33] =?UTF-8?q?feat=20-=20=EB=B9=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=83=81=ED=83=9C=EC=9D=BC=20=EB=95=8C=20=EB=B3=B4?= =?UTF-8?q?=EC=97=AC=EC=A4=84=20=EB=B0=95=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 074de0bd..3218d54f 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -212,7 +212,39 @@ fun HomeIsLoginBox() { @Composable fun HomeIsNotLoginBox() { - + Box( + modifier = Modifier + .height(60.dp) + .fillMaxWidth() + .padding(horizontal = 16.dp) + .clip(RoundedCornerShape(12.dp)) + .background(brush = MainGradient), + contentAlignment = Alignment.Center, + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 19.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + text = "회원가입하고, 편리한 약속잡기를 경험하세요!", + color = Color.White, + style = MaterialTheme.typography.subtitle2, + ) + IconButton( + modifier = Modifier.size(5.7.dp, 12.dp), + onClick = { /*TODO*/ }, + ) { + Icon( + tint = Color.Unspecified, + imageVector = ImageVector.vectorResource(R.drawable.ic_transparent_arrow_right), + contentDescription = null, + ) + } + } + } } @Preview(showBackground = true, widthDp = 360, heightDp = 640) From 317f891f6d0b410969565c0ebd280cb7927fea75 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:35:58 +0900 Subject: [PATCH 12/33] =?UTF-8?q?feat=20-=20=EC=95=BD=EC=86=8D=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 3218d54f..4e8242c3 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -180,10 +180,10 @@ fun HomeIsLoginBox() { // TODO : API 연동 if (expanded) { for (i in 0 until 3) { - // ItemTodayPlan() + ItemTodayPlan() } } else { - // ItemTodayPlan() + ItemTodayPlan() } } } @@ -247,6 +247,43 @@ fun HomeIsNotLoginBox() { } } +// TODO : API 연동 및 매개변수 추가(정호) +@Composable +fun ItemTodayPlan() { + Box( + modifier = Modifier + .fillMaxWidth() + .clickable( + onClick = { /*TODO*/ } + ), + ) + { + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + // TODO : 약속 종류에 따라 아이콘 변경 (정호) + Icon( + tint = Color.Unspecified, + imageVector = ImageVector.vectorResource(id = R.drawable.ic_plan_meal), + contentDescription = null, + ) + Spacer(modifier = Modifier.padding(8.dp)) + Column { + Text( + text = "6시 30분", + color = Gray500, + style = MaterialTheme.typography.caption, + ) + Text( + text = "돼지파티 약속 외 1건", + color = Color.Black, + style = MaterialTheme.typography.subtitle1, + ) + } + } + } +} + @Preview(showBackground = true, widthDp = 360, heightDp = 640) @Composable fun PreviewHomeScreen() { From 3b2a8004490dd469d9104cb6afcffa4852ae9824 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:38:58 +0900 Subject: [PATCH 13/33] =?UTF-8?q?feat=20-=20=ED=99=88=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=20=EB=B0=94=ED=85=80=20=EB=B0=95=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 4e8242c3..8e15ad66 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -21,6 +21,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.hilt.navigation.compose.hiltViewModel +import com.prolificinteractive.materialcalendarview.CalendarDay import com.yapp.growth.presentation.R import com.yapp.growth.presentation.theme.* import com.yapp.growth.presentation.ui.main.home.HomeContract.HomeSideEffect @@ -67,6 +68,9 @@ fun HomeScreen( .verticalScroll(rememberScrollState()) ) { HomeTopBox(loginState = viewState.loginState) + Spacer(modifier = Modifier.padding(8.dp)) + HomeBottomBox() + Spacer(modifier = Modifier.padding(20.dp)) } } } @@ -247,6 +251,157 @@ fun HomeIsNotLoginBox() { } } +@Composable +fun HomeBottomBox() { + var isCalendarMode by remember { mutableStateOf(true) } + var expanded by remember { mutableStateOf(false) } + + var currentDate: CalendarDay by remember { mutableStateOf(CalendarDay.today()) } + + var year: Int by remember { mutableStateOf(currentDate.year) } + var month: Int by remember { mutableStateOf(currentDate.month + 1) } + + Surface( + color = Color.White, + shape = RoundedCornerShape(12.dp), + modifier = Modifier + .padding(horizontal = 16.dp) + ) { + Box( + modifier = Modifier + .wrapContentHeight() + .fillMaxWidth() + .padding(horizontal = 20.dp) + .animateContentSize( + animationSpec = spring( + dampingRatio = Spring.DampingRatioLowBouncy, + stiffness = Spring.StiffnessLow + ) + ), + ) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(modifier = Modifier.padding(top = 21.dp)) + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = "${year}년 ${month}월", + style = PlanzTypography.h3 + ) + Spacer(modifier = Modifier.padding(3.dp)) + OutlinedButton( + onClick = { + month-- + if (month == 0) { + year-- + month = 12 + } + currentDate = CalendarDay.from(year, month - 1, 1) + }, + modifier = Modifier.size(25.dp), + shape = CircleShape, + border = BorderStroke(1.dp, Color.Transparent), + contentPadding = PaddingValues(0.dp), + colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), + ) { + Icon( + tint = Color.Unspecified, + imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_left), + contentDescription = null, + ) + } + OutlinedButton( + onClick = { + month++ + if (month == 13) { + year++ + month = 1 + } + currentDate = CalendarDay.from(year, month - 1, 1) + }, + modifier = Modifier.size(25.dp), + shape = CircleShape, + border = BorderStroke(1.dp, Color.Transparent), + contentPadding = PaddingValues(0.dp), + colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), + ) { + Icon( + tint = Color.Unspecified, + imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_right), + contentDescription = null, + ) + } + Spacer(modifier = Modifier.weight(1f)) + OutlinedButton( + onClick = { + isCalendarMode = !isCalendarMode + }, + modifier = Modifier.size(32.dp), + shape = CircleShape, + border = BorderStroke(1.dp, Color.Transparent), + contentPadding = PaddingValues(0.dp), + colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), + ) { + Icon( + tint = Color.Unspecified, + imageVector = + if (isCalendarMode) { + ImageVector.vectorResource(R.drawable.ic_list) + } else { + ImageVector.vectorResource(R.drawable.ic_calendar) + }, + contentDescription = null, + ) + } + } + Spacer(modifier = Modifier.padding(top = 12.dp)) + Divider(color = Gray200, thickness = 1.dp) + Spacer(modifier = Modifier.padding(top = 10.dp)) + if (isCalendarMode) { + // PlanCalendar(currentDate) + } else { + Column( + modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), + verticalArrangement = Arrangement.spacedBy(9.5.dp), + ) { + if (expanded) { + // TODO : 예시 화면 (정호) + for (i in 0 until 10) { + // ItemTextPlan("그로스 회의회의") + } + } else { + for (i in 0 until 4) { + // ItemTextPlan("그로스 회의회의") + } + } + } + IconButton( + modifier = Modifier + .padding(bottom = 9.dp) + .size(12.3.dp, 6.47.dp), + onClick = { expanded = !expanded }, + ) + { + Icon( + tint = Color.Unspecified, + imageVector = + if (expanded) { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_top) + } else { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_bottom) + }, + contentDescription = null + ) + } + } + } + } + } +} + // TODO : API 연동 및 매개변수 추가(정호) @Composable fun ItemTodayPlan() { From 92b0f31dad391d98329a3cbada2ba4a4e452e9f7 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:41:01 +0900 Subject: [PATCH 14/33] =?UTF-8?q?feat=20-=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=95=BD=EC=86=8D=20=EB=AA=A9=EB=A1=9D=20UI=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 8e15ad66..07d48d3f 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -370,11 +370,11 @@ fun HomeBottomBox() { if (expanded) { // TODO : 예시 화면 (정호) for (i in 0 until 10) { - // ItemTextPlan("그로스 회의회의") + ItemTextPlan("그로스 회의회의") } } else { for (i in 0 until 4) { - // ItemTextPlan("그로스 회의회의") + ItemTextPlan("그로스 회의회의") } } } @@ -439,6 +439,39 @@ fun ItemTodayPlan() { } } +// TODO : API 연동 및 매개변수 추가 (정호) +@Composable +fun ItemTextPlan(content: String) { + Box( + modifier = Modifier + .fillMaxWidth(), + ) + { + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + Spacer(modifier = Modifier.padding(5.dp)) + Text( + text = "6/26", + color = MainPurple900, + style = MaterialTheme.typography.subtitle2, + ) + Spacer(modifier = Modifier.padding(20.dp)) + Text( + text = content, + color = Color.Black, + style = MaterialTheme.typography.body2, + ) + Spacer(modifier = Modifier.weight(1F)) + Text( + text = "10시 00분", + color = Gray500, + style = MaterialTheme.typography.caption, + ) + } + } +} + @Preview(showBackground = true, widthDp = 360, heightDp = 640) @Composable fun PreviewHomeScreen() { From 228d992a251c606fb2d22424375215b0c00cca22 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:43:22 +0900 Subject: [PATCH 15/33] =?UTF-8?q?feat=20-=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 07d48d3f..4e499d37 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -19,13 +19,16 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.viewinterop.AndroidView import androidx.constraintlayout.compose.ConstraintLayout import androidx.hilt.navigation.compose.hiltViewModel import com.prolificinteractive.materialcalendarview.CalendarDay +import com.prolificinteractive.materialcalendarview.MaterialCalendarView import com.yapp.growth.presentation.R import com.yapp.growth.presentation.theme.* import com.yapp.growth.presentation.ui.main.home.HomeContract.HomeSideEffect import kotlinx.coroutines.flow.collect +import timber.log.Timber @Composable @@ -402,6 +405,31 @@ fun HomeBottomBox() { } } +// TODO : 추후 공통 컴포넌트로 이동 (정호) +@Composable +fun PlanCalendar( + currentDate: CalendarDay +) { + AndroidView( + { MaterialCalendarView(it) }, + update = { views -> + views.apply { + this.setOnDateChangedListener { widget, date, selected -> + Timber.d(date.toString()) + } + this.selectionMode = MaterialCalendarView.SELECTION_MODE_SINGLE + this.selectedDate = CalendarDay.today() + this.showOtherDates = MaterialCalendarView.SHOW_OTHER_MONTHS + this.setAllowClickDaysOutsideCurrentMonth(false) + this.currentDate = currentDate + this.isDynamicHeightEnabled = true + this.topbarVisible = false + this.isPagingEnabled = false + } + } + ) +} + // TODO : API 연동 및 매개변수 추가(정호) @Composable fun ItemTodayPlan() { From 46ba6ba7487be4905da166cd5e35d3f2414ff573 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:44:38 +0900 Subject: [PATCH 16/33] =?UTF-8?q?design=20-=20=EC=BA=98=EB=A6=B0=EB=8D=94?= =?UTF-8?q?=20=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4=ED=8C=85=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20XML=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/drawable/bg_calendar_ripple.xml | 9 ++++++++ .../res/drawable/bg_calendar_selection.xml | 12 +++++++++++ .../main/res/drawable/bg_calendar_today.xml | 21 +++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 presentation/src/main/res/drawable/bg_calendar_ripple.xml create mode 100644 presentation/src/main/res/drawable/bg_calendar_selection.xml create mode 100644 presentation/src/main/res/drawable/bg_calendar_today.xml diff --git a/presentation/src/main/res/drawable/bg_calendar_ripple.xml b/presentation/src/main/res/drawable/bg_calendar_ripple.xml new file mode 100644 index 00000000..035afbbc --- /dev/null +++ b/presentation/src/main/res/drawable/bg_calendar_ripple.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/presentation/src/main/res/drawable/bg_calendar_selection.xml b/presentation/src/main/res/drawable/bg_calendar_selection.xml new file mode 100644 index 00000000..913e8f05 --- /dev/null +++ b/presentation/src/main/res/drawable/bg_calendar_selection.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/presentation/src/main/res/drawable/bg_calendar_today.xml b/presentation/src/main/res/drawable/bg_calendar_today.xml new file mode 100644 index 00000000..6405d579 --- /dev/null +++ b/presentation/src/main/res/drawable/bg_calendar_today.xml @@ -0,0 +1,21 @@ + + + + + + + + + + From 10e403639f185832c8522c9de62fa9c22afebfed Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:45:33 +0900 Subject: [PATCH 17/33] =?UTF-8?q?feat=20-=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4=ED=8C=85=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/home/CalendarDecorator.kt | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt new file mode 100644 index 00000000..2478b026 --- /dev/null +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt @@ -0,0 +1,155 @@ +package com.yapp.growth.presentation.ui.main.home + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.Canvas +import android.graphics.Paint +import android.graphics.Typeface +import android.text.style.ForegroundColorSpan +import android.text.style.LineBackgroundSpan +import android.text.style.StyleSpan +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.toArgb +import androidx.core.content.ContextCompat +import com.prolificinteractive.materialcalendarview.CalendarDay +import com.prolificinteractive.materialcalendarview.DayViewDecorator +import com.prolificinteractive.materialcalendarview.DayViewFacade +import com.prolificinteractive.materialcalendarview.MaterialCalendarView +import com.prolificinteractive.materialcalendarview.spans.DotSpan.DEFAULT_RADIUS +import com.yapp.growth.presentation.R +import com.yapp.growth.presentation.theme.* +import java.util.* + + +class CalendarDecorator { + class TodayDecorator(context: Context) : DayViewDecorator { + private var date = CalendarDay.today() + private val boldSpan: StyleSpan = StyleSpan(Typeface.BOLD) + + @SuppressLint("UseCompatLoadingForDrawables") + val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_today) + override fun shouldDecorate(day: CalendarDay?): Boolean { + return day?.equals(date)!! + } + + override fun decorate(view: DayViewFacade?) { + if (drawable != null) { + view?.addSpan(object : ForegroundColorSpan(Color.White.toArgb()) {}) + view?.setSelectionDrawable(drawable) + view?.addSpan(boldSpan) + } + } + } + + class SelectDecorator(context: Context, mCalendar: MaterialCalendarView) : DayViewDecorator { + @SuppressLint("UseCompatLoadingForDrawables") + private val mCalendar = mCalendar.currentDate.calendar + private val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_selection) + + override fun shouldDecorate(day: CalendarDay?): Boolean { + val calendar = day!!.calendar + + return calendar.get(Calendar.ERA) == mCalendar.get(Calendar.ERA) + && calendar.get(Calendar.YEAR) == mCalendar.get(Calendar.YEAR) + && calendar.get(Calendar.MONTH) == mCalendar.get(Calendar.MONTH) + } + + override fun decorate(view: DayViewFacade?) { + if (drawable != null) { + view?.addSpan(object : ForegroundColorSpan(Gray900.toArgb()) {}) + view?.setSelectionDrawable(drawable) + } + } + } + + class OtherDayDecorator(context: Context, mCalendar: MaterialCalendarView) : DayViewDecorator { + @SuppressLint("UseCompatLoadingForDrawables") + private val mCalendar = mCalendar.currentDate.calendar + private val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_selection) + override fun shouldDecorate(day: CalendarDay?): Boolean { + val calendar = day!!.calendar + + return calendar.get(Calendar.ERA) == mCalendar.get(Calendar.ERA) + && calendar.get(Calendar.YEAR) == mCalendar.get(Calendar.YEAR) + && calendar.get(Calendar.MONTH) != mCalendar.get(Calendar.MONTH) + } + + override fun decorate(view: DayViewFacade?) { + if (drawable != null) { + view?.addSpan(object : ForegroundColorSpan(Gray300.toArgb()) {}) + view?.setSelectionDrawable(drawable) + } + } + } + + class SundayDecorator : DayViewDecorator { + private val calendar = Calendar.getInstance() + override fun shouldDecorate(day: CalendarDay?): Boolean { + day?.copyTo(calendar) + val weekDay = calendar.get(Calendar.DAY_OF_WEEK) + return (weekDay == Calendar.SUNDAY) + } + + override fun decorate(view: DayViewFacade?) { + view?.addSpan(object : ForegroundColorSpan(SubCoral.toArgb()) {}) + } + } + + // TODO : 일정이 있는 날만 점 데코레이터 찍기 + class DotDecorator : DayViewDecorator { + private var date = CalendarDay.from(2022, 5, 21) + + override fun shouldDecorate(day: CalendarDay?): Boolean { + return day?.equals(date)!! + } + + override fun decorate(view: DayViewFacade?) { + view?.addSpan(CustomMultipleDotSpan(4F, color = intArrayOf(SubCoral.toArgb(), SubYellow.toArgb(), MainPurple900.toArgb()))) + } + } + + class CustomMultipleDotSpan : LineBackgroundSpan { + private val radius: Float + private var color = IntArray(0) + + constructor() { + radius = DEFAULT_RADIUS + color[0] = 0 + } + + constructor(color: Int) { + radius = DEFAULT_RADIUS + this.color[0] = 0 + } + + constructor(radius: Float) { + this.radius = radius + color[0] = 0 + } + + constructor(radius: Float, color: IntArray) { + this.radius = radius + this.color = color + } + + override fun drawBackground( + canvas: Canvas, paint: Paint, + left: Int, right: Int, top: Int, baseline: Int, bottom: Int, + charSequence: CharSequence, + start: Int, end: Int, lineNum: Int + ) { + val total = if (color.size > 5) 5 else color.size + var leftMost = (total - 1) * - 10 + + for (i in 0 until total) { + val oldColor: Int = paint.color + if (color[i] != 0) { + paint.color = color[i] + } + canvas.drawCircle(((left + right) / 2 - leftMost).toFloat(), bottom + 10F , radius, paint) + paint.color = oldColor + leftMost += 20 + } + } + } +} \ No newline at end of file From b629568fb50246054fef7cc350c4a394acb86f8d Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:46:35 +0900 Subject: [PATCH 18/33] =?UTF-8?q?feat=20-=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4=ED=8C=85=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yapp/growth/presentation/ui/main/home/HomeScreen.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 4e499d37..78fdda0e 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview @@ -410,6 +411,8 @@ fun HomeBottomBox() { fun PlanCalendar( currentDate: CalendarDay ) { + val context = LocalContext.current + AndroidView( { MaterialCalendarView(it) }, update = { views -> @@ -425,6 +428,11 @@ fun PlanCalendar( this.isDynamicHeightEnabled = true this.topbarVisible = false this.isPagingEnabled = false + this.addDecorator(CalendarDecorator.SelectDecorator(context, this)) + this.addDecorator(CalendarDecorator.SundayDecorator()) + this.addDecorator(CalendarDecorator.OtherDayDecorator(context, this)) + this.addDecorator(CalendarDecorator.TodayDecorator(context)) + this.addDecorator(CalendarDecorator.DotDecorator()) } } ) From 806a138dda2aa12a55abd0b6ea0470e47e9eb89c Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Wed, 29 Jun 2022 20:48:57 +0900 Subject: [PATCH 19/33] =?UTF-8?q?fix=20-=20=EC=BA=98=EB=A6=B0=EB=8D=94=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EC=A3=BC=EC=84=9D=20=ED=95=B4=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/growth/presentation/ui/main/home/HomeScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 78fdda0e..6d623d04 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -365,7 +365,7 @@ fun HomeBottomBox() { Divider(color = Gray200, thickness = 1.dp) Spacer(modifier = Modifier.padding(top = 10.dp)) if (isCalendarMode) { - // PlanCalendar(currentDate) + PlanCalendar(currentDate) } else { Column( modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), From 34e1dd69013888df0b84425b3490dddb716c224a Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:50:36 +0900 Subject: [PATCH 20/33] =?UTF-8?q?refactor=20-=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EC=A0=80=EB=B8=94=20=ED=95=A8=EC=88=98=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 6d623d04..f13260d7 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -59,7 +59,7 @@ fun HomeScreen( Scaffold( backgroundColor = BackgroundColor1, topBar = { - HomeAppBar( + HomeUserProfile( userName = "김정호", onUserIconClick = { /* TODO */ } ) @@ -73,7 +73,7 @@ fun HomeScreen( ) { HomeTopBox(loginState = viewState.loginState) Spacer(modifier = Modifier.padding(8.dp)) - HomeBottomBox() + HomeMonthlyPlan() Spacer(modifier = Modifier.padding(20.dp)) } } @@ -81,7 +81,7 @@ fun HomeScreen( // TODO : 클릭 시 내 정보 화면으로 네비게이션 (정호) @Composable -private fun HomeAppBar( +private fun HomeUserProfile( modifier: Modifier = Modifier, userName: String, onUserIconClick: () -> Unit, @@ -125,14 +125,14 @@ private fun HomeAppBar( @Composable fun HomeTopBox(loginState: HomeContract.LoginState) { when (loginState) { - HomeContract.LoginState.LOGIN -> HomeIsLoginBox() - HomeContract.LoginState.NONE -> HomeIsNotLoginBox() + HomeContract.LoginState.LOGIN -> HomeTodayPlan() + HomeContract.LoginState.NONE -> HomeInduceLogin() } } // TODO : 약속 수 들어가는 로직 넣기 (정호) @Composable -fun HomeIsLoginBox() { +fun HomeTodayPlan() { var expanded by remember { mutableStateOf(false) } Surface( color = Color.White, @@ -188,10 +188,10 @@ fun HomeIsLoginBox() { // TODO : API 연동 if (expanded) { for (i in 0 until 3) { - ItemTodayPlan() + HomeTodayPlanItem() } } else { - ItemTodayPlan() + HomeTodayPlanItem() } } } @@ -219,7 +219,7 @@ fun HomeIsLoginBox() { @Composable -fun HomeIsNotLoginBox() { +fun HomeInduceLogin() { Box( modifier = Modifier .height(60.dp) @@ -256,7 +256,7 @@ fun HomeIsNotLoginBox() { } @Composable -fun HomeBottomBox() { +fun HomeMonthlyPlan() { var isCalendarMode by remember { mutableStateOf(true) } var expanded by remember { mutableStateOf(false) } @@ -365,7 +365,7 @@ fun HomeBottomBox() { Divider(color = Gray200, thickness = 1.dp) Spacer(modifier = Modifier.padding(top = 10.dp)) if (isCalendarMode) { - PlanCalendar(currentDate) + PlanzCalendar(currentDate) } else { Column( modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), @@ -374,11 +374,11 @@ fun HomeBottomBox() { if (expanded) { // TODO : 예시 화면 (정호) for (i in 0 until 10) { - ItemTextPlan("그로스 회의회의") + HomeMonthlyPlanItem("그로스 회의회의") } } else { for (i in 0 until 4) { - ItemTextPlan("그로스 회의회의") + HomeMonthlyPlanItem("그로스 회의회의") } } } @@ -408,7 +408,7 @@ fun HomeBottomBox() { // TODO : 추후 공통 컴포넌트로 이동 (정호) @Composable -fun PlanCalendar( +fun PlanzCalendar( currentDate: CalendarDay ) { val context = LocalContext.current @@ -440,7 +440,7 @@ fun PlanCalendar( // TODO : API 연동 및 매개변수 추가(정호) @Composable -fun ItemTodayPlan() { +fun HomeTodayPlanItem() { Box( modifier = Modifier .fillMaxWidth() @@ -477,7 +477,7 @@ fun ItemTodayPlan() { // TODO : API 연동 및 매개변수 추가 (정호) @Composable -fun ItemTextPlan(content: String) { +fun HomeMonthlyPlanItem(content: String) { Box( modifier = Modifier .fillMaxWidth(), From ffb80b0164061e58fb1a1c4a480f216bcce29f5b Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:52:24 +0900 Subject: [PATCH 21/33] =?UTF-8?q?feat=20-=20=ED=99=88=20=ED=99=94=EB=A9=B4?= =?UTF-8?q?=20=EC=8A=A4=ED=8A=B8=EB=A7=81=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/growth/presentation/ui/main/home/HomeScreen.kt | 5 +++-- presentation/src/main/res/values/strings.xml | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index f13260d7..88cbae6d 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -160,7 +161,7 @@ fun HomeTodayPlan() { verticalAlignment = Alignment.CenterVertically, ) { Text( - text = "오늘의 약속", + text = stringResource(id = R.string.home_today_plan), color = Color.Black, style = MaterialTheme.typography.h3, ) @@ -237,7 +238,7 @@ fun HomeInduceLogin() { horizontalArrangement = Arrangement.SpaceBetween, ) { Text( - text = "회원가입하고, 편리한 약속잡기를 경험하세요!", + text = stringResource(id = R.string.home_induce_login), color = Color.White, style = MaterialTheme.typography.subtitle2, ) diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml index 7ee6aa6f..ee88eec1 100644 --- a/presentation/src/main/res/values/strings.xml +++ b/presentation/src/main/res/values/strings.xml @@ -7,4 +7,7 @@ 카카오 로그인 친구들과 함께하는\n편리한 약속 잡기 카카오계정 로그인에 실패 하였습니다. 잠시 후 다시 시도 해 주시기 바랍니다. + + 오늘의 약속 + 회원가입하고, 편리한 약속잡기를 경험하세요! From f7970097fa915e397b8a31d8d8976fd548852661 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 10:12:13 +0900 Subject: [PATCH 22/33] =?UTF-8?q?refactor=20-=20=EC=BA=98=EB=A6=B0?= =?UTF-8?q?=EB=8D=94=20=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=EC=9D=98=20=EA=B0=80=EB=8F=85?= =?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/home/CalendarDecorator.kt | 69 +++++++++++-------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt index 2478b026..d5c74692 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt @@ -24,19 +24,21 @@ import java.util.* class CalendarDecorator { class TodayDecorator(context: Context) : DayViewDecorator { private var date = CalendarDay.today() - private val boldSpan: StyleSpan = StyleSpan(Typeface.BOLD) + private val boldSpan = StyleSpan(Typeface.BOLD) @SuppressLint("UseCompatLoadingForDrawables") val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_today) - override fun shouldDecorate(day: CalendarDay?): Boolean { - return day?.equals(date)!! + override fun shouldDecorate(day: CalendarDay): Boolean { + return day == date } - override fun decorate(view: DayViewFacade?) { + override fun decorate(view: DayViewFacade) { if (drawable != null) { - view?.addSpan(object : ForegroundColorSpan(Color.White.toArgb()) {}) - view?.setSelectionDrawable(drawable) - view?.addSpan(boldSpan) + view.apply { + this.addSpan(object : ForegroundColorSpan(Color.White.toArgb()) {}) + this.setSelectionDrawable(drawable) + this.addSpan(boldSpan) + } } } } @@ -46,18 +48,20 @@ class CalendarDecorator { private val mCalendar = mCalendar.currentDate.calendar private val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_selection) - override fun shouldDecorate(day: CalendarDay?): Boolean { - val calendar = day!!.calendar + override fun shouldDecorate(day: CalendarDay): Boolean { + val calendar = day.calendar return calendar.get(Calendar.ERA) == mCalendar.get(Calendar.ERA) && calendar.get(Calendar.YEAR) == mCalendar.get(Calendar.YEAR) && calendar.get(Calendar.MONTH) == mCalendar.get(Calendar.MONTH) } - override fun decorate(view: DayViewFacade?) { + override fun decorate(view: DayViewFacade) { if (drawable != null) { - view?.addSpan(object : ForegroundColorSpan(Gray900.toArgb()) {}) - view?.setSelectionDrawable(drawable) + view.apply { + this.addSpan(object : ForegroundColorSpan(Gray900.toArgb()) {}) + this.setSelectionDrawable(drawable) + } } } } @@ -66,32 +70,34 @@ class CalendarDecorator { @SuppressLint("UseCompatLoadingForDrawables") private val mCalendar = mCalendar.currentDate.calendar private val drawable = ContextCompat.getDrawable(context, R.drawable.bg_calendar_selection) - override fun shouldDecorate(day: CalendarDay?): Boolean { - val calendar = day!!.calendar + override fun shouldDecorate(day: CalendarDay): Boolean { + val calendar = day.calendar return calendar.get(Calendar.ERA) == mCalendar.get(Calendar.ERA) && calendar.get(Calendar.YEAR) == mCalendar.get(Calendar.YEAR) && calendar.get(Calendar.MONTH) != mCalendar.get(Calendar.MONTH) } - override fun decorate(view: DayViewFacade?) { + override fun decorate(view: DayViewFacade) { if (drawable != null) { - view?.addSpan(object : ForegroundColorSpan(Gray300.toArgb()) {}) - view?.setSelectionDrawable(drawable) + view.apply { + this.addSpan(object : ForegroundColorSpan(Gray300.toArgb()) {}) + this.setSelectionDrawable(drawable) + } } } } class SundayDecorator : DayViewDecorator { private val calendar = Calendar.getInstance() - override fun shouldDecorate(day: CalendarDay?): Boolean { - day?.copyTo(calendar) + override fun shouldDecorate(day: CalendarDay): Boolean { + day.copyTo(calendar) val weekDay = calendar.get(Calendar.DAY_OF_WEEK) return (weekDay == Calendar.SUNDAY) } - override fun decorate(view: DayViewFacade?) { - view?.addSpan(object : ForegroundColorSpan(SubCoral.toArgb()) {}) + override fun decorate(view: DayViewFacade) { + view.addSpan(object : ForegroundColorSpan(SubCoral.toArgb()) {}) } } @@ -99,12 +105,12 @@ class CalendarDecorator { class DotDecorator : DayViewDecorator { private var date = CalendarDay.from(2022, 5, 21) - override fun shouldDecorate(day: CalendarDay?): Boolean { - return day?.equals(date)!! + override fun shouldDecorate(day: CalendarDay): Boolean { + return day == date } - override fun decorate(view: DayViewFacade?) { - view?.addSpan(CustomMultipleDotSpan(4F, color = intArrayOf(SubCoral.toArgb(), SubYellow.toArgb(), MainPurple900.toArgb()))) + override fun decorate(view: DayViewFacade) { + view.addSpan(CustomMultipleDotSpan(4F, color = intArrayOf(SubCoral.toArgb(), SubYellow.toArgb(), MainPurple900.toArgb()))) } } @@ -133,10 +139,17 @@ class CalendarDecorator { } override fun drawBackground( - canvas: Canvas, paint: Paint, - left: Int, right: Int, top: Int, baseline: Int, bottom: Int, + canvas: Canvas, + paint: Paint, + left: Int, + right: Int, + top: Int, + baseline: Int, + bottom: Int, charSequence: CharSequence, - start: Int, end: Int, lineNum: Int + start: Int, + end: Int, + lineNum: Int ) { val total = if (color.size > 5) 5 else color.size var leftMost = (total - 1) * - 10 From 60e6365f3471f052424e417f352d9332f8f75fca Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 10:19:09 +0900 Subject: [PATCH 23/33] =?UTF-8?q?fix=20-=20=EC=86=8C=EC=88=98=EC=A0=90=20?= =?UTF-8?q?=EB=8B=A8=EC=9C=84=EB=A1=9C=20=EC=84=A4=EC=A0=95=ED=95=9C=20UI?= =?UTF-8?q?=20=ED=81=AC=EA=B8=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../growth/presentation/ui/main/home/HomeScreen.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 88cbae6d..e00bcf79 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -168,7 +168,7 @@ fun HomeTodayPlan() { Spacer(modifier = Modifier.padding(4.dp)) Box( modifier = Modifier - .size(27.dp, 18.dp) + .size(28.dp, 18.dp) .clip(RoundedCornerShape(10.dp)) .background(color = MainPurple300), contentAlignment = Alignment.Center, @@ -200,7 +200,7 @@ fun HomeTodayPlan() { IconButton( modifier = Modifier .padding(bottom = 9.dp) - .size(12.3.dp, 6.47.dp) + .size(12.dp, 6.dp) .align(Alignment.BottomCenter), onClick = { expanded = !expanded }) { Icon( @@ -243,7 +243,7 @@ fun HomeInduceLogin() { style = MaterialTheme.typography.subtitle2, ) IconButton( - modifier = Modifier.size(5.7.dp, 12.dp), + modifier = Modifier.size(6.dp, 12.dp), onClick = { /*TODO*/ }, ) { Icon( @@ -260,9 +260,7 @@ fun HomeInduceLogin() { fun HomeMonthlyPlan() { var isCalendarMode by remember { mutableStateOf(true) } var expanded by remember { mutableStateOf(false) } - var currentDate: CalendarDay by remember { mutableStateOf(CalendarDay.today()) } - var year: Int by remember { mutableStateOf(currentDate.year) } var month: Int by remember { mutableStateOf(currentDate.month + 1) } @@ -386,7 +384,7 @@ fun HomeMonthlyPlan() { IconButton( modifier = Modifier .padding(bottom = 9.dp) - .size(12.3.dp, 6.47.dp), + .size(12.dp, 6.dp), onClick = { expanded = !expanded }, ) { From 0685090a23dbabb870c7ab5aeb7574b51ede49d6 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 16:18:07 +0900 Subject: [PATCH 24/33] =?UTF-8?q?refactor=20-=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EC=A0=80=EB=B8=94=20=ED=95=A8=EC=88=98=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 247 +++++++++--------- 1 file changed, 126 insertions(+), 121 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index e00bcf79..93f4f95c 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -72,7 +72,10 @@ fun HomeScreen( .fillMaxSize() .verticalScroll(rememberScrollState()) ) { - HomeTopBox(loginState = viewState.loginState) + when (viewState.loginState) { + HomeContract.LoginState.LOGIN -> HomeTodayPlan() + HomeContract.LoginState.NONE -> HomeInduceLogin() + } Spacer(modifier = Modifier.padding(8.dp)) HomeMonthlyPlan() Spacer(modifier = Modifier.padding(20.dp)) @@ -107,7 +110,7 @@ private fun HomeUserProfile( contentScale = ContentScale.Crop, modifier = Modifier .clip(CircleShape) - .border(0.79.dp, MainPurple900, CircleShape), + .border(1.dp, MainPurple900, CircleShape), contentDescription = null, ) } @@ -123,14 +126,6 @@ private fun HomeUserProfile( } } -@Composable -fun HomeTopBox(loginState: HomeContract.LoginState) { - when (loginState) { - HomeContract.LoginState.LOGIN -> HomeTodayPlan() - HomeContract.LoginState.NONE -> HomeInduceLogin() - } -} - // TODO : 약속 수 들어가는 로직 넣기 (정호) @Composable fun HomeTodayPlan() { @@ -166,40 +161,14 @@ fun HomeTodayPlan() { style = MaterialTheme.typography.h3, ) Spacer(modifier = Modifier.padding(4.dp)) - Box( - modifier = Modifier - .size(28.dp, 18.dp) - .clip(RoundedCornerShape(10.dp)) - .background(color = MainPurple300), - contentAlignment = Alignment.Center, - ) { - Text( - modifier = Modifier.fillMaxHeight(), - text = "0", - color = MainPurple900, - style = MaterialTheme.typography.caption, - ) - } - } - - Column( - modifier = Modifier.padding(top = 22.dp, bottom = 36.dp), - verticalArrangement = Arrangement.spacedBy(24.dp), - ) { - // TODO : API 연동 - if (expanded) { - for (i in 0 until 3) { - HomeTodayPlanItem() - } - } else { - HomeTodayPlanItem() - } + HomeTodayPlanCountText(planCount = 5) } + HomeTodayPlanList(expanded = expanded) } IconButton( modifier = Modifier - .padding(bottom = 9.dp) + .padding(bottom = 8.dp) .size(12.dp, 6.dp) .align(Alignment.BottomCenter), onClick = { expanded = !expanded }) { @@ -233,7 +202,7 @@ fun HomeInduceLogin() { Row( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 19.dp), + .padding(horizontal = 18.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.SpaceBetween, ) { @@ -259,7 +228,6 @@ fun HomeInduceLogin() { @Composable fun HomeMonthlyPlan() { var isCalendarMode by remember { mutableStateOf(true) } - var expanded by remember { mutableStateOf(false) } var currentDate: CalendarDay by remember { mutableStateOf(CalendarDay.today()) } var year: Int by remember { mutableStateOf(currentDate.year) } var month: Int by remember { mutableStateOf(currentDate.month + 1) } @@ -285,7 +253,7 @@ fun HomeMonthlyPlan() { Column( horizontalAlignment = Alignment.CenterHorizontally, ) { - Spacer(modifier = Modifier.padding(top = 21.dp)) + Spacer(modifier = Modifier.padding(top = 20.dp)) Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically @@ -295,7 +263,7 @@ fun HomeMonthlyPlan() { style = PlanzTypography.h3 ) Spacer(modifier = Modifier.padding(3.dp)) - OutlinedButton( + HomeOutlinedButton( onClick = { month-- if (month == 0) { @@ -304,19 +272,9 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - modifier = Modifier.size(25.dp), - shape = CircleShape, - border = BorderStroke(1.dp, Color.Transparent), - contentPadding = PaddingValues(0.dp), - colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), - ) { - Icon( - tint = Color.Unspecified, - imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_left), - contentDescription = null, - ) - } - OutlinedButton( + imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_left), + ) + HomeOutlinedButton( onClick = { month++ if (month == 13) { @@ -325,40 +283,19 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - modifier = Modifier.size(25.dp), - shape = CircleShape, - border = BorderStroke(1.dp, Color.Transparent), - contentPadding = PaddingValues(0.dp), - colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), - ) { - Icon( - tint = Color.Unspecified, - imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_right), - contentDescription = null, - ) - } + imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_right), + ) Spacer(modifier = Modifier.weight(1f)) - OutlinedButton( + HomeOutlinedButton( onClick = { isCalendarMode = !isCalendarMode }, - modifier = Modifier.size(32.dp), - shape = CircleShape, - border = BorderStroke(1.dp, Color.Transparent), - contentPadding = PaddingValues(0.dp), - colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), - ) { - Icon( - tint = Color.Unspecified, - imageVector = - if (isCalendarMode) { - ImageVector.vectorResource(R.drawable.ic_list) - } else { - ImageVector.vectorResource(R.drawable.ic_calendar) - }, - contentDescription = null, - ) - } + imageVector = if (isCalendarMode) { + ImageVector.vectorResource(R.drawable.ic_list) + } else { + ImageVector.vectorResource(R.drawable.ic_calendar) + }, + ) } Spacer(modifier = Modifier.padding(top = 12.dp)) Divider(color = Gray200, thickness = 1.dp) @@ -366,39 +303,7 @@ fun HomeMonthlyPlan() { if (isCalendarMode) { PlanzCalendar(currentDate) } else { - Column( - modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), - verticalArrangement = Arrangement.spacedBy(9.5.dp), - ) { - if (expanded) { - // TODO : 예시 화면 (정호) - for (i in 0 until 10) { - HomeMonthlyPlanItem("그로스 회의회의") - } - } else { - for (i in 0 until 4) { - HomeMonthlyPlanItem("그로스 회의회의") - } - } - } - IconButton( - modifier = Modifier - .padding(bottom = 9.dp) - .size(12.dp, 6.dp), - onClick = { expanded = !expanded }, - ) - { - Icon( - tint = Color.Unspecified, - imageVector = - if (expanded) { - ImageVector.vectorResource(R.drawable.ic_transparent_arrow_top) - } else { - ImageVector.vectorResource(R.drawable.ic_transparent_arrow_bottom) - }, - contentDescription = null - ) - } + HomeMonthlyPlanList() } } } @@ -437,6 +342,84 @@ fun PlanzCalendar( ) } +@Composable +fun HomeTodayPlanCountText( + planCount: Int = 0 +) { + Box( + modifier = Modifier + .size(28.dp, 18.dp) + .clip(RoundedCornerShape(10.dp)) + .background(color = MainPurple300), + contentAlignment = Alignment.Center, + ) { + Text( + modifier = Modifier.fillMaxHeight(), + text = "$planCount", + color = MainPurple900, + style = MaterialTheme.typography.caption, + ) + } +} + +@Composable +fun HomeTodayPlanList( + expanded: Boolean +) { + Column( + modifier = Modifier.padding(top = 22.dp, bottom = 36.dp), + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + // TODO : API 연동 + if (expanded) { + for (i in 0 until 3) { + HomeTodayPlanItem() + } + } else { + HomeTodayPlanItem() + } + } +} + +@Composable +fun HomeMonthlyPlanList() { + var expanded by remember { mutableStateOf(false) } + Column( + modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), + verticalArrangement = Arrangement.spacedBy(9.5.dp), + ) { + if (expanded) { + // TODO : 예시 화면 (정호) + for (i in 0 until 10) { + HomeMonthlyPlanItem("그로스 회의회의") + } + } else { + for (i in 0 until 4) { + HomeMonthlyPlanItem("그로스 회의회의") + } + } + } + IconButton( + modifier = Modifier + .padding(bottom = 9.dp) + .size(12.dp, 6.dp), + onClick = { expanded = !expanded }, + ) + { + Icon( + tint = Color.Unspecified, + imageVector = + if (expanded) { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_top) + } else { + ImageVector.vectorResource(R.drawable.ic_transparent_arrow_bottom) + }, + contentDescription = null + ) + } +} + + // TODO : API 연동 및 매개변수 추가(정호) @Composable fun HomeTodayPlanItem() { @@ -446,8 +429,7 @@ fun HomeTodayPlanItem() { .clickable( onClick = { /*TODO*/ } ), - ) - { + ) { Row( verticalAlignment = Alignment.CenterVertically, ) { @@ -507,6 +489,29 @@ fun HomeMonthlyPlanItem(content: String) { } } +@Composable +fun HomeOutlinedButton( + onClick: () -> Unit, + imageVector: ImageVector +) { + OutlinedButton( + onClick = { + onClick() + }, + modifier = Modifier.size(25.dp), + shape = CircleShape, + border = BorderStroke(1.dp, Color.Transparent), + contentPadding = PaddingValues(0.dp), + colors = ButtonDefaults.outlinedButtonColors(contentColor = Color.DarkGray), + ) { + Icon( + tint = Color.Unspecified, + imageVector = imageVector, + contentDescription = null, + ) + } +} + @Preview(showBackground = true, widthDp = 360, heightDp = 640) @Composable fun PreviewHomeScreen() { From 84c45477ed38f2b03516e7fdf79b44bd61af5b03 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 16:21:40 +0900 Subject: [PATCH 25/33] =?UTF-8?q?refactor=20-=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=EC=9D=98=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/growth/presentation/ui/main/home/HomeScreen.kt | 4 ++-- .../{ic_calendar_arrow_left.xml => ic_border_arrow_left.xml} | 0 ...{ic_calendar_arrow_right.xml => ic_border_arrow_right.xml} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename presentation/src/main/res/drawable/{ic_calendar_arrow_left.xml => ic_border_arrow_left.xml} (100%) rename presentation/src/main/res/drawable/{ic_calendar_arrow_right.xml => ic_border_arrow_right.xml} (100%) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 93f4f95c..dce70408 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -272,7 +272,7 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_left), + imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_left), ) HomeOutlinedButton( onClick = { @@ -283,7 +283,7 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - imageVector = ImageVector.vectorResource(R.drawable.ic_calendar_arrow_right), + imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_right), ) Spacer(modifier = Modifier.weight(1f)) HomeOutlinedButton( diff --git a/presentation/src/main/res/drawable/ic_calendar_arrow_left.xml b/presentation/src/main/res/drawable/ic_border_arrow_left.xml similarity index 100% rename from presentation/src/main/res/drawable/ic_calendar_arrow_left.xml rename to presentation/src/main/res/drawable/ic_border_arrow_left.xml diff --git a/presentation/src/main/res/drawable/ic_calendar_arrow_right.xml b/presentation/src/main/res/drawable/ic_border_arrow_right.xml similarity index 100% rename from presentation/src/main/res/drawable/ic_calendar_arrow_right.xml rename to presentation/src/main/res/drawable/ic_border_arrow_right.xml From b716865e123a14a2380a27cf9cae4c183f9f8fa6 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Thu, 30 Jun 2022 20:03:40 +0900 Subject: [PATCH 26/33] =?UTF-8?q?refactor=20-=20=ED=99=88=20=EC=9C=A0?= =?UTF-8?q?=EC=A0=80=20=ED=94=84=EB=A1=9C=ED=95=84=EC=9D=98=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EA=B5=AC=EC=84=B1=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index dce70408..c7e39a9e 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -22,7 +22,6 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView -import androidx.constraintlayout.compose.ConstraintLayout import androidx.hilt.navigation.compose.hiltViewModel import com.prolificinteractive.materialcalendarview.CalendarDay import com.prolificinteractive.materialcalendarview.MaterialCalendarView @@ -86,24 +85,19 @@ fun HomeScreen( // TODO : 클릭 시 내 정보 화면으로 네비게이션 (정호) @Composable private fun HomeUserProfile( - modifier: Modifier = Modifier, userName: String, onUserIconClick: () -> Unit, ) { - ConstraintLayout( - modifier = modifier - .fillMaxWidth() + Row( + modifier = Modifier .height(60.dp) - ) { - val (userImage, nameText) = createRefs() - + .fillMaxWidth() + .padding(horizontal = 16.dp), + verticalAlignment = Alignment.CenterVertically + ){ IconButton( modifier = Modifier - .size(30.dp, 30.dp) - .constrainAs(userImage) { - start.linkTo(parent.start, margin = 22.dp) - top.linkTo(parent.top, margin = 14.dp) - }, + .size(30.dp, 30.dp), onClick = { onUserIconClick() }) { Image( painter = painterResource(R.drawable.ic_default_user_image), @@ -114,11 +108,8 @@ private fun HomeUserProfile( contentDescription = null, ) } + Spacer(modifier = Modifier.padding(horizontal = 4.dp)) Text( - modifier = Modifier.constrainAs(nameText) { - start.linkTo(userImage.end, margin = 12.dp) - top.linkTo(parent.top, margin = 16.dp) - }, text = userName, style = PlanzTypography.h3, color = Gray900, From 245067b5997ff9c447bb87dedadae1775f0773c3 Mon Sep 17 00:00:00 2001 From: "Jihee.Han" <42907876+jihee-dev@users.noreply.github.com> Date: Sat, 2 Jul 2022 01:16:48 +0900 Subject: [PATCH 27/33] =?UTF-8?q?fix=20-=20=EC=A4=91=EB=B3=B5=20=EC=84=A0?= =?UTF-8?q?=EC=96=B8=EB=90=9C=20=EB=B2=84=EC=A0=84=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buildSrc/src/main/java/Versions.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index 79ed631b..d152bdb9 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -9,7 +9,6 @@ object Versions { const val COMPOSE_CONSTRAINT_LAYOUT = "1.1.0-alpha02" const val CONSTRAINT_LAYOUT = "2.1.3" const val COMPOSE_NAVIGATION = "2.4.2" - const val CONSTRAINT_LAYOUT = "2.1.3" const val FIREBASE_BOM = "29.1.0" const val FIREBASE_CRASHLYTICS = "2.9.0" const val GOOGLE_SERVICE = "4.3.10" From 083972fd58b8f2f28d7b25bcf4354816961e9503 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Sun, 3 Jul 2022 14:05:17 +0900 Subject: [PATCH 28/33] =?UTF-8?q?refactor=20-=20Spacer=20=EB=A5=BC=20?= =?UTF-8?q?=EC=A7=80=EC=A0=95=ED=95=A0=20=EB=95=8C=20height,=20width=20?= =?UTF-8?q?=EB=A5=BC=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index c7e39a9e..fdfe849f 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -75,9 +75,9 @@ fun HomeScreen( HomeContract.LoginState.LOGIN -> HomeTodayPlan() HomeContract.LoginState.NONE -> HomeInduceLogin() } - Spacer(modifier = Modifier.padding(8.dp)) + Spacer(modifier = Modifier.height(16.dp)) HomeMonthlyPlan() - Spacer(modifier = Modifier.padding(20.dp)) + Spacer(modifier = Modifier.height(24.dp)) } } } @@ -108,7 +108,7 @@ private fun HomeUserProfile( contentDescription = null, ) } - Spacer(modifier = Modifier.padding(horizontal = 4.dp)) + Spacer(modifier = Modifier.width(12.dp)) Text( text = userName, style = PlanzTypography.h3, @@ -151,9 +151,10 @@ fun HomeTodayPlan() { color = Color.Black, style = MaterialTheme.typography.h3, ) - Spacer(modifier = Modifier.padding(4.dp)) + Spacer(modifier = Modifier.width(8.dp)) HomeTodayPlanCountText(planCount = 5) } + Spacer(modifier = Modifier.height(20.dp)) HomeTodayPlanList(expanded = expanded) } @@ -244,7 +245,7 @@ fun HomeMonthlyPlan() { Column( horizontalAlignment = Alignment.CenterHorizontally, ) { - Spacer(modifier = Modifier.padding(top = 20.dp)) + Spacer(modifier = Modifier.height(20.dp)) Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically @@ -253,7 +254,7 @@ fun HomeMonthlyPlan() { text = "${year}년 ${month}월", style = PlanzTypography.h3 ) - Spacer(modifier = Modifier.padding(3.dp)) + Spacer(modifier = Modifier.width(6.dp)) HomeOutlinedButton( onClick = { month-- @@ -288,12 +289,12 @@ fun HomeMonthlyPlan() { }, ) } - Spacer(modifier = Modifier.padding(top = 12.dp)) + Spacer(modifier = Modifier.height(12.dp)) Divider(color = Gray200, thickness = 1.dp) - Spacer(modifier = Modifier.padding(top = 10.dp)) if (isCalendarMode) { PlanzCalendar(currentDate) } else { + Spacer(modifier = Modifier.height(20.dp)) HomeMonthlyPlanList() } } @@ -358,7 +359,7 @@ fun HomeTodayPlanList( expanded: Boolean ) { Column( - modifier = Modifier.padding(top = 22.dp, bottom = 36.dp), + modifier = Modifier.padding(bottom = 36.dp), verticalArrangement = Arrangement.spacedBy(24.dp), ) { // TODO : API 연동 @@ -376,8 +377,7 @@ fun HomeTodayPlanList( fun HomeMonthlyPlanList() { var expanded by remember { mutableStateOf(false) } Column( - modifier = Modifier.padding(top = 11.dp, bottom = 12.dp), - verticalArrangement = Arrangement.spacedBy(9.5.dp), + verticalArrangement = Arrangement.spacedBy(20.dp), ) { if (expanded) { // TODO : 예시 화면 (정호) @@ -390,6 +390,7 @@ fun HomeMonthlyPlanList() { } } } + Spacer(modifier = Modifier.height(24.dp)) IconButton( modifier = Modifier .padding(bottom = 9.dp) @@ -430,7 +431,7 @@ fun HomeTodayPlanItem() { imageVector = ImageVector.vectorResource(id = R.drawable.ic_plan_meal), contentDescription = null, ) - Spacer(modifier = Modifier.padding(8.dp)) + Spacer(modifier = Modifier.width(16.dp)) Column { Text( text = "6시 30분", @@ -458,13 +459,13 @@ fun HomeMonthlyPlanItem(content: String) { Row( verticalAlignment = Alignment.CenterVertically, ) { - Spacer(modifier = Modifier.padding(5.dp)) + Spacer(modifier = Modifier.width(5.dp)) Text( text = "6/26", color = MainPurple900, style = MaterialTheme.typography.subtitle2, ) - Spacer(modifier = Modifier.padding(20.dp)) + Spacer(modifier = Modifier.width(20.dp)) Text( text = content, color = Color.Black, From b6e5fcb28ebca90dfb1e0e857b91cbb1cadef102 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Sun, 3 Jul 2022 14:07:05 +0900 Subject: [PATCH 29/33] =?UTF-8?q?fix=20-=20EOF=20=EA=B0=9C=ED=96=89=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yapp/growth/presentation/ui/main/home/CalendarDecorator.kt | 2 +- presentation/src/main/res/drawable/bg_calendar_ripple.xml | 2 +- presentation/src/main/res/drawable/bg_calendar_selection.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt index d5c74692..c1632f73 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/CalendarDecorator.kt @@ -165,4 +165,4 @@ class CalendarDecorator { } } } -} \ No newline at end of file +} diff --git a/presentation/src/main/res/drawable/bg_calendar_ripple.xml b/presentation/src/main/res/drawable/bg_calendar_ripple.xml index 035afbbc..87734e89 100644 --- a/presentation/src/main/res/drawable/bg_calendar_ripple.xml +++ b/presentation/src/main/res/drawable/bg_calendar_ripple.xml @@ -6,4 +6,4 @@ - \ No newline at end of file + diff --git a/presentation/src/main/res/drawable/bg_calendar_selection.xml b/presentation/src/main/res/drawable/bg_calendar_selection.xml index 913e8f05..9e811530 100644 --- a/presentation/src/main/res/drawable/bg_calendar_selection.xml +++ b/presentation/src/main/res/drawable/bg_calendar_selection.xml @@ -9,4 +9,4 @@ android:drawable="@drawable/bg_calendar_ripple" /> - \ No newline at end of file + From 5a33f358114d1ba102a22dbcb6399de6adec1145 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Mon, 4 Jul 2022 18:57:07 +0900 Subject: [PATCH 30/33] =?UTF-8?q?fix=20-=20=EC=9B=94=20=ED=91=9C=ED=98=84?= =?UTF-8?q?=20=EB=B0=A9=EC=8B=9D=EC=9D=84=20(5=EC=9B=94=20->=2005=EC=9B=94?= =?UTF-8?q?)=20=ED=98=95=EC=8B=9D=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/growth/presentation/ui/main/home/HomeScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index fdfe849f..453b1d7e 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -251,7 +251,7 @@ fun HomeMonthlyPlan() { verticalAlignment = Alignment.CenterVertically ) { Text( - text = "${year}년 ${month}월", + text = "${year}년 ${String.format("%02d", month)}월", style = PlanzTypography.h3 ) Spacer(modifier = Modifier.width(6.dp)) From 2eec2a28c4b3573952b096af5812a0c2abe02b19 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Tue, 5 Jul 2022 16:12:08 +0900 Subject: [PATCH 31/33] =?UTF-8?q?fix=20-=20=EC=96=B4=EB=96=A4=20=EC=9A=94?= =?UTF-8?q?=EC=86=8C=EC=9D=98=20=EC=82=AC=EC=9D=B4=EC=A6=88=EA=B0=80=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EB=90=98=EB=8D=94=EB=9D=BC=EB=8F=84=20?= =?UTF-8?q?=EB=8B=A4=EB=A5=B8=20=EC=9A=94=EC=86=8C=EC=9D=98=20=EB=B0=B0?= =?UTF-8?q?=EC=B9=98=EC=97=90=EB=8A=94=20=EC=98=81=ED=96=A5=EC=9D=84=20?= =?UTF-8?q?=EB=AF=B8=EC=B9=98=EC=A7=80=20=EC=95=8A=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/ui/main/home/HomeScreen.kt | 73 ++++++++++--------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 453b1d7e..196a4760 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -12,7 +12,11 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Paint +import androidx.compose.ui.graphics.drawscope.drawIntoCanvas +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext @@ -20,6 +24,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.hilt.navigation.compose.hiltViewModel @@ -71,6 +76,7 @@ fun HomeScreen( .fillMaxSize() .verticalScroll(rememberScrollState()) ) { + Spacer(modifier = Modifier.height(2.dp)) when (viewState.loginState) { HomeContract.LoginState.LOGIN -> HomeTodayPlan() HomeContract.LoginState.NONE -> HomeInduceLogin() @@ -94,7 +100,7 @@ private fun HomeUserProfile( .fillMaxWidth() .padding(horizontal = 16.dp), verticalAlignment = Alignment.CenterVertically - ){ + ) { IconButton( modifier = Modifier .size(30.dp, 30.dp), @@ -157,7 +163,6 @@ fun HomeTodayPlan() { Spacer(modifier = Modifier.height(20.dp)) HomeTodayPlanList(expanded = expanded) } - IconButton( modifier = Modifier .padding(bottom = 8.dp) @@ -228,7 +233,7 @@ fun HomeMonthlyPlan() { color = Color.White, shape = RoundedCornerShape(12.dp), modifier = Modifier - .padding(horizontal = 16.dp) + .padding(horizontal = 16.dp), ) { Box( modifier = Modifier @@ -246,16 +251,15 @@ fun HomeMonthlyPlan() { horizontalAlignment = Alignment.CenterHorizontally, ) { Spacer(modifier = Modifier.height(20.dp)) - Row( + Box( modifier = Modifier.fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically ) { Text( text = "${year}년 ${String.format("%02d", month)}월", - style = PlanzTypography.h3 + style = PlanzTypography.h3, ) - Spacer(modifier = Modifier.width(6.dp)) HomeOutlinedButton( + modifier = Modifier.padding(horizontal = 113.dp), onClick = { month-- if (month == 0) { @@ -267,6 +271,7 @@ fun HomeMonthlyPlan() { imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_left), ) HomeOutlinedButton( + modifier = Modifier.padding(horizontal = 139.dp), onClick = { month++ if (month == 13) { @@ -277,8 +282,8 @@ fun HomeMonthlyPlan() { }, imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_right), ) - Spacer(modifier = Modifier.weight(1f)) HomeOutlinedButton( + modifier = Modifier.align(alignment = Alignment.CenterEnd), onClick = { isCalendarMode = !isCalendarMode }, @@ -310,7 +315,9 @@ fun PlanzCalendar( val context = LocalContext.current AndroidView( - { MaterialCalendarView(it) }, + modifier = Modifier + .padding(bottom = 12.dp), + factory = { MaterialCalendarView(it) }, update = { views -> views.apply { this.setOnDateChangedListener { widget, date, selected -> @@ -454,43 +461,39 @@ fun HomeMonthlyPlanItem(content: String) { Box( modifier = Modifier .fillMaxWidth(), - ) - { - Row( - verticalAlignment = Alignment.CenterVertically, - ) { - Spacer(modifier = Modifier.width(5.dp)) - Text( - text = "6/26", - color = MainPurple900, - style = MaterialTheme.typography.subtitle2, - ) - Spacer(modifier = Modifier.width(20.dp)) - Text( - text = content, - color = Color.Black, - style = MaterialTheme.typography.body2, - ) - Spacer(modifier = Modifier.weight(1F)) - Text( - text = "10시 00분", - color = Gray500, - style = MaterialTheme.typography.caption, - ) - } + ) { + Text( + text = "7/15", + color = MainPurple900, + style = MaterialTheme.typography.subtitle2, + modifier = Modifier.padding(horizontal = 5.dp) + ) + Text( + text = content, + color = Color.Black, + style = MaterialTheme.typography.body2, + modifier = Modifier.padding(horizontal = 54.dp) + ) + Text( + text = "6시 30분", + color = Gray500, + style = MaterialTheme.typography.caption, + modifier = Modifier.align(Alignment.CenterEnd) + ) } } @Composable fun HomeOutlinedButton( + modifier: Modifier = Modifier, onClick: () -> Unit, - imageVector: ImageVector + imageVector: ImageVector, ) { OutlinedButton( onClick = { onClick() }, - modifier = Modifier.size(25.dp), + modifier = modifier.size(25.dp), shape = CircleShape, border = BorderStroke(1.dp, Color.Transparent), contentPadding = PaddingValues(0.dp), From 1e8cdf54693dbeeadfd5782be5337acb141e1e92 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Tue, 5 Jul 2022 16:29:54 +0900 Subject: [PATCH 32/33] =?UTF-8?q?feat=20-=20=EC=BB=A4=EC=8A=A4=ED=85=80=20?= =?UTF-8?q?Modifier=20Shadow=20Extension=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ui/main/home/HomeScreen.kt | 22 ++++++---- .../growth/presentation/util/ModifierExt.kt | 44 +++++++++++++++++++ 2 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 presentation/src/main/java/com/yapp/growth/presentation/util/ModifierExt.kt diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 196a4760..3f2f6786 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -12,11 +12,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Paint -import androidx.compose.ui.graphics.drawscope.drawIntoCanvas -import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext @@ -24,7 +20,6 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.hilt.navigation.compose.hiltViewModel @@ -33,6 +28,7 @@ import com.prolificinteractive.materialcalendarview.MaterialCalendarView import com.yapp.growth.presentation.R import com.yapp.growth.presentation.theme.* import com.yapp.growth.presentation.ui.main.home.HomeContract.HomeSideEffect +import com.yapp.growth.presentation.util.advancedShadow import kotlinx.coroutines.flow.collect import timber.log.Timber @@ -76,7 +72,7 @@ fun HomeScreen( .fillMaxSize() .verticalScroll(rememberScrollState()) ) { - Spacer(modifier = Modifier.height(2.dp)) + Spacer(modifier = Modifier.height(5.dp)) when (viewState.loginState) { HomeContract.LoginState.LOGIN -> HomeTodayPlan() HomeContract.LoginState.NONE -> HomeInduceLogin() @@ -131,7 +127,12 @@ fun HomeTodayPlan() { color = Color.White, shape = RoundedCornerShape(12.dp), modifier = Modifier - .padding(horizontal = 16.dp), + .padding(horizontal = 16.dp) + .advancedShadow( + alpha = 0.1f, + cornersRadius = 12.dp, + shadowBlurRadius = 10.dp + ), ) { Box( modifier = Modifier @@ -233,7 +234,12 @@ fun HomeMonthlyPlan() { color = Color.White, shape = RoundedCornerShape(12.dp), modifier = Modifier - .padding(horizontal = 16.dp), + .padding(horizontal = 16.dp) + .advancedShadow( + alpha = 0.1f, + cornersRadius = 12.dp, + shadowBlurRadius = 10.dp + ), ) { Box( modifier = Modifier diff --git a/presentation/src/main/java/com/yapp/growth/presentation/util/ModifierExt.kt b/presentation/src/main/java/com/yapp/growth/presentation/util/ModifierExt.kt new file mode 100644 index 00000000..825dfea7 --- /dev/null +++ b/presentation/src/main/java/com/yapp/growth/presentation/util/ModifierExt.kt @@ -0,0 +1,44 @@ +package com.yapp.growth.presentation.util + +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.drawBehind +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Paint +import androidx.compose.ui.graphics.drawscope.drawIntoCanvas +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp + +fun Modifier.advancedShadow( + color: Color = Color.Black, + alpha: Float = 0f, + cornersRadius: Dp = 0.dp, + shadowBlurRadius: Dp = 0.dp, + offsetY: Dp = 0.dp, + offsetX: Dp = 0.dp +) = drawBehind { + + val shadowColor = color.copy(alpha = alpha).toArgb() + val transparentColor = color.copy(alpha = 0f).toArgb() + + drawIntoCanvas { + val paint = Paint() + val frameworkPaint = paint.asFrameworkPaint() + frameworkPaint.color = transparentColor + frameworkPaint.setShadowLayer( + shadowBlurRadius.toPx(), + offsetX.toPx(), + offsetY.toPx(), + shadowColor + ) + it.drawRoundRect( + 0f, + 0f, + this.size.width, + this.size.height, + cornersRadius.toPx(), + cornersRadius.toPx(), + paint + ) + } +} \ No newline at end of file From 9dc0ba46b5ee67b775641cb7db88814aa3a10da0 Mon Sep 17 00:00:00 2001 From: hoyahozz <85336456+hoyahozz@users.noreply.github.com> Date: Tue, 5 Jul 2022 16:34:23 +0900 Subject: [PATCH 33/33] =?UTF-8?q?refactor=20-=20=EB=B0=95=EC=8A=A4=20?= =?UTF-8?q?=ED=99=94=EC=82=B4=ED=91=9C=20=EC=95=84=EC=9D=B4=EC=BD=98=20?= =?UTF-8?q?=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yapp/growth/presentation/ui/main/home/HomeScreen.kt | 4 ++-- .../{ic_border_arrow_left.xml => ic_arrow_box_left.xml} | 0 .../{ic_border_arrow_right.xml => ic_arrow_box_right.xml} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename presentation/src/main/res/drawable/{ic_border_arrow_left.xml => ic_arrow_box_left.xml} (100%) rename presentation/src/main/res/drawable/{ic_border_arrow_right.xml => ic_arrow_box_right.xml} (100%) diff --git a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt index 3f2f6786..68e1c3c8 100644 --- a/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt +++ b/presentation/src/main/java/com/yapp/growth/presentation/ui/main/home/HomeScreen.kt @@ -274,7 +274,7 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_left), + imageVector = ImageVector.vectorResource(R.drawable.ic_arrow_box_left), ) HomeOutlinedButton( modifier = Modifier.padding(horizontal = 139.dp), @@ -286,7 +286,7 @@ fun HomeMonthlyPlan() { } currentDate = CalendarDay.from(year, month - 1, 1) }, - imageVector = ImageVector.vectorResource(R.drawable.ic_border_arrow_right), + imageVector = ImageVector.vectorResource(R.drawable.ic_arrow_box_right), ) HomeOutlinedButton( modifier = Modifier.align(alignment = Alignment.CenterEnd), diff --git a/presentation/src/main/res/drawable/ic_border_arrow_left.xml b/presentation/src/main/res/drawable/ic_arrow_box_left.xml similarity index 100% rename from presentation/src/main/res/drawable/ic_border_arrow_left.xml rename to presentation/src/main/res/drawable/ic_arrow_box_left.xml diff --git a/presentation/src/main/res/drawable/ic_border_arrow_right.xml b/presentation/src/main/res/drawable/ic_arrow_box_right.xml similarity index 100% rename from presentation/src/main/res/drawable/ic_border_arrow_right.xml rename to presentation/src/main/res/drawable/ic_arrow_box_right.xml