UIPreference: Add option for app language in UI preferences

Only visible on Android 13 and above

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-09 19:36:20 +05:30
parent 0da8cd94cd
commit 560c28cb07
3 changed files with 26 additions and 0 deletions

View File

@@ -19,22 +19,42 @@
package com.aurora.store.view.ui.preferences package com.aurora.store.view.ui.preferences
import android.content.Intent
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.Settings
import android.view.View import android.view.View
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.ListPreference import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceFragmentCompat
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences
import com.aurora.extensions.applyTheme import com.aurora.extensions.applyTheme
import com.aurora.extensions.isTAndAbove
import com.aurora.store.util.save import com.aurora.store.util.save
import java.util.Locale
class UIPreference : PreferenceFragmentCompat() { class UIPreference : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences_ui, rootKey) setPreferencesFromResource(R.xml.preferences_ui, rootKey)
findPreference<Preference>("PREFERENCE_APP_LANGUAGE")?.apply {
if (isTAndAbove()) {
summary = Locale.getDefault().displayName
setOnPreferenceClickListener {
startActivity(Intent(Settings.ACTION_APP_LOCALE_SETTINGS).apply {
data = Uri.parse("package:" + requireContext().packageName)
})
true
}
} else {
isVisible = false
}
}
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

View File

@@ -366,4 +366,5 @@
<string name="server_unreachable">Server unreachable</string> <string name="server_unreachable">Server unreachable</string>
<string name="failed_generating_session">Failed to generate session, error code: <xliff:g id="status_code">%1$d</xliff:g></string> <string name="failed_generating_session">Failed to generate session, error code: <xliff:g id="status_code">%1$d</xliff:g></string>
<string name="check_connectivity">Check internet connectivity</string> <string name="check_connectivity">Check internet connectivity</string>
<string name="app_language">App Language</string>
</resources> </resources>

View File

@@ -37,6 +37,11 @@
app:title="@string/pref_ui_accent_title" app:title="@string/pref_ui_accent_title"
app:useSimpleSummaryProvider="true" /> app:useSimpleSummaryProvider="true" />
<Preference
app:iconSpaceReserved="false"
app:key="PREFERENCE_APP_LANGUAGE"
app:title="@string/app_language" />
<PreferenceCategory <PreferenceCategory
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
app:singleLineTitle="false" app:singleLineTitle="false"