From 063d783af02b49a9c17e9ba19a8debf00e177df2 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Fri, 12 Jan 2024 17:02:36 +0900 Subject: [PATCH 01/18] =?UTF-8?q?#39=20[ui]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=B6=94=EA=B0=80(=EC=83=81=EC=84=B8)=20d?= =?UTF-8?q?rawable=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drawable/ic_daily_theme_background.xml | 11 ++ .../ic_daily_theme_background_click.xml | 11 ++ .../main/res/drawable/ic_happy_bling_blue.xml | 9 ++ .../res/drawable/ic_happy_bling_green.xml | 9 ++ .../res/drawable/ic_happy_bling_orange.xml | 9 ++ .../res/drawable/ic_happy_bling_purple.xml | 9 ++ .../main/res/drawable/ic_happy_bling_red.xml | 9 ++ .../res/drawable/ic_happycard_up_blue.xml | 111 ++++++++++++++++++ .../res/drawable/ic_happycard_up_green.xml | 108 +++++++++++++++++ .../res/drawable/ic_happycard_up_orange.xml | 108 +++++++++++++++++ .../res/drawable/ic_happycard_up_purple.xml | 108 +++++++++++++++++ .../main/res/drawable/ic_happycard_up_red.xml | 108 +++++++++++++++++ app/src/main/res/drawable/ic_magnify.xml | 10 ++ app/src/main/res/drawable/ic_place.xml | 13 ++ app/src/main/res/drawable/ic_time.xml | 13 ++ app/src/main/res/drawable/ic_transfer.xml | 13 ++ .../res/drawable/shape_black_fill_12_rect.xml | 10 ++ app/src/main/res/values/strings.xml | 5 + 18 files changed, 674 insertions(+) create mode 100644 app/src/main/res/drawable/ic_daily_theme_background.xml create mode 100644 app/src/main/res/drawable/ic_daily_theme_background_click.xml create mode 100644 app/src/main/res/drawable/ic_happy_bling_blue.xml create mode 100644 app/src/main/res/drawable/ic_happy_bling_green.xml create mode 100644 app/src/main/res/drawable/ic_happy_bling_orange.xml create mode 100644 app/src/main/res/drawable/ic_happy_bling_purple.xml create mode 100644 app/src/main/res/drawable/ic_happy_bling_red.xml create mode 100644 app/src/main/res/drawable/ic_happycard_up_blue.xml create mode 100644 app/src/main/res/drawable/ic_happycard_up_green.xml create mode 100644 app/src/main/res/drawable/ic_happycard_up_orange.xml create mode 100644 app/src/main/res/drawable/ic_happycard_up_purple.xml create mode 100644 app/src/main/res/drawable/ic_happycard_up_red.xml create mode 100644 app/src/main/res/drawable/ic_magnify.xml create mode 100644 app/src/main/res/drawable/ic_place.xml create mode 100644 app/src/main/res/drawable/ic_time.xml create mode 100644 app/src/main/res/drawable/ic_transfer.xml create mode 100644 app/src/main/res/drawable/shape_black_fill_12_rect.xml diff --git a/app/src/main/res/drawable/ic_daily_theme_background.xml b/app/src/main/res/drawable/ic_daily_theme_background.xml new file mode 100644 index 00000000..5881e898 --- /dev/null +++ b/app/src/main/res/drawable/ic_daily_theme_background.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_daily_theme_background_click.xml b/app/src/main/res/drawable/ic_daily_theme_background_click.xml new file mode 100644 index 00000000..4b560be9 --- /dev/null +++ b/app/src/main/res/drawable/ic_daily_theme_background_click.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_happy_bling_blue.xml b/app/src/main/res/drawable/ic_happy_bling_blue.xml new file mode 100644 index 00000000..f177b2d5 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_bling_blue.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_happy_bling_green.xml b/app/src/main/res/drawable/ic_happy_bling_green.xml new file mode 100644 index 00000000..c937d095 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_bling_green.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_happy_bling_orange.xml b/app/src/main/res/drawable/ic_happy_bling_orange.xml new file mode 100644 index 00000000..623252de --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_bling_orange.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_happy_bling_purple.xml b/app/src/main/res/drawable/ic_happy_bling_purple.xml new file mode 100644 index 00000000..13a44f54 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_bling_purple.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_happy_bling_red.xml b/app/src/main/res/drawable/ic_happy_bling_red.xml new file mode 100644 index 00000000..31116965 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_bling_red.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_happycard_up_blue.xml b/app/src/main/res/drawable/ic_happycard_up_blue.xml new file mode 100644 index 00000000..0bf4bddc --- /dev/null +++ b/app/src/main/res/drawable/ic_happycard_up_blue.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happycard_up_green.xml b/app/src/main/res/drawable/ic_happycard_up_green.xml new file mode 100644 index 00000000..90b23150 --- /dev/null +++ b/app/src/main/res/drawable/ic_happycard_up_green.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happycard_up_orange.xml b/app/src/main/res/drawable/ic_happycard_up_orange.xml new file mode 100644 index 00000000..d22f292b --- /dev/null +++ b/app/src/main/res/drawable/ic_happycard_up_orange.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happycard_up_purple.xml b/app/src/main/res/drawable/ic_happycard_up_purple.xml new file mode 100644 index 00000000..05780e9e --- /dev/null +++ b/app/src/main/res/drawable/ic_happycard_up_purple.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happycard_up_red.xml b/app/src/main/res/drawable/ic_happycard_up_red.xml new file mode 100644 index 00000000..2d8432a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_happycard_up_red.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_magnify.xml b/app/src/main/res/drawable/ic_magnify.xml new file mode 100644 index 00000000..622d77e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_magnify.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_place.xml b/app/src/main/res/drawable/ic_place.xml new file mode 100644 index 00000000..e8db0e7c --- /dev/null +++ b/app/src/main/res/drawable/ic_place.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_time.xml b/app/src/main/res/drawable/ic_time.xml new file mode 100644 index 00000000..763f26aa --- /dev/null +++ b/app/src/main/res/drawable/ic_time.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_transfer.xml b/app/src/main/res/drawable/ic_transfer.xml new file mode 100644 index 00000000..60130b40 --- /dev/null +++ b/app/src/main/res/drawable/ic_transfer.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/shape_black_fill_12_rect.xml b/app/src/main/res/drawable/shape_black_fill_12_rect.xml new file mode 100644 index 00000000..4ef3683d --- /dev/null +++ b/app/src/main/res/drawable/shape_black_fill_12_rect.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f3ac989..d5db95d8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -31,6 +31,11 @@ 마음 챙김 성숙한 사랑을 만나기 위한 + + 관계 쌓기 + 성숙한 사랑을 만나기 위한 + 이 루틴을 추가할래 + 어떤 친구와 함께 할까요? 한 번 선택한 인형은 바꿀 수 없어요 From 5f091ebcfc14c5c373fc64695c7b19663f9179f2 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Fri, 12 Jan 2024 23:02:40 +0900 Subject: [PATCH 02/18] =?UTF-8?q?#39=20[ui]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=B6=94=EA=B0=80(=EC=83=81=EC=84=B8)=20?= =?UTF-8?q?=EB=B7=B0=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hape_white_fill_gray100_stroke_20_rect.xml | 9 +- .../res/layout/activity_happy_add_detail.xml | 103 ++++++++++++++++++ .../res/layout/item_happy_add_detail_card.xml | 50 +++++++++ app/src/main/res/values/strings.xml | 4 + 4 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/layout/activity_happy_add_detail.xml create mode 100644 app/src/main/res/layout/item_happy_add_detail_card.xml diff --git a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml b/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml index 75828ed1..16ff59e9 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml +++ b/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml @@ -2,9 +2,10 @@ - - - + + + diff --git a/app/src/main/res/layout/activity_happy_add_detail.xml b/app/src/main/res/layout/activity_happy_add_detail.xml new file mode 100644 index 00000000..a631a54c --- /dev/null +++ b/app/src/main/res/layout/activity_happy_add_detail.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_happy_add_detail_card.xml b/app/src/main/res/layout/item_happy_add_detail_card.xml new file mode 100644 index 00000000..29cca69e --- /dev/null +++ b/app/src/main/res/layout/item_happy_add_detail_card.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d5db95d8..2ba653ba 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -35,6 +35,10 @@ 관계 쌓기 성숙한 사랑을 만나기 위한 이 루틴을 추가할래 + 이상형의 특성 10가지 적어보고,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기 + 평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어 + 5~10분 + 회사 옥상, 점심식사 후 돌아가는 길 어떤 친구와 함께 할까요? From 22251db84f8e5489cc4e2fc620888f6455295d31 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Fri, 12 Jan 2024 23:03:17 +0900 Subject: [PATCH 03/18] =?UTF-8?q?#39=20[ui]=20=EC=B9=B4=EB=93=9C=20?= =?UTF-8?q?=EB=B0=8F=20=EC=83=81=EC=84=B8=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopetit/softie/domain/entity/HappyCard.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt new file mode 100644 index 00000000..5910e652 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt @@ -0,0 +1,21 @@ +package com.sopetit.softie.domain.entity + +import androidx.annotation.DrawableRes + +data class HappyCard( + val name: String, + val nameColor: String, + val title: String, + @DrawableRes val iconImageUrl: Int, + val routines: List +) { + data class Routines( + val routineId: Int, + @DrawableRes val cardImageUrl: Int, + val content: String, + val detailTitle: String, + val detailContent: String, + val detailTime: String, + val detailPlace: String + ) +} From 2a9d4b46f922b4829681efea4208aed7242d6510 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Fri, 12 Jan 2024 23:04:37 +0900 Subject: [PATCH 04/18] =?UTF-8?q?#39=20[ui]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=83=81=EC=84=B8=20=EB=B7=B0=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adddetail/HappyDetailActivity.kt | 105 ++++++++++++++++++ .../adddetail/HappyDetailCardPagerAdapter.kt | 36 ++++++ .../adddetail/HappyDetailCardViewModel.kt | 86 ++++++++++++++ 3 files changed, 227 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt create mode 100644 app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt create mode 100644 app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt new file mode 100644 index 00000000..ad84aaab --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt @@ -0,0 +1,105 @@ +package com.sopetit.softie.ui.happyroutine.adddetail + +import android.graphics.Color +import android.graphics.Rect +import android.os.Bundle +import android.view.View +import androidx.activity.viewModels +import androidx.recyclerview.widget.RecyclerView +import androidx.viewpager2.widget.CompositePageTransformer +import androidx.viewpager2.widget.ViewPager2 +import com.sopetit.softie.R +import com.sopetit.softie.databinding.ActivityHappyAddDetailBinding +import com.sopetit.softie.util.binding.BindingActivity + +class HappyDetailActivity : + BindingActivity(R.layout.activity_happy_add_detail) { + private lateinit var viewPager: ViewPager2 + private lateinit var happyRoutineAddCardPagerAdapter: HappyDetailCardPagerAdapter + + private val viewModel by viewModels() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + viewPager = binding.vpHappyAddDetailCard + + setBackEnter() + setupBinding() + setupAdapter() + setIndicator() + initViewPager() + initPagerDiv(0, 90) + } + + private fun setBackEnter() { + binding.ivHappyAddDetailBack.setOnClickListener { + finish() + } + } + + private fun setupBinding() { + val happyCard = viewModel.mockHappyCardList.value?.get(1) + happyCard?.let { + binding.tvHappyAddDetailTitle.text = it.name + binding.ivHappyAddDetailIcon.setImageResource(it.iconImageUrl) + binding.tvHappyAddDetailSubtitle.text = it.title + binding.tvHappyAddDetailTitle.setTextColor(Color.parseColor(it.nameColor)) + } + } + + private fun setupAdapter() { + with(binding) { + happyRoutineAddCardPagerAdapter = HappyDetailCardPagerAdapter() + vpHappyAddDetailCard.adapter = happyRoutineAddCardPagerAdapter + } + happyRoutineAddCardPagerAdapter.submitList(viewModel.mockHappyCardList.value) + } + + private fun setIndicator() { + binding.diHappyAddDetailIndicator.attachTo(binding.vpHappyAddDetailCard) + } + + private fun initViewPager() { + viewPager.adapter = happyRoutineAddCardPagerAdapter + + val dpValue = 40 + val d = resources.displayMetrics.density + val margin = (dpValue * d).toInt() + + with(binding.vpHappyAddDetailCard) { + clipChildren = false + clipToPadding = false + offscreenPageLimit = 3 + setPadding(margin, 0, margin, 0) + } + val compositePageTransformer = CompositePageTransformer() + binding.vpHappyAddDetailCard.setPageTransformer(compositePageTransformer) + } + + private fun initPagerDiv(previewWidth: Int, itemMargin: Int) { + val decoMargin = previewWidth + itemMargin + val pageTransX = decoMargin + previewWidth + val decoration = PageDecoration(decoMargin) + + binding.vpHappyAddDetailCard.also { + it.offscreenPageLimit = 1 + it.addItemDecoration(decoration) + it.setPageTransformer { page, position -> + page.translationX = position * -pageTransX + } + } + } + + private class PageDecoration(private val margin: Int) : RecyclerView.ItemDecoration() { + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + outRect.left = margin + outRect.right = margin + } + } +} diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt new file mode 100644 index 00000000..7307bf97 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt @@ -0,0 +1,36 @@ +package com.sopetit.softie.ui.happyroutine.adddetail + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHappyAddDetailCardBinding +import com.sopetit.softie.domain.entity.HappyCard +import com.sopetit.softie.util.ItemDiffCallback + +class HappyDetailCardPagerAdapter : + ListAdapter( + ItemDiffCallback( + onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, + onContentsTheSame = { oldItem, newItem -> oldItem == newItem } + ) + ) { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HappyPagerViewHolder { + val binding = ItemHappyAddDetailCardBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ) + return HappyPagerViewHolder(binding) + } + + override fun onBindViewHolder(holder: HappyPagerViewHolder, position: Int) { + holder.onBind(currentList[position]) + } + + class HappyPagerViewHolder(private val binding: ItemHappyAddDetailCardBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(data: HappyCard) { + binding.ivHappyRoutineAddCard.setImageResource(data.routines[0].cardImageUrl) + binding.tvHappyRoutineAddCardDetailTitle.text = data.routines[0].content + } + } +} diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt new file mode 100644 index 00000000..b46f4bd5 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt @@ -0,0 +1,86 @@ +package com.sopetit.softie.ui.happyroutine.adddetail + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.sopetit.softie.R +import com.sopetit.softie.domain.entity.HappyCard + +class HappyDetailCardViewModel : ViewModel() { + + private val _mockHappyCardList: MutableLiveData> = MutableLiveData( + mutableListOf( + HappyCard( + name = "관계 쌓기", + nameColor = "#CEB59E", + title = "성숙한 사랑을 만나기 위한 행복 루틴", + iconImageUrl = R.drawable.ic_happy_bling_blue, + routines = listOf( + HappyCard.Routines( + routineId = 1, + cardImageUrl = R.drawable.ic_happycard_up_blue, + content = "서점에 가서 랜덤 책 골라서 공중제비 돌기", + detailTitle = "이상형의 특성 10가지 적어보고,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 \n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "5~10분", + detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" + ), HappyCard.Routines( + routineId = 2, + cardImageUrl = R.drawable.ic_happycard_up_red, + content = "길가다가 박수치기", + detailTitle = "홍대에서 가장 맛있는\n음식점을 찾아보아요\n나와 비슷한 3가지 찾아보기", + detailContent = "우리나라 좋은나라\n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "6~30분", + detailPlace = "홍대 옥상, 저녁식사 후 돌아가는 길" + ), HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "클럽에서 짜장면 시키기", + detailTitle = "스포츠몬스터로 가서,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기", + detailContent = "살다보면 다 그런거래요 \n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "10~40분", + detailPlace = "일산 킨텍스" + ) + ) + ), + HappyCard( + name = "두 번째 카드", + nameColor = "#FFF27400", + title = "두 번째 카드 제목", + iconImageUrl = R.drawable.ic_happy_bling_purple, + routines = listOf( + HappyCard.Routines( + routineId = 2, + cardImageUrl = R.drawable.ic_happycard_up_purple, + content = "두 번째 카드의 콘텐츠", + detailTitle = "두 번째 카드의 디테일 제목", + detailContent = "두 번째 카드의 디테일 내용", + detailTime = "두 번째 카드의 디테일 시간", + detailPlace = "두 번째 카드의 디테일 장소" + ) + ) + ), + HappyCard( + name = "세 번째 카드", + nameColor = "#FFFFFF", + title = "세 번째 카드 제목", + iconImageUrl = R.drawable.ic_happy_bling_orange, + routines = listOf( + HappyCard.Routines( + routineId = 2, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "세 번째 카드의 콘텐츠", + detailTitle = "세 번째 카드의 디테일 제목", + detailContent = "세 번째 카드의 디테일 내용", + detailTime = "세 번째 카드의 디테일 시간", + detailPlace = "세 번째 카드의 디테일 장소" + ) + ) + ), + ) + ) + + val mockHappyCardList: LiveData> + get() = _mockHappyCardList + +} From 087ee81de8991fb472b354e6e2a3b3ac5d88bcca Mon Sep 17 00:00:00 2001 From: pump9918 Date: Fri, 12 Jan 2024 23:05:31 +0900 Subject: [PATCH 05/18] =?UTF-8?q?#39=20[chore]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EB=B7=B0?= =?UTF-8?q?=EC=99=80=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 3 +++ .../softie/ui/main/happy/addlist/HappyAddListActivity.kt | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5c5f8a9a..78b25424 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -117,6 +117,9 @@ dependencies { // Splash Screen implementation("androidx.core:core-splashscreen:1.0.1") + // indicator + implementation("com.tbuonomo:dotsindicator:5.0") + implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0") diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt index f59ecf3c..ebd093c9 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt @@ -7,7 +7,7 @@ import androidx.recyclerview.widget.RecyclerView import com.sopetit.softie.R import com.sopetit.softie.databinding.ActivityHappyAddListBinding import com.sopetit.softie.domain.entity.HappyContent -import com.sopetit.softie.ui.main.MainActivity +import com.sopetit.softie.ui.happyroutine.adddetail.HappyDetailActivity import com.sopetit.softie.util.HorizontalChipItemDecoration import com.sopetit.softie.util.VerticalItemDecoration import com.sopetit.softie.util.binding.BindingActivity @@ -85,7 +85,7 @@ class HappyAddListActivity : } private fun moveToDetail(id: Int) { - Intent(this, MainActivity::class.java).apply { + Intent(this, HappyDetailActivity::class.java).apply { putExtra(ID, id) startActivity(this) } From f02e03a5904cf943b6e78749ff66f0cc0502a3b6 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sat, 13 Jan 2024 00:08:16 +0900 Subject: [PATCH 06/18] =?UTF-8?q?#39=20[ui]=20=EC=B9=B4=EB=93=9C=20?= =?UTF-8?q?=EB=92=B7=ED=8E=B8=20=EB=B7=B0=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item_happy_add_detail_card_back.xml | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 app/src/main/res/layout/item_happy_add_detail_card_back.xml diff --git a/app/src/main/res/layout/item_happy_add_detail_card_back.xml b/app/src/main/res/layout/item_happy_add_detail_card_back.xml new file mode 100644 index 00000000..fbf72aee --- /dev/null +++ b/app/src/main/res/layout/item_happy_add_detail_card_back.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + From 88f27183cf51dd39eab356395106402ed57d241d Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sat, 13 Jan 2024 03:02:23 +0900 Subject: [PATCH 07/18] =?UTF-8?q?#39=20[chore]=20=EA=B8=B0=EA=B8=B0?= =?UTF-8?q?=EB=8C=80=EC=9D=91=20dimen=20=ED=8C=8C=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values-hdpi/dimens.xml | 4 ++++ app/src/main/res/values-mdpi/dimens.xml | 4 ++++ app/src/main/res/values-xhdpi/dimens.xml | 4 ++++ app/src/main/res/values-xxhdpi/dimens.xml | 4 ++++ app/src/main/res/values-xxxhdpi/dimens.xml | 4 ++++ 5 files changed, 20 insertions(+) create mode 100644 app/src/main/res/values-hdpi/dimens.xml create mode 100644 app/src/main/res/values-mdpi/dimens.xml create mode 100644 app/src/main/res/values-xhdpi/dimens.xml create mode 100644 app/src/main/res/values-xxhdpi/dimens.xml create mode 100644 app/src/main/res/values-xxxhdpi/dimens.xml diff --git a/app/src/main/res/values-hdpi/dimens.xml b/app/src/main/res/values-hdpi/dimens.xml new file mode 100644 index 00000000..c9b68580 --- /dev/null +++ b/app/src/main/res/values-hdpi/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + diff --git a/app/src/main/res/values-mdpi/dimens.xml b/app/src/main/res/values-mdpi/dimens.xml new file mode 100644 index 00000000..c9b68580 --- /dev/null +++ b/app/src/main/res/values-mdpi/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + diff --git a/app/src/main/res/values-xhdpi/dimens.xml b/app/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 00000000..c9b68580 --- /dev/null +++ b/app/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + diff --git a/app/src/main/res/values-xxhdpi/dimens.xml b/app/src/main/res/values-xxhdpi/dimens.xml new file mode 100644 index 00000000..c9b68580 --- /dev/null +++ b/app/src/main/res/values-xxhdpi/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + diff --git a/app/src/main/res/values-xxxhdpi/dimens.xml b/app/src/main/res/values-xxxhdpi/dimens.xml new file mode 100644 index 00000000..c9b68580 --- /dev/null +++ b/app/src/main/res/values-xxxhdpi/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + From a5cb598bfb03e4d1d219591fb81b79778bff0ff9 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sun, 14 Jan 2024 12:25:37 +0900 Subject: [PATCH 08/18] =?UTF-8?q?#39=20[fix]=20=EC=B9=B4=EB=93=9C=20?= =?UTF-8?q?=EC=95=9E=20=EB=92=B7=EB=A9=B4=20=ED=86=B5=ED=95=A9,=20?= =?UTF-8?q?=EA=B8=B8=EC=9D=B4=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/activity_happy_add_detail.xml | 13 +- .../res/layout/item_happy_add_detail_card.xml | 199 ++++++++++++++---- .../item_happy_add_detail_card_back.xml | 114 ---------- 3 files changed, 165 insertions(+), 161 deletions(-) delete mode 100644 app/src/main/res/layout/item_happy_add_detail_card_back.xml diff --git a/app/src/main/res/layout/activity_happy_add_detail.xml b/app/src/main/res/layout/activity_happy_add_detail.xml index a631a54c..ecc8a647 100644 --- a/app/src/main/res/layout/activity_happy_add_detail.xml +++ b/app/src/main/res/layout/activity_happy_add_detail.xml @@ -56,25 +56,23 @@ + app:layout_constraintTop_toBottomOf="@id/tv_happy_add_detail_subtitle" + app:layout_constraintVertical_bias="0" /> + app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/item_happy_add_detail_card.xml b/app/src/main/res/layout/item_happy_add_detail_card.xml index 29cca69e..7ea2951c 100644 --- a/app/src/main/res/layout/item_happy_add_detail_card.xml +++ b/app/src/main/res/layout/item_happy_add_detail_card.xml @@ -1,50 +1,171 @@ - + + + + + - - + + + app:layout_constraintTop_toTopOf="parent"> - + + + + + + + - + android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:visibility="invisible" + app:layout_constraintBottom_toBottomOf="@id/cl_happy_routine_add_card" + app:layout_constraintEnd_toEndOf="@id/cl_happy_routine_add_card" + app:layout_constraintStart_toStartOf="@id/cl_happy_routine_add_card" + app:layout_constraintTop_toTopOf="@id/cl_happy_routine_add_card"> + + + + + + + + + + + + + + + + - + diff --git a/app/src/main/res/layout/item_happy_add_detail_card_back.xml b/app/src/main/res/layout/item_happy_add_detail_card_back.xml deleted file mode 100644 index fbf72aee..00000000 --- a/app/src/main/res/layout/item_happy_add_detail_card_back.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - From 31c23888d5464b500daf8e8263f82a1751bbccda Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sun, 14 Jan 2024 18:27:27 +0900 Subject: [PATCH 09/18] =?UTF-8?q?#39=20[fix]=20=EC=B9=B4=EB=93=9C=20?= =?UTF-8?q?=EA=B8=80=EC=9E=90=20=EC=88=98=20=EB=B0=98=EC=9D=91=20xml=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 --- .../res/layout/activity_happy_add_detail.xml | 5 +- .../res/layout/item_happy_add_detail_card.xml | 47 ++++++++++--------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/app/src/main/res/layout/activity_happy_add_detail.xml b/app/src/main/res/layout/activity_happy_add_detail.xml index ecc8a647..ba2a045e 100644 --- a/app/src/main/res/layout/activity_happy_add_detail.xml +++ b/app/src/main/res/layout/activity_happy_add_detail.xml @@ -8,7 +8,8 @@ + android:layout_height="match_parent" + android:background="@color/background"> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="@id/md_happy_routine_add_card_divider" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_add_card_detail_time_back" + app:layout_constraintStart_toEndOf="@id/iv_happy_routine_add_card_detail_time_back" + app:layout_constraintTop_toTopOf="@id/iv_happy_routine_add_card_detail_time_back" /> + app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_add_card_detail_place_back" + app:layout_constraintStart_toEndOf="@id/iv_happy_routine_add_card_detail_place_back" + app:layout_constraintTop_toTopOf="@id/iv_happy_routine_add_card_detail_place_back" /> Date: Sun, 14 Jan 2024 18:40:54 +0900 Subject: [PATCH 10/18] =?UTF-8?q?#39=20[feat]=20=EC=B9=B4=ED=85=8C?= =?UTF-8?q?=EA=B3=A0=EB=A6=AC=20=EB=B3=84=20=EB=8D=B0=EC=9D=B4=ED=84=B0,?= =?UTF-8?q?=20=EC=B9=B4=EB=93=9C=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopetit/softie/domain/entity/HappyCard.kt | 3 + .../adddetail/HappyDetailActivity.kt | 48 +++-- .../adddetail/HappyDetailCardPagerAdapter.kt | 55 ++++-- .../adddetail/HappyDetailCardViewModel.kt | 177 +++++++++++++++--- 4 files changed, 235 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt index 5910e652..15df67d1 100644 --- a/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyCard.kt @@ -3,6 +3,7 @@ package com.sopetit.softie.domain.entity import androidx.annotation.DrawableRes data class HappyCard( + val categoryId: Int, val name: String, val nameColor: String, val title: String, @@ -19,3 +20,5 @@ data class HappyCard( val detailPlace: String ) } + + diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt index ad84aaab..fbb46aa5 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt @@ -1,15 +1,19 @@ package com.sopetit.softie.ui.happyroutine.adddetail +import android.content.Intent import android.graphics.Color import android.graphics.Rect import android.os.Bundle import android.view.View import androidx.activity.viewModels +import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.CompositePageTransformer import androidx.viewpager2.widget.ViewPager2 import com.sopetit.softie.R import com.sopetit.softie.databinding.ActivityHappyAddDetailBinding +import com.sopetit.softie.ui.happyroutine.addlist.HappyAddListActivity.Companion.ID +import com.sopetit.softie.ui.main.MainActivity import com.sopetit.softie.util.binding.BindingActivity class HappyDetailActivity : @@ -23,9 +27,20 @@ class HappyDetailActivity : super.onCreate(savedInstanceState) viewPager = binding.vpHappyAddDetailCard + val categoryId = intent.getIntExtra(ID, -1) + val viewModel = ViewModelProvider(this).get(HappyDetailCardViewModel::class.java) + val happyCard = viewModel.mockHappyCardList.value?.get(categoryId - 1) + + happyCard?.let { + binding.tvHappyAddDetailTitle.text = happyCard.name + binding.ivHappyAddDetailIcon.setImageResource(happyCard.iconImageUrl) + binding.tvHappyAddDetailSubtitle.text = happyCard.title + binding.tvHappyAddDetailTitle.setTextColor(Color.parseColor(happyCard.nameColor)) + } + setBackEnter() - setupBinding() - setupAdapter() + setSnackbarEnter() + setupAdapter(categoryId) setIndicator() initViewPager() initPagerDiv(0, 90) @@ -37,22 +52,27 @@ class HappyDetailActivity : } } - private fun setupBinding() { - val happyCard = viewModel.mockHappyCardList.value?.get(1) - happyCard?.let { - binding.tvHappyAddDetailTitle.text = it.name - binding.ivHappyAddDetailIcon.setImageResource(it.iconImageUrl) - binding.tvHappyAddDetailSubtitle.text = it.title - binding.tvHappyAddDetailTitle.setTextColor(Color.parseColor(it.nameColor)) + private fun setSnackbarEnter() { + binding.btnHappyDetailAdd.setOnClickListener { + moveToIng() + } + } + + private fun moveToIng() { + Intent(this, MainActivity::class.java).apply { + startActivity(this) } } - private fun setupAdapter() { + private fun setupAdapter(categoryId: Int) { with(binding) { - happyRoutineAddCardPagerAdapter = HappyDetailCardPagerAdapter() + happyRoutineAddCardPagerAdapter = + HappyDetailCardPagerAdapter() // categoryId를 전달합니다. vpHappyAddDetailCard.adapter = happyRoutineAddCardPagerAdapter } - happyRoutineAddCardPagerAdapter.submitList(viewModel.mockHappyCardList.value) + happyRoutineAddCardPagerAdapter.submitList( + viewModel.getHappyCardListForId(categoryId).get(0).routines + ) } private fun setIndicator() { @@ -62,9 +82,9 @@ class HappyDetailActivity : private fun initViewPager() { viewPager.adapter = happyRoutineAddCardPagerAdapter - val dpValue = 40 + val dp = resources.getDimensionPixelSize(R.dimen.view_margin) val d = resources.displayMetrics.density - val margin = (dpValue * d).toInt() + val margin = (dp * d).toInt() with(binding.vpHappyAddDetailCard) { clipChildren = false diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt index 7307bf97..816c6dbf 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardPagerAdapter.kt @@ -1,6 +1,7 @@ package com.sopetit.softie.ui.happyroutine.adddetail import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView @@ -8,13 +9,49 @@ import com.sopetit.softie.databinding.ItemHappyAddDetailCardBinding import com.sopetit.softie.domain.entity.HappyCard import com.sopetit.softie.util.ItemDiffCallback -class HappyDetailCardPagerAdapter : - ListAdapter( - ItemDiffCallback( - onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, - onContentsTheSame = { oldItem, newItem -> oldItem == newItem } +class HappyDetailCardPagerAdapter() : + ListAdapter( + ItemDiffCallback( + onItemsTheSame = { oldItem, newItem -> oldItem.routineId == newItem.routineId }, + onContentsTheSame = { oldItem, newItem -> oldItem.routineId == newItem.routineId } ) ) { + + class HappyPagerViewHolder( + private val binding: ItemHappyAddDetailCardBinding + ) : + RecyclerView.ViewHolder(binding.root) { + + fun onBind(data: HappyCard.Routines) { + binding.ivHappyRoutineAddCard.setImageResource(data.cardImageUrl) + binding.tvHappyRoutineAddCardDetailTitle.text = data.detailTitle + binding.tvHappyRoutineAddCardDetailTitleBack.text = data.detailTitle + binding.tvHappyRoutineAddCardDetailContentBack.text = data.detailContent + binding.tvHappyRoutineAddCardDetailTimeBack.text = data.detailTime + binding.tvHappyRoutineAddCardDetailPlaceBack.text = data.detailPlace + binding.clHappyRoutineAddCard.setOnClickListener { + val isVisible = binding.clHappyRoutineAddCard.visibility == View.VISIBLE + if (isVisible) { + binding.clHappyRoutineAddCard.visibility = View.INVISIBLE + binding.clHappyRoutineAddCardBack.visibility = View.VISIBLE + } else { + binding.clHappyRoutineAddCard.visibility = View.VISIBLE + binding.clHappyRoutineAddCardBack.visibility = View.INVISIBLE + } + } + binding.clHappyRoutineAddCardBack.setOnClickListener { + val isVisible = binding.clHappyRoutineAddCardBack.visibility == View.VISIBLE + if (isVisible) { + binding.clHappyRoutineAddCardBack.visibility = View.INVISIBLE + binding.clHappyRoutineAddCard.visibility = View.VISIBLE + } else { + binding.clHappyRoutineAddCardBack.visibility = View.VISIBLE + binding.clHappyRoutineAddCard.visibility = View.INVISIBLE + } + } + } + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HappyPagerViewHolder { val binding = ItemHappyAddDetailCardBinding.inflate( LayoutInflater.from(parent.context), parent, false @@ -25,12 +62,4 @@ class HappyDetailCardPagerAdapter : override fun onBindViewHolder(holder: HappyPagerViewHolder, position: Int) { holder.onBind(currentList[position]) } - - class HappyPagerViewHolder(private val binding: ItemHappyAddDetailCardBinding) : - RecyclerView.ViewHolder(binding.root) { - fun onBind(data: HappyCard) { - binding.ivHappyRoutineAddCard.setImageResource(data.routines[0].cardImageUrl) - binding.tvHappyRoutineAddCardDetailTitle.text = data.routines[0].content - } - } } diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt index b46f4bd5..fe9bc152 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailCardViewModel.kt @@ -11,64 +11,196 @@ class HappyDetailCardViewModel : ViewModel() { private val _mockHappyCardList: MutableLiveData> = MutableLiveData( mutableListOf( HappyCard( + categoryId = 1, name = "관계 쌓기", - nameColor = "#CEB59E", + nameColor = "#FFFF5D76", title = "성숙한 사랑을 만나기 위한 행복 루틴", - iconImageUrl = R.drawable.ic_happy_bling_blue, + iconImageUrl = R.drawable.ic_happy_bling_red, routines = listOf( HappyCard.Routines( routineId = 1, - cardImageUrl = R.drawable.ic_happycard_up_blue, - content = "서점에 가서 랜덤 책 골라서 공중제비 돌기", + cardImageUrl = R.drawable.ic_happycard_up_red, + content = "서점에 가서 \n랜덤 책 골라서 공중제비 돌기", detailTitle = "이상형의 특성 10가지 적어보고,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기", - detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 \n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어. 난 너를 믿", detailTime = "5~10분", detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" ), HappyCard.Routines( routineId = 2, cardImageUrl = R.drawable.ic_happycard_up_red, content = "길가다가 박수치기", - detailTitle = "홍대에서 가장 맛있는\n음식점을 찾아보아요\n나와 비슷한 3가지 찾아보기", - detailContent = "우리나라 좋은나라\n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTitle = "홍대에서 가장 맛있는 음식점을 찾아보아요\n나와 비슷한 3가지 찾아보기", + detailContent = "우리나라 좋은나라 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어", detailTime = "6~30분", detailPlace = "홍대 옥상, 저녁식사 후 돌아가는 길" ), HappyCard.Routines( routineId = 3, - cardImageUrl = R.drawable.ic_happycard_up_orange, + cardImageUrl = R.drawable.ic_happycard_up_red, content = "클럽에서 짜장면 시키기", detailTitle = "스포츠몬스터로 가서,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기", - detailContent = "살다보면 다 그런거래요 \n안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 \n먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailContent = "살다보면 다 그런거래요 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", detailTime = "10~40분", detailPlace = "일산 킨텍스" ) ) ), HappyCard( - name = "두 번째 카드", + categoryId = 2, + name = "관계 쌓기", + nameColor = "#FFFF5D76", + title = "진정성 있는 관계를 만드는", + iconImageUrl = R.drawable.ic_happy_bling_red, + routines = listOf( + HappyCard.Routines( + routineId = 1, + cardImageUrl = R.drawable.ic_happycard_up_red, + content = "서점에 가서 \n 랜덤 책 골라서 공중제비 돌기", + detailTitle = "이상형의 특성 10가지 적어보고, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어", + detailTime = "5~10분", + detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" + ), + HappyCard.Routines( + routineId = 2, + cardImageUrl = R.drawable.ic_happycard_up_red, + content = "서점에 가서 \n 랜덤 책 골라서 공중제비 돌기", + detailTitle = "이상형의 특성 10가지 적어보고, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어", + detailTime = "5~10분", + detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" + ) + ) + ), + HappyCard( + categoryId = 3, + name = "한 걸음 성장", nameColor = "#FFF27400", - title = "두 번째 카드 제목", - iconImageUrl = R.drawable.ic_happy_bling_purple, + title = "나를 알고 진짜 목표를 세우는", + iconImageUrl = R.drawable.ic_happy_bling_orange, routines = listOf( HappyCard.Routines( + routineId = 1, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "서점에 가서 \n랜덤 책 골라서 공중제비 돌기", + detailTitle = "이상형의 특성 10가지 적어보고, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어", + detailTime = "5~10분", + detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" + ), HappyCard.Routines( routineId = 2, - cardImageUrl = R.drawable.ic_happycard_up_purple, - content = "두 번째 카드의 콘텐츠", - detailTitle = "두 번째 카드의 디테일 제목", - detailContent = "두 번째 카드의 디테일 내용", - detailTime = "두 번째 카드의 디테일 시간", - detailPlace = "두 번째 카드의 디테일 장소" + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "길가다가 박수치기", + detailTitle = "홍대에서 가장 맛있는 음식점을 찾아보아요나와 비슷한 3가지 찾아보기", + detailContent = "우리나라 좋은나라 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "6~30분", + detailPlace = "홍대 옥상, 저녁식사 후 돌아가는 길" + ), HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "클럽에서 짜장면 시키기", + detailTitle = "스포츠몬스터로 가서, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "살다보면 다 그런거래요 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "10~40분", + detailPlace = "일산 킨텍스" ) ) ), HappyCard( - name = "세 번째 카드", - nameColor = "#FFFFFF", - title = "세 번째 카드 제목", + categoryId = 4, + name = "한 걸음 성장", + nameColor = "#FFF27400", + title = "좋아하는, 잘하는 일을 찾아가는", iconImageUrl = R.drawable.ic_happy_bling_orange, routines = listOf( HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "세 번째 카드의 콘텐츠", + detailTitle = "세 번째 카드의 디테일 제목", + detailContent = "세 번째 카드의 디테일 내용", + detailTime = "세 번째 카드의 디테일 시간", + detailPlace = "세 번째 카드의 디테일 장소" + ), HappyCard.Routines( routineId = 2, cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "길가다가 박수치기", + detailTitle = "홍대에서 가장 맛있는 음식점을 찾아보아요 나와 비슷한 3가지 찾아보기", + detailContent = "우리나라 좋은나라 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "6~30분", + detailPlace = "홍대 옥상, 저녁식사 후 돌아가는 길" + ), HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_orange, + content = "클럽에서 짜장면 시키기", + detailTitle = "스포츠몬스터로 가서, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "살다보면 다 그런거래요 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "10~40분", + detailPlace = "일산 킨텍스" + ) + ) + ), + HappyCard( + categoryId = 5, + name = "잘 쉬어가기", + nameColor = "#FF3DB96F", + title = "데이터가 아직 없습니다", + iconImageUrl = R.drawable.ic_happy_bling_green, + routines = listOf( + HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_green, + content = "세 번째 카드의 콘텐츠", + detailTitle = "세 번째 카드의 디테일 제목", + detailContent = "세 번째 카드의 디테일 내용", + detailTime = "세 번째 카드의 디테일 시간", + detailPlace = "세 번째 카드의 디테일 장소" + ) + ) + ), + HappyCard( + categoryId = 6, + name = "새로운 나", + nameColor = "#FF7B89D1", + title = "나를 알고 진짜 목표를 세우는", + iconImageUrl = R.drawable.ic_happy_bling_blue, + routines = listOf( + HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_blue, + content = "세 번째 카드의 콘텐츠", + detailTitle = "세 번째 카드의 디테일 제목", + detailContent = "세 번째 카드의 디테일 내용", + detailTime = "세 번째 카드의 디테일 시간", + detailPlace = "세 번째 카드의 디테일 장소" + ), HappyCard.Routines( + routineId = 2, + cardImageUrl = R.drawable.ic_happycard_up_blue, + content = "길가다가 박수치기", + detailTitle = "홍대에서 가장 맛있는 음식점을 찾아보아요 나와 비슷한 3가지 찾아보기", + detailContent = "우리나라 좋은나라 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "6~30분", + detailPlace = "홍대 옥상, 저녁식사 후 돌아가는 길" + ), HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_blue, + content = "클럽에서 짜장면 시키기", + detailTitle = "스포츠몬스터로 가서, 절대 포기 못할 2가지와 나와 비슷한 3가지 찾아보기", + detailContent = "살다보면 다 그런거래요 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사\n람을 연결하는 방법이 될 수 있어", + detailTime = "10~40분", + detailPlace = "일산 킨텍스" + ) + ) + ), + HappyCard( + categoryId = 7, + name = "마음 챙김", + nameColor = "#FFBC73E6", + title = "데이터가 아직 없습니다", + iconImageUrl = R.drawable.ic_happy_bling_purple, + routines = listOf( + HappyCard.Routines( + routineId = 3, + cardImageUrl = R.drawable.ic_happycard_up_purple, content = "세 번째 카드의 콘텐츠", detailTitle = "세 번째 카드의 디테일 제목", detailContent = "세 번째 카드의 디테일 내용", @@ -83,4 +215,7 @@ class HappyDetailCardViewModel : ViewModel() { val mockHappyCardList: LiveData> get() = _mockHappyCardList + fun getHappyCardListForId(categoryId: Int): List { + return _mockHappyCardList.value?.filter { it.categoryId == categoryId } ?: emptyList() + } } From 4d7f6bd0d8c9345b75f000e96bbdff1e68dabe73 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sun, 14 Jan 2024 23:09:31 +0900 Subject: [PATCH 11/18] =?UTF-8?q?#48=20[ui]=20=ED=96=89=EB=B3=B5=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EC=A7=84=ED=96=89=EC=A4=91=20xml=20=EB=B7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/drawable/ic_speech_happy.xml | 18 ++ .../res/layout/fragment_happy_progress.xml | 246 ++++++++++++++++++ app/src/main/res/values/strings.xml | 6 + 3 files changed, 270 insertions(+) create mode 100644 app/src/main/res/drawable/ic_speech_happy.xml create mode 100644 app/src/main/res/layout/fragment_happy_progress.xml diff --git a/app/src/main/res/drawable/ic_speech_happy.xml b/app/src/main/res/drawable/ic_speech_happy.xml new file mode 100644 index 00000000..cbd6ca9d --- /dev/null +++ b/app/src/main/res/drawable/ic_speech_happy.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/app/src/main/res/layout/fragment_happy_progress.xml b/app/src/main/res/layout/fragment_happy_progress.xml new file mode 100644 index 00000000..c16b83ea --- /dev/null +++ b/app/src/main/res/layout/fragment_happy_progress.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1b001728..39ce32e8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,6 +34,12 @@ 이 루틴을 추가할래 + + 행복 루틴 + 편집 + 달성 중... + 완료하기 + 어떤 친구와 함께 할까요? 한 번 선택한 인형은 바꿀 수 없어요 From 36e2b902fde7b96063af8a98795d3e0120cd4b32 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sun, 14 Jan 2024 23:16:16 +0900 Subject: [PATCH 12/18] =?UTF-8?q?#48=20[chore]=20=ED=96=89=EB=B3=B5?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=A7=84=ED=96=89=EC=A4=91=20xml=20invisi?= =?UTF-8?q?ble=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/fragment_happy_progress.xml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/fragment_happy_progress.xml b/app/src/main/res/layout/fragment_happy_progress.xml index c16b83ea..47db6ab1 100644 --- a/app/src/main/res/layout/fragment_happy_progress.xml +++ b/app/src/main/res/layout/fragment_happy_progress.xml @@ -13,22 +13,35 @@ android:background="@color/background"> + + From 1a822c4e1612e7a1805ac8ef521f93ca8bd74c30 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Sun, 14 Jan 2024 23:56:01 +0900 Subject: [PATCH 13/18] =?UTF-8?q?#48=20[ui]=20=EC=B6=94=EA=B0=80=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=ED=81=B4=EB=A6=AD=20=ED=94=84?= =?UTF-8?q?=EB=9E=98=EA=B7=B8=EB=A8=BC=ED=8A=B8=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happyroutine/adddetail/HappyDetailActivity.kt | 5 +++-- .../happyroutine/progress/HappyProgressFragment.kt | 14 ++++++++++++++ .../com/sopetit/softie/ui/main/MainActivity.kt | 13 +++++++++++++ .../main/res/layout/activity_happy_add_detail.xml | 3 +-- 4 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt index e3ac0118..4f4f0650 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/adddetail/HappyDetailActivity.kt @@ -56,12 +56,13 @@ class HappyDetailActivity : private fun setSnackbarEnter() { binding.btnHappyDetailAdd.setOnClickListener { - moveToIng() + moveToProgress() } } - private fun moveToIng() { + private fun moveToProgress() { Intent(this, MainActivity::class.java).apply { + putExtra("happy_progress_fragment", "happy_progress") startActivity(this) } } diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt new file mode 100644 index 00000000..265f73e5 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt @@ -0,0 +1,14 @@ +package com.sopetit.softie.ui.happyroutine.progress + +import android.os.Bundle +import android.view.View +import com.sopetit.softie.R +import com.sopetit.softie.databinding.FragmentHappyProgressBinding +import com.sopetit.softie.util.binding.BindingFragment + +class HappyProgressFragment : + BindingFragment(R.layout.fragment_happy_progress) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + } +} diff --git a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt index 451b95b6..23a85e6b 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt @@ -8,6 +8,7 @@ import com.sopetit.softie.R import com.sopetit.softie.databinding.ActivityMainBinding import com.sopetit.softie.ui.dailyroutine.DailyRoutineFragment import com.sopetit.softie.ui.happyroutine.HappyRoutineFragment +import com.sopetit.softie.ui.happyroutine.progress.HappyProgressFragment import com.sopetit.softie.ui.main.home.HomeFragment import com.sopetit.softie.util.binding.BindingActivity import com.sopetit.softie.util.setStatusBarColorFromResource @@ -22,6 +23,11 @@ class MainActivity : BindingActivity(R.layout.activity_main initFragment() initBottomNavigation() setBottomNavigationClickListener() + + val fragmentToLoad = intent.getStringExtra("happy_progress_fragment") + if (fragmentToLoad == "happy_progress") { + changeFragment(HappyProgressFragment()) + } } private fun setBottomNavigationClickListener() { @@ -70,4 +76,11 @@ class MainActivity : BindingActivity(R.layout.activity_main intArrayOf(selectedTextColor, unselectedTextColor) ) } + + private fun loadHappyProgressFragment() { + val fragmentTransaction = supportFragmentManager.beginTransaction() + fragmentTransaction.replace(R.id.fcv_main, HappyProgressFragment()) + fragmentTransaction.commit() + } + } diff --git a/app/src/main/res/layout/activity_happy_add_detail.xml b/app/src/main/res/layout/activity_happy_add_detail.xml index 76e49eaa..bcbf73c3 100644 --- a/app/src/main/res/layout/activity_happy_add_detail.xml +++ b/app/src/main/res/layout/activity_happy_add_detail.xml @@ -1,6 +1,5 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> @@ -54,7 +53,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_happy_add_detail_icon" - tools:text="@string/happy_detail_subtitle" /> + tools:text="성숙한 사랑을 하기 위한" /> Date: Mon, 15 Jan 2024 04:01:03 +0900 Subject: [PATCH 14/18] =?UTF-8?q?#48=20[chore]=20ui=20=EC=B7=A8=EC=86=8C?= =?UTF-8?q?=20=EB=B2=84=ED=8A=BC=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/fragment_happy_progress.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/src/main/res/layout/fragment_happy_progress.xml b/app/src/main/res/layout/fragment_happy_progress.xml index 47db6ab1..2b3f33a1 100644 --- a/app/src/main/res/layout/fragment_happy_progress.xml +++ b/app/src/main/res/layout/fragment_happy_progress.xml @@ -24,24 +24,12 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - From a9ae44d2fc963ab752d856daff0f37ccc2e0764e Mon Sep 17 00:00:00 2001 From: pump9918 Date: Mon, 15 Jan 2024 04:02:55 +0900 Subject: [PATCH 15/18] =?UTF-8?q?#48=20[ui]=20=EC=A7=84=ED=96=89=EC=A4=91?= =?UTF-8?q?=20=EB=B7=B0=EB=AA=A8=EB=8D=B8=20=EA=B0=80=EC=A7=9C=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=ED=81=B4=EB=9E=98=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../progress/HappyProgressViewModel.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressViewModel.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressViewModel.kt new file mode 100644 index 00000000..63992208 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressViewModel.kt @@ -0,0 +1,19 @@ +package com.sopetit.softie.ui.happyroutine.progress + +import androidx.lifecycle.ViewModel +import com.sopetit.softie.R +import com.sopetit.softie.domain.entity.HappyProgress + +class HappyProgressViewModel : ViewModel() { + + val mockHappyProgress: HappyProgress = HappyProgress( + routineId = 1, + imageUrl = R.drawable.ic_happycard_up_purple, + title = "성숙한 사람을 만나기 위한", + content = "이상형의 특성 10가지 적어보고,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기 앞면", + detailTitle = "이상형의 특성 10가지 적어보고,\n절대 포기 못할 2가지와\n나와 비슷한 3가지 찾아보기 뒷면", + detailContent = "평소에 바빠서 연락하지 못한 사람이 있다면 안부인사 개인톡을 보내 봐. 꼭 만나서 밥을 먹거나 하지 않아도 연락 한 통이 나와 그 사람을 연결하는 방법이 될 수 있어. 난 너를 믿", + detailTime = "5~10분", + detailPlace = "회사 옥상, 점심식사 후 돌아가는 길" + ) +} From 70e5485f3d043ec929aef280879510096039994f Mon Sep 17 00:00:00 2001 From: pump9918 Date: Mon, 15 Jan 2024 04:03:09 +0900 Subject: [PATCH 16/18] =?UTF-8?q?#48=20[ui]=20=EC=A7=84=ED=96=89=EC=A4=91?= =?UTF-8?q?=20=EB=B7=B0=EB=AA=A8=EB=8D=B8=20=EB=A1=9C=EC=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 11 +++- .../softie/domain/entity/HappyProgress.kt | 14 ++++ .../progress/HappyProgressFragment.kt | 64 +++++++++++++++++++ 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/sopetit/softie/domain/entity/HappyProgress.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d8ce8d54..93a70524 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ + android:screenOrientation="portrait"> + + diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/HappyProgress.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyProgress.kt new file mode 100644 index 00000000..e9b86540 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyProgress.kt @@ -0,0 +1,14 @@ +package com.sopetit.softie.domain.entity + +import androidx.annotation.DrawableRes + +data class HappyProgress( + val routineId: Int, + @DrawableRes val imageUrl: Int, + val title: String, + val content: String, + val detailTitle: String, + val detailContent: String, + val detailTime: String, + val detailPlace: String +) diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt index 265f73e5..e2b2687d 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/progress/HappyProgressFragment.kt @@ -2,13 +2,77 @@ package com.sopetit.softie.ui.happyroutine.progress import android.os.Bundle import android.view.View +import androidx.fragment.app.activityViewModels import com.sopetit.softie.R import com.sopetit.softie.databinding.FragmentHappyProgressBinding +import com.sopetit.softie.domain.entity.HappyProgress +import com.sopetit.softie.ui.main.home.HomeFragment import com.sopetit.softie.util.binding.BindingFragment class HappyProgressFragment : BindingFragment(R.layout.fragment_happy_progress) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + val viewModel: HappyProgressViewModel by activityViewModels() + val happyProgress = viewModel.mockHappyProgress + + setCardBinding(happyProgress) + setCardEnter() + setEditEnter() + setClearEnter() + } + + private fun setCardBinding(happyProgress: HappyProgress) { + with(binding) { + tvHappyProgressSubtitle.text = happyProgress.title + ivHappyProgressCardFront.setImageResource(happyProgress.imageUrl) + tvHappyProgressCardFrontTitle.text = happyProgress.content + tvHappyProgressCardBackTitle.text = happyProgress.detailTitle + tvHappyProgressCardBackContent.text = happyProgress.detailContent + tvHappyProgressCardBackTime.text = happyProgress.detailTime + tvHappyProgressCardBackPlace.text = happyProgress.detailPlace + } + } + + private fun setCardEnter() { + with(binding) { + clHappyProgressCardFront.setOnClickListener { + setCardFlip(clHappyProgressCardFront, clHappyProgressCardBack) + } + clHappyProgressCardBack.setOnClickListener { + setCardFlip(clHappyProgressCardBack, clHappyProgressCardFront) + } + } + } + + private fun setEditEnter() { + binding.tvHappyProgressEdit.setOnClickListener { + val homeFragment = HomeFragment() + requireActivity().supportFragmentManager.beginTransaction() + .replace(R.id.fcv_main, homeFragment) + .commit() + } + } + + private fun setCardFlip(viewFront: View, viewToBack: View) { + val isVisible = viewFront.visibility == View.VISIBLE + if (isVisible) { + viewFront.visibility = View.INVISIBLE + viewToBack.visibility = View.VISIBLE + } else { + viewFront.visibility = View.VISIBLE + viewToBack.visibility = View.INVISIBLE + } + } + + private fun setClearEnter() { + binding.btnHappyProgressClear.setOnClickListener { + val homeFragment = HomeFragment() + requireActivity().supportFragmentManager.beginTransaction() + .replace(R.id.fcv_main, homeFragment) + .commit() + } } } From 869115688c90d3dc9af850ca38b66ecdccddfdd1 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Mon, 15 Jan 2024 04:17:17 +0900 Subject: [PATCH 17/18] =?UTF-8?q?#48=20[fix]=20CI=20=EA=B3=B5=EB=B0=B1=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt index 23a85e6b..f7dda6c3 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt @@ -82,5 +82,4 @@ class MainActivity : BindingActivity(R.layout.activity_main fragmentTransaction.replace(R.id.fcv_main, HappyProgressFragment()) fragmentTransaction.commit() } - } From 1e2103438f6d4726a412b31f2d0afa97485761e5 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Mon, 15 Jan 2024 11:26:56 +0900 Subject: [PATCH 18/18] =?UTF-8?q?#48=20[ui]=20=EB=A7=A4=EB=8B=88=ED=8C=A8?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 93a70524..1960c833 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" />