diff --git a/src/org/kde/kdeconnect/Plugins/PluginFactory.java b/src/org/kde/kdeconnect/Plugins/PluginFactory.java index 22fb7261..ee818f7e 100644 --- a/src/org/kde/kdeconnect/Plugins/PluginFactory.java +++ b/src/org/kde/kdeconnect/Plugins/PluginFactory.java @@ -18,13 +18,20 @@ import org.atteo.classindex.IndexAnnotated; import org.kde.kdeconnect.Device; import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; public class PluginFactory { + public static void sortPluginList(List plugins) { + plugins.sort(Comparator.comparing(o -> pluginInfo.get(o).displayName)); + } + @IndexAnnotated public @interface LoadablePlugin { } //Annotate plugins with this so PluginFactory finds them diff --git a/src/org/kde/kdeconnect/UserInterface/PluginSettingsListFragment.java b/src/org/kde/kdeconnect/UserInterface/PluginSettingsListFragment.java index ac058972..e58d5a59 100644 --- a/src/org/kde/kdeconnect/UserInterface/PluginSettingsListFragment.java +++ b/src/org/kde/kdeconnect/UserInterface/PluginSettingsListFragment.java @@ -17,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView; import org.kde.kdeconnect.BackgroundService; import org.kde.kdeconnect.Device; +import org.kde.kdeconnect.Plugins.PluginFactory; import org.kde.kdeconnect_tp.R; import java.util.List; @@ -84,6 +85,7 @@ public class PluginSettingsListFragment extends PreferenceFragmentCompat { return; } List plugins = device.getSupportedPlugins(); + PluginFactory.sortPluginList(plugins); for (final String pluginKey : plugins) { //TODO: Use PreferenceManagers context