[Android] Fixed sorting on Appearance screen for some languages (#36358)

* [Android] Fixed sorting on Appearance screen for some languages

Resolves https://github.com/brave/brave-browser/issues/55281
This commit is contained in:
AlexeyBarabash
2026-05-13 14:22:32 +01:00
committed by GitHub
parent c32587b7b8
commit 49edaf92c9
3 changed files with 121 additions and 14 deletions
@@ -52,18 +52,17 @@ import java.util.Map;
public class AppearancePreferences extends AppearanceSettingsFragment
implements Preference.OnPreferenceChangeListener, BraveRewardsObserver {
public static final String PREF_HIDE_BRAVE_REWARDS_ICON = "hide_brave_rewards_icon";
public static final String PREF_HIDE_BRAVE_REWARDS_ICON_MIGRATION =
"hide_brave_rewards_icon_migration";
public static final String PREF_SHOW_BRAVE_REWARDS_ICON = "show_brave_rewards_icon";
public static final String PREF_ADS_SWITCH = "ads_switch";
public static final String PREF_BRAVE_NIGHT_MODE_ENABLED = "brave_night_mode_enabled_key";
public static final String PREF_BRAVE_DISABLE_SHARING_HUB = "brave_disable_sharing_hub";
public static final String PREF_BRAVE_ENABLE_TAB_GROUPS = "brave_enable_tab_groups";
public static final String PREF_ENABLE_MULTI_WINDOWS = "enable_multi_windows";
public static final String PREF_SHOW_UNDO_WHEN_TABS_CLOSED = "show_undo_when_tabs_closed";
public static final String PREF_ADDRESS_BAR = "address_bar";
private static final String PREF_BRAVE_CUSTOMIZE_MENU = "brave_customize_menu";
/* package */ static final String PREF_ADS_SWITCH = "ads_switch";
/* package */ static final String PREF_BRAVE_NIGHT_MODE_ENABLED =
"brave_night_mode_enabled_key";
/* package */ static final String PREF_BRAVE_DISABLE_SHARING_HUB = "brave_disable_sharing_hub";
/* package */ static final String PREF_BRAVE_ENABLE_TAB_GROUPS = "brave_enable_tab_groups";
/* package */ static final String PREF_ENABLE_MULTI_WINDOWS = "enable_multi_windows";
/* package */ static final String PREF_SHOW_UNDO_WHEN_TABS_CLOSED =
"show_undo_when_tabs_closed";
/* package */ static final String PREF_BRAVE_CUSTOMIZE_MENU = "brave_customize_menu";
private BraveRewardsNativeWorker mBraveRewardsNativeWorker;
@@ -97,10 +96,7 @@ public class AppearancePreferences extends AppearanceSettingsFragment
removePreferenceIfPresent(PREF_ADDRESS_BAR);
}
// Correct the order of the preferences.
setPreferenceOrder(AppearanceSettingsFragment.PREF_UI_THEME, 0);
setPreferenceOrder(PREF_BRAVE_CUSTOMIZE_MENU, 1);
setPreferenceOrder(PREF_ADDRESS_BAR, 2);
applyOrdering();
}
private void removePreferenceIfPresent(String key) {
@@ -360,6 +356,24 @@ public class AppearancePreferences extends AppearanceSettingsFragment
}
}
// Both XMLs (upstream and brave) independently assign sequential order values starting from 0,
// causing collisions. Setting all preferences to explicit unique values prevents alphabetical
// tie-breaking, which would otherwise produce language-dependent ordering.
private void applyOrdering() {
setPreferenceOrder(AppearanceSettingsFragment.PREF_UI_THEME, 0);
setPreferenceOrder(PREF_BRAVE_CUSTOMIZE_MENU, 1);
setPreferenceOrder(AppearanceSettingsFragment.PREF_TOOLBAR_SHORTCUT, 2);
setPreferenceOrder(PREF_ADDRESS_BAR, 3);
setPreferenceOrder(BravePreferenceKeys.BRAVE_BOTTOM_TOOLBAR_ENABLED_KEY, 4);
setPreferenceOrder(PREF_SHOW_BRAVE_REWARDS_ICON, 5);
setPreferenceOrder(PREF_ADS_SWITCH, 6);
setPreferenceOrder(PREF_BRAVE_NIGHT_MODE_ENABLED, 7);
setPreferenceOrder(PREF_BRAVE_DISABLE_SHARING_HUB, 8);
setPreferenceOrder(PREF_BRAVE_ENABLE_TAB_GROUPS, 9);
setPreferenceOrder(PREF_ENABLE_MULTI_WINDOWS, 10);
setPreferenceOrder(PREF_SHOW_UNDO_WHEN_TABS_CLOSED, 11);
}
private void setPreferenceOrder(String key, int order) {
Preference preference = findPreference(key);
if (preference != null) {