Skip to content

Commit 126fcce

Browse files
committed
Cache SharedPreferences in LocaleUtils
Introduce a volatile cachedPrefs field and populate it in preload. Use cachedPrefs (with lazy initialization) in getPersistedData and persist to avoid repeated PreferenceManager.getDefaultSharedPreferences calls. No behavioral change to language persistence — this is a small performance/optimization and visibility fix.
1 parent 41e073e commit 126fcce

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

app/src/main/java/org/ole/planet/myplanet/utils/LocaleUtils.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ import java.util.Locale
1010
object LocaleUtils {
1111
private const val SELECTED_LANGUAGE = "Locale.Helper.Selected.Language"
1212
@Volatile private var cachedLanguage: String? = null
13+
@Volatile private var cachedPrefs: android.content.SharedPreferences? = null
1314

1415
fun preload(context: Context) {
1516
if (cachedLanguage == null) {
1617
val prefs = PreferenceManager.getDefaultSharedPreferences(context.applicationContext)
18+
cachedPrefs = prefs
1719
cachedLanguage = prefs.getString(SELECTED_LANGUAGE, null) ?: Locale.getDefault().language
1820
}
1921
}
@@ -45,13 +47,13 @@ object LocaleUtils {
4547
}
4648

4749
private fun getPersistedData(context: Context, defaultLanguage: String): String {
48-
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
50+
val preferences = cachedPrefs ?: PreferenceManager.getDefaultSharedPreferences(context).also { cachedPrefs = it }
4951
return preferences.getString(SELECTED_LANGUAGE, defaultLanguage) ?: defaultLanguage
5052
}
5153

5254
private fun persist(context: Context, language: String) {
5355
cachedLanguage = language
54-
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
56+
val preferences = cachedPrefs ?: PreferenceManager.getDefaultSharedPreferences(context).also { cachedPrefs = it }
5557
preferences.edit { putString(SELECTED_LANGUAGE, language) }
5658
}
5759
}

0 commit comments

Comments
 (0)