From ca1737acb8647931e357fb38ce5d0d922188136d Mon Sep 17 00:00:00 2001 From: Gergely Hegedus Date: Sun, 19 Nov 2023 01:49:27 +0200 Subject: [PATCH] FIx AppPreferences must be singleton --- .../fnives/android/qrcodetransfer/storage/AppPreferences.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fnives/android/qrcodetransfer/storage/AppPreferences.kt b/app/src/main/java/org/fnives/android/qrcodetransfer/storage/AppPreferences.kt index 14bc969..e706874 100644 --- a/app/src/main/java/org/fnives/android/qrcodetransfer/storage/AppPreferences.kt +++ b/app/src/main/java/org/fnives/android/qrcodetransfer/storage/AppPreferences.kt @@ -1,5 +1,6 @@ package org.fnives.android.qrcodetransfer.storage +import android.annotation.SuppressLint import android.content.Context import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -55,8 +56,11 @@ val LocalAppPreferences = compositionLocalOf { error("CompositionLocal LocalIntentText not present") } +@SuppressLint("StaticFieldLeak") +private var appPreferences: AppPreferences? = null + @Composable 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) } \ No newline at end of file