Skip to content

Commit b706b25

Browse files
committed
✨ 그룹 수정 시 규칙 삭제가 가능하도록 구현(chip)
1 parent 951f1a0 commit b706b25

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

presentation/src/main/java/com/whyranoid/presentation/community/group/edit/EditGroupFragment.kt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.os.Bundle
44
import android.view.View
55
import androidx.fragment.app.viewModels
66
import androidx.navigation.fragment.findNavController
7+
import com.google.android.material.chip.Chip
78
import com.google.android.material.snackbar.Snackbar
89
import com.whyranoid.presentation.R
910
import com.whyranoid.presentation.base.BaseFragment
@@ -19,14 +20,13 @@ internal class EditGroupFragment :
1920

2021
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2122
super.onViewCreated(view, savedInstanceState)
22-
23-
setupMenu()
2423
initViews()
2524
observeState()
2625
}
2726

2827
private fun initViews() {
2928
binding.viewModel = viewModel
29+
setupMenu()
3030
}
3131

3232
private fun handleEvent(event: Event) {
@@ -60,6 +60,26 @@ internal class EditGroupFragment :
6060
handleEvent(event)
6161
}
6262
}
63+
64+
viewLifecycleOwner.repeatWhenUiStarted {
65+
viewModel.rules.collect { rules ->
66+
binding.ruleChipGroup.apply {
67+
removeAllViews()
68+
rules.forEach { rule ->
69+
addView(
70+
Chip(requireContext()).apply {
71+
isCloseIconVisible = true
72+
setChipBackgroundColorResource(R.color.mogakrun_primary)
73+
text = rule
74+
setOnCloseIconClickListener {
75+
viewModel.removeRule(rule)
76+
}
77+
}
78+
)
79+
}
80+
}
81+
}
82+
}
6383
}
6484

6585
private fun setupMenu() {

presentation/src/main/java/com/whyranoid/presentation/community/group/edit/EditGroupViewModel.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ class EditGroupViewModel @Inject constructor(
3232
emitEvent(Event.AddRuleButtonClick)
3333
}
3434

35+
fun removeRule(rule: String) {
36+
rules.value = rules.value.filter { it != rule }
37+
}
38+
3539
fun emitEvent(event: Event) {
3640
viewModelScope.launch {
3741
when (event) {

presentation/src/main/res/layout/fragment_edit_group.xml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,24 @@
6666
app:layout_constraintEnd_toEndOf="parent"
6767
app:layout_constraintTop_toBottomOf="@id/app_bar" />
6868

69-
<TextView
69+
<ScrollView
7070
android:id="@+id/time_and_date_picker"
71-
style="@style/MoGakRunText.Bold.Medium"
7271
android:layout_width="0dp"
7372
android:layout_height="70dp"
7473
android:layout_margin="16dp"
7574
android:background="@color/mogakrun_secondary_dark"
76-
android:gravity="center_vertical"
77-
android:text="@{viewModel.rules.toString()}"
75+
android:paddingHorizontal="8dp"
76+
android:scrollbars="none"
7877
app:layout_constraintEnd_toStartOf="@id/btn_select_rule"
7978
app:layout_constraintStart_toStartOf="parent"
80-
app:layout_constraintTop_toBottomOf="@id/text_input_layout_group_name"
81-
tools:text="규칙들 들어갈 자리입니다~" />
79+
app:layout_constraintTop_toBottomOf="@id/text_input_layout_group_name">
80+
81+
<com.google.android.material.chip.ChipGroup
82+
android:id="@+id/rule_chip_group"
83+
style="@style/MoGakRunText.Bold.Medium"
84+
android:layout_width="wrap_content"
85+
android:layout_height="wrap_content" />
86+
</ScrollView>
8287

8388
<com.google.android.material.button.MaterialButton
8489
android:id="@+id/btn_select_rule"

0 commit comments

Comments
 (0)