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 45176c3..52aa67c 100644
--- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java
+++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java
@@ -65,9 +65,9 @@ import java.util.Objects;
import de.jg_cody.Teraplex.ui.credits.CreditsFragment;
import de.jg_cody.Teraplex.ui.settings.SettingsFragment;
-import de.jg_cody.Teraplex.ui.tabs.TabsFragment;
import de.jg_cody.Teraplex.ui.tabs.ListAdapter;
import de.jg_cody.Teraplex.ui.tabs.ListItem;
+import de.jg_cody.Teraplex.ui.tabs.TabsFragment;
public class MainActivity extends AppCompatActivity {
@@ -216,8 +216,14 @@ public class MainActivity extends AppCompatActivity {
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
- .setPositiveButton(android.R.string.yes, null )
- .create();
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
@@ -232,8 +238,14 @@ public class MainActivity extends AppCompatActivity {
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
- .setPositiveButton(android.R.string.yes, null )
- .create();
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
@@ -461,8 +473,36 @@ public class MainActivity extends AppCompatActivity {
public void menurighttopdocumentation(MenuItem i) {
Vibrator vr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vr.vibrate(100);
- Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.jg-cody.de/"));
- startActivity(in);
+ AlertDialog mDialog = new AlertDialog.Builder(this)
+ .setTitle(getString(R.string.menu_documentation))
+ .setMessage(getString(R.string.you_will_be_redirected))
+
+ // Specifying a listener allows you to take an action before dismissing the dialog.
+ // The dialog is automatically dismissed when a dialog button is clicked.
+ .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ Vibrator vr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ vr.vibrate(100);
+ Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.jg-cody.de/"));
+ startActivity(in);
+ }
+ })
+
+ // A null listener allows the button to dismiss the dialog and take no further action.
+ .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+
+ }
+ }).create();
+ Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
+ mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
+ mDialog.show();
+
+
}
public void menurighttopcloseapp(MenuItem i) {
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 d6e6c96..bd6c8a7 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
@@ -124,8 +124,14 @@ public class HomeFragment extends Fragment {
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
- .setPositiveButton(android.R.string.yes, null)
- .create();
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
@@ -154,7 +160,7 @@ public class HomeFragment extends Fragment {
channel.connect(3 * 1000);
session.disconnect();
System.out.println("DISCONNECT");
- getActivity().runOnUiThread(new Runnable() {
+ requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getContext(), "CONNECTED", Toast.LENGTH_SHORT).show();
@@ -179,11 +185,27 @@ public class HomeFragment extends Fragment {
}
});
} catch (Exception e) {
- getActivity().runOnUiThread(new Runnable() {
+ requireActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
e.printStackTrace();
- Toast.makeText(getContext(), "INVALID INPUT", Toast.LENGTH_SHORT).show();
+ AlertDialog mDialog = new AlertDialog.Builder(getContext())
+ .setTitle(getString(R.string.unable_to_connect))
+ .setMessage(getString(R.string.try_again))
+
+ // Specifying a listener allows you to take an action before dismissing the dialog.
+ // The dialog is automatically dismissed when a dialog button is clicked.
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
+ Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
+ mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
+ mDialog.show();
}
});
@@ -233,7 +255,7 @@ public class HomeFragment extends Fragment {
// Specifying a listener allows you to take an action before dismissing the dialog.
// The dialog is automatically dismissed when a dialog button is clicked.
- .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+ .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Vibrator vr = (Vibrator) v.getContext().getSystemService(Context.VIBRATOR_SERVICE);
assert vr != null;
@@ -251,8 +273,14 @@ public class HomeFragment extends Fragment {
})
// A null listener allows the button to dismiss the dialog and take no further action.
- .setNegativeButton(android.R.string.no, null)
- .create();
+ .setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
@@ -293,8 +321,14 @@ public class HomeFragment extends Fragment {
})
// A null listener allows the button to dismiss the dialog and take no further action.
- .setNegativeButton(android.R.string.no, null)
- .create();
+ .setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
@@ -307,7 +341,7 @@ public class HomeFragment extends Fragment {
togglepassword.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
- if (isPasswordVisible == true) {
+ if (isPasswordVisible) {
passwordInput.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
isPasswordVisible = false;
} else {
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 2d1d5af..2728d05 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
@@ -91,8 +91,14 @@ public class SettingsFragment extends Fragment {
})
// A null listener allows the button to dismiss the dialog and take no further action.
- .setNegativeButton(android.R.string.no, null)
- .create();
+ .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
mDialog.show();
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 dcb82f5..d75ee0e 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
@@ -1,8 +1,11 @@
package de.jg_cody.Teraplex.ui.terminal;
+import android.app.AlertDialog;
import android.content.Context;
+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;
@@ -18,6 +21,8 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import java.util.Objects;
+
import de.jg_cody.Teraplex.R;
public class TerminalFragment extends Fragment {
@@ -42,8 +47,24 @@ public class TerminalFragment extends Fragment {
user = prefs.getString("user", null);
password = prefs.getString("password", null);
ip = prefs.getString("ip", null);
- if (user == null || ip == null) {
- Toast.makeText(getContext(), getString(R.string.login_saved), Toast.LENGTH_SHORT).show();
+ if (user == null || ip == null || password == null) {
+ AlertDialog mDialog = new AlertDialog.Builder(getContext())
+ .setTitle(getString(R.string.unable_to_connect))
+ .setMessage(getString(R.string.please_login))
+
+ // Specifying a listener allows you to take an action before dismissing the dialog.
+ // The dialog is automatically dismissed when a dialog button is clicked.
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ Vibrator vr = (Vibrator) requireContext().getSystemService(Context.VIBRATOR_SERVICE);
+ assert vr != null;
+ vr.vibrate(100);
+ }
+ }).create();
+ Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round);
+ mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id
+ mDialog.show();
}
else {
@@ -74,7 +95,6 @@ public class TerminalFragment extends Fragment {
{
if (terminal != null) {
terminal.sendTerminalCommand(terminal_edit_text.getText().toString());
- Toast.makeText(getContext(), getString(R.string.login_saved), Toast.LENGTH_SHORT).show();
}
handled=true;
diff --git a/app/src/main/res/layout/fragment_terminal.xml b/app/src/main/res/layout/fragment_terminal.xml
index 7c7ad2f..6701ed2 100644
--- a/app/src/main/res/layout/fragment_terminal.xml
+++ b/app/src/main/res/layout/fragment_terminal.xml
@@ -56,7 +56,7 @@
android:layout_marginStart="10dp"
android:layout_marginBottom="10dp"
android:ems="10"
- android:hint="type commands"
+ android:hint="TYPE YOUR COMMAND"
android:imeOptions="actionDone"
android:inputType="text"
android:textColor="#FFFFFF"
@@ -71,6 +71,7 @@
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/button_right"
+ app:backgroundTint="@null"
android:text="SEND"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d798896..adbfdae 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -24,17 +24,17 @@
INPUTFIELDS CANT BE EMPTY!
LOGIN-DATA SAVED!
- //konsole
+ //terminal
CONSOLE
SEND COMMAND
SERVERCOMMANDS
REBOOT
SHUTDOWN
+ UNABLE TO CONNECT
+ PLEASE TRY AGAIN
- //zeitgesteuerte kommandos
- TIMED COMMANDS
+ //main
COMMAND
- SET TIMED COMMAND
//settings
COLORS
@@ -70,6 +70,8 @@
ADD TAB
REMOVE TABS
+ //menus
+ YOU WILL BE REDIRECTED TO THE APP-DOCUMENTATION ON OUR WEBSITE
SETTINGS
QUESTION
ABOUT
@@ -77,6 +79,8 @@
LANGUAGE
CLOSE
+ YES
+ NO
OK
CANCEL
INVALID INPUT