FIx AppPreferences must be singleton

This commit is contained in:
Gergely Hegedus 2023-11-19 01:49:27 +02:00
parent 62fb6496e7
commit ca1737acb8

View file

@ -1,5 +1,6 @@
package org.fnives.android.qrcodetransfer.storage package org.fnives.android.qrcodetransfer.storage
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.CompositionLocalProvider
@ -55,8 +56,11 @@ val LocalAppPreferences = compositionLocalOf<AppPreferences> {
error("CompositionLocal LocalIntentText not present") error("CompositionLocal LocalIntentText not present")
} }
@SuppressLint("StaticFieldLeak")
private var appPreferences: AppPreferences? = null
@Composable @Composable
fun LocalAppPreferencesProvider(context: Context, content: @Composable () -> Unit) { fun LocalAppPreferencesProvider(context: Context, content: @Composable () -> Unit) {
val preferences = remember(context) { AppPreferences(context) } val preferences = appPreferences ?: AppPreferences(context.applicationContext).also { appPreferences = it }
CompositionLocalProvider(LocalAppPreferences provides preferences, content = content) CompositionLocalProvider(LocalAppPreferences provides preferences, content = content)
} }