From a21d8d89318b0fcbce0afea8e16a647fe46688f9 Mon Sep 17 00:00:00 2001 From: JG-Cody Date: Thu, 22 Jul 2021 21:10:13 +0200 Subject: [PATCH] bugfixes: terminal now works removing items by button is now saved --- .../jg_cody/Teraplex/ui/tabs/ListAdapter.java | 12 +++- .../Teraplex/ui/tabs/TabsFragment.java | 11 +++- .../Teraplex/ui/terminal/Terminal.java | 2 +- .../ui/terminal/TerminalFragment.java | 61 +++++++------------ 4 files changed, 43 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/tabs/ListAdapter.java b/app/src/main/java/de/jg_cody/Teraplex/ui/tabs/ListAdapter.java index 4351e3b..7d942c4 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/tabs/ListAdapter.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/tabs/ListAdapter.java @@ -11,6 +11,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import org.jetbrains.annotations.NotNull; +import org.json.JSONException; import java.util.ArrayList; import java.util.Collections; @@ -27,11 +28,15 @@ public class ListAdapter extends RecyclerView.Adapter objects; + private final Context context; - public ListAdapter(Context context, ArrayList objects) { + public ListAdapter(Context context, ArrayList objects, String tabname) { this.inflater = LayoutInflater.from(context); + this.tabname = tabname; this.objects = objects; + this.context = context; } @NonNull @@ -124,6 +129,11 @@ public class ListAdapter extends RecyclerView.Adapter(); - listAdapter = new ListAdapter(getContext(), items); + listAdapter = new ListAdapter(getContext(), items, tabname); listView.setLayoutManager(new LinearLayoutManager(getContext())); listView.setAdapter(listAdapter); @@ -251,13 +253,16 @@ public class TabsFragment extends Fragment implements AddButtonDialogSingle.AddB ; } - public void save() throws JSONException { + public static void save(String tabname, Context context, ListAdapter listAdapter) throws JSONException { JSONArray listItems2 = new JSONArray(); for (ListItem Item : listAdapter.getObjects()) { listItems2.put(Item.toJson()); } - SharedPreferences.Editor editor = requireContext().getSharedPreferences("appsettings", MODE_PRIVATE).edit(); + SharedPreferences.Editor editor = context.getSharedPreferences("appsettings", MODE_PRIVATE).edit(); editor.putString("listItems." + tabname, listItems2.toString()); editor.apply(); } + public void save() throws JSONException { + save(tabname, requireContext(), listAdapter); + } } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/Terminal.java b/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/Terminal.java index ed64436..dad835c 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/Terminal.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/Terminal.java @@ -61,7 +61,7 @@ public class Terminal { channel.connect(3 * 1000); } catch (Exception e) { - e.printStackTrace(); + throw new RuntimeException(e); } } diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/TerminalFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/TerminalFragment.java index d75ee0e..21cf0ee 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/TerminalFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/terminal/TerminalFragment.java @@ -6,11 +6,9 @@ import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; import android.os.Vibrator; -import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.EditText; import android.widget.ScrollView; @@ -66,8 +64,7 @@ public class TerminalFragment extends Fragment { mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id mDialog.show(); - } - else { + } else { Toast.makeText(getContext(), ("test"), Toast.LENGTH_SHORT).show(); scrollView = (ScrollView) root.findViewById((R.id.scrollView)); terminal_edit_text = (EditText) root.findViewById(R.id.terminal_edit_text); @@ -76,53 +73,41 @@ public class TerminalFragment extends Fragment { @Override public void onClick(View view) { - if (terminal != null) { - terminal.sendTerminalCommand(terminal_edit_text.getText().toString()); - } - - } - - }); - terminal_edit_text.setOnEditorActionListener(new EditText.OnEditorActionListener() { - @Override - public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) - { - boolean handled=false; - - // Some phones disregard the IME setting option in the xml, instead - // they send IME_ACTION_UNSPECIFIED so we need to catch that - if(EditorInfo.IME_ACTION_DONE==actionId || EditorInfo.IME_ACTION_UNSPECIFIED==actionId) - { - if (terminal != null) { - terminal.sendTerminalCommand(terminal_edit_text.getText().toString()); - } - - handled=true; + if (terminal != null) { + terminal.sendTerminalCommand(terminal_edit_text.getText().toString()); } - return handled; } + }); + terminal_textView = (TextView) root.findViewById(R.id.terminal_textView); new Thread() { public void run() { - terminal = new Terminal(); + try { + terminal = new Terminal(); + } catch (Exception e) { + requireActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getContext(), "CAN NOT CONNECT", Toast.LENGTH_SHORT).show(); + + } + }); + return; + } + requireActivity().runOnUiThread(new Runnable() { @Override public void run() { - Toast.makeText(getContext(),"VERBUNDEN", Toast.LENGTH_SHORT).show(); + Toast.makeText(getContext(), "VERBUNDEN", Toast.LENGTH_SHORT).show(); } }); - boolean isFragmentActive = true; - while (isFragmentActive) { - Fragment myFragment = (Fragment) requireActivity().getSupportFragmentManager().findFragmentById(R.id.fragment_terminal); - if (myFragment == null) { + while (terminal != null) { - isFragmentActive = false; - } - else if (myFragment.isVisible()) - { - isFragmentActive = false; + if (getActivity() == null) { + + return; } try {