diff --git a/app/src/google/java/net/vonforst/evmap/auto/FilterScreen.kt b/app/src/google/java/net/vonforst/evmap/auto/FilterScreen.kt index 191c4990..4a6ede65 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/FilterScreen.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/FilterScreen.kt @@ -47,30 +47,6 @@ class FilterScreen(ctx: CarContext, val session: EVMapSession) : Screen(ctx) { setHeaderAction(Action.BACK) setActionStrip( ActionStrip.Builder().apply { - addAction(Action.Builder().apply { - setIcon( - CarIcon.Builder( - IconCompat.createWithResource( - carContext, - if (prefs.placeSearchResultAndroidAuto != null) { - R.drawable.ic_search_off - } else { - R.drawable.ic_search - } - ) - ).build() - - ) - setOnClickListener(ParkedOnlyOnClickListener.create { - if (prefs.placeSearchResultAndroidAuto != null) { - prefs.placeSearchResultAndroidAutoName = null - prefs.placeSearchResultAndroidAuto = null - screenManager.pop() - } else { - screenManager.push(PlaceSearchScreen(carContext, session)) - } - }) - }.build()) addAction(Action.Builder().apply { setIcon( CarIcon.Builder( diff --git a/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt b/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt index 8fbbf3f9..128faf19 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt @@ -178,6 +178,42 @@ class MapScreen(ctx: CarContext, val session: EVMapSession) : session.mapScreen = null } .build()) + .addAction(Action.Builder().apply { + setIcon( + CarIcon.Builder( + IconCompat.createWithResource( + carContext, + if (prefs.placeSearchResultAndroidAuto != null) { + R.drawable.ic_search_off + } else { + R.drawable.ic_search + } + ) + ).build() + + ) + setOnClickListener(ParkedOnlyOnClickListener.create { + if (prefs.placeSearchResultAndroidAuto != null) { + prefs.placeSearchResultAndroidAutoName = null + prefs.placeSearchResultAndroidAuto = null + screenManager.pushForResult(DummyReturnScreen(carContext)) { + chargers = null + loadChargers() + } + } else { + screenManager.pushForResult( + PlaceSearchScreen( + carContext, + session + ) + ) { + chargers = null + loadChargers() + } + session.mapScreen = null + } + }) + }.build()) .addAction( Action.Builder() .setIcon( diff --git a/app/src/google/java/net/vonforst/evmap/auto/Utils.kt b/app/src/google/java/net/vonforst/evmap/auto/Utils.kt index 32d81602..1aa055fc 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/Utils.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/Utils.kt @@ -3,13 +3,13 @@ package net.vonforst.evmap.auto import android.content.Context import android.graphics.Bitmap import androidx.car.app.CarContext +import androidx.car.app.Screen import androidx.car.app.constraints.ConstraintManager import androidx.car.app.hardware.common.CarUnit -import androidx.car.app.model.CarColor -import androidx.car.app.model.CarIcon -import androidx.car.app.model.Distance +import androidx.car.app.model.* import androidx.car.app.versioning.CarAppApiLevels import androidx.core.graphics.drawable.IconCompat +import net.vonforst.evmap.R import net.vonforst.evmap.api.availability.ChargepointStatus import java.util.* import kotlin.math.roundToInt @@ -152,4 +152,17 @@ fun supportsCarApiLevel3(ctx: CarContext): Boolean { } } return true +} + +class DummyReturnScreen(ctx: CarContext) : Screen(ctx) { + /* + Dummy screen to get around template refresh limitations. + It immediately pops back to the previous screen. + */ + override fun onGetTemplate(): Template { + screenManager.pop() + return MessageTemplate.Builder(carContext.getString(R.string.loading)).setLoading(true) + .build() + } + } \ No newline at end of file diff --git a/app/src/google/res/values-de/strings.xml b/app/src/google/res/values-de/strings.xml index 5c8595c3..ee79b753 100644 --- a/app/src/google/res/values-de/strings.xml +++ b/app/src/google/res/values-de/strings.xml @@ -32,4 +32,5 @@ In den Einstellungen kannst du auch zwischen Google Maps und OpenStreetMap (Mapbox) für die Kartendaten wechseln. alle Einträge ausgewählt alle Einträge abgewählt + Lade… \ No newline at end of file diff --git a/app/src/google/res/values/strings.xml b/app/src/google/res/values/strings.xml index 3dcfcd8c..fee88db5 100644 --- a/app/src/google/res/values/strings.xml +++ b/app/src/google/res/values/strings.xml @@ -32,4 +32,5 @@ In the settings you can also switch between Google Maps and OpenStreetMap (Mapbox) for the map data. selected all items deselected all items + Loading… \ No newline at end of file