From 953015f09afaff3c603e3e2aa724baf387b3fb82 Mon Sep 17 00:00:00 2001 From: Joseph Rodiz Date: Wed, 15 Oct 2025 11:52:50 -0600 Subject: [PATCH] Use Device Encrypted storage context for locked state --- .../sessions/FirebaseSessionsComponent.kt | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessionsComponent.kt b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessionsComponent.kt index 68315e0558d..c62829250f0 100644 --- a/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessionsComponent.kt +++ b/firebase-sessions/src/main/kotlin/com/google/firebase/sessions/FirebaseSessionsComponent.kt @@ -150,9 +150,7 @@ internal interface FirebaseSessionsComponent { }, scope = CoroutineScope(blockingDispatcher), produceFile = { - appContext.dataStoreFile("firebaseSessions/sessionConfigsDataStore.data").also { - prepDataStoreFile(it) - } + produceFile(appContext, "firebaseSessions/sessionConfigsDataStore.data") }, ) @@ -172,12 +170,22 @@ internal interface FirebaseSessionsComponent { }, scope = CoroutineScope(blockingDispatcher), produceFile = { - appContext.dataStoreFile("firebaseSessions/sessionDataStore.data").also { - prepDataStoreFile(it) - } + produceFile(appContext, "firebaseSessions/sessionDataStore.data") }, ) + + private fun produceFile(appContext: Context, fileName: String): File { + val deContext = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + appContext.createDeviceProtectedStorageContext() + } else { + appContext + } + return deContext.dataStoreFile(fileName).also { + prepDataStoreFile(it) + } + } + private fun createDataStore( serializer: Serializer, corruptionHandler: ReplaceFileCorruptionHandler,