From d5f55366a91050cca7d670d7b97447591edd5804 Mon Sep 17 00:00:00 2001 From: johan12345 Date: Mon, 22 Aug 2022 23:03:08 +0200 Subject: [PATCH] Android Auto: Avoid possible extra template refresh due to race condition --- .../google/java/net/vonforst/evmap/auto/MapScreen.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 75705fb6..d4f6e978 100644 --- a/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt +++ b/app/src/google/java/net/vonforst/evmap/auto/MapScreen.kt @@ -373,10 +373,8 @@ class MapScreen(ctx: CarContext, val session: EVMapSession) : // Reloading chargers in onStart does not seem to count towards content limit. // So let's do this so the user gets fresh chargers when re-entering the app. - chargers = null - availabilities.clear() invalidate() - filtersWithValue.observe(this) { + filtersWithValue.observe(this@MapScreen) { loadChargers() } } @@ -398,6 +396,12 @@ class MapScreen(ctx: CarContext, val session: EVMapSession) : } override fun onStop(owner: LifecycleOwner) { + // Reloading chargers in onStart does not seem to count towards content limit. + // So let's do this so the user gets fresh chargers when re-entering the app. + // Deleting the data already in onStop makes sure that we show a loading screen directly + // (i.e. onGetTemplate is not called while the old data is still there) + chargers = null + availabilities.clear() removeListeners() }