From 3b7f78c618e52ff1063bb8b1ade1d797bdacc48a Mon Sep 17 00:00:00 2001 From: cyberarm Date: Wed, 10 Feb 2021 15:48:08 -0600 Subject: [PATCH] Added auto sort for all the things --- .../backend/Backend.java | 46 +++++++++++++++++++ .../dialogs/ActionDialog.java | 1 + .../dialogs/CloneDialog.java | 2 + .../dialogs/GroupDialog.java | 1 + .../dialogs/PresetDialog.java | 5 ++ .../dialogs/VariableDialog.java | 1 + .../ui/editor/GroupsFragment.java | 1 + .../ui/settings/presets/PresetsFragment.java | 2 + 8 files changed, 59 insertions(+) diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java index db3c175..6313410 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java @@ -322,6 +322,52 @@ public class Backend { writeToFile(TAC.SETTINGS_PATH, gsonForSettings().toJson(settings)); } + public void sortGroups() { + Collections.sort(config.getGroups(), new Comparator() { + @Override + public int compare(Group a, Group b) { + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + } + }); + } + + + public void sortActions(Group group) { + Collections.sort(group.getActions(), new Comparator() { + @Override + public int compare(Action a, Action b) { + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + } + }); + } + + public void sortVariables(Action action) { + Collections.sort(action.getVariables(), new Comparator() { + @Override + public int compare(Variable a, Variable b) { + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + } + }); + } + + public void sortGroupPresets() { + Collections.sort(config.getPresets().getGroups(), new Comparator() { + @Override + public int compare(Group a, Group b) { + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + } + }); + } + + public void sortActionsPresets() { + Collections.sort(config.getPresets().getActions(), new Comparator() { + @Override + public int compare(Action a, Action b) { + return a.name.toLowerCase().compareTo(b.name.toLowerCase()); + } + }); + } + public void writeDefaultSettings() { settings = new Settings(TACNET.DEFAULT_HOSTNAME, TACNET.DEFAULT_PORT, "", false, false, false); saveSettings(); diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java index a198ca5..280f9b1 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java @@ -108,6 +108,7 @@ public class ActionDialog extends TimeCraftersDialog { group.getActions().add(action); } + Backend.instance().sortActions(group); Backend.instance().configChanged(); ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java index 7a73872..06c6a5b 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java @@ -108,6 +108,7 @@ public class CloneDialog extends TimeCraftersDialog { group.getActions().add(actionClone); + Backend.instance().sortActions(group); Backend.instance().configChanged(); ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { @@ -121,6 +122,7 @@ public class CloneDialog extends TimeCraftersDialog { Backend.instance().getConfig().getGroups().add(groupClone); + Backend.instance().sortGroups(); Backend.instance().configChanged(); GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java index 42bcda9..f1da3ae 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java @@ -94,6 +94,7 @@ public class GroupDialog extends TimeCraftersDialog { Backend.instance().getConfig().getGroups().add(group); } + Backend.instance().sortGroups(); Backend.instance().configChanged(); GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java index a31a687..434934f 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java @@ -188,12 +188,14 @@ public class PresetDialog extends TimeCraftersDialog { if (isNewPreset) { Backend.instance().getConfig().getPresets().getGroups().add(groupClone); + Backend.instance().sortGroupPresets(); GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment(); Snackbar.make(fragment.getActivity().findViewById(R.id.snackbar_host), "Saved group preset: " + presetName, Snackbar.LENGTH_LONG).show(); } else { // Don't repopulate presets when it is not possible PresetsFragment fragment = (PresetsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { + Backend.instance().sortGroupPresets(); fragment.populatePresets(); } } @@ -220,12 +222,15 @@ public class PresetDialog extends TimeCraftersDialog { if (isNewPreset) { Backend.instance().getConfig().getPresets().getActions().add(actionClone); + Backend.instance().sortActionsPresets(); ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment(); Snackbar.make(fragment.getActivity().findViewById(R.id.snackbar_host), "Saved action preset: " + presetName, Snackbar.LENGTH_LONG).show(); } else { // Don't repopulate presets when it is not possible PresetsFragment fragment = (PresetsFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { + Backend.instance().sortActionsPresets(); + fragment.populatePresets(); } } diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java index fd03b61..3477a59 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java @@ -162,6 +162,7 @@ public class VariableDialog extends TimeCraftersDialog { action.getVariables().add(variable); } + Backend.instance().sortVariables(action); Backend.instance().configChanged(); VariablesFragment fragment = (VariablesFragment) getFragmentManager().getPrimaryNavigationFragment(); if (fragment != null) { diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/GroupsFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/GroupsFragment.java index a3d2248..bbf3253 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/GroupsFragment.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/GroupsFragment.java @@ -158,6 +158,7 @@ public class GroupsFragment extends TimeCraftersFragment { @Override public void run(TimeCraftersDialog dialog) { Backend.instance().getConfig().getGroups().remove(group); + Backend.instance().sortGroups(); Backend.instance().configChanged(); Backend.getStorage().remove(deleteActionKey); diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsFragment.java index c77a3fe..4921f7b 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsFragment.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsFragment.java @@ -105,6 +105,7 @@ public class PresetsFragment extends TimeCraftersFragment { if (Backend.instance().getConfig().getPresets().getGroups().get(group_index) != null) { Backend.instance().getConfig().getPresets().getGroups().remove(group_index); + Backend.instance().sortGroupPresets(); Backend.instance().configChanged(); } @@ -182,6 +183,7 @@ public class PresetsFragment extends TimeCraftersFragment { if (Backend.instance().getConfig().getPresets().getActions().get(action_index) != null) { Backend.instance().getConfig().getPresets().getActions().remove(action_index); + Backend.instance().sortActionsPresets(); Backend.instance().configChanged(); }