@@ -54,15 +54,18 @@ class MissionFragment : Fragment(), MissionHandler {
54
54
55
55
private lateinit var backPressedCallback: OnBackPressedCallback
56
56
57
+ private lateinit var userInfoReceiver: BroadcastReceiver
58
+ private lateinit var timeReceiver: BroadcastReceiver
59
+
57
60
var personCurrentLocation = Location (37.553836 , 126.969652 )
58
61
var firstTime = 0
59
62
60
63
override fun onCreate (savedInstanceState : Bundle ? ) {
61
64
super .onCreate(savedInstanceState)
62
65
63
66
setMissionService()
64
- setBroadcastReceiver ()
65
- // setTimeOverBroadcastReceiver()
67
+ setUserInfoBroadcastReceiver ()
68
+ setTimeOverBroadcastReceiver()
66
69
missionViewModel.missionStatus.value = MissionStatus .ONGOING
67
70
}
68
71
@@ -103,9 +106,12 @@ class MissionFragment : Fragment(), MissionHandler {
103
106
}
104
107
105
108
override fun onDestroy () {
106
- super .onDestroy()
107
-
108
109
tMap.onDestroy()
110
+
111
+ requireActivity().unregisterReceiver(userInfoReceiver)
112
+ requireActivity().unregisterReceiver(timeReceiver)
113
+
114
+ super .onDestroy()
109
115
}
110
116
111
117
private fun setMissionService () {
@@ -117,28 +123,28 @@ class MissionFragment : Fragment(), MissionHandler {
117
123
}
118
124
}
119
125
120
- private fun setBroadcastReceiver () {
126
+ private fun setUserInfoBroadcastReceiver () {
121
127
val intentFilter = IntentFilter ().apply {
122
128
addAction(MissionService .MISSION_USER_INFO )
123
129
}
124
130
125
- val receiver = object : BroadcastReceiver () {
131
+ userInfoReceiver = object : BroadcastReceiver () {
126
132
override fun onReceive (context : Context ? , intent : Intent ? ) {
127
133
missionViewModel.lastTime.value = intent?.getStringExtra(MISSION_LAST_TIME )
128
134
missionViewModel.userLocations.value =
129
135
intent?.getParcelableArrayListExtra<Location >(MISSION_LOCATIONS ) as ArrayList <Location >
130
136
}
131
137
}
132
138
133
- requireActivity().registerReceiver(receiver , intentFilter)
139
+ requireActivity().registerReceiver(userInfoReceiver , intentFilter)
134
140
}
135
141
136
142
private fun setTimeOverBroadcastReceiver () {
137
143
val intentFilter = IntentFilter ().apply {
138
144
addAction(MISSION_TIME_OVER )
139
145
}
140
146
141
- val receiver = object : BroadcastReceiver () {
147
+ timeReceiver = object : BroadcastReceiver () {
142
148
override fun onReceive (context : Context ? , intent : Intent ? ) {
143
149
if (intent?.getBooleanExtra(MISSION_TIME_OVER , false ) == true ) {
144
150
Snackbar .make(
@@ -151,7 +157,7 @@ class MissionFragment : Fragment(), MissionHandler {
151
157
152
158
}
153
159
}
154
- requireActivity().registerReceiver(receiver , intentFilter)
160
+ requireActivity().registerReceiver(timeReceiver , intentFilter)
155
161
}
156
162
157
163
private fun setTimer () {
@@ -161,6 +167,8 @@ class MissionFragment : Fragment(), MissionHandler {
161
167
} else {
162
168
requireActivity().startService(missionServiceIntent)
163
169
}
170
+
171
+ missionServiceIntent.removeExtra(MISSION_LAST_TIME )
164
172
}
165
173
166
174
private fun setDataBinding () {
@@ -338,7 +346,7 @@ class MissionFragment : Fragment(), MissionHandler {
338
346
}
339
347
340
348
private fun setSuccessAnimation () {
341
- with (binding.lottieSuccess) {
349
+ with (binding.lottieSuccess) {
342
350
playAnimation()
343
351
addAnimatorListener(object : Animator .AnimatorListener {
344
352
override fun onAnimationStart (animation : Animator ) {
@@ -358,7 +366,7 @@ class MissionFragment : Fragment(), MissionHandler {
358
366
}
359
367
360
368
private fun setFailAnimation () {
361
- with (binding.lottieFail) {
369
+ with (binding.lottieFail) {
362
370
visibility = View .VISIBLE
363
371
playAnimation()
364
372
addAnimatorListener(object : Animator .AnimatorListener {
0 commit comments