From f27706e3be88409590f0bdaa41fbbbefced077b8 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sun, 14 Jun 2020 09:36:34 -0500 Subject: [PATCH] Initial work on custom dialogs --- .../dialogs/Dialog.java | 45 ++++++++++++ .../ui/settings/SettingsFragment.java | 2 - .../ui/tacnet/TACNETFragment.java | 21 +++++- app/src/main/res/drawable-hdpi/cross.png | Bin 0 -> 378 bytes app/src/main/res/drawable-mdpi/cross.png | Bin 0 -> 274 bytes app/src/main/res/drawable-xhdpi/cross.png | Bin 0 -> 460 bytes app/src/main/res/drawable-xxhdpi/cross.png | Bin 0 -> 780 bytes app/src/main/res/drawable-xxxhdpi/cross.png | Bin 0 -> 987 bytes app/src/main/res/drawable/dialog.xml | 8 +++ app/src/main/res/layout/dialog_base.xml | 50 +++++++++++++ .../main/res/layout/dialog_edit_variable.xml | 67 ++++++++++++++++++ app/src/main/res/layout/fragment_settings.xml | 42 +++++++---- app/src/main/res/values/colors.xml | 12 ++++ app/src/main/res/values/strings.xml | 13 ++++ 14 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/Dialog.java create mode 100644 app/src/main/res/drawable-hdpi/cross.png create mode 100644 app/src/main/res/drawable-mdpi/cross.png create mode 100644 app/src/main/res/drawable-xhdpi/cross.png create mode 100644 app/src/main/res/drawable-xxhdpi/cross.png create mode 100644 app/src/main/res/drawable-xxxhdpi/cross.png create mode 100644 app/src/main/res/drawable/dialog.xml create mode 100644 app/src/main/res/layout/dialog_base.xml create mode 100644 app/src/main/res/layout/dialog_edit_variable.xml diff --git a/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/Dialog.java b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/Dialog.java new file mode 100644 index 0000000..2f88c0a --- /dev/null +++ b/app/src/main/java/org/timecrafters/TimeCraftersConfigurationTool/dialogs/Dialog.java @@ -0,0 +1,45 @@ +package org.timecrafters.TimeCraftersConfigurationTool.dialogs; + +import android.app.ActionBar; +import android.content.Context; +import android.graphics.Point; +import android.os.Bundle; +import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageButton; + +import androidx.annotation.NonNull; + +import org.timecrafters.TimeCraftersConfigurationTool.R; + +public class Dialog extends android.app.Dialog { + public Dialog(@NonNull Context context) { + super(context); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.dialog_base); + + ImageButton closeButton = findViewById(R.id.dialogCloseButton); + closeButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dismiss(); + } + }); + } + + @Override + protected void onStart() { + Point point = new Point(); + getWindow().getWindowManager().getDefaultDisplay().getSize(point); + getWindow().setLayout((int) (point.x * 0.75), ViewGroup.LayoutParams.WRAP_CONTENT); + } +} 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 11ebe88..e1cc8bb 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 @@ -23,11 +23,9 @@ public class SettingsFragment extends Fragment { settingsViewModel = ViewModelProviders.of(this).get(SettingsViewModel.class); View root = inflater.inflate(R.layout.fragment_settings, container, false); - final TextView textView = root.findViewById(R.id.text_settings); settingsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(@Nullable String s) { - textView.setText(s); } }); return root; 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 9932e2d..3db896c 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 @@ -4,6 +4,8 @@ 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 androidx.annotation.NonNull; @@ -13,6 +15,9 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import org.timecrafters.TimeCraftersConfigurationTool.R; +import org.timecrafters.TimeCraftersConfigurationTool.dialogs.Dialog; + +import static android.view.View.inflate; public class TACNETFragment extends Fragment { @@ -23,13 +28,25 @@ public class TACNETFragment extends Fragment { TACNETViewModel = ViewModelProviders.of(this).get(TACNETViewModel.class); View root = inflater.inflate(R.layout.fragment_tacnet, container, false); - final TextView textView = root.findViewById(R.id.text_tacnet); TACNETViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(@Nullable String s) { - textView.setText(s); } }); + + Button connect = root.findViewById(R.id.connect); + connect.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Dialog dialog = new Dialog(getContext()); + dialog.show(); + + ((TextView)dialog.findViewById(R.id.dialogTitle)).setText("Add Variable Variable"); + LinearLayout view = dialog.findViewById(R.id.dialogContent); + view.addView(getLayoutInflater().inflate(R.layout.dialog_edit_variable, null)); + } + }); + return root; } } \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/cross.png b/app/src/main/res/drawable-hdpi/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..21d7091973e52d13d1e9269a26fce6d7c12c910f GIT binary patch literal 378 zcmV-=0fqjFP)wjPSC4Ajb`G3@%YYQ{4f=ig?y&y^OeunPz)e8|WPmr)>&bT-&5V>H=%^Xi zu~#`Io!P(XJ=ze|$PWj-oPx#07*qoM6N<$f{6{I(EtDd literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/cross.png b/app/src/main/res/drawable-mdpi/cross.png new file mode 100644 index 0000000000000000000000000000000000000000..caffa0451c67d8c236b48791bc0e5afe681d5622 GIT binary patch literal 274 zcmV+t0qy>YP)1fyE`*W%uMob^v!#v z>Acwv23lHLT3TBFz1p_D13UqqEto{`P8^)r>zYdZ4d4Ly0DM~T2ABo#&djwoPVDsp zxS}wyb2K?c3CMeJ=H{Bec()V=_8yH8mAR`~2Uli(Q+aakB@J|%2oRsdfYn5x_+$po zOhkxJYT(pFsCY61Q_nYs%S5Pn>^Y^H1x19AP~!#lG+qH}0rA*l#T6+QfQC^#axb`Z z(UQpoaxNu;UB+OdF`SuHI;AurE1vjql6h>1f>}@iykzldOc0BgH^CtO%mlaioH;*$ZaBP!D z-X8a)9bf<#CU-r)o8!%06e$!6g+ifFC=?2XLZLVU>~^~@@dI&8{G7v Cb9lSfQ z{)qUF_|}&=4dNwnLHtGB=5R$!h;4^GwDHbWf%+-&JMoP8#)m*L@mqn$o;GPlTi-$b zKHimD_VCs8?n9uqWn&p{i9=$mLhTmbaa*#7wq$`aUJ-jG>h|z#mD)iFWV~x)jNWol znBdui7s&7)CL0&@yadl|k3}HE-&lhCIfgvK?{1Gxpv<^O&y6IEoKXcsJ_v!bk(BIv z55t&z0zEf10ykk#yo|!m%AP9`9=oRKu~Wyi z8W+5uQ#V(xuHF- zgIjn?Yv<#AzjNR$J9FAW}Z-aC~F0000000000000000000000000fcx0(c8`d! zh&|#b;^&NfLu^@yx5f9)8mGwVocNr0-!<_c5Z@Dj5*NhZ#BD|{iDP2ZV7yJf=Q2l} zBBv|jH{u!bo=XNi<-oQDnG#3DhJjcce6O@%tip&d#3wEp@Q%1CVSwO@IMitZi$COh zm5Ej4I&sN>S;>Ut#DqX~4KddF+8af&&O$Wcnj`+TRu#lnl^#1PV+`7WE&p2giM0}O z)%Y4i4eA@PI4vv-@^a4v_w73tfSwx`Osn<5uqJ0-*(eeSXNa}#xH z-6n{))Wk#aMa=sZ-yt0pB)*BSq9p2y2{nEkC7y`iC{qfB2@wCzI&I?cV<$}UZ&(xN zj_r2BdFJQXqRuS8tZg`kMkPj2;s?Z!77Y;hK8RKPnx#sXlD;F~#W&Hnqpj~K6!H5G zEyDdMOmI~EI83n6x1+T0D3k?v;K5PEAgG1eV&9IEzN1iHxP~4cM-M}&1=KC|?WpWK zs^gcB|AfNghfxLK<2(3gMCL)7*M!x$3Wjv@CK}TGNoN2t~Os|4FmEYeoa-31@XAl zRKww5um+?&jo48bUx%-m!hmc;&|M8Nb`=kkJ7vJ7g2is3dk9(@CSNGn99+6&z)Rwf zl80Lp6XXBq4Ej<0000000000000000002^gFoMtX?JTk6y^W`002ov JPDHLkV1nUT$XEaX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/dialog.xml b/app/src/main/res/drawable/dialog.xml new file mode 100644 index 0000000..9989c68 --- /dev/null +++ b/app/src/main/res/drawable/dialog.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml new file mode 100644 index 0000000..445aeda --- /dev/null +++ b/app/src/main/res/layout/dialog_base.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_edit_variable.xml b/app/src/main/res/layout/dialog_edit_variable.xml new file mode 100644 index 0000000..ab67f5c --- /dev/null +++ b/app/src/main/res/layout/dialog_edit_variable.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + +