32 lines
1.1 KiB
Kotlin
32 lines
1.1 KiB
Kotlin
|
package info.nightscout.androidaps.utils
|
||
|
|
||
|
import android.content.Context
|
||
|
import info.nightscout.androidaps.R
|
||
|
import java.util.*
|
||
|
|
||
|
object LocaleHelper {
|
||
|
fun update(context: Context) =
|
||
|
updateResources(context, currentLanguage())
|
||
|
|
||
|
fun currentLanguage(): String =
|
||
|
SP.getString(R.string.key_language, Locale.getDefault().language)
|
||
|
|
||
|
fun currentLocale(): Locale =
|
||
|
Locale(SP.getString(R.string.key_language, Locale.getDefault().language))
|
||
|
|
||
|
@Suppress("DEPRECATION")
|
||
|
private fun updateResources(context: Context, language: String) {
|
||
|
var locale = Locale(language)
|
||
|
if (language.contains("_")) {
|
||
|
// language with country like pt_BR defined in arrays.xml
|
||
|
val lang = language.substring(0, 2)
|
||
|
val country = language.substring(3, 5)
|
||
|
locale = Locale(lang, country)
|
||
|
}
|
||
|
|
||
|
Locale.setDefault(locale)
|
||
|
val resources = context.resources
|
||
|
resources.configuration.setLocale(locale)
|
||
|
resources.updateConfiguration(resources.configuration, resources.displayMetrics)
|
||
|
}
|
||
|
}
|