From 18c5e2f0edc41180ba93135505d541a0e4f7896d Mon Sep 17 00:00:00 2001 From: JG-Cody Date: Sat, 10 Jul 2021 18:37:58 +0200 Subject: [PATCH] some more bugfixes, cleanup and translation added custom dialoganimation --- .../Teraplex/AddButtonDialogSingle.java | 28 ++++++++-- .../Teraplex/AddButtonsDialogDouble.java | 39 +++++++++----- .../jg_cody/Teraplex/AddHeadlineDialog.java | 29 ++++++++-- .../de/jg_cody/Teraplex/MainActivity.java | 16 +++--- .../Einstellungen/EinstellungenFragment.java | 3 ++ .../Teraplex/ui/Konsole/KonsoleFragment.java | 2 + .../TabsFragment.java} | 29 ++++++---- .../TabsViewModel.java} | 8 +-- .../Teraplex/ui/home/HomeFragment.java | 18 ++++++- .../Teraplex/ui/kueche/KuecheFragment.java | 54 ------------------- .../Teraplex/ui/kueche/KuecheViewModel.java | 19 ------- app/src/main/res/anim/dialog_in.xml | 32 +++++++++-- app/src/main/res/anim/dialog_out.xml | 38 ++++++------- app/src/main/res/layout/addheadlinedialog.xml | 2 +- .../{fragment_flur.xml => fragment_tabs.xml} | 2 +- .../main/res/menu/activity_main_drawer.xml | 3 -- .../main/res/navigation/mobile_navigation.xml | 14 ++--- app/src/main/res/values-de-rDE/strings.xml | 2 +- app/src/main/res/values-night/themes.xml | 8 +-- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/themes.xml | 4 +- 21 files changed, 190 insertions(+), 162 deletions(-) rename app/src/main/java/de/jg_cody/Teraplex/ui/{Flur/FlurFragment.java => Tabs/TabsFragment.java} (91%) rename app/src/main/java/de/jg_cody/Teraplex/ui/{Flur/FlurViewModel.java => Tabs/TabsViewModel.java} (65%) delete mode 100644 app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java delete mode 100644 app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java rename app/src/main/res/layout/{fragment_flur.xml => fragment_tabs.xml} (97%) 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 6053dae..d3a82b5 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonDialogSingle.java @@ -3,6 +3,7 @@ package de.jg_cody.Teraplex; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.media.MediaPlayer; import android.os.Bundle; import android.app.AlertDialog; @@ -12,12 +13,14 @@ import android.widget.EditText; import androidx.fragment.app.DialogFragment; -import de.jg_cody.Teraplex.ui.Flur.FlurFragment; +import java.util.Objects; + +import de.jg_cody.Teraplex.ui.Tabs.TabsFragment; public class AddButtonDialogSingle extends DialogFragment { private EditText editText_command, editText_name, editText_button_name; private AddButtonDialogListenerSingle listener; - private FlurFragment frag; + private TabsFragment frag; /** * @@ -49,6 +52,22 @@ public class AddButtonDialogSingle extends DialogFragment { String command = editText_command.getText().toString(); 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("UNGÜLTIGE EINGABE") + .setMessage("EINGABEFELDER DÜRFEN NICHT LEER SEIN") + + // 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(); + Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id + mDialog.show(); + return; + } listener.applyTextsSingle(name,command,button); } }); @@ -56,14 +75,15 @@ public class AddButtonDialogSingle extends DialogFragment { AlertDialog mDialog = builder.create(); mDialog.getWindow().setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id return mDialog; } - public void setFragment(FlurFragment frag) + public void setFragment(TabsFragment frag) { this.frag = frag; } - public FlurFragment getFragment() + public TabsFragment getFragment() { return frag; } 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 1cc112d..2aa9bd8 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddButtonsDialogDouble.java @@ -4,6 +4,7 @@ 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; @@ -11,30 +12,27 @@ import android.widget.EditText; import androidx.fragment.app.DialogFragment; -import de.jg_cody.Teraplex.ui.Flur.FlurFragment; +import java.util.Objects; + +import de.jg_cody.Teraplex.ui.Tabs.TabsFragment; public class AddButtonsDialogDouble extends DialogFragment { private AddButtonsDialogListenerDouble listener; private EditText editText_name, editText_command1, editText_button1, editText_command2, editText_button2; - private FlurFragment frag; + private TabsFragment frag; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - LayoutInflater inflater = getActivity().getLayoutInflater(); + LayoutInflater inflater = requireActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.addbuttonsdialog_double, null); builder.setView(view) .setTitle("ON/OFF BUTTON") - .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - - } - }) + .setNegativeButton("CANCEL", null) .setPositiveButton("ADD", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { @@ -43,7 +41,23 @@ public class AddButtonsDialogDouble extends DialogFragment { String name = editText_name.getText().toString(); String button1 = editText_button1.getText().toString(); String button2 = editText_button2.getText().toString(); - listener.applyTextsDouble(name,command1,button1,command2,button2); + 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("UNGÜLTIGE EINGABE") + .setMessage("EINGABEFELDER DÜRFEN NICHT LEER SEIN") + + // 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(); + Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id + mDialog.show(); + return; + } + listener.applyTextsDouble(name,command1,command2,button1,button2); } }); @@ -55,14 +69,15 @@ public class AddButtonsDialogDouble extends DialogFragment { AlertDialog mDialog = builder.create(); mDialog.getWindow().setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id return mDialog; } - public void setFragment(FlurFragment frag) { + public void setFragment(TabsFragment frag) { this.frag = frag; } - public FlurFragment getFragment() { + public TabsFragment getFragment() { return frag; } 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 58c6072..eaf6100 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java +++ b/app/src/main/java/de/jg_cody/Teraplex/AddHeadlineDialog.java @@ -3,6 +3,7 @@ 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; @@ -11,13 +12,15 @@ import android.widget.ImageView; import androidx.fragment.app.DialogFragment; -import de.jg_cody.Teraplex.ui.Flur.FlurFragment; +import java.util.Objects; + +import de.jg_cody.Teraplex.ui.Tabs.TabsFragment; public class AddHeadlineDialog extends DialogFragment { private AddHeadlineDialogListener listener; private EditText editText_name; - private FlurFragment frag; + private TabsFragment frag; ImageView delete; /** * @@ -40,21 +43,37 @@ public class AddHeadlineDialog extends DialogFragment { }) .setPositiveButton("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("UNGÜLTIGE EINGABE") + .setMessage("EINGABEFELDER DÜRFEN NICHT LEER SEIN") + + // 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(); + Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id + mDialog.show(); + return; + } listener.applyTextsHeadline(headline); }); AlertDialog mDialog = builder.create(); mDialog.getWindow().setBackgroundDrawableResource(R.drawable.button_round); - + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id return mDialog; } - public void setFragment(FlurFragment frag) + public void setFragment(TabsFragment frag) { this.frag = frag; } - public FlurFragment getFragment() + public TabsFragment getFragment() { return frag; } 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 16b0bff..8378187 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -34,7 +34,6 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.Switch; -import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; @@ -65,7 +64,7 @@ import java.util.Objects; import java.util.Set; import de.jg_cody.Teraplex.ui.Einstellungen.EinstellungenFragment; -import de.jg_cody.Teraplex.ui.Flur.FlurFragment; +import de.jg_cody.Teraplex.ui.Tabs.TabsFragment; import de.jg_cody.Teraplex.ui.rooms.ListAdapter; import de.jg_cody.Teraplex.ui.rooms.ListItem; @@ -139,7 +138,7 @@ public class MainActivity extends AppCompatActivity { // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( - R.id.nav_home, R.id.nav_einstellungen, R.id.nav_kueche, R.id.nav_zeitsteuerung, R.id.nav_schlafzimmer, R.id.nav_flur, R.id.nav_über, R.id.nav_konsole) + R.id.nav_home, R.id.nav_einstellungen, R.id.nav_zeitsteuerung, R.id.nav_schlafzimmer, R.id.nav_tabs, R.id.nav_über, R.id.nav_konsole) .setOpenableLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); @@ -148,15 +147,13 @@ public class MainActivity extends AppCompatActivity { ((Switch) navigationView.getMenu().getItem(3).getActionView().findViewById(R.id.switch_editmode)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - Toast.makeText(MainActivity.this, "Checked", Toast.LENGTH_LONG).show(); editmode = isChecked; Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); NavHostFragment nhf = (NavHostFragment) currentFragment; Fragment childfragment = nhf.getChildFragmentManager().getFragments().get(0); - Toast.makeText(MainActivity.this, childfragment.toString(), Toast.LENGTH_LONG).show(); - if (childfragment instanceof FlurFragment) { + if (childfragment instanceof TabsFragment) { try { - ((FlurFragment) childfragment).load(); + ((TabsFragment) childfragment).load(); } catch (JSONException e) { e.printStackTrace(); } @@ -228,7 +225,7 @@ public class MainActivity extends AppCompatActivity { Objects.requireNonNull(getSupportActionBar()).setTitle(tabname); Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); NavHostFragment nhf = (NavHostFragment) currentFragment; - nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new FlurFragment(tabname)).commit(); + nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new TabsFragment(tabname)).commit(); return true; } }); @@ -300,6 +297,7 @@ public class MainActivity extends AppCompatActivity { }); AlertDialog mDialog = mBuilder.create(); Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id mDialog.show(); return true; } @@ -316,7 +314,7 @@ public class MainActivity extends AppCompatActivity { Objects.requireNonNull(getSupportActionBar()).setTitle(tab); Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); NavHostFragment nhf = (NavHostFragment) currentFragment; - nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new FlurFragment(tab)).commit(); + nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new TabsFragment(tab)).commit(); return true; } }); diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java index 74362b0..78e71b4 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Einstellungen/EinstellungenFragment.java @@ -87,6 +87,7 @@ public class EinstellungenFragment extends Fragment { .setNegativeButton(android.R.string.no, null) .create(); Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id mDialog.show(); } @@ -194,6 +195,7 @@ public class EinstellungenFragment extends Fragment { }); AlertDialog mDialog = mBuilder.create(); Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id mDialog.show(); } @@ -219,6 +221,7 @@ public class EinstellungenFragment extends Fragment { }); AlertDialog mDialog = mBuilder.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/Konsole/KonsoleFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Konsole/KonsoleFragment.java index 561979d..3282a87 100644 --- 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 @@ -107,6 +107,7 @@ public class KonsoleFragment extends Fragment { .setNegativeButton(android.R.string.no, null) .create(); Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id mDialog.show(); @@ -145,6 +146,7 @@ public class KonsoleFragment extends Fragment { .setNegativeButton(android.R.string.no, null) .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/Flur/FlurFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsFragment.java similarity index 91% rename from app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsFragment.java index aba6d26..57364b4 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurFragment.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsFragment.java @@ -1,4 +1,4 @@ -package de.jg_cody.Teraplex.ui.Flur; +package de.jg_cody.Teraplex.ui.Tabs; import android.app.Activity; import android.app.AlertDialog; @@ -47,9 +47,9 @@ import de.jg_cody.Teraplex.ui.rooms.ListItemSpace; import static android.content.Context.MODE_PRIVATE; -public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddButtonDialogListenerSingle, AddButtonsDialogDouble.AddButtonsDialogListenerDouble, AddHeadlineDialog.AddHeadlineDialogListener { +public class TabsFragment extends Fragment implements AddButtonDialogSingle.AddButtonDialogListenerSingle, AddButtonsDialogDouble.AddButtonsDialogListenerDouble, AddHeadlineDialog.AddHeadlineDialogListener { - private FlurViewModel flurViewModel; + private TabsViewModel tabsViewModel; String[] commands = {"Hello1", "Hello2", "Hello3", "Hello4", "Hello5"}; int[] type = {0, 1, 0, 0, 1}; @@ -65,16 +65,16 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB String tabname; - public FlurFragment(String tabname) { + public TabsFragment(String tabname) { this.tabname = tabname; } @RequiresApi(api = Build.VERSION_CODES.O) public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - flurViewModel = - new ViewModelProvider(this).get(FlurViewModel.class); - View root = inflater.inflate(R.layout.fragment_flur, container, false); + tabsViewModel = + new ViewModelProvider(this).get(TabsViewModel.class); + View root = inflater.inflate(R.layout.fragment_tabs, container, false); SharedPreferences p = requireContext().getSharedPreferences("appsettings", Activity.MODE_PRIVATE); String Background = p.getString("Background", null); if (Background != null) { @@ -106,22 +106,32 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB public boolean onMove(@NonNull @NotNull RecyclerView recyclerView, @NonNull @NotNull RecyclerView.ViewHolder viewHolder, @NonNull @NotNull RecyclerView.ViewHolder target) { //listAdapter.onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition()); listAdapter.swap(viewHolder.getAdapterPosition(), target.getAdapterPosition()); + try { + save(); + } catch (JSONException e) { + e.printStackTrace(); + } return true; } @Override public void onSwiped(@NonNull @NotNull RecyclerView.ViewHolder viewHolder, int direction) { listAdapter.remove(viewHolder.getAdapterPosition()); + try { + save(); + } catch (JSONException e) { + e.printStackTrace(); + } } @Override public boolean isLongPressDragEnabled() { - return true; + return MainActivity.editmode; } @Override public boolean isItemViewSwipeEnabled() { - return true; + return MainActivity.editmode; } }); @@ -177,6 +187,7 @@ public class FlurFragment extends Fragment implements AddButtonDialogSingle.AddB }); AlertDialog mDialog = mBuilder.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/Flur/FlurViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsViewModel.java similarity index 65% rename from app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurViewModel.java rename to app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsViewModel.java index 9955bac..39753ba 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/Flur/FlurViewModel.java +++ b/app/src/main/java/de/jg_cody/Teraplex/ui/Tabs/TabsViewModel.java @@ -1,16 +1,16 @@ -package de.jg_cody.Teraplex.ui.Flur; +package de.jg_cody.Teraplex.ui.Tabs; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; -public class FlurViewModel extends ViewModel { +public class TabsViewModel extends ViewModel { private MutableLiveData mText; - public FlurViewModel() { + public TabsViewModel() { mText = new MutableLiveData<>(); - mText.setValue("FLUR"); + mText.setValue("TABS"); } public LiveData getText() { 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 49b7cac..76c2800 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 @@ -1,10 +1,12 @@ package de.jg_cody.Teraplex.ui.home; import android.app.Activity; +import android.app.AlertDialog; import android.content.Context; import android.content.SharedPreferences; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; +import android.media.MediaPlayer; import android.os.Build; import android.os.Bundle; import android.view.LayoutInflater; @@ -22,6 +24,7 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import java.util.Base64; +import java.util.Objects; import de.jg_cody.Teraplex.MainActivity; import de.jg_cody.Teraplex.R; @@ -87,7 +90,20 @@ public class HomeFragment extends Fragment { @Override public void onClick(View v) { if (userInput.getText().toString().trim().length() == 0 || ipInput.getText().toString().trim().length() == 0 || passwordInput.getText().toString().trim().length() == 0) { - Toast.makeText(getContext(), getString(R.string.felder_dürfen_nicht_leer_sein), Toast.LENGTH_SHORT).show(); + MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.state_change_confirm_up); + mp.start(); + AlertDialog mDialog = new AlertDialog.Builder(getContext()) + .setTitle("UNGÜLTIGE EINGABE") + .setMessage("EINGABEFELDER DÜRFEN NICHT LEER SEIN") + + // 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(); + Objects.requireNonNull(mDialog.getWindow()).setBackgroundDrawableResource(R.drawable.button_round); + mDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //style id + mDialog.show(); + return; } else { user = userInput.getText().toString(); password = passwordInput.getText().toString(); diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java deleted file mode 100644 index 12ebf57..0000000 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheFragment.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.jg_cody.Teraplex.ui.kueche; - -import android.app.Activity; -import android.content.SharedPreferences; -import android.graphics.BitmapFactory; -import android.graphics.drawable.BitmapDrawable; -import android.os.Build; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import java.util.Base64; - -import de.jg_cody.Teraplex.MainActivity; -import de.jg_cody.Teraplex.R; - -public class KuecheFragment extends Fragment { - - private KuecheViewModel kuecheViewModel; - - @RequiresApi(api = Build.VERSION_CODES.O) - public View onCreateView(@NonNull LayoutInflater inflater, - ViewGroup container, Bundle savedInstanceState) { - kuecheViewModel = - new ViewModelProvider(this).get(KuecheViewModel.class); - View root = inflater.inflate(R.layout.fragment_kueche, container, false); - SharedPreferences p = getContext().getSharedPreferences("appsettings", Activity.MODE_PRIVATE); - String Background = p.getString("Background", null); - if (Background != null) { - ImageView I = root.findViewById(R.id.Background); - byte[] BA = Base64.getDecoder().decode(Background); - I.setImageDrawable(new BitmapDrawable(getResources(), MainActivity.scaleCenterCrop(BitmapFactory.decodeByteArray(BA, 0, BA.length), MainActivity.getScreenHeight(), MainActivity.getScreenWidth()))); - I.setScaleType(ImageView.ScaleType.CENTER_CROP); - } - final TextView textView = root.findViewById(R.id.text_kueche); - kuecheViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable String s) { - textView.setText(s); - } - }); - return root; - } -} \ No newline at end of file diff --git a/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java b/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java deleted file mode 100644 index 2d7ba84..0000000 --- a/app/src/main/java/de/jg_cody/Teraplex/ui/kueche/KuecheViewModel.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.jg_cody.Teraplex.ui.kueche; - -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; -import androidx.lifecycle.ViewModel; - -public class KuecheViewModel extends ViewModel { - - private MutableLiveData mText; - - public KuecheViewModel() { - mText = new MutableLiveData<>(); - mText.setValue("KÜCHE"); - } - - public LiveData getText() { - return mText; - } -} \ No newline at end of file diff --git a/app/src/main/res/anim/dialog_in.xml b/app/src/main/res/anim/dialog_in.xml index 79b9b56..7d73968 100644 --- a/app/src/main/res/anim/dialog_in.xml +++ b/app/src/main/res/anim/dialog_in.xml @@ -1,5 +1,29 @@ - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/dialog_out.xml b/app/src/main/res/anim/dialog_out.xml index ea91fbe..7826ce0 100644 --- a/app/src/main/res/anim/dialog_out.xml +++ b/app/src/main/res/anim/dialog_out.xml @@ -1,29 +1,29 @@ + android:fromAlpha="1.0" + android:toAlpha="0.0" + android:duration="300"/> - - + android:duration="300"/> + + \ No newline at end of file diff --git a/app/src/main/res/layout/addheadlinedialog.xml b/app/src/main/res/layout/addheadlinedialog.xml index bf3eb56..9567d20 100644 --- a/app/src/main/res/layout/addheadlinedialog.xml +++ b/app/src/main/res/layout/addheadlinedialog.xml @@ -11,6 +11,6 @@ android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" - android:hint="NAME" /> + android:hint="HEADLINE" /> diff --git a/app/src/main/res/layout/fragment_flur.xml b/app/src/main/res/layout/fragment_tabs.xml similarity index 97% rename from app/src/main/res/layout/fragment_flur.xml rename to app/src/main/res/layout/fragment_tabs.xml index 925f8e0..4c4ddcd 100644 --- a/app/src/main/res/layout/fragment_flur.xml +++ b/app/src/main/res/layout/fragment_tabs.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index 88729f1..16e60cf 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -50,8 +50,5 @@ - \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 5df37df..872abb3 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -24,12 +24,6 @@ android:label="@string/menu_settings" tools:layout="@layout/fragment_einstellungen" /> - - + android:id="@+id/nav_tabs" + android:name="de.jg_cody.Teraplex.ui.Tabs.TabsFragment" + android:label="@string/menu_tabs" + tools:layout="@layout/fragment_tabs" /> KÜCHE ZEITSTEUERUNG SCHLAFZIMMER - FLUR + TABS KÜCHE EINSTELLUNGEN FRAGE diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 26e60e4..0373f39 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -18,11 +18,13 @@ ?attr/colorPrimaryVariant - @color/red @style/ActionPopupMenuStyle - @style/ActionPopupMenuStyle - + +