Rotation safe ConfirmationDialog

This commit is contained in:
2020-08-24 17:26:56 -05:00
parent 32720c4c5f
commit 805f218d90
13 changed files with 127 additions and 71 deletions

View File

@@ -21,6 +21,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private static final int REQUEST_WRITE_PERMISSION = 70; private static final int REQUEST_WRITE_PERMISSION = 70;
private static final String TAG = "MainActivity"; private static final String TAG = "MainActivity";
private AppBarConfiguration appBarConfiguration;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -30,7 +31,7 @@ public class MainActivity extends AppCompatActivity {
BottomNavigationView navView = findViewById(R.id.nav_view); BottomNavigationView navView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each // Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations. // menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder( appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_tacnet, R.id.navigation_editor, R.id.navigation_settings, R.id.navigation_tacnet, R.id.navigation_editor, R.id.navigation_settings,
R.id.navigation_search) R.id.navigation_search)
.build(); .build();
@@ -47,6 +48,12 @@ public class MainActivity extends AppCompatActivity {
} }
} }
@Override
public boolean onSupportNavigateUp() {
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
return NavigationUI.navigateUp(navController, appBarConfiguration) || super.onSupportNavigateUp();
}
@Override @Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) { switch (requestCode) {

View File

@@ -38,6 +38,8 @@ import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@@ -221,6 +223,13 @@ public class Backend {
list.add(file.getName().replace(".json", "")); list.add(file.getName().replace(".json", ""));
} }
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
return list; return list;
} }

View File

@@ -19,6 +19,7 @@ import org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations
public class ConfigurationDialog extends TimeCraftersDialog { public class ConfigurationDialog extends TimeCraftersDialog {
private static final String TAG = "ConfigurationDialog"; private static final String TAG = "ConfigurationDialog";
private String configName; private String configName;
private TextView nameError; private TextView nameError;
@@ -85,8 +86,10 @@ public class ConfigurationDialog extends TimeCraftersDialog {
Backend.instance().writeNewConfig(newConfigName); Backend.instance().writeNewConfig(newConfigName);
} }
// Caution ConfigurationsFragment fragment = (ConfigurationsFragment) getFragmentManager().getPrimaryNavigationFragment();
((ConfigurationsFragment)getTargetFragment()).populateConfigFiles(); if (fragment != null) {
fragment.populateConfigFiles();
}
dismiss(); dismiss();
} }
} }

View File

@@ -1,9 +1,6 @@
package org.timecrafters.TimeCraftersConfigurationTool.dialogs; package org.timecrafters.TimeCraftersConfigurationTool.dialogs;
import android.graphics.Color;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -15,27 +12,33 @@ import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import com.google.android.material.resources.TextAppearance;
import org.timecrafters.TimeCraftersConfigurationTool.R; import org.timecrafters.TimeCraftersConfigurationTool.R;
import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend; import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialogRunnable;
public class ConfirmationDialog extends TimeCraftersDialog { public class ConfirmationDialog extends TimeCraftersDialog {
private static final String TAG = "ConfirmationDialog";
private String title, message; private String title, message;
private Runnable action; private TimeCraftersDialogRunnable action;
private ConfirmationDialog confirmationDialog;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = super.onCreateView(inflater, container, savedInstanceState); View root = super.onCreateView(inflater, container, savedInstanceState);
this.confirmationDialog = this;
if (getArguments() != null) { if (getArguments() != null) {
this.title = getArguments().getString("title", "Are You Sure?"); this.title = getArguments().getString("title", "Are you sure?");
this.message = getArguments().getString("message", ""); this.message = getArguments().getString("message", "");
final String actionKey = getArguments().getString("action", null); final String actionKey = getArguments().getString("action", null);
if (actionKey != null && Backend.getStorage().containsKey(actionKey)) { if (actionKey != null && Backend.getStorage().containsKey(actionKey)) {
this.action = (Runnable) Backend.getStorage().get(actionKey); Log.d(TAG, "OKAY onCreateView: actionKey: " + actionKey + " getStorage: " + Backend.getStorage().containsKey(actionKey));
this.action = (TimeCraftersDialogRunnable) Backend.getStorage().get(actionKey);
} else {
Log.d(TAG, "FAIL onCreateView: actionKey: " + actionKey + " getStorage: " + Backend.getStorage().containsKey(actionKey));
} }
} }
@@ -67,7 +70,7 @@ public class ConfirmationDialog extends TimeCraftersDialog {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (action != null) { if (action != null) {
action.run(); action.run(confirmationDialog);
} }
dismiss(); dismiss();

View File

@@ -1,6 +1,8 @@
package org.timecrafters.TimeCraftersConfigurationTool.dialogs; package org.timecrafters.TimeCraftersConfigurationTool.dialogs;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -9,30 +11,33 @@ import android.widget.EditText;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.text.TextUtilsCompat;
import org.timecrafters.TimeCraftersConfigurationTool.R; import org.timecrafters.TimeCraftersConfigurationTool.R;
import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend; import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Action; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Action;
import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
import org.timecrafters.TimeCraftersConfigurationTool.ui.editor.GroupsFragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
public class GroupDialog extends TimeCraftersDialog { public class GroupDialog extends TimeCraftersDialog {
private static final int HOST_ID = R.id.navigation_editor;
final String TAG = "GroupDialog"; final String TAG = "GroupDialog";
private Group group; private Group group;
public GroupDialog() {}
public GroupDialog(Group group) {
this.group = group;
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
setCancelable(false); setCancelable(false);
View root = super.onCreateView(inflater, container, savedInstanceState); View root = super.onCreateView(inflater, container, savedInstanceState);
if (getArguments() != null) {
this.group = Backend.instance().getConfig().getGroups().get(getArguments().getInt("group_index"));
}
final TextView title = root.findViewById(R.id.dialogTitle); final TextView title = root.findViewById(R.id.dialogTitle);
final LinearLayout view = root.findViewById(R.id.dialogContent); final LinearLayout view = root.findViewById(R.id.dialogContent);
view.addView(getLayoutInflater().inflate(R.layout.dialog_edit_group, null)); view.addView(getLayoutInflater().inflate(R.layout.dialog_edit_group, null));
@@ -67,6 +72,10 @@ public class GroupDialog extends TimeCraftersDialog {
} }
Backend.instance().configChanged(); Backend.instance().configChanged();
GroupsFragment groupsFragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment();
if (groupsFragment != null) {
groupsFragment.populateGroups();
}
dismiss(); dismiss();
} }
}); });

View File

@@ -2,6 +2,7 @@ package org.timecrafters.TimeCraftersConfigurationTool.library;
import android.graphics.Point; import android.graphics.Point;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -15,11 +16,6 @@ import androidx.fragment.app.DialogFragment;
import org.timecrafters.TimeCraftersConfigurationTool.R; import org.timecrafters.TimeCraftersConfigurationTool.R;
public class TimeCraftersDialog extends DialogFragment { public class TimeCraftersDialog extends DialogFragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);

View File

@@ -0,0 +1,5 @@
package org.timecrafters.TimeCraftersConfigurationTool.library;
abstract public class TimeCraftersDialogRunnable {
abstract public void run(TimeCraftersDialog dialog);
}

View File

@@ -59,7 +59,9 @@ public class ActionsFragment extends TimeCraftersFragment {
return root; return root;
} }
private void populateActions() { public void populateActions() {
container.removeAllViews();
int i = 0; int i = 0;
for (final Action action : group.getActions()) { for (final Action action : group.getActions()) {
final View view = View.inflate(getContext(), R.layout.fragment_part_actions, null); final View view = View.inflate(getContext(), R.layout.fragment_part_actions, null);

View File

@@ -1,19 +0,0 @@
package org.timecrafters.TimeCraftersConfigurationTool.ui.editor;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class EditorViewModel extends ViewModel {
private MutableLiveData<String> mText;
public EditorViewModel() {
mText = new MutableLiveData<>();
mText.setValue("This is editor fragment");
}
public LiveData<String> getText() {
return mText;
}
}

View File

@@ -12,8 +12,8 @@ import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModelProviders;
import androidx.navigation.Navigation; import androidx.navigation.Navigation;
import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -24,31 +24,38 @@ import org.timecrafters.TimeCraftersConfigurationTool.backend.Config;
import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group; import org.timecrafters.TimeCraftersConfigurationTool.backend.config.Group;
import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog;
import org.timecrafters.TimeCraftersConfigurationTool.dialogs.GroupDialog; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.GroupDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialogRunnable;
public class GroupsFragment extends TimeCraftersFragment { public class GroupsFragment extends TimeCraftersFragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate: CREATE");
}
final private String TAG = "EditorFragment"; final private String TAG = "EditorFragment";
final private String deleteActionKey = "delete_group";
private EditorViewModel editorViewModel;
private Config config; private Config config;
private TextView configName; private TextView configName;
private LinearLayout container; private LinearLayout container;
public View onCreateView(@NonNull LayoutInflater inflater, public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) { ViewGroup container, Bundle savedInstanceState) {
editorViewModel =
ViewModelProviders.of(this).get(EditorViewModel.class);
final View root = inflater.inflate(R.layout.fragment_groups, container, false); final View root = inflater.inflate(R.layout.fragment_groups, container, false);
this.configName = root.findViewById(R.id.configuration_name); this.configName = root.findViewById(R.id.configuration_name);
this.container = root.findViewById(R.id.container); this.container = root.findViewById(R.id.container);
final FloatingActionButton actionButton = root.findViewById(R.id.actionButton); final FloatingActionButton actionButton = root.findViewById(R.id.actionButton);
final ScrollView scrollView = root.findViewById(R.id.scrollview); final ScrollView scrollView = root.findViewById(R.id.scrollview);
actionButton.setOnClickListener(new View.OnClickListener() { actionButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
GroupDialog dialog = new GroupDialog(); GroupDialog dialog = new GroupDialog();
dialog.show(getFragmentManager(), null); dialog.show(getFragmentManager(), "add_group");
} }
}); });
@@ -69,7 +76,9 @@ public class GroupsFragment extends TimeCraftersFragment {
return root; return root;
} }
private void populateGroups() { public void populateGroups() {
container.removeAllViews();
int i = 0; int i = 0;
for (final Group group : config.getGroups()) { for (final Group group : config.getGroups()) {
View view = View.inflate(getContext(), R.layout.fragment_part_groups, null); View view = View.inflate(getContext(), R.layout.fragment_part_groups, null);
@@ -96,8 +105,13 @@ public class GroupsFragment extends TimeCraftersFragment {
rename.setOnClickListener(new View.OnClickListener() { rename.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
GroupDialog dialog = new GroupDialog(group); GroupDialog dialog = new GroupDialog();
dialog.show(getFragmentManager(), null); Bundle bundle = new Bundle();
bundle.putInt("group_index", config.getGroups().indexOf(group));
dialog.setArguments(bundle);
dialog.show(getFragmentManager(), "rename_group");
} }
}); });
@@ -106,11 +120,26 @@ public class GroupsFragment extends TimeCraftersFragment {
public void onClick(View v) { public void onClick(View v) {
ConfirmationDialog dialog = new ConfirmationDialog(); ConfirmationDialog dialog = new ConfirmationDialog();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString("title", "Are you sure?");
bundle.putString("message", "Delete group " + group.name + "?");
dialog.setArguments(bundle);
dialog.show(getFragmentManager(), null); bundle.putString("message", "Delete group " + group.name + "?");
bundle.putString("action", deleteActionKey);
dialog.setArguments(bundle);
TimeCraftersDialogRunnable action = new TimeCraftersDialogRunnable() {
@Override
public void run(TimeCraftersDialog dialog) {
Backend.instance().getConfig().getGroups().remove(group);
Backend.instance().configChanged();
Backend.getStorage().remove(deleteActionKey);
GroupsFragment fragment = (GroupsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateGroups();
}
}
};
Backend.getStorage().put(deleteActionKey, action);
dialog.show(getFragmentManager(), deleteActionKey);
} }
}); });

View File

@@ -1,6 +1,7 @@
package org.timecrafters.TimeCraftersConfigurationTool.ui.editor; package org.timecrafters.TimeCraftersConfigurationTool.ui.editor;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -24,6 +25,8 @@ import org.timecrafters.TimeCraftersConfigurationTool.dialogs.VariableDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment;
public class VariablesFragment extends TimeCraftersFragment { public class VariablesFragment extends TimeCraftersFragment {
final private String TAG = "VariablesFragment";
private Config config; private Config config;
private LinearLayout container; private LinearLayout container;
private Group group; private Group group;
@@ -39,6 +42,7 @@ public class VariablesFragment extends TimeCraftersFragment {
this.config = Backend.instance().getConfig(); this.config = Backend.instance().getConfig();
this.group = config.getGroups().get(getArguments().getInt("group_index")); this.group = config.getGroups().get(getArguments().getInt("group_index"));
this.action = group.getActions().get(getArguments().getInt("action_index")); this.action = group.getActions().get(getArguments().getInt("action_index"));
if (config != null) { if (config != null) {
((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Action: " + action.name); ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Action: " + action.name);
@@ -57,7 +61,9 @@ public class VariablesFragment extends TimeCraftersFragment {
return root; return root;
} }
private void populateVariables() { public void populateVariables() {
container.removeAllViews();
int i = 0; int i = 0;
for (final Variable variable : action.getVariables()) { for (final Variable variable : action.getVariables()) {
View view = View.inflate(getContext(), R.layout.fragment_part_variables, null); View view = View.inflate(getContext(), R.layout.fragment_part_variables, null);

View File

@@ -26,14 +26,14 @@ public class SettingsFragment extends TimeCraftersFragment {
managePresets.setOnClickListener(new View.OnClickListener() { managePresets.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Navigation.findNavController(root).navigate(R.id.presetsFragment); Navigation.findNavController(root).navigate(R.id.action_navigation_settings_to_presetsFragment);
} }
}); });
manageConfigurations.setOnClickListener(new View.OnClickListener() { manageConfigurations.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
Navigation.findNavController(root).navigate(R.id.configurationsFragment); Navigation.findNavController(root).navigate(R.id.action_navigation_settings_to_configurationsFragment);
} }
}); });

View File

@@ -1,7 +1,5 @@
package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations; package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -20,9 +18,13 @@ import org.timecrafters.TimeCraftersConfigurationTool.R;
import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend; import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfigurationDialog; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfigurationDialog;
import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.ConfirmationDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialogRunnable;
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment; import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersFragment;
public class ConfigurationsFragment extends TimeCraftersFragment { public class ConfigurationsFragment extends TimeCraftersFragment {
final private String deleteActionKey = "delete_configuration";
private LayoutInflater inflater; private LayoutInflater inflater;
private LinearLayout configsContainer; private LinearLayout configsContainer;
private View root; private View root;
@@ -40,7 +42,7 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
ConfigurationDialog dialog = new ConfigurationDialog(); ConfigurationDialog dialog = new ConfigurationDialog();
dialog.show(getFragmentManager(), null); dialog.show(getFragmentManager(), "add_configuration");
} }
}); });
@@ -82,7 +84,6 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
} }
}); });
final ConfigurationsFragment fragment = this;
rename.setOnClickListener(new View.OnClickListener() { rename.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@@ -90,8 +91,8 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString("config_name", configFile); bundle.putString("config_name", configFile);
dialog.setArguments(bundle); dialog.setArguments(bundle);
dialog.setTargetFragment(fragment, 0);
dialog.show(getFragmentManager().beginTransaction(), "rename_configuration"); dialog.show(getFragmentManager(), "rename_configuration");
} }
}); });
@@ -100,21 +101,26 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
public void onClick(View v) { public void onClick(View v) {
ConfirmationDialog dialog = new ConfirmationDialog(); ConfirmationDialog dialog = new ConfirmationDialog();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
final String actionKey = "delete_configuration";
bundle.putString("title", "Are you sure?");
bundle.putString("message", "Destroy configuration " + configFile + "?"); bundle.putString("message", "Destroy configuration " + configFile + "?");
bundle.putString("action", actionKey); bundle.putString("action", deleteActionKey);
bundle.putBoolean("extreme_danger", true); bundle.putBoolean("extreme_danger", true);
Runnable action = new Runnable() { TimeCraftersDialogRunnable action = new TimeCraftersDialogRunnable() {
@Override @Override
public void run() { public void run(TimeCraftersDialog dialog) {
Backend.instance().deleteConfig(configFile); Backend.instance().deleteConfig(configFile);
Backend.getStorage().remove(deleteActionKey);
ConfigurationsFragment fragment = (ConfigurationsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateConfigFiles();
}
} }
} ; } ;
Backend.getStorage().put(actionKey, action); Backend.getStorage().put(deleteActionKey, action);
dialog.setArguments(bundle); dialog.setArguments(bundle);
dialog.show(getFragmentManager(), null); dialog.show(getFragmentManager(), deleteActionKey);
} }
}); });