Skip to content

Commit 0ab25f7

Browse files
committed
mark androidauto classes with UiThread annotation
1 parent b89dd7b commit 0ab25f7

15 files changed

Lines changed: 46 additions & 21 deletions

File tree

libnavui-androidauto/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Mapbox welcomes participation and contributions from everyone.
77
#### Bug fixes and improvements
88
- Use `MapboxAudioGuidance` from public api. [#6336](https://github.com/mapbox/mapbox-navigation-android/pull/6336)
99
- Fixed an issue that caused camera animations to interfere with user gestures. [#6357](https://github.com/mapbox/mapbox-navigation-android/pull/6357)
10+
- Marked `CarFeedbackSender`, `CarGridFeedbackScreen`, `CarLocationsOverviewCamera`, `CarNavigationCamera`, `PlacesListItemClickListener`, `PlacesListOnMapLayerUtil`, `PlacesListOnMapScreen`, `CarRoutePreviewScreen`, `CarRouteRequest`, `PlaceSearchScreen`, `MainCarScreen`, `AppAudioGuidanceUtil`, `MapboxCarApp` methods with `@UiThread` annotation. [#6267](https://github.com/mapbox/mapbox-navigation-android/pull/6267)
1011

1112
## androidauto-v0.11.0 - Sep 16, 2022
1213
### Changelog

libnavui-androidauto/api/current.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.mapbox.androidauto {
1919
public final class MapboxCarApp {
2020
method public com.mapbox.androidauto.navigation.location.CarAppLocation carAppLocationService();
2121
method public kotlinx.coroutines.flow.StateFlow<com.mapbox.androidauto.CarAppState> getCarAppState();
22-
method public void setup();
22+
method @UiThread public void setup();
2323
method public void updateCarAppState(com.mapbox.androidauto.CarAppState carAppState);
2424
property public final kotlinx.coroutines.flow.StateFlow<com.mapbox.androidauto.CarAppState> carAppState;
2525
field public static final com.mapbox.androidauto.MapboxCarApp INSTANCE;
@@ -74,7 +74,7 @@ package com.mapbox.androidauto.car {
7474
}
7575

7676
public final class MainCarScreen extends androidx.car.app.Screen {
77-
ctor public MainCarScreen(com.mapbox.androidauto.car.MainCarContext mainCarContext);
77+
ctor @UiThread public MainCarScreen(com.mapbox.androidauto.car.MainCarContext mainCarContext);
7878
method public com.mapbox.androidauto.car.location.CarLocationRenderer getCarLocationRenderer();
7979
method public com.mapbox.androidauto.car.navigation.CarNavigationCamera getCarNavigationCamera();
8080
method public com.mapbox.androidauto.car.preview.CarRouteLine getCarRouteLine();
@@ -167,7 +167,7 @@ package com.mapbox.androidauto.car.feedback.core {
167167

168168
public final class CarFeedbackSender {
169169
ctor public CarFeedbackSender();
170-
method public void send(com.mapbox.androidauto.car.feedback.ui.CarFeedbackItem selectedItem, String? encodedSnapshot, String sourceScreenSimpleName);
170+
method @UiThread public void send(com.mapbox.androidauto.car.feedback.ui.CarFeedbackItem selectedItem, String? encodedSnapshot, String sourceScreenSimpleName);
171171
}
172172

173173
}
@@ -260,7 +260,7 @@ package com.mapbox.androidauto.car.feedback.ui {
260260
}
261261

262262
public final class CarGridFeedbackScreen extends androidx.car.app.Screen {
263-
ctor public CarGridFeedbackScreen(androidx.car.app.CarContext carContext, String sourceScreenSimpleName, com.mapbox.androidauto.car.feedback.core.CarFeedbackSender carFeedbackSender, com.mapbox.androidauto.car.feedback.ui.CarFeedbackPoll initialPoll, String? encodedSnapshot, com.mapbox.androidauto.car.feedback.core.CarFeedbackSearchOptions searchOptions = com.mapbox.androidauto.car.feedback.core.CarFeedbackSearchOptions(), kotlin.jvm.functions.Function0<kotlin.Unit> onFinish);
263+
ctor @UiThread public CarGridFeedbackScreen(androidx.car.app.CarContext carContext, String sourceScreenSimpleName, com.mapbox.androidauto.car.feedback.core.CarFeedbackSender carFeedbackSender, com.mapbox.androidauto.car.feedback.ui.CarFeedbackPoll initialPoll, String? encodedSnapshot, com.mapbox.androidauto.car.feedback.core.CarFeedbackSearchOptions searchOptions = com.mapbox.androidauto.car.feedback.core.CarFeedbackSearchOptions(), kotlin.jvm.functions.Function0<kotlin.Unit> onFinish);
264264
method public androidx.car.app.model.Template onGetTemplate();
265265
}
266266

@@ -345,11 +345,11 @@ package com.mapbox.androidauto.car.navigation {
345345
method public void onAttached(com.mapbox.maps.extension.androidauto.MapboxCarMapSurface mapboxCarMapSurface);
346346
method public void onDetached(com.mapbox.maps.extension.androidauto.MapboxCarMapSurface mapboxCarMapSurface);
347347
method public void onVisibleAreaChanged(android.graphics.Rect visibleArea, com.mapbox.maps.EdgeInsets edgeInsets);
348-
method public void updateWithLocations(java.util.List<com.mapbox.geojson.Point> points);
348+
method @UiThread public void updateWithLocations(java.util.List<com.mapbox.geojson.Point> points);
349349
field public static final double DEFAULT_INITIAL_ZOOM = 15.0;
350350
}
351351

352-
public final class CarNavigationCamera implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver {
352+
@UiThread public final class CarNavigationCamera implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver {
353353
ctor public CarNavigationCamera(com.mapbox.androidauto.car.navigation.CarCameraMode initialCarCameraMode, com.mapbox.androidauto.car.navigation.CarCameraMode? alternativeCarCameraMode, com.mapbox.androidauto.car.routes.CarRoutesProvider carRoutesProvider = com.mapbox.androidauto.car.routes.NavigationCarRoutesProvider(), com.mapbox.maps.CameraOptions? initialCameraOptions = CameraOptions.<init>().zoom(DEFAULT_INITIAL_ZOOM).build());
354354
method public boolean followingZoomUpdatesAllowed();
355355
method public com.mapbox.maps.extension.androidauto.DefaultMapboxCarMapGestureHandler getGestureHandler();
@@ -605,7 +605,7 @@ package com.mapbox.androidauto.car.placeslistonmap {
605605
property public final android.graphics.Bitmap? bitmap;
606606
}
607607

608-
public interface PlacesListItemClickListener {
608+
@UiThread public interface PlacesListItemClickListener {
609609
method public void onItemClick(com.mapbox.androidauto.car.search.PlaceRecord placeRecord);
610610
}
611611

@@ -614,7 +614,7 @@ package com.mapbox.androidauto.car.placeslistonmap {
614614
method public androidx.car.app.model.ItemList mapToItemList(android.location.Location anchorLocation, java.util.List<com.mapbox.androidauto.car.search.PlaceRecord> places, com.mapbox.androidauto.car.placeslistonmap.PlacesListItemClickListener? itemClickListener);
615615
}
616616

617-
public final class PlacesListOnMapLayerUtil {
617+
@UiThread public final class PlacesListOnMapLayerUtil {
618618
ctor public PlacesListOnMapLayerUtil();
619619
method public void initializePlacesListOnMapLayer(com.mapbox.maps.Style style, android.content.res.Resources resources);
620620
method public void removePlacesListOnMapLayer(com.mapbox.maps.Style style);
@@ -631,7 +631,7 @@ package com.mapbox.androidauto.car.placeslistonmap {
631631
}
632632

633633
@com.mapbox.maps.MapboxExperimental public final class PlacesListOnMapScreen extends androidx.car.app.Screen {
634-
ctor public PlacesListOnMapScreen(com.mapbox.androidauto.car.MainCarContext mainCarContext, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapProvider placesProvider, com.mapbox.androidauto.car.placeslistonmap.PlacesListItemMapper placesListItemMapper, java.util.List<? extends com.mapbox.androidauto.car.action.MapboxActionProvider> actionProviders, com.mapbox.androidauto.car.search.SearchCarContext searchCarContext = com.mapbox.androidauto.car.search.SearchCarContext(mainCarContext), com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
634+
ctor @UiThread public PlacesListOnMapScreen(com.mapbox.androidauto.car.MainCarContext mainCarContext, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapProvider placesProvider, com.mapbox.androidauto.car.placeslistonmap.PlacesListItemMapper placesListItemMapper, java.util.List<? extends com.mapbox.androidauto.car.action.MapboxActionProvider> actionProviders, com.mapbox.androidauto.car.search.SearchCarContext searchCarContext = com.mapbox.androidauto.car.search.SearchCarContext(mainCarContext), com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
635635
method public androidx.car.app.model.ItemList getItemList();
636636
method public androidx.car.app.model.Template onGetTemplate();
637637
method public void setItemList(androidx.car.app.model.ItemList);
@@ -655,7 +655,7 @@ package com.mapbox.androidauto.car.preview {
655655
}
656656

657657
@com.mapbox.maps.MapboxExperimental public final class CarRoutePreviewScreen extends androidx.car.app.Screen {
658-
ctor public CarRoutePreviewScreen(com.mapbox.androidauto.car.preview.RoutePreviewCarContext routePreviewCarContext, com.mapbox.androidauto.car.search.PlaceRecord placeRecord, java.util.List<com.mapbox.navigation.base.route.NavigationRoute> navigationRoutes, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
658+
ctor @UiThread public CarRoutePreviewScreen(com.mapbox.androidauto.car.preview.RoutePreviewCarContext routePreviewCarContext, com.mapbox.androidauto.car.search.PlaceRecord placeRecord, java.util.List<com.mapbox.navigation.base.route.NavigationRoute> navigationRoutes, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
659659
method public com.mapbox.androidauto.car.location.CarLocationRenderer getCarLocationRenderer();
660660
method public com.mapbox.androidauto.car.navigation.CarNavigationCamera getCarNavigationCamera();
661661
method public com.mapbox.androidauto.car.preview.CarRouteLine getCarRouteLine();
@@ -672,10 +672,10 @@ package com.mapbox.androidauto.car.preview {
672672

673673
public final class CarRouteRequest {
674674
ctor public CarRouteRequest(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation, com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor routeOptionsInterceptor, com.mapbox.navigation.ui.maps.location.NavigationLocationProvider navigationLocationProvider);
675-
method public void cancelRequest();
675+
method @UiThread public void cancelRequest();
676676
method public com.mapbox.navigation.core.MapboxNavigation getMapboxNavigation();
677-
method public void request(com.mapbox.androidauto.car.search.PlaceRecord placeRecord, com.mapbox.androidauto.car.preview.CarRouteRequestCallback callback);
678-
method public suspend Object? requestSync(com.mapbox.androidauto.car.search.PlaceRecord placeRecord, kotlin.coroutines.Continuation<? super java.util.List<? extends com.mapbox.navigation.base.route.NavigationRoute>>);
677+
method @UiThread public void request(com.mapbox.androidauto.car.search.PlaceRecord placeRecord, com.mapbox.androidauto.car.preview.CarRouteRequestCallback callback);
678+
method @UiThread public suspend Object? requestSync(com.mapbox.androidauto.car.search.PlaceRecord placeRecord, kotlin.coroutines.Continuation<? super java.util.List<? extends com.mapbox.navigation.base.route.NavigationRoute>>);
679679
property public final com.mapbox.navigation.core.MapboxNavigation mapboxNavigation;
680680
}
681681

@@ -778,7 +778,7 @@ package com.mapbox.androidauto.car.search {
778778
}
779779

780780
public final class PlaceSearchScreen extends androidx.car.app.Screen {
781-
ctor public PlaceSearchScreen(com.mapbox.androidauto.car.search.SearchCarContext searchCarContext);
781+
ctor @UiThread public PlaceSearchScreen(com.mapbox.androidauto.car.search.SearchCarContext searchCarContext);
782782
method public androidx.car.app.model.Template onGetTemplate();
783783
}
784784

@@ -872,8 +872,8 @@ package com.mapbox.androidauto.deeplink {
872872
package com.mapbox.androidauto.navigation.audioguidance {
873873

874874
public final class AppAudioGuidanceUiKt {
875-
method public static void attachAudioGuidance(androidx.fragment.app.Fragment, com.mapbox.navigation.ui.voice.view.MapboxSoundButton mapboxSoundButton);
876-
method public static void muteAudioGuidance(androidx.lifecycle.Lifecycle);
875+
method @UiThread public static void attachAudioGuidance(androidx.fragment.app.Fragment, com.mapbox.navigation.ui.voice.view.MapboxSoundButton mapboxSoundButton);
876+
method @UiThread public static void muteAudioGuidance(androidx.lifecycle.Lifecycle);
877877
}
878878

879879
public final class CarAudioGuidanceUi implements com.mapbox.androidauto.car.action.MapboxActionProvider.ScreenActionProvider {

libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarApp.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.mapbox.androidauto
22

3+
import androidx.annotation.UiThread
34
import com.mapbox.androidauto.navigation.location.CarAppLocation
45
import com.mapbox.androidauto.navigation.location.impl.CarAppLocationImpl
56
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
@@ -35,6 +36,7 @@ object MapboxCarApp {
3536
/**
3637
* Setup android auto with defaults
3738
*/
39+
@UiThread
3840
@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
3941
fun setup() {
4042
if (MapboxNavigationApp.getObservers(CarAppLocation::class).isEmpty()) {

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/MainCarScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.mapbox.androidauto.car
22

3+
import androidx.annotation.UiThread
34
import androidx.car.app.Screen
45
import androidx.car.app.model.CarColor
56
import androidx.car.app.model.Template
@@ -19,7 +20,7 @@ import com.mapbox.maps.MapboxExperimental
1920
* When the app is launched from Android Auto
2021
*/
2122
@OptIn(MapboxExperimental::class)
22-
class MainCarScreen(
23+
class MainCarScreen @UiThread constructor(
2324
private val mainCarContext: MainCarContext
2425
) : Screen(mainCarContext.carContext) {
2526

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/feedback/core/CarFeedbackSender.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mapbox.androidauto.car.feedback.core
22

33
import androidx.annotation.Keep
4+
import androidx.annotation.UiThread
45
import com.google.gson.Gson
56
import com.mapbox.androidauto.car.feedback.ui.CarFeedbackItem
67
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
@@ -13,6 +14,7 @@ class CarFeedbackSender {
1314

1415
private val gson = Gson()
1516

17+
@UiThread
1618
fun send(
1719
selectedItem: CarFeedbackItem,
1820
encodedSnapshot: String?,

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/feedback/ui/CarGridFeedbackScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mapbox.androidauto.car.feedback.ui
22

33
import androidx.activity.OnBackPressedCallback
4+
import androidx.annotation.UiThread
45
import androidx.car.app.CarContext
56
import androidx.car.app.CarToast
67
import androidx.car.app.Screen
@@ -19,7 +20,7 @@ import com.mapbox.androidauto.internal.logAndroidAuto
1920
/**
2021
* This screen allows the user to search for a destination.
2122
*/
22-
class CarGridFeedbackScreen constructor(
23+
class CarGridFeedbackScreen @UiThread constructor(
2324
carContext: CarContext,
2425
private val sourceScreenSimpleName: String,
2526
private val carFeedbackSender: CarFeedbackSender,

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/navigation/CarLocationsOverviewCamera.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.mapbox.androidauto.car.navigation
22

33
import android.graphics.Rect
44
import android.location.Location
5+
import androidx.annotation.UiThread
56
import com.mapbox.androidauto.internal.logAndroidAuto
67
import com.mapbox.geojson.Point
78
import com.mapbox.maps.CameraOptions
@@ -114,6 +115,7 @@ class CarLocationsOverviewCamera(
114115
isLocationInitialized = false
115116
}
116117

118+
@UiThread
117119
fun updateWithLocations(points: List<Point>) {
118120
if (points.isNotEmpty()) {
119121
logAndroidAuto("LocationsOverviewCamera updateWithLocations")

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/navigation/CarNavigationCamera.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.mapbox.androidauto.car.navigation
22

33
import android.graphics.Rect
44
import android.location.Location
5+
import androidx.annotation.UiThread
56
import com.mapbox.androidauto.car.routes.CarRoutesProvider
67
import com.mapbox.androidauto.car.routes.NavigationCarRoutesProvider
78
import com.mapbox.androidauto.internal.car.RendererUtils.dpToPx
@@ -45,6 +46,7 @@ private const val DEFAULT_INITIAL_ZOOM = 15.0
4546
* @param initialCameraOptions set camera options when the camera is attached
4647
*/
4748
@OptIn(MapboxExperimental::class)
49+
@UiThread
4850
class CarNavigationCamera(
4951
private val initialCarCameraMode: CarCameraMode,
5052
private val alternativeCarCameraMode: CarCameraMode?,
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.mapbox.androidauto.car.placeslistonmap
22

3+
import androidx.annotation.UiThread
34
import com.mapbox.androidauto.car.search.PlaceRecord
45

6+
@UiThread
57
interface PlacesListItemClickListener {
68
fun onItemClick(placeRecord: PlaceRecord)
79
}

libnavui-androidauto/src/main/java/com/mapbox/androidauto/car/placeslistonmap/PlacesListOnMapLayerUtil.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.mapbox.androidauto.car.placeslistonmap
22

33
import android.content.res.Resources
44
import android.graphics.BitmapFactory
5+
import androidx.annotation.UiThread
56
import com.mapbox.androidauto.R
67
import com.mapbox.geojson.FeatureCollection
78
import com.mapbox.maps.Style
@@ -12,6 +13,7 @@ import com.mapbox.maps.extension.style.sources.generated.GeoJsonSource
1213
import com.mapbox.maps.extension.style.sources.generated.geoJsonSource
1314
import com.mapbox.maps.extension.style.sources.getSource
1415

16+
@UiThread
1517
class PlacesListOnMapLayerUtil {
1618

1719
fun initializePlacesListOnMapLayer(style: Style, resources: Resources) {

0 commit comments

Comments
 (0)