From 27ca41a4169c260db10f81a382dcd800f7713326 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sun, 28 Jun 2020 18:42:36 -0500 Subject: [PATCH] Stubbed Presets and Configurations activities, stubbed fragment for configurations --- .idea/misc.xml | 2 +- app/src/main/AndroidManifest.xml | 9 +++ .../ui/settings/SettingsFragment.java | 21 +++++++ .../ConfigurationsActivity.java | 24 ++++++++ .../ui/settings/presets/PresetsActivity.java | 6 ++ .../ui/tacnet/TACNETFragment.java | 57 ++++++++++++++++-- app/src/main/res/drawable-hdpi/gear.png | Bin 0 -> 663 bytes app/src/main/res/drawable-hdpi/trash.png | Bin 0 -> 212 bytes app/src/main/res/drawable-mdpi/gear.png | Bin 0 -> 416 bytes app/src/main/res/drawable-mdpi/trash.png | Bin 0 -> 167 bytes app/src/main/res/drawable-xhdpi/gear.png | Bin 0 -> 870 bytes app/src/main/res/drawable-xhdpi/trash.png | Bin 0 -> 259 bytes app/src/main/res/drawable-xxhdpi/gear.png | Bin 0 -> 1425 bytes app/src/main/res/drawable-xxhdpi/trash.png | Bin 0 -> 378 bytes app/src/main/res/drawable-xxxhdpi/gear.png | Bin 0 -> 1998 bytes app/src/main/res/drawable-xxxhdpi/trash.png | Bin 0 -> 474 bytes .../layout/activity_manage_configurations.xml | 20 ++++++ .../res/layout/fragment_configuration.xml | 38 ++++++++++++ app/src/main/res/layout/fragment_settings.xml | 4 +- app/src/main/res/layout/fragment_tacnet.xml | 8 +-- 20 files changed, 178 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/configurations/ConfigurationsActivity.java create mode 100644 app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/ui/settings/presets/PresetsActivity.java create mode 100644 app/src/main/res/drawable-hdpi/gear.png create mode 100644 app/src/main/res/drawable-hdpi/trash.png create mode 100644 app/src/main/res/drawable-mdpi/gear.png create mode 100644 app/src/main/res/drawable-mdpi/trash.png create mode 100644 app/src/main/res/drawable-xhdpi/gear.png create mode 100644 app/src/main/res/drawable-xhdpi/trash.png create mode 100644 app/src/main/res/drawable-xxhdpi/gear.png create mode 100644 app/src/main/res/drawable-xxhdpi/trash.png create mode 100644 app/src/main/res/drawable-xxxhdpi/gear.png create mode 100644 app/src/main/res/drawable-xxxhdpi/trash.png create mode 100644 app/src/main/res/layout/activity_manage_configurations.xml create mode 100644 app/src/main/res/layout/fragment_configuration.xml 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 0000000000000000000000000000000000000000..eb370668aba92c5b01ce9c056dd98af6ac69c47f GIT binary patch literal 663 zcmV;I0%-k-P)dRw%tZh9BdoJtb-JZ){KjRobV#WR3D$bV^5%spfKnM zo5~iEXWGPfQBY5@rS!csEM{J}kn;$mARZP5$2^00Hi6He#Icq2P7|KD!LCNoZ*bMt zLn$_#6ZcA5c%h(7c0lnY#;<4u9Z3(LN6?hP*e#Jh%9?Kmg^gLmwsqJD`l2y(?5z&Z zB>1lRCL?SVgl8w25gKbFC~sJuobWk&&3m^%0WM;%#Qon~+(QEfK}#ZqP@LT3oBJ6h zRx!RuT$Xe)Uz2yOQwR_Cj{6}f3Q-i~5udSl_%x}DA%R`Cf+FA*?|C!0DJCJI)6}oI zOf%q*!Mhb_B?$~Y278)3HOHsvBiQoEX~ZY%)S-xJHxy+ijyTU1l#Jiv$~&WmiHn9} zZH>1)$)YF*AG$2i$nbm3b~W-%t`qx6R1Jy$QM%TFmm*+icrufqsah5Jja*JN@b4SE xC0^{%W%$M_UpW-n%0(L8UGd|k1|%Oc%$NbBW_!9ghE&{2PLN<-oFKvz^x^;i zdNYMGmPZ^WZLH{{1_st6gqs#_f{0eFTGXbVz@-cK{(;i;a;0u+z0>VG z@Lf0zLUV7q2pss~%;=mm=R0SPiNtdJn-K&-8stEJ5ytCa1g78}tb%=TElz)9IK$6- z@I@wI6FhM}2BkR0kHf>@L^%-pj3!)rB4HHcMexSMADn-JHfVt^*I`6X)Z5<}H+I1x zNU4N}5&E3pftsy@1Mo;0lvr*d8TH@_UKsj8&v%yNvVLCMuE+HScllD>=PLeF{HbF>W}Wb7KdbQlg_c z?V_TLNvTiJlpyDu4H29jp^X;29p@K3ELkDr!E0?Pwk6R}MEsrF@ur(95eC%(Q3BjY zLR}t36zLQ&KGIOyc=|+7b0D{yt^||VgrHev6O$R$x9m}8E9SlbN{r#{gFhLYTORiU PZD#Ov^>bP0l+XkK7WFz- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7909bb5228414d58c0044a5693b7d8e84b562b97 GIT binary patch literal 870 zcmV-s1DX7ZP)13;aUexI4Q{#Uya!#iGX5a=2;PES{Cq9A?P45- z);xI1`LU{TqA6$xxeHAa zJ30VGfDiT})iZLGHgTn2-n(WC<>xOVG| ze*&UD-W3Pa;=gGyqU0ByVvk7&X!j<-ii`0S9`Op^*8%b#8!~P>jHrw50XMmfsxf~` z=!U_7k^}uz1Vl)k^ElNR8H%PHX#mfag|g~GJQq!h(Si)Ur?~EFKB4>2qnaHu)x4H93k?eWM;hI<&>i;3gKiTJoc37cn$Vxn z=#C2A5r?^{Ou@)qg6q02*)kP`P_Ibj$0FuC6=J61pC-v48V4we!(!xk;E=>=wK-Aq z;vuiBGZj=9j)=19lx(t$HiEM}PSBLvCkHi$GFspc+z!^6c4E>a4{{YYvUW`g{mheX z#H0gfl-(+D^4$>&KLc$(-j(2)Nw*<%Ydc_il)lb)*f?KcT6qjs7tV9IG&{Uw3x~~u z&$~e+6qIlUIqZ@fMZT@2xy}!B9?ZIo(-J!A3$?hJ<*U5J(Eq`(w3humhag?IuLXCG$N}=mP5%+XGjUfqkIxy1HYMxMHgL+yTUq2k0gyM@7!4P zFLhiFUx{W!Gt5r@J?Rlf{q^ugF3gwxc^)^$%3ajMffYH${%c2~{K2b5dDg}!qBf^F wE~zI2|A=L95bS1yQ-L-oD^{#nu~Mo00TpIuV37{WdH?_b07*qoM6N<$g5Z&oLI3~& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..a7f3d5b2e4deaf5f0f7b71ea162ef5e5968b152a GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtQ=Tr4Ar-gY-Z;p`7%0*9@S&2L zbj}iwvWTdzwSRMbi~UcT_Dt10+SGdI^2fQYXP3yBJ~ye@UuAac%YIK!5yN8=$)e{Z zE>G(`;A!13=- z-xR!9o@c}*xZz{LpI|X11?2_?rhV25(;C$c?T^XWHM)G8r&7btp#T&{5OtOcUnM5A zaY%SSeE4Isk28zO67|zvyl*%Eyxp?V{xbP0l+XkK$u4PO literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f73364bf47127db455b36ffc69b747d4c8c5ca20 GIT binary patch literal 1425 zcmV;C1#bF@P)DStJ&?frzGAinSsYQArkB3#pYAmAxbjE8NIO zwKZmL>5>&S>uY!VpSJH0z85a1b7s!D)7&{bdw%eNWoPc=eD68G*SQl#!GZ+~7A#n> zV8Ma~3l=O`uwd3UK0baqxCPt?)`86_?wPEjTnAQxSHQ2}H}DrY2QH*I3Fc^yzY27N zX`s+<;>-XagMTa#(UvR6m%w&V1_wCnX0($)k8pNm73gkoKJ}dua2PC^^aA1UB6!d6 zT{-72Fufg?*e@9cnh#FZIc6WY$#)S7pbN|botn>IvJ~iV&@1NvSAuQeVx42gz^4)! zeHQ2r@FQ>d6A?=Jd;$2~LLeFJ5cmx21}7|q6}|>jeH3RNoo3oMyeTs(^_{6;uft%o zGS5eGz5-RvOgJXK0bC0nXYSK1VJ>l*6?_t>1H3~qOv_~eyw3qNOPo>g0l2{@aV`TZ z{)d5AIlxOPMm00C*6~L`EcfJ-K(oQo2821s*(HAIDX=xgGxTA{Eb^!0KKdOA=^Hr6 zEHg%gT`NmMmZ{+yCHl9Gbt0LR9@i+xb~06153X;8K$7o#kwF|u0(UT?6&xPMbg&0h z4E|>mi`kg7ugua!X5YJ#jpr?pB!fRWiX%7ttPCXMHDy-3NJ&v9~(TBI#f*ZM8ttSS+fU^lR!MxvU;y@&CV&+8 zfMfLR%~K3n8uzouobV`TL;A*~O|iw0CVXh&Y!iX6)|_L9V=1yJ&$h;Chiv%)%{dks zLbAz!%+{P^t)rvfnwLP&*Ce0 z{Ef<>H2(7v=mm!vB$fG-4f>$n1|RgYp;RxE@1`(+vWPzN2ZSz$RdC2xV28aDHWYc#ehe5zd;ui3+MyY|43=RS*A zckQRM{u6vlzc7nFqR$}UDBtpkZQBn#pKLmQ>5yKeIcRF@HhV`y`ZB9obatnG2L7H2 z4%N8n6Wk|@EdoNHL)NXEwGVr>+mQ;xKUm!S_v|!2#^{qExz^hh@_Yk3C$fD#)5o3G zp&YiD>+y%Y;^&(l-7hKi1U^2u5xVSZiw2!xa4AH$A=klo>rZxgFt7Q zVfRGsWE84IbWN~@n$F@Fv*9xR&KmySqZmy_<1c^GZ<$Fub|rrm)DZ;>7A#n>V8Ma~ f3l=Qc#J7I|;w5!5p384W00000NkvXXu0mjfmc5^E literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0c00b60c188dc43f95399359eef151fc4ad73709 GIT binary patch literal 378 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ea48d141b7e2497903141f82942f58b4bc7763b0 GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U|i_w;uunK>+PL|-pq+I#~;2d z;F+BoXwc;=Fxky<@lm}D$%q`K8$7po#0(>N+)@KCNV@F#pZSk3?{ArP>i1tY4{o#V z`YvcLQ5~)8IY|YA{=Roxd@(9Vy-dVfbLXFpyEpbm9M=r9|Fic-?HkK)Qq|f(LH&)( zZz#58weOFV`4_IUddK@4$vL+>{rE2Q*ZLIxcwBqTZ|;jH4CzPX3&IYco0DPMz~fNM zzDvSd0=Bn!res9(-^nS)H`MwEN9jUyt zEE$isPCXpL@TogmUz(#}_NnhJ&y!bgT>VJvr + + + + + + + \ 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 @@ + + + +