mirror of
https://github.com/home-assistant/android
synced 2024-10-07 00:29:32 +00:00
Invalidate Auto home on favorite state change (#3736)
This commit is contained in:
parent
670b17e76c
commit
644c4ad657
|
@ -27,7 +27,6 @@ import kotlinx.coroutines.delay
|
|||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -45,8 +44,7 @@ class MainVehicleScreen(
|
|||
private const val TAG = "MainVehicleScreen"
|
||||
}
|
||||
|
||||
private var favoriteEntities = flowOf<List<Entity<*>>>()
|
||||
private var entityList: List<Entity<*>> = listOf()
|
||||
private var favoritesEntities: List<Entity<*>> = listOf()
|
||||
private var favoritesList = emptyList<String>()
|
||||
private var isLoggedIn: Boolean? = null
|
||||
private val domains = mutableSetOf<String>()
|
||||
|
@ -74,14 +72,16 @@ class MainVehicleScreen(
|
|||
.distinct()
|
||||
.filter { it in SUPPORTED_DOMAINS }
|
||||
.toSet()
|
||||
if (newDomains.size != domains.size || newDomains != domains) {
|
||||
domains.clear()
|
||||
domains.addAll(newDomains)
|
||||
invalidate()
|
||||
}
|
||||
entityList = getFavoritesList(entities)
|
||||
var invalidate = newDomains.size != domains.size || newDomains != domains
|
||||
domains.clear()
|
||||
domains.addAll(newDomains)
|
||||
|
||||
val newFavorites = getFavoritesList(entities)
|
||||
invalidate = invalidate || (newFavorites.size != favoritesEntities.size || newFavorites.toSet() != favoritesEntities.toSet())
|
||||
favoritesEntities = newFavorites
|
||||
|
||||
if (invalidate) invalidate()
|
||||
}
|
||||
favoriteEntities = allEntities.map { getFavoritesList(it) }
|
||||
}
|
||||
}
|
||||
lifecycleScope.launch {
|
||||
|
@ -113,9 +113,9 @@ class MainVehicleScreen(
|
|||
serverManager.integrationRepository(serverId.value),
|
||||
carContext.getString(commonR.string.favorites),
|
||||
domains,
|
||||
favoriteEntities,
|
||||
flowOf(),
|
||||
allEntities
|
||||
) { onChangeServer(it) }.getEntityGridItems(entityList)
|
||||
) { onChangeServer(it) }.getEntityGridItems(favoritesEntities)
|
||||
} else {
|
||||
var builder = ItemList.Builder()
|
||||
if (domains.isNotEmpty()) {
|
||||
|
|
Loading…
Reference in a new issue