From 40525c8466a6b2795d76649b40cf24ab2073f234 Mon Sep 17 00:00:00 2001 From: cyberarm Date: Wed, 4 Nov 2020 10:05:59 -0600 Subject: [PATCH] Fixed adding action presets to a group preset would incorrectly add the action to a config group instead --- .../dialogs/ActionDialog.java | 1 + .../dialogs/AddFromPresetDialog.java | 20 ++++++++++++++++++- .../dialogs/CloneDialog.java | 7 ++++++- .../ui/editor/ActionsFragment.java | 6 ++++++ .../ui/editor/GroupsFragment.java | 2 +- 5 files changed, 33 insertions(+), 3 deletions(-) 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 da13acf..a198ca5 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java @@ -3,6 +3,7 @@ package org.timecrafters.TimeCraftersConfigurationTool.dialogs; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java index a434c6f..79da135 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java @@ -3,6 +3,7 @@ package org.timecrafters.TimeCraftersConfigurationTool.dialogs; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -54,6 +55,7 @@ public class AddFromPresetDialog extends TimeCraftersDialog { Button name = view.findViewById(R.id.name); TextView description = view.findViewById(R.id.description); name.setText(group.name); + description.setVisibility(View.GONE); if (i % 2 == 0) { // even view.setBackgroundColor(getResources().getColor(R.color.list_even)); @@ -61,7 +63,20 @@ public class AddFromPresetDialog extends TimeCraftersDialog { view.setBackgroundColor(getResources().getColor(R.color.list_odd)); } - description.setVisibility(View.GONE); + final int index = i; + name.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CloneDialog dialog = new CloneDialog(); + Bundle bundle = new Bundle(); + bundle.putBoolean("is_cloning_preset", true); + bundle.putInt("group_index", index); + dialog.setArguments(bundle); + dialog.show(getFragmentManager(), "clone_group_preset"); + + dismiss(); + } + }); container.addView(view); i++; @@ -86,6 +101,9 @@ public class AddFromPresetDialog extends TimeCraftersDialog { CloneDialog dialog = new CloneDialog(); Bundle bundle = new Bundle(); bundle.putBoolean("is_cloning_preset", true); + if (getArguments().getBoolean("group_is_preset", false)) { + bundle.putBoolean("group_is_preset", true); + } bundle.putInt("group_index", getArguments().getInt("group_index")); bundle.putInt("action_index", index); dialog.setArguments(bundle); 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 57372db..7a73872 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java @@ -37,7 +37,12 @@ public class CloneDialog extends TimeCraftersDialog { if (getArguments().getBoolean("is_cloning_preset", false)) { if (getArguments().getInt("action_index", -1) != -1) { - this.group = Backend.instance().getConfig().getGroups().get(getArguments().getInt("group_index")); + if (getArguments().getBoolean("group_is_preset", false)) { + this.group = Backend.instance().getConfig().getPresets().getGroups().get(getArguments().getInt("group_index")); + } else { + this.group = Backend.instance().getConfig().getGroups().get(getArguments().getInt("group_index")); + } + this.action = Backend.instance().getConfig().getPresets().getActions().get(getArguments().getInt("action_index")); } else { this.group = Backend.instance().getConfig().getPresets().getGroups().get(getArguments().getInt("group_index")); diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/ActionsFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/ActionsFragment.java index 42197ff..aa4a495 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/ActionsFragment.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/ActionsFragment.java @@ -2,6 +2,7 @@ package org.timecrafters.TimeCraftersConfigurationTool.ui.editor; import android.content.Context; import android.os.Bundle; +import android.util.Log; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.MenuItem; @@ -38,6 +39,7 @@ import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragme public class ActionsFragment extends TimeCraftersFragment { final private String deleteActionKey = "delete_action"; + final private String TAG = "ActionsFragment"; private Config config; private Group group; @@ -249,6 +251,10 @@ public class ActionsFragment extends TimeCraftersFragment { AddFromPresetDialog dialog = new AddFromPresetDialog(); Bundle bundle = new Bundle(); bundle.putBoolean("show_actions", true); + if (groupIsPreset) { + bundle.putBoolean("group_is_preset", true); + } + bundle.putInt("group_index", getArguments().getInt("group_index")); dialog.setArguments(bundle); dialog.show(getFragmentManager(), "add_from_preset_dialog"); return true; 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 f637b2f..a3d2248 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 @@ -198,8 +198,8 @@ public class GroupsFragment extends TimeCraftersFragment { case R.id.save_as_preset: { PresetDialog dialog = new PresetDialog(); Bundle bundle = new Bundle(); - bundle.putInt("group_index", group_index); bundle.putBoolean("is_new_preset", true); + bundle.putInt("group_index", group_index); dialog.setArguments(bundle); dialog.show(getFragmentManager(), "preset_dialog"); return true;