Skip to content

Commit 08eff28

Browse files
committed
feat : GetBusNowLocationUseCase data와 MissionViewModel 연결
1 parent d66ec2c commit 08eff28

File tree

4 files changed

+43
-11
lines changed

4 files changed

+43
-11
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.stop.domain.usecase.nowlocation
22

3+
import com.stop.domain.model.nowlocation.BusInfoUseCaseItem
4+
35
interface GetBusNowLocationUseCase {
46

5-
suspend fun getBusNowLocation(busRouteId: String)
7+
suspend fun getBusNowLocation(busRouteId: String): BusInfoUseCaseItem
68

79
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package com.stop.domain.usecase.nowlocation
22

3+
import com.stop.domain.model.nowlocation.BusInfoUseCaseItem
34
import com.stop.domain.repository.NowLocationRepository
45
import javax.inject.Inject
56

67
class GetBusNowLocationUseCaseImpl @Inject constructor(
78
private val nowLocationRepository: NowLocationRepository
8-
) : GetBusNowLocationUseCase{
9+
) : GetBusNowLocationUseCase {
910

10-
override suspend fun getBusNowLocation(busRouteId: String) {
11-
nowLocationRepository.getBusNowLocation(busRouteId)
11+
override suspend fun getBusNowLocation(busRouteId: String): BusInfoUseCaseItem {
12+
return nowLocationRepository.getBusNowLocation(busRouteId)
1213
}
1314

1415
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.stop.ui.mission
22

33
import android.animation.Animator
44
import android.animation.AnimatorListenerAdapter
5+
import android.content.ContextWrapper
56
import android.os.Bundle
67
import android.view.LayoutInflater
78
import android.view.View
@@ -11,7 +12,9 @@ import androidx.fragment.app.viewModels
1112
import com.skt.tmap.TMapPoint
1213
import com.stop.R
1314
import com.stop.databinding.FragmentMissionBinding
15+
import dagger.hilt.android.AndroidEntryPoint
1416

17+
@AndroidEntryPoint
1518
class MissionFragment : Fragment() , MissionHandler{
1619

1720
private var _binding: FragmentMissionBinding? = null
@@ -77,7 +80,7 @@ class MissionFragment : Fragment() , MissionHandler{
7780
}
7881

7982
private fun initTMap() {
80-
tMap = MissionTMap(requireContext(), this)
83+
tMap = MissionTMap((requireContext() as ContextWrapper).baseContext, this)
8184
tMap.init()
8285

8386
binding.constraintLayoutContainer.addView(tMap.tMapView)

presentation/src/main/java/com/stop/ui/mission/MissionViewModel.kt

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.stop.ui.mission
22

3-
import androidx.lifecycle.LiveData
4-
import androidx.lifecycle.MutableLiveData
5-
import androidx.lifecycle.Transformations
6-
import androidx.lifecycle.ViewModel
7-
import androidx.lifecycle.viewModelScope
3+
import android.util.Log
4+
import androidx.lifecycle.*
5+
import com.stop.domain.model.nowlocation.BusInfoUseCaseItem
6+
import com.stop.domain.usecase.nowlocation.GetBusNowLocationUseCase
7+
import dagger.hilt.android.lifecycle.HiltViewModel
88
import kotlinx.coroutines.delay
99
import kotlinx.coroutines.launch
10+
import javax.inject.Inject
1011
import kotlin.random.Random
1112

12-
class MissionViewModel : ViewModel() {
13+
@HiltViewModel
14+
class MissionViewModel @Inject constructor(
15+
private val getBusNowLocationUseCase: GetBusNowLocationUseCase
16+
): ViewModel() {
1317

1418
private val random = Random(System.currentTimeMillis())
1519

@@ -37,6 +41,13 @@ class MissionViewModel : ViewModel() {
3741
}
3842
}
3943

44+
private val _busNowLocationInfo = MutableLiveData<BusInfoUseCaseItem>()
45+
val busNowLocationInfo: LiveData<BusInfoUseCaseItem> = _busNowLocationInfo
46+
47+
init {
48+
getBusNowLocation()
49+
}
50+
4051
fun setDestination(inputDestination: String) {
4152
_destination.value = inputDestination
4253
}
@@ -74,6 +85,18 @@ class MissionViewModel : ViewModel() {
7485
}
7586
}
7687

88+
private fun getBusNowLocation() {
89+
viewModelScope.launch {
90+
while (TIME_TEST < 60) {
91+
_busNowLocationInfo.value = getBusNowLocationUseCase.getBusNowLocation(BUS_441_ID)
92+
Log.d("MissionViewModel","busNowLocationInfo ${_busNowLocationInfo.value}")
93+
delay(1000)
94+
TIME_TEST += 1
95+
}
96+
97+
}
98+
}
99+
77100
companion object {
78101
private const val DELAY_TIME = 1000L
79102
private const val TIME_ZERO = 0
@@ -82,5 +105,8 @@ class MissionViewModel : ViewModel() {
82105
private const val ONE_SECOND = 1
83106
private const val RANDOM_LIMIT = 5
84107
private const val ZERO = 0
108+
109+
private const val BUS_441_ID = "100100083"
110+
private var TIME_TEST = 0
85111
}
86112
}

0 commit comments

Comments
 (0)