Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c892d30 authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

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
parent de010ce1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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)
+12 −0
Original line number Diff line number Diff line
@@ -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())
    }
}