Skip to content

Commit db27254

Browse files
authored
[Merge] feature/fix-delete-running-record -> develop
[FIX] 러닝 기록 / 삭제 버튼 활성화 오류
2 parents 929d9dd + 90b738a commit db27254

File tree

3 files changed

+23
-35
lines changed

3 files changed

+23
-35
lines changed

app/src/main/java/com/runnect/runnect/presentation/mypage/history/MyHistoryActivity.kt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
5757
binding.rvMyPageHistory.addItemDecoration(RecyclerOffsetDecorationHeight(this, 10))
5858
}
5959

60-
private fun getRecord(){
60+
private fun getRecord() {
6161
viewModel.getRecord()
6262
}
6363

@@ -88,7 +88,7 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
8888
binding.btnMyPageHistoryEditHistory.setOnClickListener {
8989
handleEditClicked()
9090
}
91-
binding.tvMyPageHistoryDelete.setOnClickListener {
91+
binding.btnMyPageHistoryDelete.setOnClickListener {
9292
handleDeleteButtonClicked(it)
9393
}
9494
}
@@ -102,11 +102,11 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
102102

103103
private fun handleEditClicked() {
104104
viewModel.convertMode()
105-
binding.tvMyPageHistoryDelete.isVisible = viewModel.editMode.value!!
105+
binding.btnMyPageHistoryDelete.isVisible = viewModel.editMode.value!!
106106
}
107107

108108
private fun handleDeleteButtonClicked(it: View) {
109-
if (it.isActivated) {
109+
if (it.isEnabled) {
110110
setDialogClickEvent()
111111
dialog.show()
112112
}
@@ -129,7 +129,7 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
129129
}
130130
}
131131
viewModel.historyDeleteState.observe(this) {
132-
updateDeleteButton(viewModel.selectedItemsCount.value ?: 0)
132+
updateDeleteButton(viewModel.itemsToDelete.size)
133133
when (it) {
134134
UiState.Loading -> binding.indeterminateBar.isVisible = true
135135
UiState.Success -> handleSuccessfulHistoryDeletion()
@@ -145,8 +145,8 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
145145
exitEditMode()
146146
}
147147
}
148-
viewModel.selectedItemsCount.observe(this) { count ->
149-
updateDeleteButton(count)
148+
viewModel.itemsToDeleteLiveData.observe(this) {
149+
updateDeleteButton(it.size)
150150
}
151151
}
152152

@@ -195,15 +195,18 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
195195
btnMyPageHistoryEditHistory.text = EDIT_MODE
196196
tvMyPageHistoryTotalCourseCount.text = viewModel.getHistoryCount()
197197
if (::adapter.isInitialized) adapter.clearSelection()
198-
tvMyPageHistoryDelete.isVisible = viewModel.editMode.value!!
198+
btnMyPageHistoryDelete.isVisible = viewModel.editMode.value ?: true
199199
viewModel.clearItemsToDelete()
200200
}
201201
}
202202

203203
private fun updateDeleteButton(count: Int) {
204-
with(binding.tvMyPageHistoryDelete) {
205-
isActivated = count != 0
204+
val deleteBtnColor =
205+
if (count > 0) R.drawable.radius_10_m1_button else R.drawable.radius_10_g3_button
206+
with(binding.btnMyPageHistoryDelete) {
207+
isEnabled = count != 0
206208
text = updateDeleteButtonLabel(count)
209+
setBackgroundResource(deleteBtnColor)
207210
}
208211
}
209212

@@ -215,7 +218,6 @@ class MyHistoryActivity : BindingActivity<ActivityMyHistoryBinding>(R.layout.act
215218
}
216219
}
217220

218-
219221
override fun selectItem(data: HistoryInfoDTO): Boolean {
220222
return if (viewModel.editMode.value == true) {
221223
viewModel.modifyItemsToDelete(

app/src/main/java/com/runnect/runnect/presentation/mypage/history/MyHistoryViewModel.kt

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.runnect.runnect.domain.UserRepository
1111
import com.runnect.runnect.presentation.state.UiState
1212
import dagger.hilt.android.lifecycle.HiltViewModel
1313
import kotlinx.coroutines.launch
14+
import timber.log.Timber
1415
import javax.inject.Inject
1516

1617
@HiltViewModel
@@ -32,24 +33,14 @@ class MyHistoryViewModel @Inject constructor(private val userRepository: UserRep
3233
val editMode: LiveData<Boolean>
3334
get() = _editMode
3435

35-
private var itemsToDeleteLiveData = MutableLiveData<List<Int>>()
36+
private var _itemsToDeleteLiveData = MutableLiveData<List<Int>>()
37+
val itemsToDeleteLiveData: MutableLiveData<List<Int>>
38+
get() = _itemsToDeleteLiveData
3639

3740
private var _itemsToDelete: MutableList<Int> = mutableListOf()
3841
val itemsToDelete: List<Int>
3942
get() = _itemsToDelete
4043

41-
val selectCountMediator = MediatorLiveData<List<Int>>()
42-
43-
init {
44-
selectCountMediator.addSource(itemsToDeleteLiveData) {
45-
setSelectedItemsCount(_itemsToDelete.count())
46-
}
47-
}
48-
49-
private var _selectedItemsCount = MutableLiveData(DEFAULT_SELECTED_COUNT)
50-
val selectedItemsCount: LiveData<Int>
51-
get() = _selectedItemsCount
52-
5344
val errorMessage = MutableLiveData<String>()
5445

5546
fun modifyItemsToDelete(id: Int) {
@@ -66,11 +57,6 @@ class MyHistoryViewModel @Inject constructor(private val userRepository: UserRep
6657
itemsToDeleteLiveData.value = _itemsToDelete
6758
}
6859

69-
private fun setSelectedItemsCount(count: Int) {
70-
_selectedItemsCount.value = count
71-
}
72-
73-
7460
fun getHistoryCount(): String {
7561
return "총 기록 ${_historyItems.size}"
7662
}
@@ -104,9 +90,7 @@ class MyHistoryViewModel @Inject constructor(private val userRepository: UserRep
10490
viewModelScope.launch {
10591
runCatching {
10692
_historyDeleteState.value = UiState.Loading
107-
setSelectedItemsCount(
108-
count = DEFAULT_SELECTED_COUNT
109-
)
93+
11094
userRepository.putDeleteHistory(
11195
RequestDeleteHistoryDto(
11296
recordIdList = _itemsToDelete

app/src/main/res/layout/activity_my_history.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,15 +188,17 @@
188188
</androidx.cardview.widget.CardView>
189189
</androidx.appcompat.widget.LinearLayoutCompat>
190190

191-
<androidx.appcompat.widget.AppCompatTextView
192-
android:id="@+id/tv_my_page_history_delete"
191+
<androidx.appcompat.widget.AppCompatButton
192+
android:id="@+id/btn_my_page_history_delete"
193193
android:layout_width="0dp"
194194
android:layout_height="40dp"
195195
android:layout_marginHorizontal="15dp"
196196
android:layout_marginBottom="18dp"
197-
android:background="@drawable/all_finish_btn_selector"
197+
android:background="@drawable/radius_10_g3_button"
198+
android:enabled="false"
198199
android:fontFamily="@font/pretendard_semibold"
199200
android:gravity="center"
201+
android:outlineProvider="none"
200202
android:text="@string/history_delete"
201203
android:textColor="@color/W1"
202204
android:textSize="15sp"

0 commit comments

Comments
 (0)