Skip to content

Commit d1d6576

Browse files
authored
Merge pull request #104 from boostcampwm-2022/103-mission-issue
[PR] ๋ฏธ์…˜ ์ด์Šˆ ํ•ด๊ฒฐ
2 parents 46b895a + 30b1e58 commit d1d6576

File tree

3 files changed

+33
-33
lines changed

3 files changed

+33
-33
lines changed

โ€Žpresentation/src/main/java/com/stop/ui/mission/MissionFragment.kt

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,18 @@ class MissionFragment : Fragment(), MissionHandler {
5454

5555
private lateinit var backPressedCallback: OnBackPressedCallback
5656

57+
private lateinit var userInfoReceiver: BroadcastReceiver
58+
private lateinit var timeReceiver: BroadcastReceiver
59+
5760
var personCurrentLocation = Location(37.553836, 126.969652)
5861
var firstTime = 0
5962

6063
override fun onCreate(savedInstanceState: Bundle?) {
6164
super.onCreate(savedInstanceState)
6265

6366
setMissionService()
64-
setBroadcastReceiver()
65-
//setTimeOverBroadcastReceiver()
67+
setUserInfoBroadcastReceiver()
68+
setTimeOverBroadcastReceiver()
6669
missionViewModel.missionStatus.value = MissionStatus.ONGOING
6770
}
6871

@@ -103,9 +106,12 @@ class MissionFragment : Fragment(), MissionHandler {
103106
}
104107

105108
override fun onDestroy() {
106-
super.onDestroy()
107-
108109
tMap.onDestroy()
110+
111+
requireActivity().unregisterReceiver(userInfoReceiver)
112+
requireActivity().unregisterReceiver(timeReceiver)
113+
114+
super.onDestroy()
109115
}
110116

111117
private fun setMissionService() {
@@ -117,28 +123,28 @@ class MissionFragment : Fragment(), MissionHandler {
117123
}
118124
}
119125

120-
private fun setBroadcastReceiver() {
126+
private fun setUserInfoBroadcastReceiver() {
121127
val intentFilter = IntentFilter().apply {
122128
addAction(MissionService.MISSION_USER_INFO)
123129
}
124130

125-
val receiver = object : BroadcastReceiver() {
131+
userInfoReceiver = object : BroadcastReceiver() {
126132
override fun onReceive(context: Context?, intent: Intent?) {
127133
missionViewModel.lastTime.value = intent?.getStringExtra(MISSION_LAST_TIME)
128134
missionViewModel.userLocations.value =
129135
intent?.getParcelableArrayListExtra<Location>(MISSION_LOCATIONS) as ArrayList<Location>
130136
}
131137
}
132138

133-
requireActivity().registerReceiver(receiver, intentFilter)
139+
requireActivity().registerReceiver(userInfoReceiver, intentFilter)
134140
}
135141

136142
private fun setTimeOverBroadcastReceiver() {
137143
val intentFilter = IntentFilter().apply {
138144
addAction(MISSION_TIME_OVER)
139145
}
140146

141-
val receiver = object : BroadcastReceiver() {
147+
timeReceiver = object : BroadcastReceiver() {
142148
override fun onReceive(context: Context?, intent: Intent?) {
143149
if (intent?.getBooleanExtra(MISSION_TIME_OVER, false) == true) {
144150
Snackbar.make(
@@ -151,7 +157,7 @@ class MissionFragment : Fragment(), MissionHandler {
151157

152158
}
153159
}
154-
requireActivity().registerReceiver(receiver, intentFilter)
160+
requireActivity().registerReceiver(timeReceiver, intentFilter)
155161
}
156162

157163
private fun setTimer() {
@@ -161,6 +167,8 @@ class MissionFragment : Fragment(), MissionHandler {
161167
} else {
162168
requireActivity().startService(missionServiceIntent)
163169
}
170+
171+
missionServiceIntent.removeExtra(MISSION_LAST_TIME)
164172
}
165173

166174
private fun setDataBinding() {
@@ -338,7 +346,7 @@ class MissionFragment : Fragment(), MissionHandler {
338346
}
339347

340348
private fun setSuccessAnimation() {
341-
with (binding.lottieSuccess) {
349+
with(binding.lottieSuccess) {
342350
playAnimation()
343351
addAnimatorListener(object : Animator.AnimatorListener {
344352
override fun onAnimationStart(animation: Animator) {
@@ -358,7 +366,7 @@ class MissionFragment : Fragment(), MissionHandler {
358366
}
359367

360368
private fun setFailAnimation() {
361-
with (binding.lottieFail) {
369+
with(binding.lottieFail) {
362370
visibility = View.VISIBLE
363371
playAnimation()
364372
addAnimatorListener(object : Animator.AnimatorListener {

โ€Žpresentation/src/main/java/com/stop/ui/mission/MissionService.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,19 +140,19 @@ class MissionService : LifecycleService() {
140140

141141
private fun getTimer(intent: Intent?) {
142142
val lastTimeString = intent?.getStringExtra(MISSION_LAST_TIME)
143-
val lastTimeMillis = makeFullTime(lastTimeString ?: "").timeInMillis
144-
val nowTimeMillis = System.currentTimeMillis()
145-
var diffTimeMillis = if (lastTimeMillis > nowTimeMillis) lastTimeMillis - nowTimeMillis else 0L
146-
147-
timer.cancel()
148-
timer = lifecycleScope.launch(Dispatchers.IO) {
149-
while (diffTimeMillis > 0L) {
150-
lastTime = convertTimeMillisToString(diffTimeMillis)
151-
sendUserInfo()
152-
diffTimeMillis -= 1_000L
153-
delay(1_000L)
154-
}
155-
if (diffTimeMillis == 0L) {
143+
if (lastTimeString != null) {
144+
val lastTimeMillis = makeFullTime(lastTimeString).timeInMillis
145+
val nowTimeMillis = System.currentTimeMillis()
146+
var diffTimeMillis = if (lastTimeMillis > nowTimeMillis) lastTimeMillis - nowTimeMillis else 0L
147+
148+
timer.cancel()
149+
timer = lifecycleScope.launch(Dispatchers.IO) {
150+
while (diffTimeMillis > -1_000L) {
151+
lastTime = convertTimeMillisToString(diffTimeMillis)
152+
sendUserInfo()
153+
diffTimeMillis -= 1_000L
154+
delay(1_000L)
155+
}
156156
sendMissionOver()
157157
}
158158
}

โ€Žpresentation/src/main/java/com/stop/ui/mission/MissionTMap.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.stop.ui.mission
22

33
import android.content.Context
4-
import android.graphics.Color
54
import androidx.core.content.ContextCompat
65
import com.skt.tmap.TMapPoint
76
import com.skt.tmap.overlay.TMapPolyLine
@@ -17,9 +16,7 @@ class MissionTMap(
1716
val points = arrayListOf(nowLocation, beforeLocation)
1817
val polyLine = TMapPolyLine(id, points).apply {
1918
lineColor = ContextCompat.getColor(context, color)
20-
lineWidth = LINE_WIDTH
21-
outLineColor = Color.WHITE
22-
outLineWidth = OUT_LINE_WIDTH
19+
outLineColor = ContextCompat.getColor(context, color)
2320
}
2421

2522
tMapView.addTMapPolyLine(polyLine)
@@ -42,9 +39,4 @@ class MissionTMap(
4239
}
4340
}
4441
}
45-
46-
companion object {
47-
private const val LINE_WIDTH = 7F
48-
private const val OUT_LINE_WIDTH = 10F
49-
}
5042
}

0 commit comments

Comments
ย (0)