diff --git a/android/car-app/src/main/java/com/stadiamaps/ferrostar/car/app/template/icons/InterfaceCarIcons.kt b/android/car-app/src/main/java/com/stadiamaps/ferrostar/car/app/template/icons/InterfaceCarIcons.kt
index 6d573519d..7c6c56947 100644
--- a/android/car-app/src/main/java/com/stadiamaps/ferrostar/car/app/template/icons/InterfaceCarIcons.kt
+++ b/android/car-app/src/main/java/com/stadiamaps/ferrostar/car/app/template/icons/InterfaceCarIcons.kt
@@ -3,7 +3,7 @@ package com.stadiamaps.ferrostar.car.app.template.icons
import android.content.Context
import androidx.car.app.model.CarIcon
import androidx.core.graphics.drawable.IconCompat
-import com.stadiamaps.ferrostar.car.app.R
+import com.stadiamaps.ferrostar.ui.shared.R
class InterfaceCarIcons(context: Context) {
val add: CarIcon =
diff --git a/android/demo-app/build.gradle b/android/demo-app/build.gradle
index ce86059ec..286316e97 100644
--- a/android/demo-app/build.gradle
+++ b/android/demo-app/build.gradle
@@ -63,7 +63,6 @@ dependencies {
implementation libs.androidx.compose.ui.graphics
implementation libs.androidx.compose.ui.tooling
implementation libs.androidx.compose.material3
- implementation libs.androidx.compose.material.icon.extended
implementation libs.androidx.car.app
diff --git a/android/demo-app/src/main/java/com/stadiamaps/ferrostar/NotNavigatingOverlay.kt b/android/demo-app/src/main/java/com/stadiamaps/ferrostar/NotNavigatingOverlay.kt
index 15e6ba4b6..600eca403 100644
--- a/android/demo-app/src/main/java/com/stadiamaps/ferrostar/NotNavigatingOverlay.kt
+++ b/android/demo-app/src/main/java/com/stadiamaps/ferrostar/NotNavigatingOverlay.kt
@@ -4,8 +4,6 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.MyLocation
import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
@@ -20,6 +18,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Shadow
import androidx.compose.ui.layout.boundsInRoot
import androidx.compose.ui.layout.onGloballyPositioned
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
@@ -80,7 +79,7 @@ fun NotNavigatingOverlay(
buttonSize = DpSize(48.dp, 48.dp),
) {
Icon(
- imageVector = Icons.Filled.MyLocation,
+ painter = painterResource(R.drawable.my_location_24px),
contentDescription = stringResource(R.string.center_on_my_location),
)
}
diff --git a/android/demo-app/src/main/res/drawable/my_location_24px.xml b/android/demo-app/src/main/res/drawable/my_location_24px.xml
new file mode 100644
index 000000000..7621a4bc2
--- /dev/null
+++ b/android/demo-app/src/main/res/drawable/my_location_24px.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml
index 0e3472b76..9916f228e 100644
--- a/android/gradle/libs.versions.toml
+++ b/android/gradle/libs.versions.toml
@@ -50,7 +50,6 @@ androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graph
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
-androidx-compose-material-icon-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
# Car App Library (for car-app module)
androidx-car-app = { group = "androidx.car.app", name = "app", version.ref = "androidx-car-app" }
diff --git a/android/ui-compose/build.gradle b/android/ui-compose/build.gradle
index 907a4bf94..966662207 100644
--- a/android/ui-compose/build.gradle
+++ b/android/ui-compose/build.gradle
@@ -47,7 +47,6 @@ dependencies {
implementation libs.androidx.compose.ui.graphics
implementation libs.androidx.compose.ui.tooling.preview
implementation libs.androidx.compose.material3
- implementation libs.androidx.compose.material.icon.extended
implementation project(':core')
implementation project(':ui-formatters')
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/TripProgressView.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/TripProgressView.kt
index 6475e54a3..346314441 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/TripProgressView.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/TripProgressView.kt
@@ -11,8 +11,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Icon
@@ -23,6 +21,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
@@ -39,6 +38,7 @@ import com.stadiamaps.ferrostar.ui.formatters.DurationFormatter
import com.stadiamaps.ferrostar.ui.formatters.EstimatedArrivalDateTimeFormatter
import com.stadiamaps.ferrostar.ui.formatters.LocalizedDistanceFormatter
import com.stadiamaps.ferrostar.ui.formatters.LocalizedDurationFormatter
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
import kotlin.time.Clock
import kotlin.time.ExperimentalTime
import kotlin.time.Instant
@@ -127,7 +127,7 @@ fun TripProgressView(
contentPadding = PaddingValues(0.dp),
) {
Icon(
- imageVector = Icons.Filled.Close,
+ painter = painterResource(SharedR.drawable.close_24px),
contentDescription = stringResource(id = R.string.end_navigation),
tint = theme.exitIconColor,
)
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIButton.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIButton.kt
index 406ed9eb3..528160b9c 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIButton.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIButton.kt
@@ -5,8 +5,6 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.FloatingActionButtonDefaults
import androidx.compose.material3.Icon
@@ -15,11 +13,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import com.stadiamaps.ferrostar.composeui.R
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
/**
* A FloatingActionButton styled for use in the navigation UI.
@@ -53,7 +53,10 @@ fun NavigationUIButton(
fun NavigationUIButtonPreview() {
Box(Modifier.background(Color.LightGray).padding(16.dp)) {
NavigationUIButton({}, DpSize(56.dp, 56.dp)) {
- Icon(Icons.Filled.Close, contentDescription = stringResource(id = R.string.end_navigation))
+ Icon(
+ painterResource(SharedR.drawable.close_24px),
+ contentDescription = stringResource(id = R.string.end_navigation),
+ )
}
}
}
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIZoomButton.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIZoomButton.kt
index d94c75880..ce6e263c4 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIZoomButton.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/NavigationUIZoomButton.kt
@@ -8,9 +8,6 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Add
-import androidx.compose.material.icons.filled.Remove
import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.FloatingActionButtonDefaults
import androidx.compose.material3.HorizontalDivider
@@ -21,11 +18,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import com.stadiamaps.ferrostar.composeui.R
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
@Composable
fun NavigationUIZoomButton(
@@ -48,7 +47,7 @@ fun NavigationUIZoomButton(
elevation = elevation,
) {
Icon(
- imageVector = Icons.Filled.Add,
+ painter = painterResource(SharedR.drawable.add_24px),
contentDescription = stringResource(id = R.string.zoom_in),
)
}
@@ -66,7 +65,7 @@ fun NavigationUIZoomButton(
elevation = elevation,
) {
Icon(
- imageVector = Icons.Filled.Remove,
+ painter = painterResource(SharedR.drawable.remove_24px),
contentDescription = stringResource(id = R.string.zoom_out),
)
}
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/PillDragHandle.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/PillDragHandle.kt
index b6ec4237c..e76171ac6 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/PillDragHandle.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/controls/PillDragHandle.kt
@@ -7,20 +7,20 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.rounded.KeyboardArrowUp
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.onClick
import androidx.compose.ui.semantics.role
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
@Composable
fun PillDragHandle(
@@ -33,7 +33,7 @@ fun PillDragHandle(
Box(modifier = modifier.fillMaxWidth().height(handleHeight).clickable(onClick = toggle)) {
if (isExpanded) {
Icon(
- Icons.Rounded.KeyboardArrowUp,
+ painterResource(SharedR.drawable.keyboard_arrow_up_24px),
modifier = Modifier.align(Alignment.Center),
contentDescription = "Show upcoming maneuvers",
tint = iconTintColor,
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/gridviews/NavigatingInnerGridView.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/gridviews/NavigatingInnerGridView.kt
index 9d2f0f345..f25dc13b8 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/gridviews/NavigatingInnerGridView.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/gridviews/NavigatingInnerGridView.kt
@@ -5,15 +5,11 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.width
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.automirrored.filled.VolumeOff
-import androidx.compose.material.icons.automirrored.filled.VolumeUp
-import androidx.compose.material.icons.filled.Navigation
-import androidx.compose.material.icons.filled.Route
import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.rotate
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Devices
import androidx.compose.ui.tooling.preview.Preview
@@ -27,6 +23,7 @@ import com.stadiamaps.ferrostar.composeui.views.components.speedlimit.SignageSty
import com.stadiamaps.ferrostar.composeui.views.components.speedlimit.SpeedLimitView
import com.stadiamaps.ferrostar.core.measurement.MeasurementSpeed
import com.stadiamaps.ferrostar.core.measurement.MeasurementSpeedUnit
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
@Composable
fun NavigatingInnerGridView(
@@ -67,7 +64,7 @@ fun NavigatingInnerGridView(
buttonSize = buttonSize,
) {
Icon(
- Icons.Filled.Navigation,
+ painterResource(SharedR.drawable.navigation_24px),
contentDescription = stringResource(id = R.string.recenter),
)
}
@@ -78,7 +75,7 @@ fun NavigatingInnerGridView(
buttonSize = buttonSize,
) {
Icon(
- Icons.Default.Route,
+ painterResource(SharedR.drawable.route_24px),
modifier = Modifier.rotate(90.0f),
contentDescription = stringResource(id = R.string.route_overview),
)
@@ -93,12 +90,12 @@ fun NavigatingInnerGridView(
NavigationUIButton(onClick = onClickMute, buttonSize = buttonSize) {
if (isMuted) {
Icon(
- Icons.AutoMirrored.Filled.VolumeOff,
+ painterResource(SharedR.drawable.volume_mute_24px),
contentDescription = stringResource(id = R.string.unmute_description),
)
} else {
Icon(
- Icons.AutoMirrored.Filled.VolumeUp,
+ painterResource(SharedR.drawable.volume_up_24px),
contentDescription = stringResource(id = R.string.mute_description),
)
}
diff --git a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/maneuver/ManeuverInstructionView.kt b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/maneuver/ManeuverInstructionView.kt
index 79dd405dc..b7a9242e4 100644
--- a/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/maneuver/ManeuverInstructionView.kt
+++ b/android/ui-compose/src/main/java/com/stadiamaps/ferrostar/composeui/views/components/maneuver/ManeuverInstructionView.kt
@@ -7,15 +7,13 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Build
-import androidx.compose.material.icons.filled.Info
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -23,6 +21,7 @@ import com.stadiamaps.ferrostar.composeui.theme.DefaultInstructionRowTheme
import com.stadiamaps.ferrostar.composeui.theme.InstructionRowTheme
import com.stadiamaps.ferrostar.ui.formatters.DistanceFormatter
import com.stadiamaps.ferrostar.ui.formatters.LocalizedDistanceFormatter
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
/**
* A generic maneuver instruction view.
@@ -83,7 +82,7 @@ fun PreviewImageManeuverInstructionView() {
distanceToNextManeuver = 24140.16,
) {
Image(
- Icons.Filled.Info,
+ painterResource(SharedR.drawable.direction_turn_right),
contentDescription = null,
modifier = Modifier.size(24.dp),
colorFilter = ColorFilter.tint(Color.White),
@@ -100,7 +99,7 @@ fun PreviewRTLManeuverInstructionView() {
distanceToNextManeuver = 24140.16,
) {
Image(
- Icons.Filled.Build,
+ painterResource(SharedR.drawable.direction_merge_left),
contentDescription = null,
modifier = Modifier.size(24.dp),
colorFilter = ColorFilter.tint(Color.White),
diff --git a/android/ui-compose/src/test/java/com/stadiamaps/ferrostar/views/NavigationUIButtonTest.kt b/android/ui-compose/src/test/java/com/stadiamaps/ferrostar/views/NavigationUIButtonTest.kt
index 1ef25e6c3..bd5a1b659 100644
--- a/android/ui-compose/src/test/java/com/stadiamaps/ferrostar/views/NavigationUIButtonTest.kt
+++ b/android/ui-compose/src/test/java/com/stadiamaps/ferrostar/views/NavigationUIButtonTest.kt
@@ -1,15 +1,15 @@
package com.stadiamaps.ferrostar.views
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Adb
import androidx.compose.material3.Icon
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp
import com.stadiamaps.ferrostar.composeui.views.components.controls.NavigationUIButton
import com.stadiamaps.ferrostar.composeui.views.components.controls.NavigationUIZoomButton
import com.stadiamaps.ferrostar.support.WithSnapshotBackground
import com.stadiamaps.ferrostar.support.paparazziDefault
+import com.stadiamaps.ferrostar.ui.shared.R as SharedR
import org.junit.Rule
import org.junit.Test
@@ -24,7 +24,7 @@ class NavigationUIButtonTest {
paparazzi.snapshot {
WithSnapshotBackground {
NavigationUIButton(onClick = { /* no action */ }, buttonSize = buttonSize) {
- Icon(Icons.Filled.Adb, contentDescription = "ADB")
+ Icon(painterResource(SharedR.drawable.close_24px), contentDescription = "Close")
}
}
}
@@ -40,7 +40,7 @@ class NavigationUIButtonTest {
containerColor = Color.Black,
contentColor = Color.White,
) {
- Icon(Icons.Filled.Adb, contentDescription = "ADB")
+ Icon(painterResource(SharedR.drawable.close_24px), contentDescription = "Close")
}
}
}
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_InstructionViewTest_testInstructionViewExpanded.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_InstructionViewTest_testInstructionViewExpanded.png
index 396352d1d..b95a7e1e8 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_InstructionViewTest_testInstructionViewExpanded.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_InstructionViewTest_testInstructionViewExpanded.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTracking.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTracking.png
index 39c6b6add..19c297549 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTracking.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTracking.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTrackingLandscape.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTrackingLandscape.png
index 224ca0dd2..61b0a3e9d 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTrackingLandscape.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewNonTrackingLandscape.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTracking.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTracking.png
index dc46159aa..3f296ce69 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTracking.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTracking.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTrackingLandscape.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTrackingLandscape.png
index 36b37a2d9..620328e9f 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTrackingLandscape.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigatingInnerGridViewTest_testNavigatingInnerGridViewTrackingLandscape.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButton.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButton.png
index c605c2245..dbc245fad 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButton.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButton.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButtonCustomized.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButtonCustomized.png
index 7cd50e711..c5d099ab4 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButtonCustomized.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_NavigationUIButtonTest_testNavigationUIButtonCustomized.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressView24Hour.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressView24Hour.png
index 04ddadc15..ded90cad0 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressView24Hour.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressView24Hour.png differ
diff --git a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressViewWithExit.png b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressViewWithExit.png
index a4386a768..f8d3a74aa 100644
Binary files a/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressViewWithExit.png and b/android/ui-compose/src/test/snapshots/images/com.stadiamaps.ferrostar.views_TripProgressViewTest_testProgressViewWithExit.png differ
diff --git a/android/car-app/src/main/res/drawable/add_24px.xml b/android/ui-shared/src/main/res/drawable/add_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/add_24px.xml
rename to android/ui-shared/src/main/res/drawable/add_24px.xml
diff --git a/android/ui-shared/src/main/res/drawable/close_24px.xml b/android/ui-shared/src/main/res/drawable/close_24px.xml
new file mode 100644
index 000000000..5dda7cd8e
--- /dev/null
+++ b/android/ui-shared/src/main/res/drawable/close_24px.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/android/ui-shared/src/main/res/drawable/keyboard_arrow_up_24px.xml b/android/ui-shared/src/main/res/drawable/keyboard_arrow_up_24px.xml
new file mode 100644
index 000000000..0bf9bf932
--- /dev/null
+++ b/android/ui-shared/src/main/res/drawable/keyboard_arrow_up_24px.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/android/car-app/src/main/res/drawable/navigation_24px.xml b/android/ui-shared/src/main/res/drawable/navigation_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/navigation_24px.xml
rename to android/ui-shared/src/main/res/drawable/navigation_24px.xml
diff --git a/android/car-app/src/main/res/drawable/remove_24px.xml b/android/ui-shared/src/main/res/drawable/remove_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/remove_24px.xml
rename to android/ui-shared/src/main/res/drawable/remove_24px.xml
diff --git a/android/car-app/src/main/res/drawable/route_24px.xml b/android/ui-shared/src/main/res/drawable/route_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/route_24px.xml
rename to android/ui-shared/src/main/res/drawable/route_24px.xml
diff --git a/android/car-app/src/main/res/drawable/volume_mute_24px.xml b/android/ui-shared/src/main/res/drawable/volume_mute_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/volume_mute_24px.xml
rename to android/ui-shared/src/main/res/drawable/volume_mute_24px.xml
diff --git a/android/car-app/src/main/res/drawable/volume_up_24px.xml b/android/ui-shared/src/main/res/drawable/volume_up_24px.xml
similarity index 100%
rename from android/car-app/src/main/res/drawable/volume_up_24px.xml
rename to android/ui-shared/src/main/res/drawable/volume_up_24px.xml