@@ -2,7 +2,9 @@ package com.whyranoid.presentation.running
2
2
3
3
import android.content.Intent
4
4
import android.os.Bundle
5
+ import androidx.activity.OnBackPressedCallback
5
6
import androidx.activity.viewModels
7
+ import com.google.android.material.snackbar.Snackbar
6
8
import com.naver.maps.geometry.LatLng
7
9
import com.naver.maps.map.CameraUpdate
8
10
import com.naver.maps.map.LocationSource
@@ -28,6 +30,18 @@ internal class RunningActivity :
28
30
29
31
private val viewModel: RunningViewModel by viewModels()
30
32
33
+ private val backPressedCallback = object : OnBackPressedCallback (true ) {
34
+ override fun handleOnBackPressed () {
35
+ Snackbar .make(
36
+ binding.root,
37
+ getString(R .string.running_fin_snackbar_content),
38
+ Snackbar .LENGTH_SHORT
39
+ ).setAction(getString(R .string.running_fin_snackbar_action)) {
40
+ viewModel.onFinishButtonClicked()
41
+ }.show()
42
+ }
43
+ }
44
+
31
45
private lateinit var mapView: MapView
32
46
private lateinit var naverMap: NaverMap
33
47
private lateinit var paths: MutableList <PathOverlay >
@@ -125,6 +139,7 @@ internal class RunningActivity :
125
139
mapView.getMapAsync(this )
126
140
127
141
binding.vm = viewModel
142
+ this .onBackPressedDispatcher.addCallback(this , backPressedCallback)
128
143
}
129
144
130
145
private fun observeState () {
@@ -210,7 +225,10 @@ internal class RunningActivity :
210
225
}
211
226
212
227
private fun handleRunningFinishSuccessState (runningFinishData : RunningFinishData ) {
213
- setResult(RESULT_OK , Intent ().putExtra(RunningViewModel .RUNNING_FINISH_DATA_KEY , runningFinishData))
228
+ setResult(
229
+ RESULT_OK ,
230
+ Intent ().putExtra(RunningViewModel .RUNNING_FINISH_DATA_KEY , runningFinishData)
231
+ )
214
232
finish()
215
233
}
216
234
0 commit comments