Move the stringresource setup out of the Activity
This commit is contained in:
@@ -70,6 +70,8 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Log.d("Lifetime Event", "MainActivity.onCreate")
|
Log.d("Lifetime Event", "MainActivity.onCreate")
|
||||||
|
|
||||||
setContent {
|
setContent {
|
||||||
|
StringResSetup()
|
||||||
|
|
||||||
val sharedPreferencesViewModel = prepareSharedViewModel()
|
val sharedPreferencesViewModel = prepareSharedViewModel()
|
||||||
AmethystTheme(sharedPreferencesViewModel) {
|
AmethystTheme(sharedPreferencesViewModel) {
|
||||||
val accountStateViewModel: AccountStateViewModel = viewModel()
|
val accountStateViewModel: AccountStateViewModel = viewModel()
|
||||||
@@ -87,11 +89,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
|
||||||
val locales = this.applicationContext.resources.configuration.locales
|
|
||||||
if (!locales.isEmpty) {
|
|
||||||
checkLanguage(locales.get(0).language)
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.d("Lifetime Event", "MainActivity.onResume")
|
Log.d("Lifetime Event", "MainActivity.onResume")
|
||||||
|
|
||||||
// starts muted every time
|
// starts muted every time
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.util.LruCache
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.platform.LocalConfiguration
|
import androidx.compose.ui.platform.LocalConfiguration
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.lifecycle.compose.LifecycleResumeEffect
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cache for stringResource because it seems to be > 1ms function in some phones
|
* Cache for stringResource because it seems to be > 1ms function in some phones
|
||||||
@@ -43,6 +44,19 @@ fun checkLanguage(currentLanguage: String) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun StringResSetup() {
|
||||||
|
val config = LocalConfiguration.current
|
||||||
|
if (!config.locales.isEmpty) {
|
||||||
|
val language = config.locales.get(0).language
|
||||||
|
LifecycleResumeEffect(language) {
|
||||||
|
checkLanguage(language)
|
||||||
|
|
||||||
|
onPauseOrDispose { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun stringRes(id: Int): String = resourceCache.get(id) ?: stringResource(id).also { resourceCache.put(id, it) }
|
fun stringRes(id: Int): String = resourceCache.get(id) ?: stringResource(id).also { resourceCache.put(id, it) }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user