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 65c1dc4..ffb53cf 100644 --- a/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java +++ b/app/src/main/java/de/jg_cody/Teraplex/MainActivity.java @@ -16,6 +16,7 @@ import android.graphics.Color; import android.graphics.Paint; 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; @@ -23,8 +24,10 @@ import android.provider.MediaStore; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.TypedValue; +import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; +import android.view.View; import android.view.WindowManager; import android.widget.CompoundButton; import android.widget.EditText; @@ -36,6 +39,7 @@ import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; +import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; @@ -76,10 +80,10 @@ public class MainActivity extends AppCompatActivity { ListAdapter listAdapter; ListView listView; - + EditText editText_name; ArrayList items; - Map < String, MenuItem > tabitems = new HashMap<>(); + Map tabitems = new HashMap<>(); @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override @@ -149,7 +153,7 @@ public class MainActivity extends AppCompatActivity { Toast.makeText(MainActivity.this, "Checked", Toast.LENGTH_LONG).show(); editmode = isChecked; Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment); - NavHostFragment nhf = (NavHostFragment)currentFragment; + 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) { @@ -168,27 +172,71 @@ public class MainActivity extends AppCompatActivity { @Override public boolean onMenuItemClick(MenuItem item) { AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this); - mBuilder.setTitle("CHOOSE ELEMENT"); - EditText input = new EditText(MainActivity.this); - mBuilder.setView(input); + + + LayoutInflater inflater = getLayoutInflater(); + View view = inflater.inflate(R.layout.addtabdialog, null); + editText_name = view.findViewById(R.id.dialogtab_editText_name); + + + mBuilder.setView(view) + .setTitle(R.string.menu_add); mBuilder.setPositiveButton(R.string.menu_add, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - String tabname = input.getText().toString(); - MenuItem item = navigationView.getMenu().add(R.id.dynamicgroup, Menu.NONE, 3,tabname); + String tabname = editText_name.getText().toString().trim(); + + SharedPreferences p = getSharedPreferences("appsettings", MODE_PRIVATE); + Set tabs = new HashSet<>(p.getStringSet("tabs", new HashSet<>())); + 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("TABNAME") + .setMessage("DER TABNAME EXISTIERT BEREITS!") + + // 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; + } + 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("TABNAME") + .setMessage("UNGÜLTIGER TABNAME") + + // 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; + } + MenuItem item = navigationView.getMenu().add(R.id.dynamicgroup, Menu.NONE, 3, tabname); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { + DrawerLayout mDrawerLayout; + mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + mDrawerLayout.closeDrawer(GravityCompat.START); + 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(); + NavHostFragment nhf = (NavHostFragment) currentFragment; + nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new FlurFragment(tabname)).commit(); return true; } }); tabitems.put(tabname, item); - SharedPreferences p = getSharedPreferences("appsettings", MODE_PRIVATE); - Set tabs = new HashSet<>(p.getStringSet("tabs", new HashSet<>())); + tabs.add(tabname); SharedPreferences.Editor editor = p.edit(); editor.putStringSet("tabs", tabs); @@ -196,8 +244,15 @@ public class MainActivity extends AppCompatActivity { } }); + mBuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + + } + }); 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; } @@ -207,22 +262,42 @@ public class MainActivity extends AppCompatActivity { public boolean onMenuItemClick(MenuItem item) { SharedPreferences p = getSharedPreferences("appsettings", MODE_PRIVATE); Set tabs = new HashSet<>(p.getStringSet("tabs", new HashSet<>())); + Set selectedTabs = new HashSet<>(); String[] tabsarray = tabs.toArray(new String[0]); AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this); - mBuilder.setTitle("CHOOSE ELEMENT"); - mBuilder.setSingleChoiceItems(tabsarray, -1, new DialogInterface.OnClickListener() { + mBuilder.setTitle(R.string.menu_remove); + + mBuilder.setMultiChoiceItems(tabsarray, null, new DialogInterface.OnMultiChoiceClickListener() { @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + public void onClick(DialogInterface dialogInterface, int i, boolean isChecked) { + String selectedItem = tabsarray[i]; + if (isChecked) { + selectedTabs.add(selectedItem); + } else { + selectedTabs.remove(selectedItem); + } + } + }); + mBuilder.setPositiveButton("REMOVE", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { - String tab = tabsarray[i]; - tabs.remove(tab); + tabs.removeAll(selectedTabs); SharedPreferences.Editor editor = p.edit(); editor.putStringSet("tabs", tabs); - editor.remove("listItems." + tab); - editor.apply(); - navigationView.getMenu().removeItem(tabitems.get(tab).getItemId()); - tabitems.remove(tab); - dialogInterface.dismiss(); + for (String tab : selectedTabs) { + editor.remove("listItems." + tab); + editor.apply(); + navigationView.getMenu().removeItem(tabitems.get(tab).getItemId()); + tabitems.remove(tab); + dialogInterface.dismiss(); + } + } + }); + mBuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + } }); AlertDialog mDialog = mBuilder.create(); @@ -232,14 +307,18 @@ public class MainActivity extends AppCompatActivity { } }); Set tabs = new HashSet<>(p.getStringSet("tabs", new HashSet<>())); - for (String tab: tabs){ - MenuItem item = navigationView.getMenu().add(R.id.dynamicgroup, Menu.NONE, 3,tab); + for (String tab : tabs) { + MenuItem item = navigationView.getMenu().add(R.id.dynamicgroup, Menu.NONE, 3, tab); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { + DrawerLayout mDrawerLayout; + mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); + mDrawerLayout.closeDrawer(GravityCompat.START); + 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(); + NavHostFragment nhf = (NavHostFragment) currentFragment; + nhf.getChildFragmentManager().beginTransaction().replace(R.id.nav_host_fragment, new FlurFragment(tab)).commit(); return true; } }); @@ -247,8 +326,6 @@ public class MainActivity extends AppCompatActivity { } - - } diff --git a/app/src/main/res/anim/dialog_in.xml b/app/src/main/res/anim/dialog_in.xml new file mode 100644 index 0000000..79b9b56 --- /dev/null +++ b/app/src/main/res/anim/dialog_in.xml @@ -0,0 +1,5 @@ + + \ 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 new file mode 100644 index 0000000..ea91fbe --- /dev/null +++ b/app/src/main/res/anim/dialog_out.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/addbuttondialog_single.xml b/app/src/main/res/layout/addbuttondialog_single.xml index 5308cd6..effbbeb 100644 --- a/app/src/main/res/layout/addbuttondialog_single.xml +++ b/app/src/main/res/layout/addbuttondialog_single.xml @@ -11,7 +11,7 @@ android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" - android:text="Name" /> + android:hint="NAME" /> + android:hint="BUTTON" /> + android:hint="COMMAND" /> diff --git a/app/src/main/res/layout/addbuttonsdialog_double.xml b/app/src/main/res/layout/addbuttonsdialog_double.xml index 981e4fe..1f8cf1f 100644 --- a/app/src/main/res/layout/addbuttonsdialog_double.xml +++ b/app/src/main/res/layout/addbuttonsdialog_double.xml @@ -12,7 +12,7 @@ android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" - android:text="Name" /> + android:hint="NAME" /> + android:hint="COMMAND1" /> + android:hint="BUTTON1" /> + android:hint="COMMAND2" /> + android:hint="BUTTON2" /> \ 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 35c8e8c..bf3eb56 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:text="Name" /> + android:hint="NAME" /> diff --git a/app/src/main/res/layout/addtabdialog.xml b/app/src/main/res/layout/addtabdialog.xml new file mode 100644 index 0000000..77c27cf --- /dev/null +++ b/app/src/main/res/layout/addtabdialog.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/layout/fragment_konsole.xml b/app/src/main/res/layout/fragment_konsole.xml index 55bac20..b2fbdb8 100644 --- a/app/src/main/res/layout/fragment_konsole.xml +++ b/app/src/main/res/layout/fragment_konsole.xml @@ -74,6 +74,7 @@ android:layout_height="wrap_content" android:backgroundTint="@color/mtrl_btn_text_color_selector" android:ems="10" + android:hint="COMMAND" android:inputType="text" android:textColor="@color/mtrl_btn_text_color_selector" android:textColorHint="@color/mtrl_btn_text_color_selector" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 100a16b..3eced1e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -72,7 +72,7 @@ HALL KITCHEN ADD TAB - REMOVE TAB + REMOVE TABS SETTINGS QUESTION diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 2d3c191..c7d0103 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -20,9 +20,14 @@ @style/ActionPopupMenuStyle - +