diff --git a/app/src/main/java/de/jrpie/android/launcher/Application.kt b/app/src/main/java/de/jrpie/android/launcher/Application.kt index ddf6531..a262e68 100644 --- a/app/src/main/java/de/jrpie/android/launcher/Application.kt +++ b/app/src/main/java/de/jrpie/android/launcher/Application.kt @@ -1,5 +1,6 @@ package de.jrpie.android.launcher +import android.content.SharedPreferences import android.os.Build import android.os.Build.VERSION_CODES import androidx.preference.PreferenceManager @@ -9,7 +10,13 @@ import de.jrpie.android.launcher.preferences.LauncherPreferences class Application : android.app.Application() { var torchManager: TorchManager? = null - var customAppNames: HashMap = HashMap() + private var customAppNames: HashMap? = null + private val listener = SharedPreferences.OnSharedPreferenceChangeListener { _, pref -> + if (pref == getString(R.string.settings_apps_custom_names_key)) { + customAppNames = LauncherPreferences.apps().customNames() + } + } + override fun onCreate() { super.onCreate() @@ -20,13 +27,12 @@ class Application : android.app.Application() { val preferences = PreferenceManager.getDefaultSharedPreferences(this) LauncherPreferences.init(preferences, this.resources) - customAppNames = LauncherPreferences.apps().customNames() - LauncherPreferences.getSharedPreferences() - .registerOnSharedPreferenceChangeListener { _, pref -> - if (pref == getString(R.string.settings_apps_custom_names_key)) { - customAppNames = LauncherPreferences.apps().customNames() - } - } + .registerOnSharedPreferenceChangeListener(listener) + } + + fun getCustomAppNames(): HashMap { + return (customAppNames ?: LauncherPreferences.apps().customNames() ?: HashMap()) + .also { customAppNames = it } } } diff --git a/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt b/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt index 23d7870..519798d 100644 --- a/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt +++ b/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt @@ -30,7 +30,7 @@ class DetailedAppInfo( ) fun getCustomLabel(context: Context): CharSequence { - val map = (context.applicationContext as? Application)?.customAppNames ?: return label + val map = (context.applicationContext as? Application)?.getCustomAppNames() ?: return label return map[app] ?: label } diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt index 555e771..43d3f22 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt @@ -76,7 +76,7 @@ class AppsRecyclerAdapter( override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { - var appLabel = appsListDisplayed[i].label.toString() + var appLabel = appsListDisplayed[i].getCustomLabel(activity) if (layout.useBadgedText) { appLabel = activity.packageManager.getUserBadgedLabel(