Skip to content

Commit b434bf3

Browse files
committed
feat : 알람 설정 화면 뷰 수정
1 parent e15957f commit b434bf3

File tree

3 files changed

+73
-178
lines changed

3 files changed

+73
-178
lines changed

presentation/src/main/java/com/stop/ui/alarmsetting/AlarmSettingFragment.kt

Lines changed: 7 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.stop.ui.alarmsetting
22

33
import android.os.Bundle
4-
import android.transition.AutoTransition
5-
import android.transition.TransitionManager
64
import android.util.Log
75
import android.view.LayoutInflater
86
import android.view.View
97
import android.view.ViewGroup
108
import androidx.fragment.app.Fragment
9+
import androidx.fragment.app.activityViewModels
1110
import androidx.fragment.app.viewModels
1211
import androidx.navigation.findNavController
1312
import androidx.work.PeriodicWorkRequestBuilder
@@ -16,6 +15,7 @@ import com.stop.AlarmFunctions
1615
import com.stop.AlarmWorker
1716
import com.stop.R
1817
import com.stop.databinding.FragmentAlarmSettingBinding
18+
import com.stop.ui.route.RouteViewModel
1919
import dagger.hilt.android.AndroidEntryPoint
2020
import java.util.concurrent.TimeUnit
2121

@@ -26,6 +26,7 @@ class AlarmSettingFragment : Fragment() {
2626
private val binding get() = _binding!!
2727

2828
private val alarmSettingViewModel by viewModels<AlarmSettingViewModel>()
29+
private val routeViewModel by activityViewModels<RouteViewModel>()
2930

3031
private lateinit var alarmFunctions: AlarmFunctions
3132

@@ -45,14 +46,16 @@ class AlarmSettingFragment : Fragment() {
4546

4647
alarmFunctions = AlarmFunctions(requireActivity())
4748
initView()
48-
setButtonListener()
4949
setToggleListener()
50+
51+
// TODO 뷰모델 가져와서 경로 막차시간 등 연결 작업해야함
5052
}
5153

5254
private fun initBinding() {
5355
binding.apply {
5456
lifecycleOwner = viewLifecycleOwner
55-
viewModel = alarmSettingViewModel
57+
alarmViewModel = alarmSettingViewModel
58+
routeViewModel = routeViewModel
5659
fragment = this@AlarmSettingFragment
5760
}
5861
}
@@ -66,37 +69,6 @@ class AlarmSettingFragment : Fragment() {
6669
numberPickerAlarmTime.maxValue = 60
6770

6871
buttonSound.isCheckable = true
69-
buttonMissionOn.isCheckable = true
70-
}
71-
}
72-
73-
private fun setButtonListener() {
74-
with(binding) {
75-
textViewRouteContent.setOnClickListener {
76-
if (textViewTransportContent.visibility == View.VISIBLE) {
77-
setTransportViewGone()
78-
} else {
79-
setTransportViewVisible()
80-
}
81-
}
82-
}
83-
}
84-
85-
private fun setTransportViewGone() {
86-
with(binding) {
87-
TransitionManager.beginDelayedTransition(cardViewRoute, AutoTransition())
88-
textViewTransportContent.visibility = View.GONE
89-
textViewRouteContent.setCompoundDrawables(null, null, null, null)
90-
textViewRouteContent.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_baseline_keyboard_arrow_down_24, 0)
91-
}
92-
}
93-
94-
private fun setTransportViewVisible() {
95-
with(binding) {
96-
TransitionManager.beginDelayedTransition(cardViewRoute, AutoTransition())
97-
textViewTransportContent.visibility = View.VISIBLE
98-
textViewRouteContent.setCompoundDrawables(null, null, null, null)
99-
textViewRouteContent.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_baseline_keyboard_arrow_up_24, 0)
10072
}
10173
}
10274

@@ -110,15 +82,6 @@ class AlarmSettingFragment : Fragment() {
11082
}
11183
}
11284
}
113-
114-
toggleGroupMission.addOnButtonCheckedListener { _, checkedId, isChecked ->
115-
if (isChecked) {
116-
when (checkedId) {
117-
R.id.button_mission_on -> alarmSettingViewModel.isMission = true
118-
else -> alarmSettingViewModel.isMission = false
119-
}
120-
}
121-
}
12285
}
12386
}
12487

presentation/src/main/java/com/stop/ui/alarmsetting/AlarmSettingViewModel.kt

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.stop.ui.alarmsetting
22

3-
import androidx.lifecycle.LiveData
43
import androidx.lifecycle.MutableLiveData
54
import androidx.lifecycle.ViewModel
65
import androidx.lifecycle.viewModelScope
@@ -9,6 +8,8 @@ import com.stop.domain.usecase.alarm.GetAlarmUseCase
98
import com.stop.domain.usecase.alarm.SaveAlarmUseCase
109
import dagger.hilt.android.lifecycle.HiltViewModel
1110
import kotlinx.coroutines.Dispatchers
11+
import kotlinx.coroutines.flow.MutableStateFlow
12+
import kotlinx.coroutines.flow.StateFlow
1213
import kotlinx.coroutines.flow.collectLatest
1314
import kotlinx.coroutines.launch
1415
import javax.inject.Inject
@@ -20,36 +21,36 @@ class AlarmSettingViewModel @Inject constructor(
2021
) : ViewModel() {
2122

2223
val alarmTime = MutableLiveData(0)
24+
var alarmMethod = true
2325

24-
//TODO TEST 코드
25-
private val _alarmUseCaseItem = MutableLiveData<AlarmUseCaseItem?>()
26-
val alarmUseCaseItem: LiveData<AlarmUseCaseItem?> = _alarmUseCaseItem
26+
private val _alarmItem = MutableStateFlow<AlarmUseCaseItem?>(null)
27+
val alarmItem : StateFlow<AlarmUseCaseItem?> = _alarmItem
2728

28-
var alarmMethod = true
29-
var isMission = true
29+
private val _isAlarmItemNotNull = MutableStateFlow(false)
30+
val isAlarmItemNotNull : StateFlow<Boolean> = _isAlarmItemNotNull
3031

3132
fun saveAlarm() {
3233
val alarmUseCaseItem = AlarmUseCaseItem(
3334
"쑥고개로 2다길 1",
3435
"현대 아남타워",
3536
listOf("도보", "버스5517", "신림역", "선릉역", "도보"),
36-
"23:30",
37+
"23:30:00",
3738
alarmTime.value ?: 0,
3839
123,
39-
alarmMethod,
40-
isMission
40+
alarmMethod
4141
)
4242

4343
viewModelScope.launch(Dispatchers.IO) {
4444
saveAlarmUseCase.saveAlarm(alarmUseCaseItem)
4545
}
4646
}
4747

48-
// TODO TEST 코드
4948
fun getAlarm() {
50-
viewModelScope.launch(Dispatchers.IO) {
49+
viewModelScope.launch(Dispatchers.IO){
5150
getAlarmUseCase.getAlarm().collectLatest {
52-
_alarmUseCaseItem.postValue(it)
51+
_alarmItem.value = it
52+
53+
_isAlarmItemNotNull.value = it != null
5354
}
5455
}
5556
}

0 commit comments

Comments
 (0)