1
1
package com.stop.ui.route
2
2
3
+ import android.app.AlertDialog
3
4
import android.os.Bundle
4
5
import android.view.LayoutInflater
5
6
import android.view.View
6
7
import android.view.ViewGroup
7
8
import android.widget.Toast
8
9
import androidx.fragment.app.Fragment
10
+ import androidx.fragment.app.activityViewModels
9
11
import androidx.navigation.findNavController
10
12
import androidx.navigation.fragment.navArgs
11
- import androidx.fragment.app.activityViewModels
12
13
import com.stop.R
13
14
import com.stop.databinding.FragmentRouteBinding
14
15
import com.stop.domain.model.route.tmap.custom.Itinerary
@@ -22,11 +23,12 @@ class RouteFragment : Fragment() {
22
23
get() = _binding !!
23
24
24
25
private val routeViewModel: RouteViewModel by activityViewModels()
25
- private val clickRouteViewModel : ClickRouteViewModel by activityViewModels()
26
+ private val clickRouteViewModel: ClickRouteViewModel by activityViewModels()
26
27
27
28
private val args: RouteFragmentArgs by navArgs()
28
29
29
30
private lateinit var adapter: RouteAdapter
31
+ private var progressDialog: AlertDialog ? = null
30
32
31
33
override fun onCreateView (
32
34
inflater : LayoutInflater , container : ViewGroup ? ,
@@ -44,6 +46,7 @@ class RouteFragment : Fragment() {
44
46
setRecyclerView()
45
47
setStartAndDestinationText()
46
48
setObserve()
49
+ initDialog()
47
50
}
48
51
49
52
private fun setBinding () {
@@ -69,6 +72,7 @@ class RouteFragment : Fragment() {
69
72
* UI가 ViewModel을 직접 호출하면 안 되지만, 테스트를 위해 막차 조회 함수를 호출했습니다.
70
73
* 여기서 UI가 ViewModel을 직접 호출하지 않으면서 막차 조회 함수를 호출할 수 있을까요?
71
74
*/
75
+ progressDialog?.show()
72
76
routeViewModel.calculateLastTransportTime(itinerary)
73
77
clickRouteViewModel.clickRoute = itinerary
74
78
}
@@ -95,6 +99,7 @@ class RouteFragment : Fragment() {
95
99
routeViewModel.lastTimeResponse.observe(viewLifecycleOwner) { event ->
96
100
event.getContentIfNotHandled()?.let { response ->
97
101
routeViewModel.lastTimes = response
102
+ progressDialog?.dismiss()
98
103
binding.root.findNavController().navigate(R .id.action_routeFragment_to_routeDetailFragment)
99
104
}
100
105
}
@@ -110,6 +115,15 @@ class RouteFragment : Fragment() {
110
115
routeViewModel.getRoute()
111
116
}
112
117
118
+ private fun initDialog () {
119
+ val dialogView = layoutInflater.inflate(R .layout.dialog_progress, null )
120
+ progressDialog = AlertDialog .Builder (requireContext())
121
+ .setView(dialogView)
122
+ .setCancelable(false )
123
+ .create()
124
+ progressDialog?.window?.setBackgroundDrawableResource(R .color.transparent)
125
+ }
126
+
113
127
override fun onDestroyView () {
114
128
_binding = null
115
129
0 commit comments