Hide all entities when we dont have domains to show, show empty message just in case (#3767)

This commit is contained in:
Daniel Shokouhi 2023-08-07 13:35:50 -07:00 committed by GitHub
parent 73bc7b01fa
commit 6a8fd5989a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 19 deletions

View file

@ -189,6 +189,8 @@ fun getDomainList(
)
}
}
listBuilder.setNoItemsMessage(carContext.getString(R.string.no_supported_entities))
return listBuilder
}

View file

@ -39,6 +39,7 @@ class DomainListScreen(
}
private val domains = mutableSetOf<String>()
private var domainsAdded = false
override fun onDrivingOptimizedChanged(newState: Boolean) {
invalidate()
@ -52,11 +53,11 @@ class DomainListScreen(
.distinct()
.filter { it in SUPPORTED_DOMAINS }
.toSet()
if (newDomains.size != domains.size || newDomains != domains) {
domains.clear()
domains.addAll(newDomains)
invalidate()
}
val invalidate = newDomains.size != domains.size || newDomains != domains || !domainsAdded
domains.clear()
domains.addAll(newDomains)
domainsAdded = true
if (invalidate) invalidate()
}
}
}
@ -82,7 +83,7 @@ class DomainListScreen(
setActionStrip(nativeModeActionStrip(carContext))
}
val domainBuild = domainList.build()
if (domainBuild.items.isEmpty()) {
if (!domainsAdded) {
setLoading(true)
} else {
setLoading(false)

View file

@ -109,18 +109,20 @@ class EntityGridVehicleScreen(
allEntities
).build()
)
listBuilder.addItem(
getDomainsGridItem(
carContext,
screenManager,
serverManager,
integrationRepository,
serverId,
allEntities,
prefsRepository,
entityRegistry
).build()
)
if (domains.isNotEmpty()) {
listBuilder.addItem(
getDomainsGridItem(
carContext,
screenManager,
serverManager,
integrationRepository,
serverId,
allEntities,
prefsRepository,
entityRegistry
).build()
)
}
if (shouldSwitchServers) {
listBuilder.addItem(
getChangeServerGridItem(

View file

@ -124,7 +124,7 @@ class MainVehicleScreen(
) { onChangeServer(it) }.getEntityGridItems(favoritesEntities)
} else {
var builder = ItemList.Builder()
if (domains.isNotEmpty()) {
if (domains.isNotEmpty() && domainsAdded) {
builder = getDomainList(
domains,
carContext,