From fe0da8e7ac48abbc64ebd8146788b2d97463ace1 Mon Sep 17 00:00:00 2001 From: JG-Cody Date: Sun, 29 Aug 2021 20:43:24 +0200 Subject: [PATCH] terminalfont changed to monospacefont, fixed scroll on commandexecution and fixed visible/invisible-bug on homesite --- .../Teraplex/AddButtonDialogSingle.java | 7 ++--- .../Teraplex/AddButtonsDialogDouble.java | 4 +-- .../jg_cody/Teraplex/AddHeadlineDialog.java | 4 +-- .../de/jg_cody/Teraplex/MainActivity.java | 8 ++---- .../Teraplex/ui/home/HomeFragment.java | 24 ++++++++++-------- .../ui/settings/SettingsFragment.java | 4 +-- .../jg_cody/Teraplex/ui/tabs/ListAdapter.java | 10 +++----- .../ui/terminal/TerminalFragment.java | 19 +++++++++++--- app/src/main/res/layout/fragment_home.xml | 2 +- app/src/main/res/layout/fragment_terminal.xml | 2 ++ app/src/main/res/raw/alert_error.ogg | Bin 9376 -> 0 bytes app/src/main/res/raw/alert_ok.ogg | Bin 9132 -> 0 bytes .../res/raw/state_change_confirm_down.ogg | Bin 10298 -> 0 bytes .../main/res/raw/state_change_confirm_up.ogg | Bin 9978 -> 0 bytes 14 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 app/src/main/res/raw/alert_error.ogg delete mode 100644 app/src/main/res/raw/alert_ok.ogg delete mode 100644 app/src/main/res/raw/state_change_confirm_down.ogg delete mode 100644 app/src/main/res/raw/state_change_confirm_up.ogg 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 18ce9a3..6a6549b 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java @@ -1,12 +1,10 @@ package de.jg_cody.Teraplex; +import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.media.MediaPlayer; import android.os.Bundle; -import android.app.AlertDialog; - import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; @@ -56,8 +54,7 @@ public class AddButtonDialogSingle extends DialogFragment { String name = editText_name.getText().toString(); String button = editText_button_name.getText().toString(); if(command.isEmpty()||button.isEmpty()||name.isEmpty()){ - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.invalid)) .setMessage(getString(R.string.inputfields_cant_be_empty)) 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 19a6536..e0198cf 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java @@ -4,7 +4,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; -import android.media.MediaPlayer; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -45,8 +44,7 @@ public class AddButtonsDialogDouble extends DialogFragment { String button1 = editText_button1.getText().toString(); String button2 = editText_button2.getText().toString(); if(command1.isEmpty()||command2.isEmpty()||name.isEmpty()||button1.isEmpty()||button2.isEmpty()){ - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.invalid)) .setMessage(getString(R.string.inputfields_cant_be_empty)) diff --git a/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java b/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java index 16bed1e..87dff38 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java @@ -3,7 +3,6 @@ package de.jg_cody.Teraplex; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; -import android.media.MediaPlayer; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -45,8 +44,7 @@ public class AddHeadlineDialog extends DialogFragment { .setPositiveButton(R.string.add, (dialogInterface, i) -> { String headline = editText_name.getText().toString(); if(headline.isEmpty()){ - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.invalid)) .setMessage(getString(R.string.inputfields_cant_be_empty)) 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 75f94ea..049b764 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -15,7 +15,6 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.RectF; import android.graphics.drawable.ColorDrawable; -import android.media.MediaPlayer; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -56,7 +55,6 @@ import org.json.JSONObject; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -214,8 +212,7 @@ public class MainActivity extends AppCompatActivity { } } if (tabs.contains(tabname)) { - MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(MainActivity.this) .setTitle(getString(R.string.tabname)) .setMessage(getString(R.string.tabname_already_exist)) @@ -238,8 +235,7 @@ public class MainActivity extends AppCompatActivity { return; } if (tabname.isEmpty()) { - MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(MainActivity.this) .setTitle(getString(R.string.tabname)) .setMessage(getString(R.string.invalid)) diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java index 0f3fbc8..e69cada 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java @@ -8,7 +8,6 @@ import android.content.DialogInterface; import android.content.SharedPreferences; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; -import android.media.MediaPlayer; import android.os.Bundle; import android.os.Vibrator; import android.text.method.HideReturnsTransformationMethod; @@ -51,6 +50,7 @@ public class HomeFragment extends Fragment { Button loginButton; Button logoutButton; ImageView togglepassword; + ImageView backgroundoverlay_bottom; @@ -86,12 +86,14 @@ public class HomeFragment extends Fragment { reboot_Button = (Button) root.findViewById(R.id.reboot); shutdown_Button = (Button) root.findViewById(R.id.shutdown); togglepassword = (ImageView) root.findViewById(R.id.togglepassword); + backgroundoverlay_bottom = (ImageView) root.findViewById(R.id.backgroundoverlay_bottom); SharedPreferences t = requireContext().getSharedPreferences("appsettings", Context.MODE_PRIVATE); if (user == null || ip == null) { loginButton.setVisibility(View.VISIBLE); togglepassword.setVisibility(View.VISIBLE); reboot_Button.setVisibility(View.GONE); shutdown_Button.setVisibility(View.GONE); + backgroundoverlay_bottom.setVisibility(View.INVISIBLE); } else { loginButton.setVisibility(View.INVISIBLE); togglepassword.setVisibility(View.INVISIBLE); @@ -100,6 +102,7 @@ public class HomeFragment extends Fragment { passwordInput.setVisibility(View.GONE); reboot_Button.setVisibility(View.VISIBLE); shutdown_Button.setVisibility(View.VISIBLE); + backgroundoverlay_bottom.setVisibility(View.VISIBLE); } loginButton.setOnClickListener(new View.OnClickListener() { @Override @@ -110,8 +113,7 @@ public class HomeFragment extends Fragment { vr.vibrate(100); } if (userInput.getText().toString().trim().length() == 0 || ipInput.getText().toString().trim().length() == 0 || passwordInput.getText().toString().trim().length() == 0) { - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.invalid)) .setMessage(getString(R.string.inputfields_cant_be_empty)) @@ -166,6 +168,7 @@ public class HomeFragment extends Fragment { login_data.setText(""); reboot_Button.setVisibility(View.GONE); shutdown_Button.setVisibility(View.GONE); + backgroundoverlay_bottom.setVisibility(View.INVISIBLE); } else { login_data.setText(getString(R.string.sie_sind_als_angemeldet).replace("{IP}", ip).replace("{USERNAME}", user)); @@ -177,6 +180,7 @@ public class HomeFragment extends Fragment { passwordInput.setVisibility(View.GONE); reboot_Button.setVisibility(View.VISIBLE); shutdown_Button.setVisibility(View.VISIBLE); + backgroundoverlay_bottom.setVisibility(View.VISIBLE); } } }); @@ -222,10 +226,12 @@ public class HomeFragment extends Fragment { passwordInput.setVisibility(View.VISIBLE); reboot_Button.setVisibility(View.GONE); shutdown_Button.setVisibility(View.GONE); + backgroundoverlay_bottom.setVisibility(View.INVISIBLE); } else { logoutButton.setVisibility(View.VISIBLE); reboot_Button.setVisibility(View.VISIBLE); shutdown_Button.setVisibility(View.VISIBLE); + backgroundoverlay_bottom.setVisibility(View.VISIBLE); } logoutButton.setOnClickListener(new View.OnClickListener() { @Override @@ -249,8 +255,7 @@ public class HomeFragment extends Fragment { assert vr != null; vr.vibrate(100); } - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.restart_server)) .setMessage(getString(R.string.are_you_sure)) @@ -265,8 +270,7 @@ public class HomeFragment extends Fragment { vr.vibrate(100); } try { - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_down); - mp.start(); + Toast.makeText(getContext(), R.string.rebooting, Toast.LENGTH_SHORT).show(); SSH_connection.executeRemoteCommand(ip, user, password, "reboot"); } catch (Exception ignored) { @@ -303,8 +307,7 @@ public class HomeFragment extends Fragment { assert vr != null; vr.vibrate(100); } - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(getString(R.string.shutdown_server)) .setMessage(getString(R.string.are_you_sure)) @@ -319,8 +322,7 @@ public class HomeFragment extends Fragment { vr.vibrate(100); } try { - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_down); - mp.start(); + Toast.makeText(getContext(), R.string.shutting_down, Toast.LENGTH_SHORT).show(); SSH_connection.executeRemoteCommand(ip, user, password, "shutdown now"); } catch (Exception ignored) { diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/settings/SettingsFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/settings/SettingsFragment.java index 616be2a..204fffa 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/settings/SettingsFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/settings/SettingsFragment.java @@ -9,7 +9,6 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; -import android.media.MediaPlayer; import android.os.Bundle; import android.os.Vibrator; import android.util.Base64; @@ -98,8 +97,7 @@ public class SettingsFragment extends Fragment { assert vr != null; vr.vibrate(100); } - MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.alert_error); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) .setTitle(R.string.reset_app) .setMessage(R.string.are_you_sure_to_reset) 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 f5d79d2..e90e841 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 @@ -3,7 +3,6 @@ package de.jg_cody.Teraplex.ui.tabs; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; -import android.media.MediaPlayer; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -181,8 +180,7 @@ public class ListAdapter extends RecyclerView.Adapter { String headline = editText_name.getText().toString(); if(headline.isEmpty()){ - MediaPlayer mp = MediaPlayer.create(v.getContext(), R.raw.state_change_confirm_up); - mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(v.getContext()) .setTitle(R.string.invalid) .setMessage(R.string.inputfields_cant_be_empty) 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 1027a45..6602227 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 @@ -5,6 +5,8 @@ import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.os.Vibrator; import android.view.LayoutInflater; import android.view.View; @@ -25,6 +27,8 @@ import de.jg_cody.Teraplex.R; public class TerminalFragment extends Fragment { + public static boolean atBottom = false; + public static String command; Button send_button; @@ -79,7 +83,16 @@ public class TerminalFragment extends Fragment { } if (terminal != null) { terminal.sendTerminalCommand(terminal_edit_text.getText().toString()); - } + if (atBottom) { + final Handler handler = new Handler(Looper.getMainLooper()); + handler.postDelayed(new Runnable() { + @Override + public void run() { + scrollView.fullScroll(View.FOCUS_DOWN); + } + + }, 500); + }} } @@ -119,13 +132,13 @@ public class TerminalFragment extends Fragment { @Override public void run() { - boolean atBottom = scrollView.getChildAt(0).getBottom() <= (scrollView.getHeight() + scrollView.getScrollY()); + atBottom = scrollView.getChildAt(0).getBottom() <= (scrollView.getHeight() + scrollView.getScrollY()); terminal_textView.setText(terminal.getTerminalOutput()); System.out.println(atBottom); terminal_textView.invalidate(); scrollView.invalidate(); - scrollView.fullScroll(View.FOCUS_DOWN); + //scrollView.fullScroll(View.FOCUS_DOWN); } }); diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index ec2ce15..cc28cc3 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -71,7 +71,7 @@ app:layout_constraintVertical_bias="0.0" /> @@ -56,6 +57,7 @@ android:layout_marginStart="10dp" android:layout_marginBottom="10dp" android:ems="10" + android:fontFamily="serif-monospace" android:hint="@string/command" android:imeOptions="actionDone" android:inputType="text" diff --git a/app/src/main/res/raw/alert_error.ogg b/app/src/main/res/raw/alert_error.ogg deleted file mode 100644 index 7573492c65e095f6ac2b20d6fed518d6b2d95e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9376 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 diff --git a/app/src/main/res/raw/state_change_confirm_down.ogg b/app/src/main/res/raw/state_change_confirm_down.ogg deleted file mode 100644 index b2b5d58fc10e22ab943b488968287d868bd770fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10298 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