From af360901a182efccbb2f87932f60401586de2722 Mon Sep 17 00:00:00 2001 From: zwicki Date: Sun, 27 Jun 2021 16:27:09 +0200 Subject: [PATCH] dynamic content update --- .../Teraplex/AddButtonDialogSingle.java | 38 +++++++++++------ .../Teraplex/AddButtonsDialogDouble.java | 42 ++++++++----------- .../de/jg_cody/Teraplex/MainActivity.java | 26 ++++++++++++ .../Teraplex/ui/Flur/FlurFragment.java | 24 +++++++---- app/src/main/res/layout/fragment_flur.xml | 5 ++- 5 files changed, 87 insertions(+), 48 deletions(-) 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 422088f..05015b2 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java @@ -1,6 +1,7 @@ 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; @@ -15,12 +16,14 @@ 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; - private AddButtonDialogListener listener; + private AddButtonDialogListenerSingle listener; + private FlurFragment frag; /** * @@ -33,9 +36,9 @@ public class AddButtonDialogSingle extends DialogFragment { LayoutInflater inflater = getActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.addbuttondialog_single, null); - editText_command = getActivity().findViewById(R.id.dialogSingle_editText_command); - editText_name = getActivity().findViewById(R.id.dialogSingle_editText_name); - editText_button_name = getActivity().findViewById(R.id.dialogSingle_editText_buttonName); + editText_command = view.findViewById(R.id.dialogSingle_editText_command); + editText_name = view.findViewById(R.id.dialogSingle_editText_name); + editText_button_name = view.findViewById(R.id.dialogSingle_editText_buttonName); builder.setView(view) @@ -52,8 +55,7 @@ public class AddButtonDialogSingle extends DialogFragment { String command = editText_command.getText().toString(); String name = editText_name.getText().toString(); String button = editText_button_name.getText().toString(); - listener.applyTexts(name,command,button); - + listener.applyTextsSingle(name,command,button); } }); @@ -63,21 +65,31 @@ public class AddButtonDialogSingle extends DialogFragment { 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 = (AddButtonDialogListener) context; - } catch (ClassCastException e) { - throw new ClassCastException(context.toString() + + try { + listener = (AddButtonDialogListenerSingle) frag; + } catch (ClassCastException e) { + throw new ClassCastException(frag.toString() + "must implement ExampleDialogListener"); + } } - } - public interface AddButtonDialogListener { - void applyTexts(String name, String command, String button); + + public interface AddButtonDialogListenerSingle { + void applyTextsSingle(String name, String command, String button); } diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java index c7e1490..8d29800 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java @@ -11,11 +11,14 @@ import android.widget.EditText; import androidx.fragment.app.DialogFragment; +import de.jg_cody.Teraplex.ui.Flur.FlurFragment; + public class AddButtonsDialogDouble extends DialogFragment { - private AddButtonsDialogListener listener; + private AddButtonsDialogListenerDouble listener; private EditText name, command1, button1, command2, button2; + private FlurFragment frag; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -44,44 +47,33 @@ public class AddButtonsDialogDouble extends DialogFragment { command2 = getActivity().findViewById(R.id.dialogDouble_editText_command2); button1 = getActivity().findViewById(R.id.dialogDouble_editText_button1); button2 = getActivity().findViewById(R.id.dialogDouble_editText_button2); + 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 = (AddButtonsDialogListener) context; + listener = (AddButtonsDialogListenerDouble) frag; } catch (ClassCastException e) { } } - public interface AddButtonsDialogListener { - void applyTexts(String username, String password); + public interface AddButtonsDialogListenerDouble { + void applyTextsDouble(String name, String command1, String command2, String button1, String button2); } +} - public String getName() - { - return name.getText().toString(); - } - public String getCommand1() - { - return command1.getText().toString(); - } - public String getButton1() - { - return button1.getText().toString(); - } - public String getCommand2() - { - return command2.getText().toString(); - } - public String getButton2() - { - return button2.getText().toString(); - } -} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java index 4e74bb5..9a13b2c 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -1,7 +1,9 @@ package de.jg_cody.Teraplex; import android.app.Activity; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; @@ -27,6 +29,7 @@ import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.widget.ImageView; +import android.widget.ListView; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; @@ -44,19 +47,30 @@ import com.google.android.material.navigation.NavigationView; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.Base64; import java.util.Locale; +import java.util.Objects; import de.jg_cody.Teraplex.ui.Credits.CreditsFragment; import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment; import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment; import de.jg_cody.Teraplex.ui.home.HomeFragment; +import de.jg_cody.Teraplex.ui.rooms.ListAdapter; +import de.jg_cody.Teraplex.ui.rooms.ListItem; +import de.jg_cody.Teraplex.ui.rooms.ListItemDouble; +import de.jg_cody.Teraplex.ui.rooms.ListItemSingle; public class MainActivity extends AppCompatActivity { public static int RESULT_LOAD_IMAGE = 0; private AppBarConfiguration mAppBarConfiguration; + ListAdapter listAdapter; + ListView listView; + + ArrayList items; + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { @@ -132,9 +146,19 @@ public class MainActivity extends AppCompatActivity { NavigationUI.setupWithNavController(navigationView, navController); + + + + + + + + } + + /*static public class DemoPreferenceFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -308,4 +332,6 @@ public class MainActivity extends AppCompatActivity { canvas.drawRect(0F, 0F, (float) width, (float) height, paint); return bitmap; } + + } 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 335cd6d..44d9694 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 @@ -32,7 +32,7 @@ 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.AddButtonDialogListener{ +public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddButtonDialogListenerSingle, AddButtonsDialogDouble.AddButtonsDialogListenerDouble { private FlurViewModel flurViewModel; @@ -47,6 +47,8 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB ArrayList cricketersList = new ArrayList<>(); + int list_item_type; + @RequiresApi(api = Build.VERSION_CODES.O) public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -111,25 +113,31 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB mDialog.show(); } public void openDialog1() { + list_item_type = 0; AddButtonDialogSingle addButtonDialogSingle = new AddButtonDialogSingle(); + addButtonDialogSingle.setFragment(this); addButtonDialogSingle.show(getActivity().getSupportFragmentManager(), "example dialog"); } public void openDialog2() { + list_item_type = 1; AddButtonsDialogDouble addButtonsDialogDouble = new AddButtonsDialogDouble(); + addButtonsDialogDouble.setFragment(this); addButtonsDialogDouble.show(getActivity().getSupportFragmentManager(), "example dialog"); - items.add(new ListItemDouble(2,addButtonsDialogDouble.getName(), addButtonsDialogDouble.getCommand1(), addButtonsDialogDouble.getCommand2(), addButtonsDialogDouble.getButton1(), addButtonsDialogDouble.getButton2())); - listAdapter.notifyDataSetChanged(); - } - public void addItems(View v) { - listAdapter.notifyDataSetChanged(); } @Override - public void applyTexts(String name, String command, String button) { - items.add(new ListItemSingle(1,name,command,button)); + public void applyTextsSingle(String name, String command, String button) { + //items.add(new ListItemSingle(0,name,command,button)); + listAdapter.add(new ListItemSingle(list_item_type,name,command,button)); listAdapter.notifyDataSetChanged(); } + + @Override + public void applyTextsDouble(String name, String command1, String command2, String button1, String button2) { + listAdapter.add(new ListItemDouble(list_item_type,name, command1, command2, button1, button2)); + listAdapter.notifyDataSetChanged(); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_flur.xml b/app/src/main/res/layout/fragment_flur.xml index 41ba23c..5a6992d 100644 --- a/app/src/main/res/layout/fragment_flur.xml +++ b/app/src/main/res/layout/fragment_flur.xml @@ -1,6 +1,7 @@ @@ -19,8 +20,8 @@ + android:layout_height="match_parent" + android:visibility="visible" />