diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java index 2888e96..4d1a824 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java @@ -90,9 +90,8 @@ public class MainActivity extends AppCompatActivity { // Set the arguments Bundle args = new Bundle(); - args.putBoolean("neutral", false); - args.putString("button_positive", getString(R.string.new_task_save)); - args.putString("button_negative", getString(R.string.new_task_cancel)); + args.putInt("button_count", 1); + args.putString("button_negative", getString(R.string.task_list_ok)); taskListFragment.setArguments(args); if (getResources().getBoolean(R.bool.large_layout)) @@ -143,7 +142,7 @@ public class MainActivity extends AppCompatActivity { Bundle args = new Bundle(); args.putInt("list", currentTabPosition); args.putBoolean("today", sharedPref.getBoolean("pref_conf_today_enable", false)); - args.putBoolean("neutral", false); + args.putInt("button_count", 2); args.putString("button_positive", getString(R.string.new_task_save)); args.putString("button_negative", getString(R.string.new_task_cancel)); args.putString("button_neutral", getString(R.string.new_task_delete)); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java index 9587c75..3174615 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java @@ -30,16 +30,17 @@ import com.wismna.geoffroy.donext.R; */ public abstract class DynamicDialogFragment extends DialogFragment { - boolean mHasNeutralButton = false; + int mButtonCount = 2; int mContentLayoutId = 0; @Nullable @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // This part is only needed on small layouts (large layouts use onCreateDialog) if (!getShowsDialog()) { View view = inflater.inflate(R.layout.fragment_dynamic_dialog, container, false); AppCompatActivity activity = (AppCompatActivity) getActivity(); + assert activity != null; activity.setSupportActionBar(setToolbarTitle(view)); ActionBar actionBar = activity.getSupportActionBar(); @@ -66,13 +67,9 @@ public abstract class DynamicDialogFragment extends DialogFragment { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); Bundle args = getArguments(); // Set the dialog buttons + assert args != null; + // Add action buttons builder.setView(view) - // Add action buttons - .setPositiveButton(args.getString("button_positive"), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - onPositiveButtonClick(view); - } - }) .setNegativeButton(args.getString("button_negative"), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // Send the negative button event back to the host activity @@ -81,7 +78,14 @@ public abstract class DynamicDialogFragment extends DialogFragment { onNegativeButtonClick(); } }); - if (mHasNeutralButton) { + if (mButtonCount == 2) { + builder.setPositiveButton(args.getString("button_positive"), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + onPositiveButtonClick(view); + } + }); + } + if (mButtonCount == 3) { builder.setNeutralButton(args.getString("button_neutral"), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { @@ -105,13 +109,20 @@ public abstract class DynamicDialogFragment extends DialogFragment { public void onPrepareOptionsMenu(Menu menu) { Bundle args = getArguments(); // Show the neutral button if needed - if (!mHasNeutralButton) { + if (mButtonCount < 3) { menu.removeItem(R.id.menu_neutral_button); } else { menu.findItem(R.id.menu_neutral_button).setTitle(args.getString("button_neutral")); } - menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive")); + + // Show the positive button if needed + if (mButtonCount < 2) { + menu.removeItem(R.id.menu_positive_button); + } + else { + menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive")); + } super.onPrepareOptionsMenu(menu); } @@ -124,6 +135,7 @@ public abstract class DynamicDialogFragment extends DialogFragment { // Hide the keyboard if present if (view != null) { InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE); + assert imm != null; imm.hideSoftInputFromWindow(getView().getWindowToken(), 0); } if (id == R.id.menu_positive_button) { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java index 2f685b2..7ff46eb 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java @@ -58,7 +58,7 @@ public class TaskFormDialogFragment extends DynamicDialogFragment { mContentLayoutId = R.layout.content_task_form; Bundle args = getArguments(); if (args != null) { - mHasNeutralButton = args.getBoolean("neutral"); + mButtonCount = args.getInt("button_count"); } } @@ -106,6 +106,7 @@ public class TaskFormDialogFragment extends DynamicDialogFragment { // Auto set list value to current tab Bundle args = getArguments(); + assert args != null; int id = args.getInt("list"); spinner.setSelection(id); diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java index 4f9e56c..0e937a0 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskListsFragment.java @@ -48,7 +48,7 @@ public class TaskListsFragment extends DynamicDialogFragment implements Bundle args = getArguments(); if (args != null) { - mHasNeutralButton = args.getBoolean("neutral"); + mButtonCount = args.getInt("button_count"); } mContentLayoutId = R.layout.fragment_tasklists; diff --git a/DoNExt/app/src/main/res/values-fr/strings.xml b/DoNExt/app/src/main/res/values-fr/strings.xml index e69c56c..d7b49e1 100644 --- a/DoNExt/app/src/main/res/values-fr/strings.xml +++ b/DoNExt/app/src/main/res/values-fr/strings.xml @@ -59,4 +59,5 @@ Nom de la liste Sorry, your Android version is not supported. Historique + OK \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values/strings.xml b/DoNExt/app/src/main/res/values/strings.xml index f65767c..f6436ff 100644 --- a/DoNExt/app/src/main/res/values/strings.xml +++ b/DoNExt/app/src/main/res/values/strings.xml @@ -82,4 +82,5 @@ Hello blank fragment Main2Activity + OK