From e1b9a30648fc67df54a0875e864fc644f2d8b3f0 Mon Sep 17 00:00:00 2001 From: JG-Cody Date: Mon, 28 Jun 2021 18:17:58 +0200 Subject: [PATCH] added headline to dynamic content --- .../Teraplex/AddButtonDialogSingle.java | 8 +- .../jg_cody/Teraplex/AddHeadlineDialog.java | 80 +++++++++++++++++++ .../Teraplex/ui/Flur/FlurFragment.java | 18 ++++- .../Teraplex/ui/rooms/ListAdapter.java | 5 ++ .../Teraplex/ui/rooms/ListItemHeadline.java | 40 ++-------- .../ui/rooms/ViewHolderDoubleButton.java | 14 ++-- .../res/layout/addbuttondialog_single.xml | 2 +- app/src/main/res/layout/addheadlinedialog.xml | 16 ++++ app/src/main/res/layout/headline.xml | 14 +++- 9 files changed, 142 insertions(+), 55 deletions(-) create mode 100644 app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java create mode 100644 app/src/main/res/layout/addheadlinedialog.xml diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java index 05015b2..6053dae 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java @@ -1,7 +1,6 @@ package de.jg_cody.Teraplex; import android.app.Dialog; -import android.app.Fragment; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; @@ -9,16 +8,11 @@ import android.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; -import android.widget.ArrayAdapter; import android.widget.EditText; import androidx.fragment.app.DialogFragment; -import java.util.ArrayList; - import de.jg_cody.Teraplex.ui.Flur.FlurFragment; -import de.jg_cody.Teraplex.ui.rooms.ListItem; -import de.jg_cody.Teraplex.ui.rooms.*; public class AddButtonDialogSingle extends DialogFragment { private EditText editText_command, editText_name, editText_button_name; @@ -37,7 +31,7 @@ public class AddButtonDialogSingle extends DialogFragment { View view = inflater.inflate(R.layout.addbuttondialog_single, null); editText_command = view.findViewById(R.id.dialogSingle_editText_command); - editText_name = view.findViewById(R.id.dialogSingle_editText_name); + editText_name = view.findViewById(R.id.dialogheadline_editText_name); editText_button_name = view.findViewById(R.id.dialogSingle_editText_buttonName); diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java b/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java new file mode 100644 index 0000000..7524c9d --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java @@ -0,0 +1,80 @@ +package de.jg_cody.Teraplex; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; + +import androidx.fragment.app.DialogFragment; + +import de.jg_cody.Teraplex.ui.Flur.FlurFragment; + +public class AddHeadlineDialog extends DialogFragment { + private AddHeadlineDialogListener listener; + + private EditText editText_name; + private FlurFragment frag; + + /** + * + * @param savedInstanceState + * @return + */ + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + LayoutInflater inflater = getActivity().getLayoutInflater(); + View view = inflater.inflate(R.layout.addheadlinedialog, null); + + editText_name = view.findViewById(R.id.dialogheadline_editText_name); + + + builder.setView(view) + .setTitle("SINGLE BUTTON") + .setNegativeButton("CANCEL", (dialogInterface, i) -> { + + }) + .setPositiveButton("ADD", (dialogInterface, i) -> { + String headline = editText_name.getText().toString(); + listener.applyTextsHeadline(headline); + }); + + + AlertDialog mDialog = builder.create(); + mDialog.getWindow().setBackgroundDrawableResource(R.drawable.button_round); + return mDialog; + } + + public void setFragment(FlurFragment frag) + { + this.frag = frag; + } + public FlurFragment getFragment() + { + return frag; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + listener = (AddHeadlineDialogListener) frag; + } catch (ClassCastException e) { + throw new ClassCastException(frag.toString() + + "must implement ExampleDialogListener"); + } + } + + + + public interface AddHeadlineDialogListener { + void applyTextsHeadline(String headline); + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java index a7766b7..be6b25a 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java @@ -27,12 +27,13 @@ import java.util.Objects; import de.jg_cody.Teraplex.AddButtonDialogSingle; import de.jg_cody.Teraplex.AddButtonsDialogDouble; +import de.jg_cody.Teraplex.AddHeadlineDialog; import de.jg_cody.Teraplex.Cricketer; import de.jg_cody.Teraplex.MainActivity; import de.jg_cody.Teraplex.R; import de.jg_cody.Teraplex.ui.rooms.*; -public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddButtonDialogListenerSingle, AddButtonsDialogDouble.AddButtonsDialogListenerDouble { +public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddButtonDialogListenerSingle, AddButtonsDialogDouble.AddButtonsDialogListenerDouble, AddHeadlineDialog.AddHeadlineDialogListener { private FlurViewModel flurViewModel; @@ -100,7 +101,7 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB } else if (i == 1) { openDialog2(); } else if (i == 2) { - + openDialog3(); } else if (i == 3) { listAdapter.add(new ListItemSpace(3)); listAdapter.notifyDataSetChanged(); @@ -129,6 +130,12 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB addButtonsDialogDouble.setFragment(this); addButtonsDialogDouble.show(getActivity().getSupportFragmentManager(), "example dialog"); } + public void openDialog3() { + list_item_type = 2; + AddHeadlineDialog addHeadlineDialog = new AddHeadlineDialog(); + addHeadlineDialog.setFragment(this); + addHeadlineDialog.show(getActivity().getSupportFragmentManager(), "Headline"); + } @Override public void applyTextsSingle(String name, String command, String button) { @@ -143,4 +150,11 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB listAdapter.add(new ListItemDouble(list_item_type,name, command1, command2, button1, button2)); listAdapter.notifyDataSetChanged(); } + + @Override + public void applyTextsHeadline(String headline) { + listAdapter.add(new ListItemHeadline(list_item_type,headline)); + listAdapter.notifyDataSetChanged(); + + } } \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListAdapter.java b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListAdapter.java index b451c6d..9358c3c 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListAdapter.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListAdapter.java @@ -83,6 +83,11 @@ public class ListAdapter extends ArrayAdapter { } else if (listViewItemType == SPACE) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.space, null); + }else if (listViewItemType == HEADLINE) { + convertView = LayoutInflater.from(getContext()).inflate(R.layout.headline, null); + Button text = (Button) convertView.findViewById(R.id.headline_text); + text.setText(s[0]); + } else { viewHolder = (IViewHolder) convertView.getTag(); } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListItemHeadline.java b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListItemHeadline.java index c4de03f..b29ef31 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListItemHeadline.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ListItemHeadline.java @@ -2,8 +2,8 @@ package de.jg_cody.Teraplex.ui.rooms; public class ListItemHeadline extends ListItem{ - private String name, command1, command2,button1, button2; - public ListItemHeadline(int type, String name, String command1, String command2, String button1, String button2) { + private String name; + public ListItemHeadline(int type, String name) { super( type); this.name = name; } @@ -11,46 +11,16 @@ public class ListItemHeadline extends ListItem{ { this.name = name; } - public void setCommand1(String command1) - { - this.command1 = command1; - } - public void setCommand2(String command2) - { - this.command2 = command2; - } - public void setButton1(String button1) - { - this.button1 = button1; - } - public void setButton2(String button2) - { - this.button2 = button2; - } + public String getName() { return name; } - public String getCommand1() - { - return command1; - } - public String getCommand2() - { - return command2; - } - public String getButton1() - { - return button1; - } - public String getButton2() - { - return button2; - } + @Override public String[] getStrings() { - String[] s = {name, command1, command2, button1,button2}; + String[] s = {name}; return s; } } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ViewHolderDoubleButton.java b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ViewHolderDoubleButton.java index 9d4eab9..9004962 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ViewHolderDoubleButton.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/rooms/ViewHolderDoubleButton.java @@ -5,24 +5,26 @@ import android.widget.Button; import android.widget.Toast; public class ViewHolderDoubleButton implements IViewHolder{ - String command; + String commandL; + String commandR; Button bLeft, bRight; - public ViewHolderDoubleButton(Button bLeft, Button bRight, String command) { + public ViewHolderDoubleButton(Button bLeft, Button bRight, String commandL, String commandR) { this.bLeft = bLeft; this.bRight = bRight; - this.command = command; + this.commandL = commandL; + this.commandR = commandR; bLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Toast.makeText(bLeft.getContext(),command + " ON",Toast.LENGTH_SHORT).show(); + Toast.makeText(bLeft.getContext(),commandL + " ON",Toast.LENGTH_SHORT).show(); } }); bRight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Toast.makeText(bRight.getContext(),command + " ON",Toast.LENGTH_SHORT).show(); + Toast.makeText(bRight.getContext(),commandR + " OFF",Toast.LENGTH_SHORT).show(); } }); @@ -30,7 +32,7 @@ public class ViewHolderDoubleButton implements IViewHolder{ } @Override public String getCommand() { - return command; + return commandL; } public Button getbLeft() { return bLeft; diff --git a/app/src/main/res/layout/addbuttondialog_single.xml b/app/src/main/res/layout/addbuttondialog_single.xml index b80bdca..5308cd6 100644 --- a/app/src/main/res/layout/addbuttondialog_single.xml +++ b/app/src/main/res/layout/addbuttondialog_single.xml @@ -6,7 +6,7 @@ android:orientation="vertical" > + + + + + diff --git a/app/src/main/res/layout/headline.xml b/app/src/main/res/layout/headline.xml index f8a7344..fcf1d8e 100644 --- a/app/src/main/res/layout/headline.xml +++ b/app/src/main/res/layout/headline.xml @@ -6,10 +6,16 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - + android:background="@drawable/button_round" + android:insetLeft="25dp" + android:insetRight="25dp" + android:text="TEXT" + app:backgroundTint="@null" /> \ No newline at end of file