diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5a770d5..15c8ea6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="org.timecrafters.TimeCraftersConfigurationTool">
-
+
+
@@ -11,6 +13,7 @@
+ android:hasFragileUserData="true"
+ tools:targetApi="34">
@@ -49,8 +53,6 @@
-
-
0 && grantResults[0] == PERMISSION_GRANTED) {
- // Permission granted
- startTimer(timerDelayAfterPermissionRequest);
- } else {
- // Permission not given
- new PermissionsRequestDialog().show(getSupportFragmentManager(), null);
- }
- }
+ if (Backend.instance().getSettings().mobileDisableLauncherDelay) {
+ startTimer(timerQuickDelay);
+ } else {
+ startTimer(timerDelay);
}
}
@@ -72,14 +47,4 @@ public class LauncherActivity extends AppCompatActivity {
}
}, milliseconds);
}
-
- private boolean havePermissions() {
- return ContextCompat.checkSelfPermission(LauncherActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PERMISSION_GRANTED;
- }
-
- public void requestStoragePermissions() {
- ActivityCompat.requestPermissions(LauncherActivity.this,
- new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
- REQUEST_WRITE_PERMISSION);
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/MainActivity.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/MainActivity.java
index 6c04de2..2d01b30 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/MainActivity.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/MainActivity.java
@@ -8,8 +8,10 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
+import android.view.MenuItem;
import android.view.View;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.navigation.NavController;
@@ -53,10 +55,9 @@ public class MainActivity extends AppCompatActivity {
NavigationUI.setupWithNavController(navView, navController);
if (Backend.instance() == null) {
- new Backend();
+ new Backend(getApplicationContext());
}
- Backend.instance().applicationContext = getApplicationContext();
Backend.instance().mainActivity = this;
if (Backend.instance().getSettings().mobileShowNavigationLabels) {
@@ -77,7 +78,11 @@ public class MainActivity extends AppCompatActivity {
registerReceiver(new TACNETOnBootReceiver(), new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
if (getIntent().getBooleanExtra("navigate_to_tacnet", false)) {
- navController.navigate(R.id.navigation_tacnet);
+ //--- Emulate clicking on menu item...
+ navView.getMenu().performIdentifierAction(R.id.navigation_tacnet, 0);
+
+ //--- ...because using this function breaks the Editor nav button, for reasons :|
+ // navController.navigate(R.id.navigation_tacnet, null);
}
startTACNETStatusIndictator();
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 6313410..d1c1ac3 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java
@@ -67,13 +67,15 @@ public class Backend {
return storage;
}
- public Backend() {
+ public Backend(Context applicationContext) {
if (Backend.instance() != null) {
throw(new RuntimeException("Backend instance already exists!"));
} else {
instance = this;
}
+ this.applicationContext = applicationContext;
+
loadSettings();
if (!settings.config.isEmpty()) {
loadConfig(settings.config);
@@ -120,6 +122,18 @@ public class Backend {
return lastServerError;
}
+ public String getRootPath() {
+ return String.format("%s%s", applicationContext.getExternalFilesDir("").getAbsolutePath(), File.separator + "TimeCrafters_Configuration_Tool");
+ }
+
+ public String getConfigsPath() {
+ return String.format("%s%s", getRootPath(), File.separator + "/configs");
+ }
+
+ public String getSettingsPath() {
+ return String.format("%s%s", getRootPath(), File.separator + "settings.json");
+ }
+
public Config getConfig() {
return config;
}
@@ -147,7 +161,7 @@ public class Backend {
public boolean hasConfigChanged() { return configChanged; }
public String configPath(String name) {
- return TAC.CONFIGS_PATH + File.separator + name + ".json";
+ return getConfigsPath() + File.separator + name + ".json";
}
public void loadConfig(String name) {
@@ -249,7 +263,7 @@ public class Backend {
public ArrayList configsList() {
ArrayList list = new ArrayList<>();
- File directory = new File(TAC.CONFIGS_PATH);
+ File directory = new File(getConfigsPath());
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
@@ -302,7 +316,7 @@ public class Backend {
}
public void loadSettings() {
- File settingsFile = new File(TAC.SETTINGS_PATH);
+ File settingsFile = new File(getSettingsPath());
if (!settingsFile.exists()) {
Log.i(TAG, "Writing default settings.json");
@@ -319,7 +333,7 @@ public class Backend {
public void saveSettings() {
Log.i(TAG, "Settings: " + gsonForSettings().toJson(settings));
- writeToFile(TAC.SETTINGS_PATH, gsonForSettings().toJson(settings));
+ writeToFile(getSettingsPath(), gsonForSettings().toJson(settings));
}
public void sortGroups() {
@@ -369,7 +383,7 @@ public class Backend {
}
public void writeDefaultSettings() {
- settings = new Settings(TACNET.DEFAULT_HOSTNAME, TACNET.DEFAULT_PORT, "", false, false, false);
+ settings = new Settings(TACNET.DEFAULT_HOSTNAME, TACNET.DEFAULT_PORT, "", true, false, false);
saveSettings();
}
@@ -402,7 +416,7 @@ public class Backend {
public boolean writeToFile(String filePath, String content) {
try {
- if (filePath.startsWith(TAC.ROOT_PATH)) {
+ if (filePath.startsWith(getRootPath())) {
createFolders(filePath);
FileWriter writer = new FileWriter(filePath);
@@ -422,8 +436,8 @@ public class Backend {
}
private void createFolders(String filePath) throws IOException {
- File rootPath = new File(TAC.ROOT_PATH);
- File configsPath = new File(TAC.CONFIGS_PATH);
+ File rootPath = new File(getRootPath());
+ File configsPath = new File(getConfigsPath());
if (!rootPath.exists()) {
rootPath.mkdir();
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/TAC.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/TAC.java
index 0c612b3..5937a1a 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/TAC.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/TAC.java
@@ -1,25 +1,15 @@
package org.timecrafters.TimeCraftersConfigurationTool.backend;
+import android.app.Application;
import android.os.Build;
import android.os.Environment;
import java.io.File;
public class TAC {
- // TODO: Update filesystem handling
- public static final String ROOT_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "TimeCrafters_Configuration_Tool",
- CONFIGS_PATH = ROOT_PATH + File.separator + "/configs",
- SETTINGS_PATH = ROOT_PATH + File.separator + "settings.json";
-
public static final int CONFIG_SPEC_VERSION = 2;
- // Set COMPETITION_MODE to true to disable automatic TACNET server start
- public static final boolean BUILD_COMPETITION_MODE = false;
- public static final boolean BUILD_AUTO_START = true;
-
static public boolean allowAutoServerStart() {
- return !TAC.BUILD_COMPETITION_MODE &&
- TAC.BUILD_AUTO_START ||
- Backend.instance() != null && Backend.instance().getSettings().mobileStartServerAtBoot;
+ return Backend.instance().getSettings().mobileStartServerAtBoot;
}
}
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 280f9b1..de372f5 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ActionDialog.java
@@ -110,7 +110,7 @@ public class ActionDialog extends TimeCraftersDialog {
Backend.instance().sortActions(group);
Backend.instance().configChanged();
- ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ ActionsFragment fragment = (ActionsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateActions();
}
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 79da135..78299c4 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/AddFromPresetDialog.java
@@ -72,7 +72,7 @@ public class AddFromPresetDialog extends TimeCraftersDialog {
bundle.putBoolean("is_cloning_preset", true);
bundle.putInt("group_index", index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "clone_group_preset");
+ dialog.show(getParentFragmentManager(), "clone_group_preset");
dismiss();
}
@@ -107,7 +107,7 @@ public class AddFromPresetDialog extends TimeCraftersDialog {
bundle.putInt("group_index", getArguments().getInt("group_index"));
bundle.putInt("action_index", index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "clone_action_preset");
+ dialog.show(getParentFragmentManager(), "clone_action_preset");
dismiss();
}
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 06c6a5b..6176013 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/CloneDialog.java
@@ -110,7 +110,7 @@ public class CloneDialog extends TimeCraftersDialog {
Backend.instance().sortActions(group);
Backend.instance().configChanged();
- ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ ActionsFragment fragment = (ActionsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateActions();
}
@@ -124,7 +124,7 @@ public class CloneDialog extends TimeCraftersDialog {
Backend.instance().sortGroups();
Backend.instance().configChanged();
- GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ GroupsFragment fragment = (GroupsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateGroups();
}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ConfigurationDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ConfigurationDialog.java
index c43a494..2779e0b 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ConfigurationDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/ConfigurationDialog.java
@@ -110,7 +110,7 @@ public class ConfigurationDialog extends TimeCraftersDialog {
}
}
- ConfigurationsFragment fragment = (ConfigurationsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ ConfigurationsFragment fragment = (ConfigurationsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateConfigFiles();
}
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 f1da3ae..9ec4402 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/GroupDialog.java
@@ -96,7 +96,7 @@ public class GroupDialog extends TimeCraftersDialog {
Backend.instance().sortGroups();
Backend.instance().configChanged();
- GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ GroupsFragment fragment = (GroupsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateGroups();
}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PermissionsRequestDialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PermissionsRequestDialog.java
deleted file mode 100644
index c73a98c..0000000
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PermissionsRequestDialog.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.timecrafters.TimeCraftersConfigurationTool.dialogs;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import org.timecrafters.TimeCraftersConfigurationTool.LauncherActivity;
-import org.timecrafters.TimeCraftersConfigurationTool.MainActivity;
-import org.timecrafters.TimeCraftersConfigurationTool.R;
-import org.timecrafters.TimeCraftersConfigurationTool.backend.TAC;
-import org.timecrafters.TimeCraftersConfigurationTool.library.TimeCraftersDialog;
-
-public class PermissionsRequestDialog extends TimeCraftersDialog {
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- setCancelable(false);
-
- View root = super.onCreateView(inflater, container, savedInstanceState);
-
- ((TextView)root.findViewById(R.id.dialog_title)).setText("Storage Permission Required");
- LinearLayout view = root.findViewById(R.id.dialog_content);
- view.addView(getLayoutInflater().inflate(R.layout.dialog_permission_request, null));
- ((TextView)view.findViewById(R.id.message)).setText("Permission is required to access external storage:\n\n" + TAC.ROOT_PATH);
-
- Button quitButton = view.findViewById(R.id.quit_button);
- Button continueButton = view.findViewById(R.id.continue_button);
-
- quitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dismiss();
- ((MainActivity) getActivity()).close();
- }
- });
-
- continueButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- dismiss();
- ((LauncherActivity) getActivity()).requestStoragePermissions();
- }
- });
-
-
- return root;
- }
-}
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 434934f..bf5e8af 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/PresetDialog.java
@@ -190,10 +190,10 @@ public class PresetDialog extends TimeCraftersDialog {
Backend.instance().getConfig().getPresets().getGroups().add(groupClone);
Backend.instance().sortGroupPresets();
- GroupsFragment fragment = (GroupsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ GroupsFragment fragment = (GroupsFragment) getParentFragmentManager().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();
+ PresetsFragment fragment = (PresetsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
Backend.instance().sortGroupPresets();
fragment.populatePresets();
@@ -224,10 +224,10 @@ public class PresetDialog extends TimeCraftersDialog {
Backend.instance().getConfig().getPresets().getActions().add(actionClone);
Backend.instance().sortActionsPresets();
- ActionsFragment fragment = (ActionsFragment) getFragmentManager().getPrimaryNavigationFragment();
+ ActionsFragment fragment = (ActionsFragment) getParentFragmentManager().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();
+ PresetsFragment fragment = (PresetsFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
Backend.instance().sortActionsPresets();
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 0130db2..7f54a99 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/VariableDialog.java
@@ -164,7 +164,7 @@ public class VariableDialog extends TimeCraftersDialog {
Backend.instance().sortVariables(action);
Backend.instance().configChanged();
- VariablesFragment fragment = (VariablesFragment) getFragmentManager().getPrimaryNavigationFragment();
+ VariablesFragment fragment = (VariablesFragment) getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateVariables();
}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/PacketHandler.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/PacketHandler.java
index 31c4edd..2234f9d 100755
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/PacketHandler.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/PacketHandler.java
@@ -130,7 +130,7 @@ public class PacketHandler {
return;
}
- final String path = TAC.CONFIGS_PATH + File.separator + configName + ".json";
+ final String path = Backend.instance().getConfigsPath() + File.separator + configName + ".json";
Backend.instance().writeToFile(path, json);
@@ -145,7 +145,7 @@ public class PacketHandler {
Log.i(TAG, "Got request for config: " + packet.getContent());
Packet pkt;
if (Backend.instance().configsList().contains(configName)) {
- final String path = TAC.CONFIGS_PATH + File.separator + configName + ".json";
+ final String path = Backend.instance().getConfigsPath() + File.separator + configName + ".json";
String content = Backend.instance().readFromFile(path);
pkt = packetUploadConfig(configName, content);
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETConnectionService.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETConnectionService.java
index 669f495..e172a81 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETConnectionService.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETConnectionService.java
@@ -61,7 +61,7 @@ public class TACNETConnectionService extends Service {
private void foregroundify() {
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.putExtra("navigate_to_tacnet", true);
- PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
+ PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_MUTABLE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("TACNET Connection")
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETServerService.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETServerService.java
index 8f7aa2e..01fcc7c 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETServerService.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/tacnet/TACNETServerService.java
@@ -38,7 +38,7 @@ public class TACNETServerService extends Service {
@Override
public void onCreate() {
if (Backend.instance() == null) {
- new Backend();
+ new Backend(getApplicationContext());
}
}
@@ -102,7 +102,7 @@ public class TACNETServerService extends Service {
private void foregroundify() {
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.putExtra("navigate_to_tacnet", true);
- PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, FLAG_UPDATE_CURRENT);
+ PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_MUTABLE | FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("TACNET Server")
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 1d86141..acca46c 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
@@ -78,7 +78,7 @@ public class ActionsFragment extends TimeCraftersFragment {
}
bundle.putInt("group_index", getArguments().getInt("group_index"));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "add_action");
+ dialog.show(getParentFragmentManager(), "add_action");
}
});
@@ -164,7 +164,7 @@ public class ActionsFragment extends TimeCraftersFragment {
bundle.putInt("group_index", getArguments().getInt("group_index"));
bundle.putInt("action_index", group.getActions().indexOf(action));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "edit_action");
+ dialog.show(getParentFragmentManager(), "edit_action");
}
});
@@ -184,7 +184,7 @@ public class ActionsFragment extends TimeCraftersFragment {
Backend.instance().configChanged();
Backend.getStorage().remove(deleteActionKey);
- ActionsFragment fragment = (ActionsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ ActionsFragment fragment = (ActionsFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateActions();
}
@@ -192,7 +192,7 @@ public class ActionsFragment extends TimeCraftersFragment {
};
Backend.getStorage().put(deleteActionKey, actionRunner);
- dialog.show(getFragmentManager(), deleteActionKey);
+ dialog.show(getParentFragmentManager(), deleteActionKey);
}
});
@@ -217,7 +217,7 @@ public class ActionsFragment extends TimeCraftersFragment {
bundle.putInt("group_index", getArguments().getInt("group_index"));
bundle.putInt("action_index", action_index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "clone_dialog");
+ dialog.show(getParentFragmentManager(), "clone_dialog");
return true;
} else if (itemID == R.id.save_as_preset) {
PresetDialog dialog = new PresetDialog();
@@ -226,7 +226,7 @@ public class ActionsFragment extends TimeCraftersFragment {
bundle.putInt("action_index", action_index);
bundle.putBoolean("is_new_preset", true);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "preset_dialog");
+ dialog.show(getParentFragmentManager(), "preset_dialog");
return true;
} else {
return false;
@@ -256,7 +256,7 @@ public class ActionsFragment extends TimeCraftersFragment {
}
bundle.putInt("group_index", getArguments().getInt("group_index"));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "add_from_preset_dialog");
+ dialog.show(getParentFragmentManager(), "add_from_preset_dialog");
return true;
} else {
return false;
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 3656b33..2a5ee88 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
@@ -62,7 +62,7 @@ public class GroupsFragment extends TimeCraftersFragment {
@Override
public void onClick(View v) {
GroupDialog dialog = new GroupDialog();
- dialog.show(getFragmentManager(), "add_group");
+ dialog.show(getParentFragmentManager(), "add_group");
}
});
@@ -141,7 +141,7 @@ public class GroupsFragment extends TimeCraftersFragment {
bundle.putInt("group_index", config.getGroups().indexOf(group));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "rename_group");
+ dialog.show(getParentFragmentManager(), "rename_group");
}
});
@@ -162,7 +162,7 @@ public class GroupsFragment extends TimeCraftersFragment {
Backend.instance().configChanged();
Backend.getStorage().remove(deleteActionKey);
- GroupsFragment fragment = (GroupsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ GroupsFragment fragment = (GroupsFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateGroups();
}
@@ -170,7 +170,7 @@ public class GroupsFragment extends TimeCraftersFragment {
};
Backend.getStorage().put(deleteActionKey, action);
- dialog.show(getFragmentManager(), deleteActionKey);
+ dialog.show(getParentFragmentManager(), deleteActionKey);
}
});
@@ -194,7 +194,7 @@ public class GroupsFragment extends TimeCraftersFragment {
Bundle bundle = new Bundle();
bundle.putInt("group_index", group_index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "clone_dialog");
+ dialog.show(getParentFragmentManager(), "clone_dialog");
return true;
} else if (itemID == R.id.save_as_preset) {
@@ -203,7 +203,7 @@ public class GroupsFragment extends TimeCraftersFragment {
bundle.putBoolean("is_new_preset", true);
bundle.putInt("group_index", group_index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "preset_dialog");
+ dialog.show(getParentFragmentManager(), "preset_dialog");
return true;
} else {
@@ -230,7 +230,7 @@ public class GroupsFragment extends TimeCraftersFragment {
Bundle bundle = new Bundle();
bundle.putBoolean("show_actions", false);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "add_from_preset_dialog");
+ dialog.show(getParentFragmentManager(), "add_from_preset_dialog");
return true;
} else {
return false;
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 c196025..24785a2 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
@@ -79,7 +79,7 @@ public class VariablesFragment extends TimeCraftersFragment {
}
bundle.putInt("action_index", getArguments().getInt("action_index"));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "add_variable");
+ dialog.show(getParentFragmentManager(), "add_variable");
}
});
@@ -122,7 +122,7 @@ public class VariablesFragment extends TimeCraftersFragment {
bundle.putInt("action_index", getArguments().getInt("action_index"));
bundle.putInt("variable_index", action.getVariables().indexOf(variable));
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "edit_variable");
+ dialog.show(getParentFragmentManager(), "edit_variable");
}
});
@@ -142,7 +142,7 @@ public class VariablesFragment extends TimeCraftersFragment {
Backend.instance().configChanged();
Backend.getStorage().remove(deleteActionKey);
- VariablesFragment fragment = (VariablesFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ VariablesFragment fragment = (VariablesFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateVariables();
}
@@ -150,7 +150,7 @@ public class VariablesFragment extends TimeCraftersFragment {
};
Backend.getStorage().put(deleteActionKey, actionRunner);
- dialog.show(getFragmentManager(), deleteActionKey);
+ dialog.show(getParentFragmentManager(), deleteActionKey);
}
});
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsFragment.java
index c63672c..ca44429 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsFragment.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsFragment.java
@@ -43,7 +43,7 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
@Override
public void onClick(View v) {
ConfigurationDialog dialog = new ConfigurationDialog();
- dialog.show(getFragmentManager(), "add_configuration");
+ dialog.show(getParentFragmentManager(), "add_configuration");
}
});
@@ -93,7 +93,7 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
bundle.putString("config_name", configFile);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "rename_configuration");
+ dialog.show(getParentFragmentManager(), "rename_configuration");
}
});
@@ -118,7 +118,7 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
Backend.instance().loadConfig("");
}
- ConfigurationsFragment fragment = (ConfigurationsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ ConfigurationsFragment fragment = (ConfigurationsFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populateConfigFiles();
}
@@ -131,7 +131,7 @@ public class ConfigurationsFragment extends TimeCraftersFragment {
Backend.getStorage().put(deleteActionKey, action);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), deleteActionKey);
+ dialog.show(getParentFragmentManager(), 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 4921f7b..4aa51a8 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
@@ -85,7 +85,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Bundle bundle = new Bundle();
bundle.putInt("group_index", group_index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "preset_dialog");
+ dialog.show(getParentFragmentManager(), "preset_dialog");
}
});
@@ -109,7 +109,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Backend.instance().configChanged();
}
- PresetsFragment fragment = (PresetsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ PresetsFragment fragment = (PresetsFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populatePresets();
}
@@ -118,7 +118,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Backend.getStorage().put(deletePresetKey, action);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), deletePresetKey);
+ dialog.show(getParentFragmentManager(), deletePresetKey);
}
});
@@ -163,7 +163,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Bundle bundle = new Bundle();
bundle.putInt("action_index", action_index);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), "preset_dialog");
+ dialog.show(getParentFragmentManager(), "preset_dialog");
}
});
@@ -187,7 +187,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Backend.instance().configChanged();
}
- PresetsFragment fragment = (PresetsFragment) dialog.getFragmentManager().getPrimaryNavigationFragment();
+ PresetsFragment fragment = (PresetsFragment) dialog.getParentFragmentManager().getPrimaryNavigationFragment();
if (fragment != null) {
fragment.populatePresets();
}
@@ -196,7 +196,7 @@ public class PresetsFragment extends TimeCraftersFragment {
Backend.getStorage().put(deletePresetKey, action);
dialog.setArguments(bundle);
- dialog.show(getFragmentManager(), deletePresetKey);
+ dialog.show(getParentFragmentManager(), deletePresetKey);
}
});
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETHostFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETHostFragment.java
index ada1c58..38f7b3a 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETHostFragment.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETHostFragment.java
@@ -36,7 +36,6 @@ public class TACNETHostFragment extends TimeCraftersFragment {
final View root = inflater.inflate(R.layout.fragment_tacnet_host, viewGroup, false);
final LinearLayout container = (LinearLayout) root;
-
if (Backend.instance().tacnet().status() != TACNET.Status.NOT_CONNECTED) {
inflateTACNETConnectionStatus(container);
} else if (Backend.instance().getServer() != null) {
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 63366a8..f2370aa 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -13,32 +13,30 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="56dp"
- app:defaultNavHost="true"
- app:layout_constraintBottom_toTopOf="@id/nav_view"
- app:layout_constraintHorizontal_bias="0.0"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintRight_toRightOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintVertical_bias="0.0"
- app:navGraph="@navigation/mobile_navigation" />
+ app2:defaultNavHost="true"
+ app2:layout_constraintBottom_toTopOf="@id/nav_view"
+ app2:layout_constraintHorizontal_bias="0.0"
+ app2:layout_constraintLeft_toLeftOf="parent"
+ app2:layout_constraintRight_toRightOf="parent"
+ app2:layout_constraintTop_toTopOf="parent"
+ app2:layout_constraintVertical_bias="0.0"
+ app2:navGraph="@navigation/mobile_navigation"
+ tools:layout="@layout/partial_editor" />
+
+ android:layout_height="56dp"
+ app2:layout_constraintBottom_toTopOf="@id/nav_view" />
\ No newline at end of file