11package com.mapbox.androidauto.navigation.roadlabel
22
33import android.graphics.Color
4+ import android.graphics.Rect
45import androidx.car.app.CarContext
56import androidx.car.app.Screen
67import com.mapbox.androidauto.internal.extensions.getStyleAsync
@@ -11,6 +12,7 @@ import com.mapbox.androidauto.internal.logAndroidAutoFailure
1112import com.mapbox.androidauto.internal.surfacelayer.CarSurfaceLayer
1213import com.mapbox.androidauto.internal.surfacelayer.textview.CarTextLayerHost
1314import com.mapbox.androidauto.navigation.MapUserStyleObserver
15+ import com.mapbox.maps.EdgeInsets
1416import com.mapbox.maps.LayerPosition
1517import com.mapbox.maps.MapboxExperimental
1618import com.mapbox.maps.extension.androidauto.MapboxCarMap
@@ -31,8 +33,32 @@ import com.mapbox.navigation.ui.shield.model.RouteShield
3133 * removing the listener with [MapboxCarMap.unregisterObserver].
3234 */
3335@OptIn(MapboxExperimental ::class )
34- class RoadLabelSurfaceLayer (
35- val carContext : CarContext ,
36+ class RoadLabelSurfaceLayer internal constructor(
37+ private val delegate : RoadLabelSurfaceLayerDelegate ,
38+ ) : MapboxCarMapObserver {
39+
40+ constructor (carContext: CarContext ) : this (RoadLabelSurfaceLayerDelegate (carContext))
41+
42+ override fun onAttached (mapboxCarMapSurface : MapboxCarMapSurface ) {
43+ delegate.onAttached(mapboxCarMapSurface)
44+ }
45+
46+ override fun onDetached (mapboxCarMapSurface : MapboxCarMapSurface ) {
47+ delegate.onDetached(mapboxCarMapSurface)
48+ }
49+
50+ override fun onVisibleAreaChanged (visibleArea : Rect , edgeInsets : EdgeInsets ) {
51+ delegate.onVisibleAreaChanged(visibleArea, edgeInsets)
52+ }
53+
54+ override fun onStableAreaChanged (stableArea : Rect , edgeInsets : EdgeInsets ) {
55+ delegate.onStableAreaChanged(stableArea, edgeInsets)
56+ }
57+ }
58+
59+ @OptIn(MapboxExperimental ::class )
60+ internal class RoadLabelSurfaceLayerDelegate (
61+ private val carContext : CarContext ,
3662) : CarSurfaceLayer() {
3763
3864 private val roadLabelRenderer = RoadLabelRenderer (carContext.resources)
0 commit comments