[OOBE] Add corruptionHandler to handle file corruption
Bug: 393371979
Flag: com.android.systemui.shared.new_touchpad_gestures_tutorial
Test: see ag/31154470
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:fd7a90ded20ad57aea7f42d371d0d2004be9b8e3)
Merged-In: Ie732cbab915573f8693ca3ddc83a25e044a96cbf
Change-Id: Ie732cbab915573f8693ca3ddc83a25e044a96cbf
diff --git a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/data/repository/TutorialSchedulerRepository.kt b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/data/repository/TutorialSchedulerRepository.kt
index a89ec70..315d3b1 100644
--- a/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/data/repository/TutorialSchedulerRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/inputdevice/tutorial/data/repository/TutorialSchedulerRepository.kt
@@ -18,8 +18,10 @@
import android.content.Context
import androidx.datastore.core.DataStore
+import androidx.datastore.core.handlers.ReplaceFileCorruptionHandler
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
+import androidx.datastore.preferences.core.emptyPreferences
import androidx.datastore.preferences.core.longPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import com.android.systemui.dagger.SysUISingleton
@@ -45,7 +47,12 @@
) : this(applicationContext, backgroundScope, dataStoreName = DATASTORE_NAME)
private val Context.dataStore: DataStore<Preferences> by
- preferencesDataStore(name = dataStoreName, scope = backgroundScope)
+ preferencesDataStore(
+ name = dataStoreName,
+ corruptionHandler =
+ ReplaceFileCorruptionHandler(produceNewData = { emptyPreferences() }),
+ scope = backgroundScope,
+ )
suspend fun isLaunched(deviceType: DeviceType): Boolean = loadData()[deviceType]!!.isLaunched