mirror of
https://github.com/TimeCrafters/TimeCraftersConfigurationTool.git
synced 2025-12-15 05:02:33 +00:00
Connected config management to TACNET so that selecting, adding, renaming, and deleting configs will now be synced, fixed crash when handling select config packet when now config is currently loaded.
This commit is contained in:
@@ -11,9 +11,12 @@ import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.R;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.tacnet.PacketHandler;
|
||||
import org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations.ConfigurationsFragment;
|
||||
|
||||
public class ConfigurationDialog extends TimeCraftersDialog {
|
||||
@@ -82,15 +85,29 @@ public class ConfigurationDialog extends TimeCraftersDialog {
|
||||
if (configName != null) {
|
||||
Backend.instance().moveConfig(configName, newConfigName);
|
||||
|
||||
if (Backend.instance().tacnet().isConnected()) {
|
||||
Backend.instance().tacnet().puts(PacketHandler.packetUpdateConfig(configName, newConfigName).toString() );
|
||||
}
|
||||
|
||||
// If config being renamed is the active config then update Backend to use
|
||||
// the correct config name/file, and save settings.
|
||||
if (Backend.instance().getSettings().config.equals(configName)) {
|
||||
Backend.instance().loadConfig(newConfigName);
|
||||
Backend.instance().getSettings().config = newConfigName;
|
||||
Backend.instance().saveSettings();
|
||||
|
||||
if (Backend.instance().tacnet().isConnected()) {
|
||||
Backend.instance().tacnet().puts(PacketHandler.packetSelectConfig(newConfigName).toString() );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Backend.instance().writeNewConfig(newConfigName);
|
||||
|
||||
if (Backend.instance().tacnet().isConnected()) {
|
||||
final String json = Backend.instance().gsonForConfig().toJson(Backend.instance().loadConfigWithoutMutatingBackend(newConfigName));
|
||||
|
||||
Backend.instance().tacnet().puts( PacketHandler.packetUploadConfig(newConfigName, json).toString() );
|
||||
}
|
||||
}
|
||||
|
||||
ConfigurationsFragment fragment = (ConfigurationsFragment) getFragmentManager().getPrimaryNavigationFragment();
|
||||
|
||||
@@ -117,7 +117,7 @@ public class PacketHandler {
|
||||
|
||||
Backend.instance().writeToFile(path, json);
|
||||
|
||||
if (Backend.instance().getConfig().getName().equals(configName)) {
|
||||
if (Backend.instance().getConfig() != null && Backend.instance().getConfig().getName().equals(configName)) {
|
||||
Backend.instance().loadConfig(configName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,13 @@ public class TACNETServerService extends Service {
|
||||
public TACNETServerService() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
if (Backend.instance() == null) {
|
||||
new Backend();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
|
||||
@@ -21,6 +21,7 @@ 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.tacnet.PacketHandler;
|
||||
|
||||
public class ConfigurationsFragment extends TimeCraftersFragment {
|
||||
final private String deleteActionKey = "delete_configuration";
|
||||
@@ -71,16 +72,16 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
|
||||
configName.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (Backend.instance().getSettings().config.equals(configFile)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Backend.instance().getSettings().config = configFile;
|
||||
Backend.instance().loadConfig(configFile);
|
||||
Backend.instance().saveSettings();
|
||||
|
||||
View snackbarHost = getActivity().findViewById(R.id.snackbar_host);
|
||||
Snackbar.make(snackbarHost, "Loaded config: " + configFile, Snackbar.LENGTH_LONG).show();
|
||||
|
||||
if (Backend.instance().tacnet().isConnected()) {
|
||||
Backend.instance().tacnet().puts(PacketHandler.packetSelectConfig(configFile).toString() );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -121,8 +122,12 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
|
||||
if (fragment != null) {
|
||||
fragment.populateConfigFiles();
|
||||
}
|
||||
|
||||
if (Backend.instance().tacnet().isConnected()) {
|
||||
Backend.instance().tacnet().puts(PacketHandler.packetDeleteConfig(configFile).toString() );
|
||||
}
|
||||
}
|
||||
} ;
|
||||
};
|
||||
Backend.getStorage().put(deleteActionKey, action);
|
||||
dialog.setArguments(bundle);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user