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 a911222..d90840f 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 @@ -24,9 +24,14 @@ import org.timecrafters.TimeCraftersConfigurationTool.backend.Config; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Action; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ActionDialog; +import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog; +import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog; +import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialogRunnable; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment; public class ActionsFragment extends TimeCraftersFragment { + final private String deleteActionKey = "delete_action"; + private Config config; private Group group; private LinearLayout container; @@ -120,6 +125,34 @@ public class ActionsFragment extends TimeCraftersFragment { } }); + delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ConfirmationDialog dialog = new ConfirmationDialog(); + Bundle bundle = new Bundle(); + + bundle.putString("message", "Delete action " + action.name + "?"); + bundle.putString("action", deleteActionKey); + dialog.setArguments(bundle); + final TimeCraftersDialogRunnable actionRunner = new TimeCraftersDialogRunnable() { + @Override + public void run(TimeCraftersDialog dialog) { + group.getActions().remove(action); + Backend.instance().configChanged(); + Backend.getStorage().remove(deleteActionKey); + + ActionsFragment fragment = (ActionsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment(); + if (fragment != null) { + fragment.populateActions(); + } + } + }; + Backend.getStorage().put(deleteActionKey, actionRunner); + + dialog.show(getFragmentManager(), deleteActionKey); + } + }); + i++; container.addView(view); } diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/VariablesFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/VariablesFragment.java index 3a5786e..1f5ce0a 100644 --- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/VariablesFragment.java +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/VariablesFragment.java @@ -20,11 +20,16 @@ import org.timecrafters.TimeCraftersConfigurationTool.backend.Config; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Action; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Variable; +import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.VariableDialog; +import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog; +import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialogRunnable; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment; public class VariablesFragment extends TimeCraftersFragment { final private String TAG = "VariablesFragment"; + final private String deleteActionKey = "delete_variable"; + private Config config; private LinearLayout container; @@ -97,6 +102,34 @@ public class VariablesFragment extends TimeCraftersFragment { } }); + delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ConfirmationDialog dialog = new ConfirmationDialog(); + Bundle bundle = new Bundle(); + + bundle.putString("message", "Delete variable " + variable.name + "?"); + bundle.putString("action", deleteActionKey); + dialog.setArguments(bundle); + final TimeCraftersDialogRunnable actionRunner = new TimeCraftersDialogRunnable() { + @Override + public void run(TimeCraftersDialog dialog) { + action.getVariables().remove(variable); + Backend.instance().configChanged(); + Backend.getStorage().remove(deleteActionKey); + + VariablesFragment fragment = (VariablesFragment) dialog.getFragmentManager().getPrimaryNavigationFragment(); + if (fragment != null) { + fragment.populateVariables(); + } + } + }; + Backend.getStorage().put(deleteActionKey, actionRunner); + + dialog.show(getFragmentManager(), deleteActionKey); + } + }); + i++; container.addView(view); } diff --git a/app/src/main/res/raw/error_alarm.ogg b/app/src/main/res/raw/error_alarm.ogg new file mode 100644 index 0000000..d795f8a Binary files /dev/null and b/app/src/main/res/raw/error_alarm.ogg differ