From 3c76b58829377f3aaa857e1f7c34b9df5b77a396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Sat, 12 Jul 2025 13:13:56 +0100 Subject: [PATCH] Sort device language preference alphabetically --- .../activities/devicesettings/DeviceSettingsUtils.java | 3 ++- .../devicesettings/DeviceSpecificSettingsFragment.java | 2 ++ .../devices/huami/zeppos/ZeppOsSettingsCustomizer.java | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsUtils.java index 03052f4f92..ea4a3283fe 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSettingsUtils.java @@ -212,7 +212,8 @@ public final class DeviceSettingsUtils { } // Sort, keeping "auto" at the top - Arrays.sort(combined, 1, length, Comparator.comparing(o -> o[0])); + final boolean hasAuto = "auto".contentEquals(entryValues[0]); + Arrays.sort(combined, hasAuto ? 1 : 0, length, Comparator.comparing(o -> o[0])); // Reassign sorted values for (int i = 0; i < length; i++) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java index 32646a196a..9b2520c994 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/devicesettings/DeviceSpecificSettingsFragment.java @@ -402,6 +402,8 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i languageListPreference.setEntries(entries); languageListPreference.setEntryValues(values); } + + DeviceSettingsUtils.sortListPreference(languageListPreference); } String disconnectNotificationState = prefs.getString(PREF_DISCONNECT_NOTIFICATION, PREF_DO_NOT_DISTURB_OFF); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsSettingsCustomizer.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsSettingsCustomizer.java index f392ad4436..9a6c422d93 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsSettingsCustomizer.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huami/zeppos/ZeppOsSettingsCustomizer.java @@ -252,6 +252,7 @@ public class ZeppOsSettingsCustomizer extends HuamiSettingsCustomizer { setupGpsPreference(handler, prefs); setupButtonClickPreferences(handler); + // Since we populate the values dynamically, we need to sort it here final Preference languagePref = handler.findPreference("language"); if (languagePref != null) { DeviceSettingsUtils.sortListPreference((ListPreference) languagePref);