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,