#13 add an option to force language X

This commit is contained in:
wkawecki 2022-03-30 23:14:02 +02:00
parent aa1893c36c
commit f0cd86b7a5
29 changed files with 184 additions and 2 deletions

View file

@ -118,7 +118,7 @@ eventually:
val utf8 = Charset.forName("UTF-8")
@AndroidEntryPoint
class MainActivity : AppCompatActivity(), Logging,
class MainActivity : BaseActivity(), Logging,
ActivityCompat.OnRequestPermissionsResultCallback {
companion object {
@ -1079,6 +1079,10 @@ class MainActivity : AppCompatActivity(), Logging,
chooseThemeDialog()
return true
}
R.id.preferences_language -> {
chooseLangDialog()
return true
}
else -> super.onOptionsItemSelected(item)
}
}
@ -1167,4 +1171,30 @@ class MainActivity : AppCompatActivity(), Logging,
}
}
private fun chooseLangDialog() {
/// Prepare dialog and its items
val builder = MaterialAlertDialogBuilder(this)
builder.setTitle(getString(R.string.preferences_language))
val languageLabels by lazy { resources.getStringArray(R.array.language_entries) }
val languageValues by lazy { resources.getStringArray(R.array.language_values) }
/// Load preferences and its value
val prefs = UIViewModel.getPreferences(this)
val editor: SharedPreferences.Editor = prefs.edit()
val lang = prefs.getString("lang", "zz")
debug("Lang from prefs: $lang")
builder.setSingleChoiceItems(languageLabels, languageValues.indexOf(lang)) { dialog, which ->
var lang = languageValues[which];
debug("Set lang pref to $lang")
editor.putString("lang", lang)
editor.apply()
dialog.dismiss()
}
val dialog = builder.create()
dialog.show()
}
}