diff --git a/.idea/misc.xml b/.idea/misc.xml index 6630d50..687d49e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -39,7 +39,7 @@ - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ba8499e..2b5066d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,15 @@ + + + + + \ No newline at end of file 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 e1cc8bb..6a62cd5 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 @@ -1,9 +1,11 @@ package org.timecrafters.TimeCraftersConfigurationTool.ui.settings; +import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; import android.widget.TextView; import androidx.annotation.NonNull; @@ -13,6 +15,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; 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 { @@ -23,6 +27,23 @@ public class SettingsFragment extends Fragment { settingsViewModel = ViewModelProviders.of(this).get(SettingsViewModel.class); 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)); + } + }); + + manageConfigurations.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(getContext(), ConfigurationsActivity.class)); + } + }); + settingsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(@Nullable String s) { 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 new file mode 100644 index 0000000..953729e --- /dev/null +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsActivity.java @@ -0,0 +1,24 @@ +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/presets/PresetsActivity.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java new file mode 100644 index 0000000..27ac045 --- /dev/null +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java @@ -0,0 +1,6 @@ +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/tacnet/TACNETFragment.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/tacnet/TACNETFragment.java index 92c8e5e..8bf12ea 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 @@ -1,10 +1,13 @@ package org.timecrafters.TimeCraftersConfigurationTool.ui.tacnet; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.EditText; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -13,10 +16,12 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import org.timecrafters.TimeCraftersConfigurationTool.R; +import org.timecrafters.TimeCraftersConfigurationTool.backend.Backend; import org.timecrafters.TimeCraftersConfigurationTool.dialogs.VariableDialog; public class TACNETFragment extends Fragment { + private static final String TAG = "TACNETFragment"; private TACNETViewModel TACNETViewModel; public View onCreateView(@NonNull LayoutInflater inflater, @@ -24,14 +29,44 @@ public class TACNETFragment extends Fragment { TACNETViewModel = ViewModelProviders.of(this).get(TACNETViewModel.class); View root = inflater.inflate(R.layout.fragment_tacnet, container, false); - TACNETViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + final EditText hostname = root.findViewById(R.id.hostname); + final EditText port = root.findViewById(R.id.port); + + final Button connectButton = root.findViewById(R.id.tacnet_connect); + final Button startServerButton = root.findViewById(R.id.tacnet_start_server); + + hostname.setText(Backend.instance().getSettings().hostname); + port.setText(String.valueOf(Backend.instance().getSettings().port)); + + hostname.addTextChangedListener(new TextWatcher() { @Override - public void onChanged(@Nullable String s) { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + @Override + public void afterTextChanged(Editable s) { + Backend.instance().getSettings().hostname = hostname.getText().toString(); + Backend.instance().settingsChanged(); } }); - Button connect = root.findViewById(R.id.connect); - connect.setOnClickListener(new View.OnClickListener() { + port.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + @Override + public void afterTextChanged(Editable s) { + Backend.instance().getSettings().port = Integer.parseInt(port.getText().toString()); + Backend.instance().settingsChanged(); + } + }); + + connectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { VariableDialog dialog = new VariableDialog(); @@ -39,6 +74,20 @@ public class TACNETFragment extends Fragment { } }); + startServerButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + VariableDialog dialog = new VariableDialog(); + dialog.show(getFragmentManager(), null); + } + }); + + TACNETViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + } + }); + return root; } } \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/gear.png b/app/src/main/res/drawable-hdpi/gear.png new file mode 100644 index 0000000..eb37066 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/gear.png differ diff --git a/app/src/main/res/drawable-hdpi/trash.png b/app/src/main/res/drawable-hdpi/trash.png new file mode 100644 index 0000000..c0ab846 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/trash.png differ diff --git a/app/src/main/res/drawable-mdpi/gear.png b/app/src/main/res/drawable-mdpi/gear.png new file mode 100644 index 0000000..c38cf1f Binary files /dev/null and b/app/src/main/res/drawable-mdpi/gear.png differ diff --git a/app/src/main/res/drawable-mdpi/trash.png b/app/src/main/res/drawable-mdpi/trash.png new file mode 100644 index 0000000..01991d0 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/trash.png differ diff --git a/app/src/main/res/drawable-xhdpi/gear.png b/app/src/main/res/drawable-xhdpi/gear.png new file mode 100644 index 0000000..7909bb5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/gear.png differ diff --git a/app/src/main/res/drawable-xhdpi/trash.png b/app/src/main/res/drawable-xhdpi/trash.png new file mode 100644 index 0000000..a7f3d5b Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/trash.png differ diff --git a/app/src/main/res/drawable-xxhdpi/gear.png b/app/src/main/res/drawable-xxhdpi/gear.png new file mode 100644 index 0000000..f73364b Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/gear.png differ diff --git a/app/src/main/res/drawable-xxhdpi/trash.png b/app/src/main/res/drawable-xxhdpi/trash.png new file mode 100644 index 0000000..0c00b60 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/trash.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/gear.png b/app/src/main/res/drawable-xxxhdpi/gear.png new file mode 100644 index 0000000..9629011 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/gear.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/trash.png b/app/src/main/res/drawable-xxxhdpi/trash.png new file mode 100644 index 0000000..ea48d14 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/trash.png differ diff --git a/app/src/main/res/layout/activity_manage_configurations.xml b/app/src/main/res/layout/activity_manage_configurations.xml new file mode 100644 index 0000000..b97202e --- /dev/null +++ b/app/src/main/res/layout/activity_manage_configurations.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 new file mode 100644 index 0000000..47ebc61 --- /dev/null +++ b/app/src/main/res/layout/fragment_configuration.xml @@ -0,0 +1,38 @@ + + + +