Controls UI - Do not save empty structures

We currently save state for all structures. If no controls are
contained, there is no need to store the structure in the favorites
file.

Bug: 151137318
Test: atest ControlsControllerImplTest
Change-Id: I8b604c9321118e3f349d779bbdfaf6138b3557fb
This commit is contained in:
Matt Pietal
2020-03-10 08:44:33 -04:00
parent 4a4e1e45d0
commit 567b0f61b4
2 changed files with 15 additions and 3 deletions

View File

@@ -489,10 +489,12 @@ private object Favorites {
updatedStructure
} else { s }
structures.add(newStructure)
if (!newStructure.controls.isEmpty()) {
structures.add(newStructure)
}
}
if (!replaced) {
if (!replaced && !updatedStructure.controls.isEmpty()) {
structures.add(updatedStructure)
}

View File

@@ -521,7 +521,7 @@ class ControlsControllerImplTest : SysuiTestCase() {
}
@Test
fun testReplaceFavoritesForStructure_noFavorites() {
fun testReplaceFavoritesForStructure_noExistingFavorites() {
controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)
delayableExecutor.runAllReady()
@@ -530,6 +530,16 @@ class ControlsControllerImplTest : SysuiTestCase() {
controller.getFavoritesForComponent(TEST_COMPONENT))
}
@Test
fun testReplaceFavoritesForStructure_doNotStoreEmptyStructure() {
controller.replaceFavoritesForStructure(
StructureInfo(TEST_COMPONENT, "Home", emptyList<ControlInfo>()))
delayableExecutor.runAllReady()
assertEquals(0, controller.countFavoritesForComponent(TEST_COMPONENT))
assertEquals(emptyList<ControlInfo>(), controller.getFavoritesForComponent(TEST_COMPONENT))
}
@Test
fun testReplaceFavoritesForStructure_differentComponentsAreFilteredOut() {
controller.replaceFavoritesForStructure(TEST_STRUCTURE_INFO)