From d28687bc1c7d32dd2dcd189fa95905eab1663fee Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Tue, 12 May 2026 11:27:37 +0500 Subject: [PATCH] add lang toggle in setttings --- .../sar/basedbank/ui/home/SettingsFragment.kt | 15 +++++++++ app/src/main/res/layout/fragment_settings.xml | 33 +++++++++++++++++++ app/src/main/res/values-b+dv/strings.xml | 3 ++ app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 54 insertions(+) diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt index 17c2157..f064243 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt @@ -6,6 +6,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatDelegate +import androidx.appcompat.app.AppCompatDelegate.setApplicationLocales +import androidx.core.os.LocaleListCompat import androidx.fragment.app.Fragment import sh.sar.basedbank.R import sh.sar.basedbank.databinding.FragmentSettingsBinding @@ -42,6 +44,19 @@ class SettingsFragment : Fragment() { prefs.edit().putString("theme", key).apply() AppCompatDelegate.setDefaultNightMode(mode) } + + // Language + val currentLocales = AppCompatDelegate.getApplicationLocales() + val currentLang = if (currentLocales.isEmpty) "en" else currentLocales[0]?.language ?: "en" + binding.languageToggle.check( + if (currentLang == "dv") R.id.btnLangDhivehi else R.id.btnLangEnglish + ) + + binding.languageToggle.addOnButtonCheckedListener { _, checkedId, isChecked -> + if (!isChecked) return@addOnButtonCheckedListener + val tag = if (checkedId == R.id.btnLangDhivehi) "dv" else "en" + setApplicationLocales(LocaleListCompat.forLanguageTags(tag)) + } } override fun onResume() { diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 4ec3325..cbf4894 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -52,6 +52,39 @@ + + + + + + + + + + diff --git a/app/src/main/res/values-b+dv/strings.xml b/app/src/main/res/values-b+dv/strings.xml index f84c72a..ef54901 100644 --- a/app/src/main/res/values-b+dv/strings.xml +++ b/app/src/main/res/values-b+dv/strings.xml @@ -86,6 +86,9 @@ ސިސްޓަމް ލައިޓް ޑާކް + ބަސް + English + ދިވެހި އެކައުންޓްތައް diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 907b608..6289079 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,6 +85,9 @@ System Light Dark + Language + English + ދިވެހި Accounts