Skip to content

Commit 850b774

Browse files
authored
Merge pull request #78 from boostcampwm-2022/71-feature-mission-background
[PR] 미션 user 경로 그리기
2 parents c08dc13 + 6bac89f commit 850b774

23 files changed

+473
-435
lines changed

presentation/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ dependencies {
6262

6363
// TMap SDK
6464
implementation files('libs/vsm-tmap-sdk-v2-android-1.6.60.aar')
65-
implementation files('libs/tmap-sdk-1.1.aar')
65+
implementation files('libs/tmap-sdk-1.2.aar')
6666

6767
// Hilt
6868
implementation 'com.google.dagger:hilt-android:2.44'
@@ -90,9 +90,10 @@ dependencies {
9090
// When using the BoM, don't specify versions in Firebase dependencies
9191
implementation 'com.google.firebase:firebase-analytics-ktx'
9292

93-
// Add the dependencies for any other desired Firebase products
94-
// https://firebase.google.com/docs/android/setup#available-libraries
95-
9693
// LifeCycle Service
9794
implementation 'androidx.lifecycle:lifecycle-service:2.5.1'
95+
96+
//Location Services
97+
implementation 'com.google.android.gms:play-services-location:21.0.1'
98+
9899
}

presentation/src/main/AndroidManifest.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<uses-permission android:name="android.permission.INTERNET" />
77
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
88
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
9+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
910

1011
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
1112
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
@@ -37,6 +38,11 @@
3738
android:authorities="${applicationId}.androidx-startup"
3839
tools:node="remove" />
3940

41+
<service
42+
android:name="androidx.work.impl.foreground.SystemForegroundService"
43+
android:foregroundServiceType="location"
44+
tools:node="merge" />
45+
4046
<activity
4147
android:name=".MainActivity"
4248
android:excludeFromRecents="true"

presentation/src/main/java/com/stop/MainActivity.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,16 @@ class MainActivity : AppCompatActivity() {
3333

3434
navHostFragment.navController.graph = graph
3535
}
36+
37+
intent?.extras?.getInt("MISSION_CODE")?.let {
38+
val navHostFragment =
39+
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
40+
val inflater = navHostFragment.navController.navInflater
41+
val graph = inflater.inflate(R.navigation.nav_graph)
42+
graph.setStartDestination(R.id.missionFragment)
43+
44+
navHostFragment.navController.graph = graph
45+
}
3646
}
3747

3848
override fun onCreate(savedInstanceState: Bundle?) {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.stop.di
2+
3+
import com.stop.ui.mission.MissionManager
4+
import dagger.Module
5+
import dagger.Provides
6+
import dagger.hilt.InstallIn
7+
import dagger.hilt.components.SingletonComponent
8+
import javax.inject.Singleton
9+
10+
@InstallIn(SingletonComponent::class)
11+
@Module
12+
object MissionModule {
13+
14+
@Provides
15+
@Singleton
16+
fun provideMissionManager() = MissionManager()
17+
18+
}

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

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

3+
import android.util.Log
34
import androidx.lifecycle.MutableLiveData
45
import androidx.lifecycle.ViewModel
56
import androidx.lifecycle.viewModelScope
@@ -21,7 +22,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
2122
import kotlinx.coroutines.flow.StateFlow
2223
import kotlinx.coroutines.flow.collectLatest
2324
import kotlinx.coroutines.launch
24-
import java.util.UUID
25+
import java.util.*
2526
import javax.inject.Inject
2627

2728
@HiltViewModel
@@ -54,7 +55,7 @@ class AlarmSettingViewModel @Inject constructor(
5455
viewModelScope.launch(Dispatchers.IO) {
5556
getAlarmUseCase.getAlarm().collectLatest {
5657
_alarmItem.value = it
57-
58+
Log.d("MissonWorker","alarm viewModel에서 가져오나? ${_alarmItem.value} ${_alarmItem.value?.routes}")
5859
_isAlarmItemNotNull.value = it != null
5960
}
6061
}

presentation/src/main/java/com/stop/ui/map/MapFragment.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.stop.ui.map
22

33
import android.Manifest.permission
4+
import android.content.Intent
45
import android.os.Bundle
6+
import android.util.Log
57
import android.view.LayoutInflater
68
import android.view.View
79
import android.view.ViewGroup
@@ -17,6 +19,7 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
1719
import com.skt.tmap.TMapPoint
1820
import com.stop.R
1921
import com.stop.RouteNavGraphDirections
22+
import com.stop.SoundService
2023
import com.stop.databinding.FragmentMapBinding
2124
import com.stop.model.Location
2225
import com.stop.ui.alarmsetting.AlarmSettingViewModel
@@ -68,6 +71,7 @@ class MapFragment : Fragment(), MapHandler {
6871
binding.lifecycleOwner = viewLifecycleOwner
6972
binding.alarmViewModel = alarmViewModel
7073
binding.placeSearchViewModel = placeSearchViewModel
74+
binding.fragment = this@MapFragment
7175
}
7276

7377
private fun initTMap() {
@@ -222,11 +226,17 @@ class MapFragment : Fragment(), MapHandler {
222226
private fun listenButtonClick(){
223227
binding.homeBottomSheet.layoutStateExpanded.buttonAlarmTurnOff.setOnClickListener {
224228
alarmViewModel.deleteAlarm()
229+
turnOffSoundService()
225230
val behavior = BottomSheetBehavior.from(binding.layoutHomeBottomSheet)
226231
behavior.state = BottomSheetBehavior.STATE_COLLAPSED
227232
}
228233
}
229234

235+
private fun turnOffSoundService() {
236+
val intent = Intent(context, SoundService::class.java)
237+
requireContext().stopService(intent)
238+
}
239+
230240
override fun onDestroyView() {
231241
_binding = null
232242

@@ -241,6 +251,11 @@ class MapFragment : Fragment(), MapHandler {
241251
}
242252
}
243253

254+
fun setMissionStart() {
255+
Log.d("MissionWorker","mission 버튼 클릭")
256+
findNavController().navigate(R.id.action_mapFragment_to_missionFragment)
257+
}
258+
244259
companion object {
245260
private val PERMISSIONS =
246261
arrayOf(permission.ACCESS_FINE_LOCATION, permission.ACCESS_COARSE_LOCATION)

0 commit comments

Comments
 (0)