diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2b5066d..ba8499e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,15 +23,6 @@
-
-
-
-
-
\ No newline at end of file
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 2e623bc..cdccf8f 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Backend.java
@@ -19,6 +19,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -37,6 +38,8 @@ public class Backend {
loadSettings();
if (!settings.config.isEmpty()) {
loadConfig(settings.config);
+ } else {
+ config = new Config();
}
tacnet = new TACNET();
@@ -69,10 +72,11 @@ public class Backend {
public boolean isConfigChanged() { return configChanged; }
public void loadConfig(String name) {
- File file = new File("" + TAC.CONFIGS_PATH + File.separator + name);
+ String path = "" + TAC.CONFIGS_PATH + File.separator + name;
+ File file = new File(path);
if (file.exists() && file.isFile()) {
- // TODO: Load configuration
+ config = new Config(name, path);
}
}
@@ -140,7 +144,7 @@ public class Backend {
.create();
}
- private String readFromFile(String path) {
+ protected String readFromFile(String path) {
StringBuilder text = new StringBuilder();
try {
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Config.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Config.java
index 5431300..02d8524 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Config.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/backend/Config.java
@@ -2,17 +2,69 @@ package org.timecrafters.TimeCraftersConfigurationTool.backend;
import com.google.gson.Gson;
+import java.io.Reader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Date;
public class Config {
+ private String name;
private Configuration configuration;
private ArrayList groups;
private ArrayList presets;
- public Config(String name) {
- // Do things
- parse(name);
+ // DELETE ME
+ public Config() {
+ this.name = "DEBUG ONLY";
+ this.configuration = new Configuration(new Date(), new Date(), 0, 32);
+ groups = new ArrayList<>();
+ presets = new ArrayList<>();
+
+ ArrayList actions = new ArrayList<>();
+ ArrayList variables = new ArrayList<>();
+ variables.add(new Variable("VarName", "Dx90.45"));
+ variables.add(new Variable("VarName2", "FxFx90.45"));
+ variables.add(new Variable("VarName3", "Dx90.45"));
+ variables.add(new Variable("distance", "Ix90"));
+ variables.add(new Variable("variable", "Dx90.45"));
+ variables.add(new Variable("tea_time", "SxThe Tea Party was quite enjoyable."));
+
+ actions.add(new Action("DriverOne", "This is a comment", true, variables));
+ actions.add(new Action("DriverTwo", "", true, variables));
+ actions.add(new Action("DriverAlt", "This is also is a comment", true, variables));
+ actions.add(new Action("DriverOne", "This is a comment", true, variables));
+ actions.add(new Action("DriverTwo", "", true, variables));
+ actions.add(new Action("DriverAlt", "This is also is a comment", true, variables));
+ actions.add(new Action("DriverOne", "This is a comment", true, variables));
+ actions.add(new Action("DriverTwo", "", true, variables));
+ actions.add(new Action("DriverAlt", "This is also is a comment", true, variables));
+ actions.add(new Action("DriverOne", "This is a comment", true, variables));
+ actions.add(new Action("DriverTwo", "", true, variables));
+ actions.add(new Action("DriverAlt", "This is also is a comment", true, variables));
+
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ groups.add(new Group("TeleOp", actions));
+ groups.add(new Group("BlueLeftA", actions));
+ }
+
+
+ public Config(String name, String path) {
+ this.name = name;
+ parse(path);
}
public Config(Configuration configuration, ArrayList groups, ArrayList presets) {
@@ -21,6 +73,8 @@ public class Config {
this.presets = presets;
}
+ public String getName() { return name; }
+
public Configuration getConfiguration() {
return configuration;
}
@@ -33,9 +87,14 @@ public class Config {
return groups;
}
- private void parse(String name) {
+ private void parse(String path) {
Gson gson = new Gson();
- gson.fromJson("", Config.class);
+ String json = Backend.instance().readFromFile(path);
+ Config config = gson.fromJson(json, Config.class);
+
+ this.configuration = config.configuration;
+ this.groups = config.groups;
+ this.presets = config.presets;
}
public class Configuration {
@@ -88,6 +147,8 @@ public class Config {
this.enabled = enabled;
this.variables = variables;
}
+
+ public ArrayList getVariables() { return variables; }
}
public class Variable {
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
new file mode 100644
index 0000000..cfe4109
--- /dev/null
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/ActionsFragment.java
@@ -0,0 +1,98 @@
+package org.timecrafters.TimeCraftersConfigurationTool.ui.editor;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.Navigation;
+
+import org.timecrafters.TimeCraftersConfigurationTool.R;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Config;
+
+public class ActionsFragment extends Fragment {
+ private Config config;
+ private Config.Group group;
+ private LinearLayout container;
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ final View root = inflater.inflate(R.layout.fragment_actions, container, false);
+ this.container = root.findViewById(R.id.container);
+
+ this.config = Backend.instance().getConfig();
+ this.group = config.getGroups().get(0);
+ if (config != null) {
+ ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Group: " + group.name);
+
+ populateActions();
+ }
+ return root;
+ }
+
+ private void populateActions() {
+ int i = 0;
+ for (final Config.Action action : group.getActions()) {
+ View view = View.inflate(getContext(), R.layout.fragment_part_actions, null);
+ Switch name = view.findViewById(R.id.name);
+ ImageButton edit = view.findViewById(R.id.edit);
+ ImageButton rename = view.findViewById(R.id.rename);
+ ImageButton delete = view.findViewById(R.id.delete);
+ TextView comment = view.findViewById(R.id.comment);
+
+ if (i % 2 == 0) { // even
+ view.setBackgroundColor(getResources().getColor(R.color.list_even));
+ } else {
+ view.setBackgroundColor(getResources().getColor(R.color.list_odd));
+ }
+
+ name.setText(action.name);
+ name.setChecked(action.enabled);
+ styleSwitch(name, action.enabled);
+ name.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ action.enabled = isChecked;
+
+ styleSwitch(buttonView, isChecked);
+ }
+ });
+
+ edit.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Navigation.findNavController(v).navigate(R.id.variablesFragment);
+ }
+ });
+
+ if (action.comment.length() > 0) {
+ comment.setText(action.comment);
+ } else {
+ comment.setVisibility(View.GONE);
+ }
+
+ i++;
+ container.addView(view);
+ }
+ }
+
+ private void styleSwitch(CompoundButton buttonView, boolean isChecked) {
+ if (isChecked) {
+ buttonView.setBackground(getResources().getDrawable(R.drawable.button));
+ } else {
+ buttonView.setBackground(getResources().getDrawable(R.drawable.dangerous_button));
+ }
+ }
+}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/EditorFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/EditorFragment.java
index 6dcf113..63add74 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/EditorFragment.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/EditorFragment.java
@@ -1,35 +1,80 @@
package org.timecrafters.TimeCraftersConfigurationTool.ui.editor;
import android.os.Bundle;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
-import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
+import androidx.navigation.Navigation;
import org.timecrafters.TimeCraftersConfigurationTool.R;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Config;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Config.Group;
public class EditorFragment extends Fragment {
+ final private String TAG = "EditorFragment";
+
private EditorViewModel editorViewModel;
+ private Config config;
+ private TextView configName;
+ private LinearLayout container;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
editorViewModel =
ViewModelProviders.of(this).get(EditorViewModel.class);
- View root = inflater.inflate(R.layout.fragment_editor, container, false);
- final TextView textView = root.findViewById(R.id.text_editor);
- editorViewModel.getText().observe(getViewLifecycleOwner(), new Observer() {
- @Override
- public void onChanged(@Nullable String s) {
- textView.setText(s);
- }
- });
+ final View root = inflater.inflate(R.layout.fragment_editor, container, false);
+ this.configName = root.findViewById(R.id.configuration_name);
+ this.container = root.findViewById(R.id.container);
+
+ this.config = Backend.instance().getConfig();
+ if (config != null) {
+ configName.setVisibility(View.GONE);
+ ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Config: " + config.getName());
+
+ populateGroups();
+ } else {
+ Log.d(TAG, "config not set");
+ }
+
return root;
}
+
+ private void populateGroups() {
+ int i = 0;
+ for (Group group : config.getGroups()) {
+ View view = View.inflate(getContext(), R.layout.fragment_part_groups, null);
+ Button name = view.findViewById(R.id.name);
+ ImageButton rename = view.findViewById(R.id.rename);
+ ImageButton delete = view.findViewById(R.id.delete);
+
+ if (i % 2 == 0) { // even
+ view.setBackgroundColor(getResources().getColor(R.color.list_even));
+ } else {
+ view.setBackgroundColor(getResources().getColor(R.color.list_odd));
+ }
+
+ name.setText(group.name);
+ name.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Navigation.findNavController(v).navigate(R.id.actionsFragment);
+ }
+ });
+
+ i++;
+ container.addView(view);
+ }
+ }
}
\ No newline at end of file
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
new file mode 100644
index 0000000..d612144
--- /dev/null
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/editor/VariablesFragment.java
@@ -0,0 +1,68 @@
+package org.timecrafters.TimeCraftersConfigurationTool.ui.editor;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.navigation.NavAction;
+import androidx.navigation.Navigation;
+import androidx.navigation.ui.NavigationUI;
+
+import org.timecrafters.TimeCraftersConfigurationTool.R;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend;
+import org.timecrafters.TimeCraftersConfigurationTool.backend.Config;
+
+public class VariablesFragment extends Fragment {
+ private Config config;
+ private LinearLayout container;
+ private Config.Group group;
+ private Config.Action action;
+
+ public View onCreateView(@NonNull LayoutInflater inflater,
+ ViewGroup container, Bundle savedInstanceState) {
+ final View root = inflater.inflate(R.layout.fragment_variables, container, false);
+ this.container = root.findViewById(R.id.container);
+
+ this.config = Backend.instance().getConfig();
+ this.group = config.getGroups().get(0);
+ this.action = group.getActions().get(0);
+ if (config != null) {
+ ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Action: " + action.name);
+
+ populateVariables();
+ }
+
+ return root;
+ }
+
+ private void populateVariables() {
+ int i = 0;
+ for (Config.Variable variable : action.getVariables()) {
+ View view = View.inflate(getContext(), R.layout.fragment_part_variables, null);
+ TextView name = view.findViewById(R.id.name);
+ TextView value = view.findViewById(R.id.value);
+ ImageButton rename = view.findViewById(R.id.rename);
+ ImageButton delete = view.findViewById(R.id.delete);
+
+ if (i % 2 == 0) { // even
+ view.setBackgroundColor(getResources().getColor(R.color.list_even));
+ } else {
+ view.setBackgroundColor(getResources().getColor(R.color.list_odd));
+ }
+
+ name.setText(variable.name);
+ value.setText("" + variable.value());
+
+ i++;
+ container.addView(view);
+ }
+ }
+}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/SettingsFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/SettingsFragment.java
index 6a62cd5..04b3f62 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/SettingsFragment.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/SettingsFragment.java
@@ -6,17 +6,15 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
+import androidx.navigation.Navigation;
import org.timecrafters.TimeCraftersConfigurationTool.R;
-import org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations.ConfigurationsActivity;
-import org.timecrafters.TimeCraftersConfigurationTool.ui.settings.presets.PresetsActivity;
public class SettingsFragment extends Fragment {
@@ -26,21 +24,21 @@ public class SettingsFragment extends Fragment {
ViewGroup container, Bundle savedInstanceState) {
settingsViewModel =
ViewModelProviders.of(this).get(SettingsViewModel.class);
- View root = inflater.inflate(R.layout.fragment_settings, container, false);
+ final View root = inflater.inflate(R.layout.fragment_settings, container, false);
final Button managePresets = root.findViewById(R.id.manage_presets);
final Button manageConfigurations = root.findViewById(R.id.manage_configurations);
managePresets.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- startActivity(new Intent(getContext(), PresetsActivity.class));
+ Navigation.findNavController(root).navigate(R.id.presetsFragment);
}
});
manageConfigurations.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- startActivity(new Intent(getContext(), ConfigurationsActivity.class));
+ Navigation.findNavController(root).navigate(R.id.configurationsFragment);
}
});
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsActivity.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsActivity.java
deleted file mode 100644
index 953729e..0000000
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsActivity.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations;
-
-import android.os.Bundle;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-
-import org.timecrafters.TimeCraftersConfigurationTool.R;
-
-public class ConfigurationsActivity extends AppCompatActivity {
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- setContentView(R.layout.activity_manage_configurations);
- LinearLayout v = findViewById(R.id.configurations);
- v.setBackgroundColor(getResources().getColor(R.color.list_even));
-
- View vv = v.inflate(getApplicationContext(), R.layout.fragment_configuration, null);
- v.addView(vv);
- }
-}
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
new file mode 100644
index 0000000..c4aa1c6
--- /dev/null
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsFragment.java
@@ -0,0 +1,30 @@
+package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.configurations;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+
+import org.timecrafters.TimeCraftersConfigurationTool.R;
+
+public class ConfigurationsFragment extends Fragment {
+ public View onCreateView(@NonNull LayoutInflater inflater,
+ ViewGroup container, Bundle savedInstanceState) {
+ final View root = inflater.inflate(R.layout.activity_manage_configurations, container, false);
+
+
+ LinearLayout v = root.findViewById(R.id.configurations);
+ v.setBackgroundColor(getResources().getColor(R.color.list_even));
+
+ View vv = v.inflate(getContext(), R.layout.fragment_configuration, null);
+ v.addView(vv);
+
+ return root;
+ }
+}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java
deleted file mode 100644
index 27ac045..0000000
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.presets;
-
-import androidx.appcompat.app.AppCompatActivity;
-
-public class PresetsActivity extends AppCompatActivity {
-}
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
new file mode 100644
index 0000000..96a51b1
--- /dev/null
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsFragment.java
@@ -0,0 +1,6 @@
+package org.timecrafters.TimeCraftersConfigurationTool.ui.settings.presets;
+
+import androidx.fragment.app.Fragment;
+
+public class PresetsFragment extends Fragment {
+}
diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETFragment.java
index 8bf12ea..c2af837 100644
--- a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETFragment.java
+++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETFragment.java
@@ -71,6 +71,7 @@ public class TACNETFragment extends Fragment {
public void onClick(View v) {
VariableDialog dialog = new VariableDialog();
dialog.show(getFragmentManager(), null);
+ Backend.instance().saveSettings();
}
});
diff --git a/app/src/main/res/layout/fragment_actions.xml b/app/src/main/res/layout/fragment_actions.xml
new file mode 100644
index 0000000..6d63fc7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_actions.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_configuration.xml b/app/src/main/res/layout/fragment_configuration.xml
index e3036ad..769ac8f 100644
--- a/app/src/main/res/layout/fragment_configuration.xml
+++ b/app/src/main/res/layout/fragment_configuration.xml
@@ -2,37 +2,20 @@
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+ android:layout_height="match_parent"
+ android:layout_weight="1"/>
-
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:orientation="vertical">
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_editor.xml b/app/src/main/res/layout/fragment_editor.xml
index 48f22e8..6515b9e 100644
--- a/app/src/main/res/layout/fragment_editor.xml
+++ b/app/src/main/res/layout/fragment_editor.xml
@@ -8,20 +8,22 @@
tools:context=".ui.editor.EditorFragment">
+ android:background="@color/list_even"
+ android:text="No configuration active"
+ android:textAlignment="center"
+ android:textSize="18sp" />
-
+ android:layout_height="match_parent">
-
-
+ android:orientation="vertical" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_part_actions.xml b/app/src/main/res/layout/fragment_part_actions.xml
new file mode 100644
index 0000000..6e90c3d
--- /dev/null
+++ b/app/src/main/res/layout/fragment_part_actions.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_part_configuration.xml b/app/src/main/res/layout/fragment_part_configuration.xml
new file mode 100644
index 0000000..769cfc1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_part_configuration.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_part_groups.xml b/app/src/main/res/layout/fragment_part_groups.xml
new file mode 100644
index 0000000..47c5703
--- /dev/null
+++ b/app/src/main/res/layout/fragment_part_groups.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_part_variables.xml b/app/src/main/res/layout/fragment_part_variables.xml
new file mode 100644
index 0000000..7492e17
--- /dev/null
+++ b/app/src/main/res/layout/fragment_part_variables.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_variables.xml b/app/src/main/res/layout/fragment_variables.xml
new file mode 100644
index 0000000..6d63fc7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_variables.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 973cec5..48e9fa6 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -15,16 +15,47 @@
android:id="@+id/navigation_editor"
android:name="org.timecrafters.TimeCraftersConfigurationTool.ui.editor.EditorFragment"
android:label="@string/title_editor"
- tools:layout="@layout/fragment_editor" />
+ tools:layout="@layout/fragment_editor" >
+
+
+ tools:layout="@layout/fragment_settings" >
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 605cb6c..8f313fc 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -23,6 +23,8 @@
#003f7f
#007f7f
+ #ff8800
+
#ddd
#fff
#222
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 952be86..1eb16a8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,6 +21,7 @@
Manage Configurations
Search
+ Groups
Close
Cancel
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 0bd2694..e7a7b47 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -10,6 +10,7 @@
- @font/dejavusans_condensed_fontfamily
- @style/Button
+ - @style/Button
- @style/NavigationBar
- @style/TextInput
- @style/ToggleButton