From eea2b7417efa09d04b6c88aae9d76266d6852297 Mon Sep 17 00:00:00 2001 From: Stypox Date: Mon, 28 Jul 2025 15:29:06 +0200 Subject: [PATCH] Fix player formatters resetting too early on language change formatters() is called again by the player before the user has a chance to click on the language in the language chooser. So the correct solution would probably be to attach to https://developer.android.com/reference/android/content/Intent#ACTION_LOCALE_CHANGED, but let's keep it simple. I added `PlayerHelper.resetFormat();` in `ContentSettingsFragment.onDestroy()` and it works. It will mean the player formatters will be reset every time the user exits content settings, but whatever. --- .../org/schabi/newpipe/settings/ContentSettingsFragment.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index e1d0e7be3..b855f7c38 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -54,7 +54,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment { final Intent intent = new Intent(Settings.ACTION_APP_LOCALE_SETTINGS) .setData(Uri.fromParts("package", requireContext().getPackageName(), null)); startActivity(intent); - PlayerHelper.resetFormat(); return true; }); newAppLanguagePref.setVisible(true); @@ -66,7 +65,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment { final String systemLang = getString(R.string.default_localization_key); final String tag = systemLang.equals(language) ? null : language; AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(tag)); - PlayerHelper.resetFormat(); return true; }); } @@ -110,5 +108,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment { NewPipe.setupLocalization( Localization.getPreferredLocalization(context), Localization.getPreferredContentCountry(context)); + PlayerHelper.resetFormat(); } }