From 7784374d0ece4a08ecd896b557437b9bea8de47a Mon Sep 17 00:00:00 2001 From: pump9918 Date: Tue, 9 Jan 2024 18:59:07 +0900 Subject: [PATCH 01/33] =?UTF-8?q?#10=20[ui]=20=ED=85=8C=EB=A7=88=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values/strings.xml | 9 ++++++++- app/src/main/res/values/themes.xml | 30 ++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 024620e8..c11f8f40 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,7 +2,14 @@ Softie - 행복루틴 + 행복 루틴 행복 루틴은 매일 조금씩 너에 대해\n알아갈 수 있는 특별한 이벤트형 루틴이야! 진행 중인 행복루틴이 없어요.\n루틴을 추가할까요? + 행복 루틴 추가 + 전체 + 관계 쌓기 + 한 걸음 성장 + 회복탄력성 + 새로운 나 + 마음 챙김 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 8a35f147..61d7b09c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,4 +6,32 @@ + + + + + From bc798628d5a21ea057ff2a88ff2f93c0eb0c7857 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Tue, 9 Jan 2024 18:59:30 +0900 Subject: [PATCH 02/33] =?UTF-8?q?#10=20[ui]=20=EC=95=84=EC=9D=B4=EC=BD=98?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/drawable/ic_happy_blue.xml | 29 +++++++++++++++++++ app/src/main/res/drawable/ic_happy_green.xml | 22 ++++++++++++++ app/src/main/res/drawable/ic_happy_orange.xml | 23 +++++++++++++++ app/src/main/res/drawable/ic_happy_purple.xml | 22 ++++++++++++++ app/src/main/res/drawable/ic_happy_red.xml | 24 +++++++++++++++ 5 files changed, 120 insertions(+) create mode 100644 app/src/main/res/drawable/ic_happy_blue.xml create mode 100644 app/src/main/res/drawable/ic_happy_green.xml create mode 100644 app/src/main/res/drawable/ic_happy_orange.xml create mode 100644 app/src/main/res/drawable/ic_happy_purple.xml create mode 100644 app/src/main/res/drawable/ic_happy_red.xml diff --git a/app/src/main/res/drawable/ic_happy_blue.xml b/app/src/main/res/drawable/ic_happy_blue.xml new file mode 100644 index 00000000..09cfe6a9 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_blue.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happy_green.xml b/app/src/main/res/drawable/ic_happy_green.xml new file mode 100644 index 00000000..3dc95f45 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_green.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happy_orange.xml b/app/src/main/res/drawable/ic_happy_orange.xml new file mode 100644 index 00000000..8223c17d --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_orange.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happy_purple.xml b/app/src/main/res/drawable/ic_happy_purple.xml new file mode 100644 index 00000000..ad92683b --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_purple.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_happy_red.xml b/app/src/main/res/drawable/ic_happy_red.xml new file mode 100644 index 00000000..9bbe3d16 --- /dev/null +++ b/app/src/main/res/drawable/ic_happy_red.xml @@ -0,0 +1,24 @@ + + + + + + + + + From 6b4c0a53759b9b22eef86a20def8f78f00c348ed Mon Sep 17 00:00:00 2001 From: pump9918 Date: Tue, 9 Jan 2024 19:00:23 +0900 Subject: [PATCH 03/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20chip=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/activity_happy_add_list.xml | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 app/src/main/res/layout/activity_happy_add_list.xml diff --git a/app/src/main/res/layout/activity_happy_add_list.xml b/app/src/main/res/layout/activity_happy_add_list.xml new file mode 100644 index 00000000..d274bee0 --- /dev/null +++ b/app/src/main/res/layout/activity_happy_add_list.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 6ae9da111991d9dd694a38b3a2eb223ac89db0e9 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Tue, 9 Jan 2024 19:45:31 +0900 Subject: [PATCH 04/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20item?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/item_happy_add_list.xml | 68 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 69 insertions(+) create mode 100644 app/src/main/res/layout/item_happy_add_list.xml diff --git a/app/src/main/res/layout/item_happy_add_list.xml b/app/src/main/res/layout/item_happy_add_list.xml new file mode 100644 index 00000000..a170cd0f --- /dev/null +++ b/app/src/main/res/layout/item_happy_add_list.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c11f8f40..bf583f33 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,4 +12,5 @@ 회복탄력성 새로운 나 마음 챙김 + 성숙한 사랑을 만나기 위한 From 558f7d0947f48ee0080976aeabb6fd2a177299ea Mon Sep 17 00:00:00 2001 From: pump9918 Date: Tue, 9 Jan 2024 19:56:40 +0900 Subject: [PATCH 05/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=A6=AC=EC=82=AC=EC=9D=B4=ED=81=B4=EB=9F=AC?= =?UTF-8?q?=EB=B7=B0=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/activity_happy_add_list.xml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/activity_happy_add_list.xml b/app/src/main/res/layout/activity_happy_add_list.xml index d274bee0..28511639 100644 --- a/app/src/main/res/layout/activity_happy_add_list.xml +++ b/app/src/main/res/layout/activity_happy_add_list.xml @@ -1,6 +1,7 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> @@ -107,5 +108,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="parent" /> + + From 6af7775ce0d12db7937322c662b8b09806f6afb9 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:02:29 +0900 Subject: [PATCH 06/33] =?UTF-8?q?#10=20[ui]=20chip=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values/themes.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index e697b444..3baaa9a2 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -23,15 +23,15 @@ 0dp 0dp 0dp - 15dp - @color/main1 + 99dp + @color/white 14dp 14dp #00FFFFFF 10dp 1dp @color/gray100 - @color/white + @color/gray400 From e362db20b6cb49ebd81a21830ccc02d3cd26a9fb Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:04:16 +0900 Subject: [PATCH 07/33] =?UTF-8?q?#10=20[ui]=20=EC=83=81=EB=8B=A8=20chip=20?= =?UTF-8?q?item=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/item_happy_add_list_chip.xml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 app/src/main/res/layout/item_happy_add_list_chip.xml diff --git a/app/src/main/res/layout/item_happy_add_list_chip.xml b/app/src/main/res/layout/item_happy_add_list_chip.xml new file mode 100644 index 00000000..a457ec16 --- /dev/null +++ b/app/src/main/res/layout/item_happy_add_list_chip.xml @@ -0,0 +1,7 @@ + + From c4de93d9511aa5f496ec5d5cfa4674d398730c35 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:04:39 +0900 Subject: [PATCH 08/33] =?UTF-8?q?#10=20[ui]=20=ED=95=98=EB=8B=A8=20?= =?UTF-8?q?=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20item=20xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/item_happy_add_list.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/item_happy_add_list.xml b/app/src/main/res/layout/item_happy_add_list.xml index a170cd0f..09d398cc 100644 --- a/app/src/main/res/layout/item_happy_add_list.xml +++ b/app/src/main/res/layout/item_happy_add_list.xml @@ -1,4 +1,4 @@ - + @@ -10,8 +10,7 @@ android:id="@+id/item_happy_add_component" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginHorizontal="14dp" - android:layout_marginBottom="8dp" + android:layout_marginHorizontal="20dp" android:background="@drawable/rect_gray_gray_stroke_radius_20"> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> From c27de5a799767ed5b5aa8940fe72ddee8feeb6c2 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:07:48 +0900 Subject: [PATCH 09/33] =?UTF-8?q?#10=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(=EB=AA=A9=EB=A1=9D)=20x?= =?UTF-8?q?ml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/activity_happy_add_list.xml | 73 +++---------------- 1 file changed, 10 insertions(+), 63 deletions(-) diff --git a/app/src/main/res/layout/activity_happy_add_list.xml b/app/src/main/res/layout/activity_happy_add_list.xml index 28511639..ad9c3ce8 100644 --- a/app/src/main/res/layout/activity_happy_add_list.xml +++ b/app/src/main/res/layout/activity_happy_add_list.xml @@ -9,7 +9,8 @@ + android:layout_height="match_parent" + android:background="@color/background"> - - - - - - - - - - - - - - - + tools:listitem="@layout/item_happy_add_list_chip" /> - - + app:layout_constraintTop_toBottomOf="@id/rv_happy_add_list_chip" /> Date: Wed, 10 Jan 2024 14:08:26 +0900 Subject: [PATCH 10/33] =?UTF-8?q?#10=20[chore]=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=95=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/AndroidManifest.xml | 5 +++++ .../java/com/sopetit/softie/ui/main/happy/HappyActivity.kt | 1 + .../softie/ui/main/happy/{ => empty}/HappyEmptyFragment.kt | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) rename app/src/main/java/com/sopetit/softie/ui/main/happy/{ => empty}/HappyEmptyFragment.kt (93%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 223b9a56..e17b002e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,6 +35,11 @@ + + diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyActivity.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyActivity.kt index a61e7746..6353ff99 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyActivity.kt @@ -4,6 +4,7 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.sopetit.softie.R import com.sopetit.softie.databinding.ActivityHappyBinding +import com.sopetit.softie.ui.main.happy.empty.HappyEmptyFragment class HappyActivity : AppCompatActivity() { private lateinit var binding: ActivityHappyBinding diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyEmptyFragment.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/empty/HappyEmptyFragment.kt similarity index 93% rename from app/src/main/java/com/sopetit/softie/ui/main/happy/HappyEmptyFragment.kt rename to app/src/main/java/com/sopetit/softie/ui/main/happy/empty/HappyEmptyFragment.kt index 52026767..b18a5dbb 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/HappyEmptyFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/empty/HappyEmptyFragment.kt @@ -1,4 +1,4 @@ -package com.sopetit.softie.ui.main.happy +package com.sopetit.softie.ui.main.happy.empty import android.os.Bundle import android.view.LayoutInflater From 9745584e05f56c2248a3e6a36ba094d2411ac0e8 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:09:56 +0900 Subject: [PATCH 11/33] =?UTF-8?q?#10=20[ui]=20=ED=96=89=EB=B3=B5=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EC=B6=94=EA=B0=80=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/happy/addlist/HappyAddListContent.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt new file mode 100644 index 00000000..6179ca1f --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt @@ -0,0 +1,11 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import androidx.annotation.DrawableRes + +data class HappyAddListContent( + val routineId: Int, + val title: String, + val content: String, + @DrawableRes val imageUrl: Int, +) + From b346cdf6f2499625f1838bf0df10c07a12acc4f8 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:11:33 +0900 Subject: [PATCH 12/33] =?UTF-8?q?#10=20[ui]=20=ED=96=89=EB=B3=B5=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EC=B6=94=EA=B0=80=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=B7=B0=20=EB=B0=94=EC=9D=B8=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListContentViewHolder.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt new file mode 100644 index 00000000..935780ec --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt @@ -0,0 +1,13 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHappyAddListBinding + +class HappyAddListContentViewHolder(private val binding: ItemHappyAddListBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(HappyAddListContentData: HappyAddListContent) { + binding.tvHappyListItemTitle.text = HappyAddListContentData.title + binding.tvHappyListItemContent.text = HappyAddListContentData.content + binding.ivHappyListItemIcon.setImageResource(HappyAddListContentData.imageUrl) + } +} From 51981c5f67f5cb2baa47616fe68e5311d3f861b8 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:11:45 +0900 Subject: [PATCH 13/33] =?UTF-8?q?#10=20[ui]=20=ED=96=89=EB=B3=B5=EB=A3=A8?= =?UTF-8?q?=ED=8B=B4=20=EC=B6=94=EA=B0=80=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EC=96=B4=EB=8C=91=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListContentAdapter.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt new file mode 100644 index 00000000..0b7fb5e8 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt @@ -0,0 +1,33 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHappyAddListBinding + +class HappyAddListContentAdapter(context: Context) : + RecyclerView.Adapter() { + private val inflater by lazy { LayoutInflater.from(context) } + private var happyAddListContentList: List = + emptyList() + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): HappyAddListContentViewHolder { + val binding = ItemHappyAddListBinding.inflate(inflater, parent, false) + return HappyAddListContentViewHolder(binding) + } + + override fun onBindViewHolder(holder: HappyAddListContentViewHolder, position: Int) { + holder.onBind(happyAddListContentList[position]) + } + + override fun getItemCount() = happyAddListContentList.size + + fun setHomeContentList(homeContentList: List) { + this.happyAddListContentList = homeContentList.toList() + notifyDataSetChanged() + } +} From 0e8eeddbf6827e84f1320f9787b608e54905e0c6 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:12:07 +0900 Subject: [PATCH 14/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20Chip=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../softie/ui/main/happy/addlist/HappyAddListChipContent.kt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt new file mode 100644 index 00000000..4dc38fa0 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt @@ -0,0 +1,6 @@ +package com.sopetit.softie.ui.main.happy.addlist + +data class HappyAddListChipContent( + val themeId: Int, + val name: String, +) From ffd448abe268d80b9c45e558dba188a247d85617 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:12:35 +0900 Subject: [PATCH 15/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20Chip=20=EB=B7=B0=20=EB=B0=94=EC=9D=B8=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListChipContentViewHolder.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt new file mode 100644 index 00000000..2ab38ea6 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt @@ -0,0 +1,11 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHappyAddListChipBinding + +class HappyAddListChipContentViewHolder(private val binding: ItemHappyAddListChipBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(HappyAddListChipContentData: HappyAddListChipContent) { + binding.itemHappyAddChipComponent.text = HappyAddListChipContentData.name + } +} From b880f82d608b935a9506f0a2fe06069ad795cd85 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:12:46 +0900 Subject: [PATCH 16/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=B4=ED=85=8C=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20Chip=20=EC=96=B4=EB=8C=91=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListChipContentAdapter.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt new file mode 100644 index 00000000..6ce0de1a --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt @@ -0,0 +1,33 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHappyAddListChipBinding + +class HappyAddListChipContentAdapter(context: Context) : + RecyclerView.Adapter() { + private val inflater by lazy { LayoutInflater.from(context) } + private var happyAddListChipContentList: List = + emptyList() + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): HappyAddListChipContentViewHolder { + val binding = ItemHappyAddListChipBinding.inflate(inflater, parent, false) + return HappyAddListChipContentViewHolder(binding) + } + + override fun onBindViewHolder(holder: HappyAddListChipContentViewHolder, position: Int) { + holder.onBind(happyAddListChipContentList[position]) + } + + override fun getItemCount() = happyAddListChipContentList.size + + fun setHomeContentList(homeContentChipList: List) { + this.happyAddListChipContentList = homeContentChipList.toList() + notifyDataSetChanged() + } +} From 0cb86c604ec0cbd587d2389002b70f2fae2b244b Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:13:11 +0900 Subject: [PATCH 17/33] =?UTF-8?q?#10=20[ui]=20=EB=A6=AC=EC=82=AC=EC=9D=B4?= =?UTF-8?q?=ED=81=B4=EB=9F=AC=EB=B7=B0=20=EA=B0=84=EA=B2=A9-=EC=95=84?= =?UTF-8?q?=EC=9D=B4=ED=85=9C=20=EB=8D=B0=EC=BD=94=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=85=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/HorizontalChipItemDecoration.kt | 26 +++++++++++++++++++ .../softie/util/VerticalItemDecoration.kt | 26 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/util/HorizontalChipItemDecoration.kt create mode 100644 app/src/main/java/com/sopetit/softie/util/VerticalItemDecoration.kt diff --git a/app/src/main/java/com/sopetit/softie/util/HorizontalChipItemDecoration.kt b/app/src/main/java/com/sopetit/softie/util/HorizontalChipItemDecoration.kt new file mode 100644 index 00000000..45dede2d --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/util/HorizontalChipItemDecoration.kt @@ -0,0 +1,26 @@ +package com.sopetit.softie.util + +import android.content.Context +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + +class HorizontalChipItemDecoration(val context: Context) : RecyclerView.ItemDecoration() { + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + val position = parent.getChildAdapterPosition(view) + + if (position == 0) { + outRect.left = 70 + } else { + outRect.left = 0 + } + outRect.right = 21 + } +} diff --git a/app/src/main/java/com/sopetit/softie/util/VerticalItemDecoration.kt b/app/src/main/java/com/sopetit/softie/util/VerticalItemDecoration.kt new file mode 100644 index 00000000..41be8219 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/util/VerticalItemDecoration.kt @@ -0,0 +1,26 @@ +package com.sopetit.softie.util + +import android.content.Context +import android.graphics.Rect +import android.view.View +import androidx.recyclerview.widget.RecyclerView + +class VerticalItemDecoration(val context: Context) : RecyclerView.ItemDecoration() { + + override fun getItemOffsets( + outRect: Rect, + view: View, + parent: RecyclerView, + state: RecyclerView.State + ) { + super.getItemOffsets(outRect, view, parent, state) + val position = parent.getChildAdapterPosition(view) + + if (position == 0) { + outRect.top = 50 + } else { + outRect.top = 0 + } + outRect.bottom = 34 + } +} From 40f307d4d910a67c95c8e8405e3cbae78a928afa Mon Sep 17 00:00:00 2001 From: pump9918 Date: Wed, 10 Jan 2024 14:13:34 +0900 Subject: [PATCH 18/33] =?UTF-8?q?#10=20[feat]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EC=B6=94=EA=B0=80(=EB=AA=A9=EB=A1=9D)=20?= =?UTF-8?q?=EC=95=A1=ED=8B=B0=EB=B9=84=ED=8B=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListActivity.kt | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt 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 new file mode 100644 index 00000000..bffcccfd --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt @@ -0,0 +1,107 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.R +import com.sopetit.softie.databinding.ActivityHappyAddListBinding +import com.sopetit.softie.util.HorizontalChipItemDecoration +import com.sopetit.softie.util.VerticalItemDecoration + +class HappyAddListActivity : AppCompatActivity() { + private lateinit var binding: ActivityHappyAddListBinding + private lateinit var itemDeco: RecyclerView.ItemDecoration + private lateinit var chipDeco: RecyclerView.ItemDecoration + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityHappyAddListBinding.inflate(layoutInflater) + setContentView(binding.root) + + val happyAddListChipContentAdapter = HappyAddListChipContentAdapter(this) + binding.rvHappyAddListChip.adapter = happyAddListChipContentAdapter + happyAddListChipContentAdapter.setHomeContentList(mockHappyChipList) + + val happyAddListContentAdapter = HappyAddListContentAdapter(this) + binding.rvHappyAddList.adapter = happyAddListContentAdapter + happyAddListContentAdapter.setHomeContentList(mockHappyContentList) + + itemDeco = VerticalItemDecoration(applicationContext) + binding.rvHappyAddList.addItemDecoration(itemDeco) + chipDeco = HorizontalChipItemDecoration(applicationContext) + binding.rvHappyAddListChip.addItemDecoration(chipDeco) + } + + private val mockHappyChipList = listOf( + HappyAddListChipContent( + themeId = 1, + name = "전체", + ), + HappyAddListChipContent( + themeId = 2, + name = "관계쌓기", + ), + HappyAddListChipContent( + themeId = 3, + name = "한 걸음 성장", + ), + HappyAddListChipContent( + themeId = 4, + name = "잘 쉬어가기", + ), + HappyAddListChipContent( + themeId = 5, + name = "새로운 나", + ), + HappyAddListChipContent( + themeId = 6, + name = "마음 챙김", + ), + ) + + + private val mockHappyContentList = listOf( + HappyAddListContent( + routineId = 1, + title = "관계쌓기", + content = "성숙한 사랑을 만나기 위한", + imageUrl = R.drawable.ic_happy_red, + ), + HappyAddListContent( + routineId = 2, + title = "관계쌓기", + content = "진정성 있는 관계를 만드는", + imageUrl = R.drawable.ic_happy_red, + ), + HappyAddListContent( + routineId = 3, + title = "한 걸음 성장", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_orange, + ), + HappyAddListContent( + routineId = 4, + title = "한 걸음 성장", + content = "좋아하는, 잘하는 일을 찾아 가는", + imageUrl = R.drawable.ic_happy_orange, + ), + HappyAddListContent( + routineId = 5, + title = "잘 쉬어가기", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_green, + ), + HappyAddListContent( + routineId = 6, + title = "새로운 나", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_blue, + ), + HappyAddListContent( + routineId = 7, + title = "마음 챙김", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_purple, + ), + ) +} From 57e9fdb75b8f4ede31638ee869ced1fcb068a6d6 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:11:46 +0900 Subject: [PATCH 19/33] =?UTF-8?q?#10=20[chore]=20=EB=B6=88=ED=95=84?= =?UTF-8?q?=EC=9A=94=20=EC=BD=94=EB=93=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListChipContentViewHolder.kt | 11 ----------- .../happy/addlist/HappyAddListContentViewHolder.kt | 13 ------------- 2 files changed, 24 deletions(-) delete mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt delete mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt deleted file mode 100644 index 2ab38ea6..00000000 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentViewHolder.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.sopetit.softie.ui.main.happy.addlist - -import androidx.recyclerview.widget.RecyclerView -import com.sopetit.softie.databinding.ItemHappyAddListChipBinding - -class HappyAddListChipContentViewHolder(private val binding: ItemHappyAddListChipBinding) : - RecyclerView.ViewHolder(binding.root) { - fun onBind(HappyAddListChipContentData: HappyAddListChipContent) { - binding.itemHappyAddChipComponent.text = HappyAddListChipContentData.name - } -} diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt deleted file mode 100644 index 935780ec..00000000 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentViewHolder.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.sopetit.softie.ui.main.happy.addlist - -import androidx.recyclerview.widget.RecyclerView -import com.sopetit.softie.databinding.ItemHappyAddListBinding - -class HappyAddListContentViewHolder(private val binding: ItemHappyAddListBinding) : - RecyclerView.ViewHolder(binding.root) { - fun onBind(HappyAddListContentData: HappyAddListContent) { - binding.tvHappyListItemTitle.text = HappyAddListContentData.title - binding.tvHappyListItemContent.text = HappyAddListContentData.content - binding.ivHappyListItemIcon.setImageResource(HappyAddListContentData.imageUrl) - } -} From f230357d96b12c1fe81e0cfce66dd8175a44b82e Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:12:17 +0900 Subject: [PATCH 20/33] =?UTF-8?q?#10=20[chore]=20=ED=96=89=EB=B3=B5=20?= =?UTF-8?q?=EB=A3=A8=ED=8B=B4=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=ED=8C=A8=ED=82=A4=EC=A7=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/sopetit/softie/domain/entity/HappyChip.kt | 6 ++++++ .../entity/HappyContent.kt} | 4 ++-- .../softie/ui/main/happy/addlist/HappyAddListChipContent.kt | 6 ------ 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/sopetit/softie/domain/entity/HappyChip.kt rename app/src/main/java/com/sopetit/softie/{ui/main/happy/addlist/HappyAddListContent.kt => domain/entity/HappyContent.kt} (65%) delete mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/HappyChip.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyChip.kt new file mode 100644 index 00000000..7b773e1c --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyChip.kt @@ -0,0 +1,6 @@ +package com.sopetit.softie.domain.entity + +data class HappyChip( + val themeId: Int, + val name: String, +) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt similarity index 65% rename from app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt rename to app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt index 6179ca1f..4c662503 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContent.kt +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt @@ -1,8 +1,8 @@ -package com.sopetit.softie.ui.main.happy.addlist +package com.sopetit.softie.domain.entity import androidx.annotation.DrawableRes -data class HappyAddListContent( +data class HappyContent( val routineId: Int, val title: String, val content: String, diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt deleted file mode 100644 index 4dc38fa0..00000000 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContent.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.sopetit.softie.ui.main.happy.addlist - -data class HappyAddListChipContent( - val themeId: Int, - val name: String, -) From 35bb19a3b78799a88a5135dc85288305234b7dd4 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:17:11 +0900 Subject: [PATCH 21/33] =?UTF-8?q?#10=20[ui]=20viewModel=20=EC=B9=A9?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=EB=B3=84=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListViewModel.kt | 162 ++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListViewModel.kt diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListViewModel.kt new file mode 100644 index 00000000..5610e710 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListViewModel.kt @@ -0,0 +1,162 @@ +package com.sopetit.softie.ui.main.happy.addlist + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.sopetit.softie.R +import com.sopetit.softie.domain.entity.HappyChip +import com.sopetit.softie.domain.entity.HappyContent + +class HappyAddListViewModel : ViewModel() { + private val _mockHappyChipList = MutableLiveData>() + val mockHappyChipList: LiveData> = _mockHappyChipList + + private val _mockHappyContentList = MutableLiveData>() + val mockHappyContentList: LiveData> = _mockHappyContentList + + private val _mockHappyContentListOne = MutableLiveData>() + val mockHappyContentListOne: LiveData> = _mockHappyContentListOne + + private val _mockHappyContentListTwo = MutableLiveData>() + val mockHappyContentListTwo: LiveData> = _mockHappyContentListTwo + + private val _mockHappyContentListThree = MutableLiveData>() + val mockHappyContentListThree: LiveData> = _mockHappyContentListThree + + private val _mockHappyContentListFour = MutableLiveData>() + val mockHappyContentListFour: LiveData> = _mockHappyContentListFour + + private val _mockHappyContentListFive = MutableLiveData>() + val mockHappyContentListFive: LiveData> = _mockHappyContentListFive + + init { + _mockHappyContentList.value = listOf( + HappyContent( + routineId = 1, + title = "관계쌓기", + content = "성숙한 사랑을 만나기 위한", + imageUrl = R.drawable.ic_happy_red, + ), + HappyContent( + routineId = 2, + title = "관계쌓기", + content = "진정성 있는 관계를 만드는", + imageUrl = R.drawable.ic_happy_red, + ), + HappyContent( + routineId = 3, + title = "한 걸음 성장", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_orange, + ), + HappyContent( + routineId = 4, + title = "한 걸음 성장", + content = "좋아하는, 잘하는 일을 찾아 가는", + imageUrl = R.drawable.ic_happy_orange, + ), + HappyContent( + routineId = 5, + title = "잘 쉬어가기", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_green, + ), + HappyContent( + routineId = 6, + title = "새로운 나", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_blue, + ), + HappyContent( + routineId = 7, + title = "마음 챙김", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_purple, + ), + ) + + _mockHappyChipList.value = listOf( + HappyChip( + themeId = 1, + name = "전체", + ), + HappyChip( + themeId = 2, + name = "관계쌓기", + ), + HappyChip( + themeId = 3, + name = "한 걸음 성장", + ), + HappyChip( + themeId = 4, + name = "잘 쉬어가기", + ), + HappyChip( + themeId = 5, + name = "새로운 나", + ), + HappyChip( + themeId = 6, + name = "마음 챙김", + ) + ) + + _mockHappyContentListOne.value = listOf( + HappyContent( + routineId = 1, + title = "관계쌓기", + content = "성숙한 사랑을 만나기 위한", + imageUrl = R.drawable.ic_happy_red, + ), + HappyContent( + routineId = 2, + title = "관계쌓기", + content = "진정성 있는 관계를 만드는", + imageUrl = R.drawable.ic_happy_red, + ), + ) + + _mockHappyContentListTwo.value = listOf( + HappyContent( + routineId = 3, + title = "한 걸음 성장", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_orange, + ), + HappyContent( + routineId = 4, + title = "한 걸음 성장", + content = "좋아하는, 잘하는 일을 찾아 가는", + imageUrl = R.drawable.ic_happy_orange, + ), + ) + + _mockHappyContentListThree.value = listOf( + HappyContent( + routineId = 5, + title = "잘 쉬어가기", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_green, + ), + ) + + _mockHappyContentListFour.value = listOf( + HappyContent( + routineId = 6, + title = "새로운 나", + content = "나를 알고 진짜 목표를 세우는", + imageUrl = R.drawable.ic_happy_blue, + ), + ) + + _mockHappyContentListFive.value = listOf( + HappyContent( + routineId = 7, + title = "마음 챙김", + content = "데이터가 아직 없습니다", + imageUrl = R.drawable.ic_happy_purple, + ), + ) + } +} From f139f92612db5821d7d1869cd8da28a1919d339c Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:18:52 +0900 Subject: [PATCH 22/33] =?UTF-8?q?#10=20[ui]=20Content=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=96=B4=EB=8C=91=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListChipContentAdapter.kt | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt index 6ce0de1a..26f156d4 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt @@ -1,33 +1,49 @@ package com.sopetit.softie.ui.main.happy.addlist -import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.sopetit.softie.databinding.ItemHappyAddListChipBinding +import com.sopetit.softie.domain.entity.HappyChip +import com.sopetit.softie.util.ItemDiffCallback -class HappyAddListChipContentAdapter(context: Context) : - RecyclerView.Adapter() { - private val inflater by lazy { LayoutInflater.from(context) } - private var happyAddListChipContentList: List = - emptyList() + +class HappyAddListChipContentAdapter : + ListAdapter( + ItemDiffCallback( + onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, + onContentsTheSame = { oldItem, newItem -> oldItem == newItem } + ) + ) { + + inner class HappyAddListChipContentViewHolder( + private val binding: ItemHappyAddListChipBinding, + ) : RecyclerView.ViewHolder(binding.root) { + fun onBind(data: HappyChip) { + binding.itemHappyAddChipComponent.text = data.name + binding.root.setOnClickListener { + onItemClickListener?.let { it(data) } + } + } + } + + private var onItemClickListener: ((HappyChip) -> Unit)? = null + fun setOnChipClickListener(listener: (HappyChip) -> Unit) { + onItemClickListener = listener + } override fun onCreateViewHolder( parent: ViewGroup, viewType: Int ): HappyAddListChipContentViewHolder { - val binding = ItemHappyAddListChipBinding.inflate(inflater, parent, false) + val binding = ItemHappyAddListChipBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ) return HappyAddListChipContentViewHolder(binding) } override fun onBindViewHolder(holder: HappyAddListChipContentViewHolder, position: Int) { - holder.onBind(happyAddListChipContentList[position]) - } - - override fun getItemCount() = happyAddListChipContentList.size - - fun setHomeContentList(homeContentChipList: List) { - this.happyAddListChipContentList = homeContentChipList.toList() - notifyDataSetChanged() + holder.onBind(getItem(position)) } } From 4ec8e143b1b2942cc0a6029de7a6f1c869883ec1 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:19:25 +0900 Subject: [PATCH 23/33] =?UTF-8?q?#10=20[ui]=20Content=20=EC=84=B8=EB=B6=80?= =?UTF-8?q?=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=96=B4=EB=8C=91=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListContentAdapter.kt | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt index 0b7fb5e8..e625dc0d 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt @@ -1,33 +1,42 @@ package com.sopetit.softie.ui.main.happy.addlist -import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup +import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.sopetit.softie.databinding.ItemHappyAddListBinding +import com.sopetit.softie.domain.entity.HappyContent +import com.sopetit.softie.util.ItemDiffCallback -class HappyAddListContentAdapter(context: Context) : - RecyclerView.Adapter() { - private val inflater by lazy { LayoutInflater.from(context) } - private var happyAddListContentList: List = - emptyList() + +class HappyAddListContentAdapter : + ListAdapter( + ItemDiffCallback( + onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, + onContentsTheSame = { oldItem, newItem -> oldItem == newItem } + ) + ) { + + class HappyAddListContentViewHolder(private val binding: ItemHappyAddListBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(happyContentData: HappyContent) { + binding.tvHappyListItemTitle.text = happyContentData.title + binding.tvHappyListItemContent.text = happyContentData.content + binding.ivHappyListItemIcon.setImageResource(happyContentData.imageUrl) + } + } override fun onCreateViewHolder( parent: ViewGroup, viewType: Int ): HappyAddListContentViewHolder { - val binding = ItemHappyAddListBinding.inflate(inflater, parent, false) + val binding = ItemHappyAddListBinding.inflate( + LayoutInflater.from(parent.context), parent, false + ) return HappyAddListContentViewHolder(binding) } override fun onBindViewHolder(holder: HappyAddListContentViewHolder, position: Int) { - holder.onBind(happyAddListContentList[position]) - } - - override fun getItemCount() = happyAddListContentList.size - - fun setHomeContentList(homeContentList: List) { - this.happyAddListContentList = homeContentList.toList() - notifyDataSetChanged() + holder.onBind(currentList[position]) } } From 1dc9f106b044e2016aca394fed3110c04bb01e40 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:26:29 +0900 Subject: [PATCH 24/33] =?UTF-8?q?#10=20[ui]=20=EC=B9=A9=20=ED=81=B4?= =?UTF-8?q?=EB=A6=AD=EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=B3=84=20=EA=B0=9C?= =?UTF-8?q?=EB=B3=84=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=A0=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListActivity.kt | 120 ++++++------------ 1 file changed, 40 insertions(+), 80 deletions(-) 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 bffcccfd..e609ef69 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 @@ -1,107 +1,67 @@ package com.sopetit.softie.ui.main.happy.addlist import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity +import androidx.activity.viewModels 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.util.HorizontalChipItemDecoration import com.sopetit.softie.util.VerticalItemDecoration +import com.sopetit.softie.util.binding.BindingActivity +import dagger.hilt.android.AndroidEntryPoint -class HappyAddListActivity : AppCompatActivity() { - private lateinit var binding: ActivityHappyAddListBinding +@AndroidEntryPoint +class HappyAddListActivity : + BindingActivity(R.layout.activity_happy_add_list) { + + private val viewModel by viewModels() private lateinit var itemDeco: RecyclerView.ItemDecoration private lateinit var chipDeco: RecyclerView.ItemDecoration + private lateinit var happyAddListChipContentAdapter: HappyAddListChipContentAdapter + private lateinit var happyAddListContentAdapter: HappyAddListContentAdapter + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityHappyAddListBinding.inflate(layoutInflater) setContentView(binding.root) - val happyAddListChipContentAdapter = HappyAddListChipContentAdapter(this) - binding.rvHappyAddListChip.adapter = happyAddListChipContentAdapter - happyAddListChipContentAdapter.setHomeContentList(mockHappyChipList) - - val happyAddListContentAdapter = HappyAddListContentAdapter(this) - binding.rvHappyAddList.adapter = happyAddListContentAdapter - happyAddListContentAdapter.setHomeContentList(mockHappyContentList) + val themeId = 0 + happyAddListChipContentAdapter = HappyAddListChipContentAdapter() + happyAddListContentAdapter = HappyAddListContentAdapter() itemDeco = VerticalItemDecoration(applicationContext) binding.rvHappyAddList.addItemDecoration(itemDeco) chipDeco = HorizontalChipItemDecoration(applicationContext) binding.rvHappyAddListChip.addItemDecoration(chipDeco) + + + setupAdapter(themeId) } - private val mockHappyChipList = listOf( - HappyAddListChipContent( - themeId = 1, - name = "전체", - ), - HappyAddListChipContent( - themeId = 2, - name = "관계쌓기", - ), - HappyAddListChipContent( - themeId = 3, - name = "한 걸음 성장", - ), - HappyAddListChipContent( - themeId = 4, - name = "잘 쉬어가기", - ), - HappyAddListChipContent( - themeId = 5, - name = "새로운 나", - ), - HappyAddListChipContent( - themeId = 6, - name = "마음 챙김", - ), - ) + private fun setupAdapter(themeId: Int) { + with(binding) { + rvHappyAddListChip.adapter = happyAddListChipContentAdapter + rvHappyAddList.adapter = happyAddListContentAdapter + } + happyAddListChipContentAdapter.submitList(viewModel.mockHappyChipList.value) + happyAddListContentAdapter.submitList(viewModel.mockHappyContentList.value) + happyAddListChipContentAdapter.setOnChipClickListener { + when (it.themeId) { + 1 -> viewModel.mockHappyContentList.value?.let { it1 -> makeSubmitList(it1) } + 2 -> viewModel.mockHappyContentListOne.value?.let { it2 -> makeSubmitList(it2) } + 3 -> viewModel.mockHappyContentListTwo.value?.let { it3 -> makeSubmitList(it3) } + 4 -> viewModel.mockHappyContentListThree.value?.let { it4 -> makeSubmitList(it4) } + 5 -> viewModel.mockHappyContentListFour.value?.let { it5 -> makeSubmitList(it5) } + 6 -> viewModel.mockHappyContentListFive.value?.let { it6 -> makeSubmitList(it6) } + else -> viewModel.mockHappyContentList.value?.let { it1 -> makeSubmitList(it1) } + } + } + } - private val mockHappyContentList = listOf( - HappyAddListContent( - routineId = 1, - title = "관계쌓기", - content = "성숙한 사랑을 만나기 위한", - imageUrl = R.drawable.ic_happy_red, - ), - HappyAddListContent( - routineId = 2, - title = "관계쌓기", - content = "진정성 있는 관계를 만드는", - imageUrl = R.drawable.ic_happy_red, - ), - HappyAddListContent( - routineId = 3, - title = "한 걸음 성장", - content = "나를 알고 진짜 목표를 세우는", - imageUrl = R.drawable.ic_happy_orange, - ), - HappyAddListContent( - routineId = 4, - title = "한 걸음 성장", - content = "좋아하는, 잘하는 일을 찾아 가는", - imageUrl = R.drawable.ic_happy_orange, - ), - HappyAddListContent( - routineId = 5, - title = "잘 쉬어가기", - content = "데이터가 아직 없습니다", - imageUrl = R.drawable.ic_happy_green, - ), - HappyAddListContent( - routineId = 6, - title = "새로운 나", - content = "나를 알고 진짜 목표를 세우는", - imageUrl = R.drawable.ic_happy_blue, - ), - HappyAddListContent( - routineId = 7, - title = "마음 챙김", - content = "데이터가 아직 없습니다", - imageUrl = R.drawable.ic_happy_purple, - ), - ) + private fun makeSubmitList(list: List) { + happyAddListContentAdapter.submitList(list) + } } From 7723c76c396c4ac845a91cc69ebacbfb982040c5 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:47:17 +0900 Subject: [PATCH 25/33] =?UTF-8?q?#10=20[chore]=20CI=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/happy/addlist/HappyAddListChipContentAdapter.kt | 1 - .../softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt index 26f156d4..b07aaa10 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt @@ -8,7 +8,6 @@ import com.sopetit.softie.databinding.ItemHappyAddListChipBinding import com.sopetit.softie.domain.entity.HappyChip import com.sopetit.softie.util.ItemDiffCallback - class HappyAddListChipContentAdapter : ListAdapter( ItemDiffCallback( diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt index e625dc0d..72ceb861 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt @@ -8,7 +8,6 @@ import com.sopetit.softie.databinding.ItemHappyAddListBinding import com.sopetit.softie.domain.entity.HappyContent import com.sopetit.softie.util.ItemDiffCallback - class HappyAddListContentAdapter : ListAdapter( ItemDiffCallback( From 3a8bfe4250e140a48c79da07b87e152687884bec Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:54:59 +0900 Subject: [PATCH 26/33] =?UTF-8?q?#10=20[chore]=20CI=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=20=EA=B3=B5=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopetit/softie/ui/main/happy/addlist/HappyAddListActivity.kt | 1 - 1 file changed, 1 deletion(-) 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 e609ef69..8c188aed 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 @@ -36,7 +36,6 @@ class HappyAddListActivity : chipDeco = HorizontalChipItemDecoration(applicationContext) binding.rvHappyAddListChip.addItemDecoration(chipDeco) - setupAdapter(themeId) } From 35410b4d3d9d58b619ddb1ddbdce7d62d2f7d1a2 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 13:57:22 +0900 Subject: [PATCH 27/33] =?UTF-8?q?#10=20[chore]=20CI=20=EC=98=A4=EB=A5=98?= =?UTF-8?q?=20=EA=B3=B5=EB=B0=B1=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/sopetit/softie/domain/entity/HappyContent.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt b/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt index 4c662503..f5b2e63f 100644 --- a/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt +++ b/app/src/main/java/com/sopetit/softie/domain/entity/HappyContent.kt @@ -8,4 +8,3 @@ data class HappyContent( val content: String, @DrawableRes val imageUrl: Int, ) - From b95a3e5bffc6cdae365c038f9be2a4288ff84d11 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 15:03:56 +0900 Subject: [PATCH 28/33] =?UTF-8?q?#10=20[ui]=20=EC=BB=A8=ED=85=90=EC=B8=A0?= =?UTF-8?q?=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20?= =?UTF-8?q?=EC=95=A1=ED=8B=B0=EB=B9=84=ED=8B=B0=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListActivity.kt | 39 +++++++++++++------ .../addlist/HappyAddListContentAdapter.kt | 21 ++++++---- 2 files changed, 42 insertions(+), 18 deletions(-) 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 8c188aed..665d5658 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 @@ -1,11 +1,13 @@ package com.sopetit.softie.ui.main.happy.addlist +import android.content.Intent import android.os.Bundle import androidx.activity.viewModels 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.util.HorizontalChipItemDecoration import com.sopetit.softie.util.VerticalItemDecoration import com.sopetit.softie.util.binding.BindingActivity @@ -29,7 +31,7 @@ class HappyAddListActivity : val themeId = 0 happyAddListChipContentAdapter = HappyAddListChipContentAdapter() - happyAddListContentAdapter = HappyAddListContentAdapter() + happyAddListContentAdapter = HappyAddListContentAdapter(::moveToDetail) itemDeco = VerticalItemDecoration(applicationContext) binding.rvHappyAddList.addItemDecoration(itemDeco) @@ -47,20 +49,35 @@ class HappyAddListActivity : happyAddListChipContentAdapter.submitList(viewModel.mockHappyChipList.value) happyAddListContentAdapter.submitList(viewModel.mockHappyContentList.value) - happyAddListChipContentAdapter.setOnChipClickListener { - when (it.themeId) { - 1 -> viewModel.mockHappyContentList.value?.let { it1 -> makeSubmitList(it1) } - 2 -> viewModel.mockHappyContentListOne.value?.let { it2 -> makeSubmitList(it2) } - 3 -> viewModel.mockHappyContentListTwo.value?.let { it3 -> makeSubmitList(it3) } - 4 -> viewModel.mockHappyContentListThree.value?.let { it4 -> makeSubmitList(it4) } - 5 -> viewModel.mockHappyContentListFour.value?.let { it5 -> makeSubmitList(it5) } - 6 -> viewModel.mockHappyContentListFive.value?.let { it6 -> makeSubmitList(it6) } - else -> viewModel.mockHappyContentList.value?.let { it1 -> makeSubmitList(it1) } - } + happyAddListChipContentAdapter.setOnChipClickListener { handleChipClick(it.themeId) } + } + + private fun handleChipClick(themeId: Int) { + val listToSubmit = when (themeId) { + 1 -> viewModel.mockHappyContentList.value + 2 -> viewModel.mockHappyContentListOne.value + 3 -> viewModel.mockHappyContentListTwo.value + 4 -> viewModel.mockHappyContentListThree.value + 5 -> viewModel.mockHappyContentListFour.value + 6 -> viewModel.mockHappyContentListFive.value + else -> viewModel.mockHappyContentList.value } + + listToSubmit?.let { makeSubmitList(it) } } private fun makeSubmitList(list: List) { happyAddListContentAdapter.submitList(list) } + + private fun moveToDetail(id: Int) { + Intent(this, MainActivity::class.java).apply { + putExtra(ID, id) + startActivity(this) + } + } + + companion object { + const val ID = "id" + } } diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt index 72ceb861..dad48b67 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListContentAdapter.kt @@ -8,7 +8,7 @@ import com.sopetit.softie.databinding.ItemHappyAddListBinding import com.sopetit.softie.domain.entity.HappyContent import com.sopetit.softie.util.ItemDiffCallback -class HappyAddListContentAdapter : +class HappyAddListContentAdapter(private val moveToDetail: (Int) -> Unit) : ListAdapter( ItemDiffCallback( onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, @@ -16,12 +16,19 @@ class HappyAddListContentAdapter : ) ) { - class HappyAddListContentViewHolder(private val binding: ItemHappyAddListBinding) : + inner class HappyAddListContentViewHolder( + private val binding: ItemHappyAddListBinding, + private val moveToDetail: (Int) -> Unit, + ) : RecyclerView.ViewHolder(binding.root) { - fun onBind(happyContentData: HappyContent) { - binding.tvHappyListItemTitle.text = happyContentData.title - binding.tvHappyListItemContent.text = happyContentData.content - binding.ivHappyListItemIcon.setImageResource(happyContentData.imageUrl) + fun onBind(data: HappyContent) { + binding.tvHappyListItemTitle.text = data.title + binding.tvHappyListItemContent.text = data.content + binding.ivHappyListItemIcon.setImageResource(data.imageUrl) + + binding.root.setOnClickListener { + moveToDetail(data.routineId) + } } } @@ -32,7 +39,7 @@ class HappyAddListContentAdapter : val binding = ItemHappyAddListBinding.inflate( LayoutInflater.from(parent.context), parent, false ) - return HappyAddListContentViewHolder(binding) + return HappyAddListContentViewHolder(binding, moveToDetail) } override fun onBindViewHolder(holder: HappyAddListContentViewHolder, position: Int) { From b39c0718639157c8237f662536153048457206d7 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 15:14:41 +0900 Subject: [PATCH 29/33] =?UTF-8?q?#10=20[ui]=20chip=20=ED=81=B4=EB=A6=AD=20?= =?UTF-8?q?=EC=83=89=EC=83=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/color/selector_happy_type_filter_background.xml | 5 +++++ app/src/main/res/color/selector_happy_type_text_color.xml | 5 +++++ app/src/main/res/values/themes.xml | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/color/selector_happy_type_filter_background.xml create mode 100644 app/src/main/res/color/selector_happy_type_text_color.xml diff --git a/app/src/main/res/color/selector_happy_type_filter_background.xml b/app/src/main/res/color/selector_happy_type_filter_background.xml new file mode 100644 index 00000000..1dcdc23c --- /dev/null +++ b/app/src/main/res/color/selector_happy_type_filter_background.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/color/selector_happy_type_text_color.xml b/app/src/main/res/color/selector_happy_type_text_color.xml new file mode 100644 index 00000000..41e7d99b --- /dev/null +++ b/app/src/main/res/color/selector_happy_type_text_color.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 2cb3b356..313e1628 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -27,14 +27,14 @@ 0dp 0dp 99dp - @color/white + @color/selector_happy_type_filter_background 14dp 14dp #00FFFFFF 10dp 1dp @color/gray100 - @color/gray400 + @color/selector_happy_type_text_color From 61d2e5da7326f1684b5362bedce705af49a470f4 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 15:15:50 +0900 Subject: [PATCH 30/33] =?UTF-8?q?#10=20[chore]=20xml=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=AA=85=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/res/layout/activity_happy_add_list.xml | 3 ++- app/src/main/res/layout/item_happy_add_list.xml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/activity_happy_add_list.xml b/app/src/main/res/layout/activity_happy_add_list.xml index ad9c3ce8..70e8ecd5 100644 --- a/app/src/main/res/layout/activity_happy_add_list.xml +++ b/app/src/main/res/layout/activity_happy_add_list.xml @@ -10,7 +10,8 @@ + android:background="@color/background" + android:fitsSystemWindows="true"> + android:background="@drawable/shape_white_fill_gray000_stroke_radius_20"> Date: Thu, 11 Jan 2024 15:33:51 +0900 Subject: [PATCH 31/33] =?UTF-8?q?#10=20[ui]=20=EC=9D=B4=EC=A0=84=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EA=B8=B0=EB=8A=A5=20=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../softie/ui/main/happy/addlist/HappyAddListActivity.kt | 4 ++++ 1 file changed, 4 insertions(+) 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 665d5658..61ac2cc6 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 @@ -30,6 +30,7 @@ class HappyAddListActivity : setContentView(binding.root) val themeId = 0 + happyAddListChipContentAdapter = HappyAddListChipContentAdapter() happyAddListContentAdapter = HappyAddListContentAdapter(::moveToDetail) @@ -37,6 +38,9 @@ class HappyAddListActivity : binding.rvHappyAddList.addItemDecoration(itemDeco) chipDeco = HorizontalChipItemDecoration(applicationContext) binding.rvHappyAddListChip.addItemDecoration(chipDeco) + binding.ivHappyAddBackArrow.setOnClickListener { + finish() + } setupAdapter(themeId) } From 03a66fe2a0f070889b9be18e0a10f58a7337953f Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 17:06:34 +0900 Subject: [PATCH 32/33] =?UTF-8?q?#10=20[fix]=20chip=20=EB=B2=84=ED=8A=BC?= =?UTF-8?q?=201=EA=B0=9C=EC=94=A9=20=EC=84=A0=ED=83=9D=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addlist/HappyAddListChipContentAdapter.kt | 18 ++++++++++++++++++ .../res/layout/item_happy_add_list_chip.xml | 1 + app/src/main/res/values/themes.xml | 1 - 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt index b07aaa10..11dd3e5b 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt @@ -21,12 +21,29 @@ class HappyAddListChipContentAdapter : ) : RecyclerView.ViewHolder(binding.root) { fun onBind(data: HappyChip) { binding.itemHappyAddChipComponent.text = data.name + binding.itemHappyAddChipComponent.isChecked = isSelected(adapterPosition) + binding.root.setOnClickListener { + chipCurrentSelection(adapterPosition) + notifyDataSetChanged() onItemClickListener?.let { it(data) } } } } + private val selectedPositions = HashSet() + + private fun isSelected(position: Int) = selectedPositions.contains(position) + + private fun chipCurrentSelection(position: Int) { + if (isSelected(position)) { + selectedPositions.remove(position) + } else { + selectedPositions.clear() + selectedPositions.add(position) + } + } + private var onItemClickListener: ((HappyChip) -> Unit)? = null fun setOnChipClickListener(listener: (HappyChip) -> Unit) { onItemClickListener = listener @@ -46,3 +63,4 @@ class HappyAddListChipContentAdapter : holder.onBind(getItem(position)) } } + diff --git a/app/src/main/res/layout/item_happy_add_list_chip.xml b/app/src/main/res/layout/item_happy_add_list_chip.xml index a457ec16..be589b28 100644 --- a/app/src/main/res/layout/item_happy_add_list_chip.xml +++ b/app/src/main/res/layout/item_happy_add_list_chip.xml @@ -4,4 +4,5 @@ style="@style/Style.Material3.Chip.Softie.Type" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:singleLine="true" android:text="@string/chip_item_happy_relationship" /> diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 313e1628..5aa303f9 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -37,5 +37,4 @@ @color/selector_happy_type_text_color - From ea1c32e2b2ed79b6f73d78ad676b1522ac70bf01 Mon Sep 17 00:00:00 2001 From: pump9918 Date: Thu, 11 Jan 2024 18:06:42 +0900 Subject: [PATCH 33/33] =?UTF-8?q?#10=20[chore]=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC=20=EB=B0=8F=20null=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../happy/addlist/HappyAddListActivity.kt | 34 ++++++++++++------- .../addlist/HappyAddListChipContentAdapter.kt | 8 ++--- 2 files changed, 25 insertions(+), 17 deletions(-) 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 61ac2cc6..f59ecf3c 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 @@ -21,28 +21,38 @@ class HappyAddListActivity : private lateinit var itemDeco: RecyclerView.ItemDecoration private lateinit var chipDeco: RecyclerView.ItemDecoration - private lateinit var happyAddListChipContentAdapter: HappyAddListChipContentAdapter - private lateinit var happyAddListContentAdapter: HappyAddListContentAdapter + private var happyAddListChipContentAdapter: HappyAddListChipContentAdapter? = null + private var happyAddListContentAdapter: HappyAddListContentAdapter? = null + + private val themeId = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityHappyAddListBinding.inflate(layoutInflater) setContentView(binding.root) - val themeId = 0 + setChipAdapters() + setBackEnter() + setItemDeco() + setupAdapter(themeId) + } + private fun setChipAdapters() { happyAddListChipContentAdapter = HappyAddListChipContentAdapter() happyAddListContentAdapter = HappyAddListContentAdapter(::moveToDetail) + } - itemDeco = VerticalItemDecoration(applicationContext) - binding.rvHappyAddList.addItemDecoration(itemDeco) - chipDeco = HorizontalChipItemDecoration(applicationContext) - binding.rvHappyAddListChip.addItemDecoration(chipDeco) + private fun setBackEnter() { binding.ivHappyAddBackArrow.setOnClickListener { finish() } + } - setupAdapter(themeId) + private fun setItemDeco() { + itemDeco = VerticalItemDecoration(applicationContext) + binding.rvHappyAddList.addItemDecoration(itemDeco) + chipDeco = HorizontalChipItemDecoration(applicationContext) + binding.rvHappyAddListChip.addItemDecoration(chipDeco) } private fun setupAdapter(themeId: Int) { @@ -50,10 +60,10 @@ class HappyAddListActivity : rvHappyAddListChip.adapter = happyAddListChipContentAdapter rvHappyAddList.adapter = happyAddListContentAdapter } - happyAddListChipContentAdapter.submitList(viewModel.mockHappyChipList.value) - happyAddListContentAdapter.submitList(viewModel.mockHappyContentList.value) + happyAddListChipContentAdapter?.submitList(viewModel.mockHappyChipList.value) + happyAddListContentAdapter?.submitList(viewModel.mockHappyContentList.value) - happyAddListChipContentAdapter.setOnChipClickListener { handleChipClick(it.themeId) } + happyAddListChipContentAdapter?.setOnChipClickListener { handleChipClick(it.themeId) } } private fun handleChipClick(themeId: Int) { @@ -71,7 +81,7 @@ class HappyAddListActivity : } private fun makeSubmitList(list: List) { - happyAddListContentAdapter.submitList(list) + happyAddListContentAdapter?.submitList(list) } private fun moveToDetail(id: Int) { diff --git a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt index 11dd3e5b..a4efde6c 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/happy/addlist/HappyAddListChipContentAdapter.kt @@ -11,10 +11,12 @@ import com.sopetit.softie.util.ItemDiffCallback class HappyAddListChipContentAdapter : ListAdapter( ItemDiffCallback( - onItemsTheSame = { oldItem, newItem -> oldItem == newItem }, + onItemsTheSame = { oldItem, newItem -> oldItem.themeId == newItem.themeId }, onContentsTheSame = { oldItem, newItem -> oldItem == newItem } ) ) { + private val selectedPositions = HashSet() + private var onItemClickListener: ((HappyChip) -> Unit)? = null inner class HappyAddListChipContentViewHolder( private val binding: ItemHappyAddListChipBinding, @@ -31,8 +33,6 @@ class HappyAddListChipContentAdapter : } } - private val selectedPositions = HashSet() - private fun isSelected(position: Int) = selectedPositions.contains(position) private fun chipCurrentSelection(position: Int) { @@ -44,7 +44,6 @@ class HappyAddListChipContentAdapter : } } - private var onItemClickListener: ((HappyChip) -> Unit)? = null fun setOnChipClickListener(listener: (HappyChip) -> Unit) { onItemClickListener = listener } @@ -63,4 +62,3 @@ class HappyAddListChipContentAdapter : holder.onBind(getItem(position)) } } -