diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 61a9130..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 23a89bb..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index a5f05cd..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d5d35ec..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 59b53ef..dd57a84 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ android { compileSdkVersion 29 defaultConfig { - applicationId "de.jg_cody.Terraplex" + applicationId "de.jg_cody.Teraplex" minSdkVersion 16 targetSdkVersion 29 versionCode 1 diff --git a/app/src/androidTest/java/de/jg_cody/Terraplex/ExampleInstrumentedTest.java b/app/src/androidTest/java/de/jg_cody/Teraplex/ExampleInstrumentedTest.java similarity index 86% rename from app/src/androidTest/java/de/jg_cody/Terraplex/ExampleInstrumentedTest.java rename to app/src/androidTest/java/de/jg_cody/Teraplex/ExampleInstrumentedTest.java index 2f817dd..aa76e6b 100644 --- a/app/src/androidTest/java/de/jg_cody/Terraplex/ExampleInstrumentedTest.java +++ b/app/src/androidTest/java/de/jg_cody/Teraplex/ExampleInstrumentedTest.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex; +package de.jg_cody.Teraplex; import android.content.Context; @@ -21,6 +21,6 @@ public class ExampleInstrumentedTest { public void useAppContext() { // Context of the app under test. Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - assertEquals("de.jg_cody.Terraplex", appContext.getPackageName()); + assertEquals("de.jg_cody.Teraplex", appContext.getPackageName()); } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e1a6381..b5017cb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="de.jg_cody.Teraplex"> + android:theme="@style/Theme.Teraplex"> + android:theme="@style/Theme.Teraplex.NoActionBar"> @@ -23,12 +23,7 @@ - - - - - + android:theme="@style/Theme.Teraplex.NoActionBar"> diff --git a/app/src/main/java/de/jg_cody/Terraplex/IntroActivity.java b/app/src/main/java/de/jg_cody/Teraplex/IntroActivity.java similarity index 54% rename from app/src/main/java/de/jg_cody/Terraplex/IntroActivity.java rename to app/src/main/java/de/jg_cody/Teraplex/IntroActivity.java index 6dda0af..5cc4058 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/IntroActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/IntroActivity.java @@ -1,28 +1,12 @@ -package de.jg_cody.Terraplex; +package de.jg_cody.Teraplex; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.util.Log; -import android.view.Menu; -import android.view.View; import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import androidx.drawerlayout.widget.DrawerLayout; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; import androidx.navigation.ui.AppBarConfiguration; -import androidx.navigation.ui.NavigationUI; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.google.android.material.navigation.NavigationView; - -import static de.jg_cody.Terraplex.ui.Konsole.KonsoleFragment.command; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.ip; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.password; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.user; public class IntroActivity extends AppCompatActivity { diff --git a/app/src/main/java/de/jg_cody/Terraplex/MainActivity.java b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java similarity index 81% rename from app/src/main/java/de/jg_cody/Terraplex/MainActivity.java rename to app/src/main/java/de/jg_cody/Teraplex/MainActivity.java index bdd1131..e18a0de 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -1,13 +1,10 @@ -package de.jg_cody.Terraplex; +package de.jg_cody.Teraplex; -import android.media.MediaPlayer; -import android.net.Uri; +import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Menu; -import android.widget.Button; -import android.widget.VideoView; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.navigation.NavigationView; @@ -20,10 +17,8 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; -import static de.jg_cody.Terraplex.ui.Konsole.KonsoleFragment.command; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.ip; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.password; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.user; +import de.jg_cody.Teraplex.ui.Konsole.KonsoleFragment; +import de.jg_cody.Teraplex.ui.home.HomeFragment; public class MainActivity extends AppCompatActivity { @@ -44,7 +39,7 @@ private AppBarConfiguration mAppBarConfiguration; public void onClick(View view) { try { Log.d("I","ACTION BUTTON CLICKED"); - SSH_connection.executeRemoteCommand(ip, user, password, command); + SSH_connection.executeRemoteCommand(HomeFragment.ip, HomeFragment.user, HomeFragment.password, KonsoleFragment.command); } catch (Exception e) { }} }); @@ -75,5 +70,11 @@ private AppBarConfiguration mAppBarConfiguration; || super.onSupportNavigateUp(); } - -} \ No newline at end of file + @Override + public void onBackPressed() { + Intent startMain = new Intent(Intent.ACTION_MAIN); + startMain.addCategory(Intent.CATEGORY_HOME); + startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(startMain); + } + } diff --git a/app/src/main/java/de/jg_cody/Terraplex/MovableFloatingActionButton.java b/app/src/main/java/de/jg_cody/Teraplex/MovableFloatingActionButton.java similarity index 99% rename from app/src/main/java/de/jg_cody/Terraplex/MovableFloatingActionButton.java rename to app/src/main/java/de/jg_cody/Teraplex/MovableFloatingActionButton.java index 6261fd7..c766c8a 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/MovableFloatingActionButton.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MovableFloatingActionButton.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex; +package de.jg_cody.Teraplex; import android.content.Context; diff --git a/app/src/main/java/de/jg_cody/Terraplex/SSH_connection.java b/app/src/main/java/de/jg_cody/Teraplex/SSH_connection.java similarity index 98% rename from app/src/main/java/de/jg_cody/Terraplex/SSH_connection.java rename to app/src/main/java/de/jg_cody/Teraplex/SSH_connection.java index 7a365b8..86cbf1b 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/SSH_connection.java +++ b/app/src/main/java/de/jg_cody/Teraplex/SSH_connection.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex; +package de.jg_cody.Teraplex; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelExec; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java index 9fd6bb0..0977978 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Flur; +package de.jg_cody.Teraplex.ui.Flur; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class FlurFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurViewModel.java similarity index 91% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurViewModel.java index 4d15f1e..1d3af0c 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Flur/FlurViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Flur; +package de.jg_cody.Teraplex.ui.Flur; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleFragment.java new file mode 100644 index 0000000..4d0653f --- /dev/null +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleFragment.java @@ -0,0 +1,113 @@ +package de.jg_cody.Teraplex.ui.Konsole; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import de.jg_cody.Teraplex.R; +import de.jg_cody.Teraplex.SSH_connection; + +import static de.jg_cody.Teraplex.ui.home.HomeFragment.ip; +import static de.jg_cody.Teraplex.ui.home.HomeFragment.password; +import static de.jg_cody.Teraplex.ui.home.HomeFragment.user; + +public class KonsoleFragment extends Fragment { + + public static String command; + + public static EditText befehlInput; + Button SendCommandButton; + Button shutdown_Button; + Button reboot_Button; + + private KonsoleViewModel konsoleViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + konsoleViewModel = + new ViewModelProvider(this).get(KonsoleViewModel.class); + View root = inflater.inflate(R.layout.fragment_konsole, container, false); + final TextView textView = root.findViewById(R.id.text_konsole); + konsoleViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + befehlInput = (EditText) root.findViewById(R.id.befehlInput); + SendCommandButton = (Button) root.findViewById(R.id.SendCommandButton); + SendCommandButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + try { + if (befehlInput.getText().toString().trim().length() == 0) { + Toast.makeText(getContext(), "Feld darf nicht leer sein!", Toast.LENGTH_SHORT).show(); + } else { + command = befehlInput.getText().toString(); + Toast.makeText(getContext(), "Kommando gesendet...", Toast.LENGTH_SHORT).show(); + Toast.makeText(root.getContext(), command, Toast.LENGTH_SHORT).show(); + SSH_connection.executeRemoteCommand(ip, user, password, command); + } + } catch (Exception e) { + } + } + + }); + reboot_Button = (Button) root.findViewById(R.id.reboot); + reboot_Button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + try { + Toast.makeText(getContext(), "Reboot wird ausgeführt...", Toast.LENGTH_SHORT).show(); + SSH_connection.executeRemoteCommand(ip, user, password, "reboot"); + } catch (Exception e) { + } + } + }); + shutdown_Button = (Button) root.findViewById(R.id.shutdown); + shutdown_Button.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + + new AlertDialog.Builder(getContext()) + .setTitle("Server herunterfahren") + .setMessage("Bist du sicher?") + + // 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) { + try { + Toast.makeText(getContext(), "Server wird heruntergefahren...", Toast.LENGTH_SHORT).show(); + SSH_connection.executeRemoteCommand(ip, user, password, "shutdown now"); + } catch (Exception e) { + } + + // Continue with delete operation + } + }) + + // A null listener allows the button to dismiss the dialog and take no further action. + .setNegativeButton(android.R.string.no, null) + .show(); + + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleViewModel.java index a26d4af..03d8925 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Konsole; +package de.jg_cody.Teraplex.ui.Konsole; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java index 7abdb57..aff41d6 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Schlafzimmer; +package de.jg_cody.Teraplex.ui.Schlafzimmer; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class SchlafzimmerFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java similarity index 89% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java index 31fe329..0af858f 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Schlafzimmer/SchlafzimmerViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Schlafzimmer; +package de.jg_cody.Teraplex.ui.Schlafzimmer; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteFragment.java index cd9372a..8d5abe4 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Toilette; +package de.jg_cody.Teraplex.ui.Toilette; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class ToiletteFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteViewModel.java index 233cdc6..4d0c316 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Toilette/ToiletteViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Toilette/ToiletteViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.Toilette; +package de.jg_cody.Teraplex.ui.Toilette; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerFragment.java index e421937..3148be9 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.badezimmer; +package de.jg_cody.Teraplex.ui.badezimmer; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class BadezimmerFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerViewModel.java index 83a8d71..6ba62c8 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/badezimmer/BadezimmerViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/badezimmer/BadezimmerViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.badezimmer; +package de.jg_cody.Teraplex.ui.badezimmer; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java similarity index 56% rename from app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java index fe77ab5..653cfd2 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeFragment.java @@ -1,5 +1,7 @@ -package de.jg_cody.Terraplex.ui.home; +package de.jg_cody.Teraplex.ui.home; +import android.content.Context; +import android.content.SharedPreferences; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -15,8 +17,8 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; -import de.jg_cody.Terraplex.SSH_connection; +import de.jg_cody.Teraplex.R; +import de.jg_cody.Teraplex.SSH_connection; public class HomeFragment extends Fragment { @@ -34,10 +36,22 @@ public class HomeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + SharedPreferences prefs = getContext().getSharedPreferences("logindata", Context.MODE_PRIVATE); + user = prefs.getString("user", null); + password = prefs.getString("password", null); + ip = prefs.getString("ip", null); + homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class); View root = inflater.inflate(R.layout.fragment_home, container, false); final TextView textView = root.findViewById(R.id.text_home); + final TextView login_data = root.findViewById(R.id.login_data); + if (user == null || ip == null) { + login_data.setText(""); + } else { + login_data.setText("Sie sind als " + user + " bei " + ip + " angemeldet!"); + } + homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(@Nullable String s) { @@ -51,9 +65,21 @@ public class HomeFragment extends Fragment { loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - user = userInput.getText().toString(); - password = passwordInput.getText().toString(); - ip = ipInput.getText().toString(); + if (userInput.getText().toString().trim().length() == 0 || ipInput.getText().toString().trim().length() == 0 || passwordInput.getText().toString().trim().length() == 0) { + Toast.makeText(getContext(), "Felder dürfen nicht leer sein!", Toast.LENGTH_SHORT).show(); + } else { + user = userInput.getText().toString(); + password = passwordInput.getText().toString(); + ip = ipInput.getText().toString(); + SharedPreferences p = getContext().getSharedPreferences("logindata", Context.MODE_PRIVATE); + p.edit().putString("user", user).putString("password", password).putString("ip", ip).apply(); + Toast.makeText(getContext(), "Login-Daten gespeichert...", Toast.LENGTH_SHORT).show(); + if (user == null || ip == null) { + login_data.setText(""); + } else { + login_data.setText("Sie sind als " + user + " bei " + ip + " angemeldet!"); + } + } } }); wlan_aus_Button = (Button) root.findViewById(R.id.wlan_aus); @@ -62,6 +88,7 @@ public class HomeFragment extends Fragment { public void onClick(View v) { try { + Toast.makeText(getContext(), "WLAN wird ausgeschaltet...", Toast.LENGTH_SHORT).show(); SSH_connection.executeRemoteCommand(ip, user, password, "service hostapd stop"); } catch (Exception e) { } @@ -73,6 +100,7 @@ public class HomeFragment extends Fragment { public void onClick(View v) { try { + Toast.makeText(getContext(), "WLAN wird eingeschaltet...", Toast.LENGTH_SHORT).show(); SSH_connection.executeRemoteCommand(ip, user, password, "service hostapd start"); } catch (Exception e) { } diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java similarity index 91% rename from app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java index f0ee07d..25fd58d 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/home/HomeViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/home/HomeViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.home; +package de.jg_cody.Teraplex.ui.home; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; @@ -13,6 +13,7 @@ public class HomeViewModel extends ViewModel { mText.setValue("Welcome to your HOMEAUTOMATION-APP"); } + public LiveData getText() { return mText; } diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroFragment.java similarity index 95% rename from app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroFragment.java index a3f0281..b69a90a 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.intro; +package de.jg_cody.Teraplex.ui.intro; import android.media.MediaPlayer; import android.net.Uri; @@ -6,16 +6,13 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import android.widget.VideoView; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class IntroFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroViewModel.java index 762681d..4ba1e2a 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/intro/IntroViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/intro/IntroViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.intro; +package de.jg_cody.Teraplex.ui.intro; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java index 642313c..806f22c 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.kueche; +package de.jg_cody.Teraplex.ui.kueche; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class KuecheFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java index ad5efb3..12c627a 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/kueche/KuecheViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.kueche; +package de.jg_cody.Teraplex.ui.kueche; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerFragment.java similarity index 93% rename from app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerFragment.java index 9e5cac5..dfa1d62 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.wohnzimmer; +package de.jg_cody.Teraplex.ui.wohnzimmer; import android.os.Bundle; import android.view.LayoutInflater; @@ -12,7 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; -import de.jg_cody.Terraplex.R; +import de.jg_cody.Teraplex.R; public class WohnzimmerFragment extends Fragment { diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerViewModel.java similarity index 90% rename from app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerViewModel.java index 45cd04e..062ac95 100644 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/wohnzimmer/WohnzimmerViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/wohnzimmer/WohnzimmerViewModel.java @@ -1,4 +1,4 @@ -package de.jg_cody.Terraplex.ui.wohnzimmer; +package de.jg_cody.Teraplex.ui.wohnzimmer; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; diff --git a/app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleFragment.java b/app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleFragment.java deleted file mode 100644 index 73aa87b..0000000 --- a/app/src/main/java/de/jg_cody/Terraplex/ui/Konsole/KonsoleFragment.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.jg_cody.Terraplex.ui.Konsole; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; -import android.widget.EditText; -import android.widget.TextView; -import android.widget.Toast; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import de.jg_cody.Terraplex.R; -import de.jg_cody.Terraplex.SSH_connection; - -import static de.jg_cody.Terraplex.ui.home.HomeFragment.ip; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.password; -import static de.jg_cody.Terraplex.ui.home.HomeFragment.user; - -public class KonsoleFragment extends Fragment { - - public static String command; - - public static EditText befehlInput; - Button SendCommandButton; - - private KonsoleViewModel konsoleViewModel; - - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - konsoleViewModel = - new ViewModelProvider(this).get(KonsoleViewModel.class); - View root = inflater.inflate(R.layout.fragment_konsole, container, false); - final TextView textView = root.findViewById(R.id.text_konsole); - konsoleViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - befehlInput = (EditText) root.findViewById(R.id.befehlInput); - SendCommandButton = (Button) root.findViewById(R.id.SendCommandButton); - SendCommandButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - command = befehlInput.getText().toString(); - - Toast.makeText(root.getContext(),command,Toast.LENGTH_SHORT).show(); - SSH_connection.executeRemoteCommand(ip, user, password, command); - } catch (Exception e) { - }} - }); - return root; - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_intro.xml b/app/src/main/res/layout/activity_intro.xml index 9028384..3be6acf 100644 --- a/app/src/main/res/layout/activity_intro.xml +++ b/app/src/main/res/layout/activity_intro.xml @@ -10,7 +10,7 @@ diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index dcde9c8..3619721 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -8,22 +8,23 @@ tools:context=".MainActivity"> + android:theme="@style/Theme.Teraplex.AppBarOverlay"> + app:popupTheme="@style/Theme.Teraplex.PopupOverlay" /> - - + app:layout_constraintStart_toStartOf="parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 4fd6bc6..bb69a40 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -21,6 +21,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + app:layout_constraintTop_toBottomOf="@+id/textView5" />