From 69e3afc426f56cbd9baafa9e9602ed9970f037a0 Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Sun, 14 May 2023 14:49:31 +0530 Subject: [PATCH] feat: add per app language for devices running Android 13+ (#353) --- app/phone/src/main/AndroidManifest.xml | 4 +-- .../fragments/SettingsLanguageFragment.kt | 18 +++++++++++++ core/src/main/res/values/strings.xml | 1 + .../res/xml/fragment_settings_language.xml | 6 +++++ core/src/main/res/xml/locales_config.xml | 27 +++++++++++++++++++ 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 core/src/main/res/xml/locales_config.xml diff --git a/app/phone/src/main/AndroidManifest.xml b/app/phone/src/main/AndroidManifest.xml index b7e06395..b3509ff5 100644 --- a/app/phone/src/main/AndroidManifest.xml +++ b/app/phone/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ android:fullBackupOnly="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:localeConfig="@xml/locales_config" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:theme="@style/Theme.Findroid"> @@ -48,8 +49,7 @@ - + tools:node="remove" /> \ No newline at end of file diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/SettingsLanguageFragment.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/SettingsLanguageFragment.kt index 2f1b22dc..df633a48 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/SettingsLanguageFragment.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/fragments/SettingsLanguageFragment.kt @@ -1,6 +1,11 @@ package dev.jdtech.jellyfin.fragments +import android.content.Intent +import android.net.Uri +import android.os.Build import android.os.Bundle +import android.provider.Settings +import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import dev.jdtech.jellyfin.core.R as CoreR @@ -8,5 +13,18 @@ import dev.jdtech.jellyfin.core.R as CoreR class SettingsLanguageFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(CoreR.xml.fragment_settings_language, rootKey) + findPreference("pref_app_language")?.apply { + isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU + summary = requireContext().resources.configuration.locales.get(0).displayName + setOnPreferenceClickListener { + startActivity( + Intent( + Settings.ACTION_APP_LOCALE_SETTINGS, + Uri.parse("package:${requireContext().packageName}") + ) + ) + true + } + } } } diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 1554f899..71433df3 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -60,6 +60,7 @@ Language Preferred audio language Preferred subtitle language + App language Initializing… Servers Player diff --git a/core/src/main/res/xml/fragment_settings_language.xml b/core/src/main/res/xml/fragment_settings_language.xml index 478a2f34..cb8c8eea 100644 --- a/core/src/main/res/xml/fragment_settings_language.xml +++ b/core/src/main/res/xml/fragment_settings_language.xml @@ -1,5 +1,11 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file