Skip to content

Commit 53e0339

Browse files
tobrundanesfeder
authored andcommitted
Add callout manager to show callout on a route (#1339)
1 parent d69e0bb commit 53e0339

File tree

6 files changed

+25
-32
lines changed

6 files changed

+25
-32
lines changed

app/src/main/java/com/mapbox/services/android/navigation/testapp/NavigationApplication.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ import com.mapbox.services.android.navigation.testapp.example.utils.DelegatesExt
1010
import com.squareup.leakcanary.LeakCanary
1111
import timber.log.Timber
1212

13+
private const val DEFAULT_MAPBOX_ACCESS_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE"
14+
1315
class NavigationApplication : Application() {
1416

1517
companion object {
1618
var instance: NavigationApplication by DelegatesExt.notNullSingleValue()
17-
const val DEFAULT_MAPBOX_ACCESS_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE"
1819
}
1920

2021
override fun onCreate() {

app/src/main/java/com/mapbox/services/android/navigation/testapp/example/ui/ExampleActivity.kt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,16 @@ import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigation
3232
import com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress
3333
import kotlinx.android.synthetic.main.activity_example.*
3434

35+
private const val ZERO_PADDING = 0
36+
private const val BOTTOMSHEET_MULTIPLIER = 4
37+
3538
class ExampleActivity : AppCompatActivity(), ExampleView {
3639

3740
private val permissionsManager = PermissionsManager(this)
38-
private lateinit var presenter: ExamplePresenter
3941
private var map: NavigationMapboxMap? = null
40-
41-
companion object {
42-
const val ZERO_PADDING = 0
43-
const val BOTTOMSHEET_MULTIPLIER = 4
42+
private val presenter by lazy(mode = LazyThreadSafetyMode.NONE) {
43+
val viewModel = ViewModelProviders.of(this).get(ExampleViewModel::class.java)
44+
ExamplePresenter(this, viewModel)
4445
}
4546

4647
override fun onCreate(savedInstanceState: Bundle?) {
@@ -202,11 +203,11 @@ class ExampleActivity : AppCompatActivity(), ExampleView {
202203
}
203204

204205
override fun updateInstructionViewWith(progress: RouteProgress) {
205-
instructionView.update(progress)
206+
instructionView.updateDistanceWith(progress)
206207
}
207208

208-
override fun updateInstructionViewWith(progress: RouteProgress, milestone: Milestone) {
209-
TODO("not implemented")
209+
override fun updateInstructionViewWith(milestone: Milestone) {
210+
instructionView.updateBannerInstructionsWith(milestone)
210211
}
211212

212213
override fun addMapProgressChangeListener(navigation: MapboxNavigation) {
@@ -259,9 +260,6 @@ class ExampleActivity : AppCompatActivity(), ExampleView {
259260
}
260261

261262
private fun setupWith(savedInstanceState: Bundle?) {
262-
val viewModel = ViewModelProviders.of(this).get(ExampleViewModel::class.java)
263-
presenter = ExamplePresenter(this, viewModel)
264-
265263
mapView.onCreate(savedInstanceState)
266264

267265
instructionView.retrieveFeedbackButton().hide()

app/src/main/java/com/mapbox/services/android/navigation/testapp/example/ui/ExamplePresenter.kt

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,13 @@ import com.mapbox.services.android.navigation.ui.v5.camera.DynamicCamera
2323
import com.mapbox.services.android.navigation.v5.milestone.Milestone
2424
import com.mapbox.services.android.navigation.v5.routeprogress.RouteProgress
2525

26-
class ExamplePresenter(private val view: ExampleView, private val viewModel: ExampleViewModel) {
26+
private const val DEFAULT_ZOOM = 12.0
27+
private const val DEFAULT_BEARING = 0.0
28+
private const val DEFAULT_TILT = 0.0
29+
private const val TWO_SECONDS = 2000
30+
private const val ONE_SECOND = 1000
2731

28-
companion object {
29-
const val DEFAULT_ZOOM = 12.0
30-
const val DEFAULT_BEARING = 0.0
31-
const val DEFAULT_TILT = 0.0
32-
const val TWO_SECONDS = 2000
33-
const val ONE_SECOND = 1000
34-
}
32+
class ExamplePresenter(private val view: ExampleView, private val viewModel: ExampleViewModel) {
3533

3634
private var state: PresenterState = PresenterState.SHOW_LOCATION
3735

@@ -174,13 +172,13 @@ class ExamplePresenter(private val view: ExampleView, private val viewModel: Exa
174172

175173
fun onProgressUpdate(progress: RouteProgress?) {
176174
progress?.let {
177-
view.updateInstructionViewWith(progress)
175+
view.updateInstructionViewWith(it)
178176
}
179177
}
180178

181179
fun onMilestoneUpdate(milestone: Milestone?) {
182180
milestone?.let {
183-
// TODO update instructionview -- fix API
181+
view.updateInstructionViewWith(it)
184182
}
185183
}
186184

@@ -245,7 +243,6 @@ class ExamplePresenter(private val view: ExampleView, private val viewModel: Exa
245243
val top = resources.getDimension(R.dimen.route_overview_padding_top).toInt()
246244
val right = resources.getDimension(R.dimen.route_overview_padding_right).toInt()
247245
val bottom = resources.getDimension(R.dimen.route_overview_padding_bottom).toInt()
248-
// left top right bottom
249246
val padding = intArrayOf(left, top, right, bottom)
250247
view.updateMapCameraFor(bounds, padding, TWO_SECONDS)
251248
}

app/src/main/java/com/mapbox/services/android/navigation/testapp/example/ui/ExampleView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ interface ExampleView: PermissionsListener, OnMapReadyCallback,
5656

5757
fun updateInstructionViewWith(progress: RouteProgress)
5858

59-
fun updateInstructionViewWith(progress: RouteProgress, milestone: Milestone)
59+
fun updateInstructionViewWith(milestone: Milestone)
6060

6161
fun addMapProgressChangeListener(navigation: MapboxNavigation)
6262

app/src/main/java/com/mapbox/services/android/navigation/testapp/example/ui/ExampleViewModel.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@ import retrofit2.Response
2929
import timber.log.Timber
3030
import java.util.Locale.US
3131

32-
class ExampleViewModel(application: Application) : AndroidViewModel(application) {
32+
private const val ONE_SECOND_INTERVAL = 1000
3333

34-
companion object {
35-
const val ONE_SECOND_INTERVAL = 1000
36-
}
34+
class ExampleViewModel(application: Application) : AndroidViewModel(application) {
3735

3836
val location: MutableLiveData<Location> = MutableLiveData()
3937
val routes: MutableLiveData<List<DirectionsRoute>> = MutableLiveData()

app/src/main/java/com/mapbox/services/android/navigation/testapp/example/ui/navigation/ExampleRouteFinder.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ import retrofit2.Callback
1313
import retrofit2.Response
1414
import timber.log.Timber
1515

16+
private const val BEARING_TOLERANCE = 90.0
17+
1618
class ExampleRouteFinder(private val viewModel: ExampleViewModel,
1719
private val routes: MutableLiveData<List<DirectionsRoute>>,
1820
private val accessToken: String) : Callback<DirectionsResponse> {
1921

20-
companion object {
21-
const val BEARING_TOLERANCE = 90.0
22-
}
23-
2422
fun findRoute(location: Location, destination: Point) {
2523
find(location, destination)
2624
}
@@ -59,6 +57,7 @@ class ExampleRouteFinder(private val viewModel: ExampleViewModel,
5957

6058
// Handle off-route scenarios
6159
if (viewModel.isOffRoute) {
60+
viewModel.isOffRoute = false
6261
viewModel.startNavigation()
6362
}
6463
}

0 commit comments

Comments
 (0)