diff options
| author | 2020-08-19 12:57:19 -0400 | |
|---|---|---|
| committer | 2020-08-19 12:57:19 -0400 | |
| commit | 9c892d30f1b51c45eed2081d23a28b22cd98fb54 (patch) | |
| tree | 9215be5e803326c0bb193bc4dad2ef80f9b94f23 | |
| parent | de010ce1d278b7ee91cfe968c4fbd349951886ee (diff) | |
Don't create a file with empty favorites
A file could be created with empty favorites, preventing a late restore
(from D2D) from overwriting it.
Test: atest ControlsFavoritePersistenceWrapperTest
Test: manual D2d restore
Bug: 165200632
Change-Id: Ia99b8e98e4f62d8d0c7385c820c645f3aaabe6f3
2 files changed, 16 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt index 1bda841d4a63..d930c98cabe1 100644 --- a/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt +++ b/packages/SystemUI/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapper.kt @@ -87,6 +87,10 @@ class ControlsFavoritePersistenceWrapper( * @param list a list of favorite controls. The list will be stored in the same order. */ fun storeFavorites(structures: List<StructureInfo>) { + if (structures.isEmpty() && !file.exists()) { + // Do not create a new file to store nothing + return + } executor.execute { Log.d(TAG, "Saving data to file: $file") val atomicFile = AtomicFile(file) diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt index 861c6207f5b0..690b9a7248be 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/controls/controller/ControlsFavoritePersistenceWrapperTest.kt @@ -25,6 +25,7 @@ import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.time.FakeSystemClock import org.junit.After import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse import org.junit.Before import org.junit.Test import org.junit.runner.RunWith @@ -78,4 +79,15 @@ class ControlsFavoritePersistenceWrapperTest : SysuiTestCase() { assertEquals(list, wrapper.readFavorites()) } + + @Test + fun testSaveEmptyOnNonExistingFile() { + if (file.exists()) { + file.delete() + } + + wrapper.storeFavorites(emptyList()) + + assertFalse(file.exists()) + } } |