From 61bf77b695b973d25afa700055332ad6bbc4aad9 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 29 Jul 2016 19:47:09 +1200 Subject: [PATCH 1/3] Add dialog to categories save button --- .../category/CategorizationFragment.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 02378e661..31cd3cd45 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -510,17 +510,46 @@ public class CategorizationFragment extends Fragment { switch(menuItem.getItemId()) { case R.id.menu_save_categories: ArrayList selectedCategories = new ArrayList(); + int numberSelected = 0; + for(CategoryItem item: categoriesAdapter.getItems()) { if(item.selected) { selectedCategories.add(item.name); + numberSelected++; } } - onCategoriesSaveHandler.onCategoriesSave(selectedCategories); - return true; + + //If no categories selected, display warning to user + if (numberSelected == 0) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + + builder.setMessage("Are you sure you want to proceed without selecting categories? Images without categories are rarely usable.") + .setTitle("No Categories Selected"); + builder.setPositiveButton("No", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + //Exit menuItem + return; + } + }); + builder.setNegativeButton("Yes", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + //Proceed + } + }); + + AlertDialog dialog = builder.create(); + dialog.show(); + } else { + + onCategoriesSaveHandler.onCategoriesSave(selectedCategories); + return true; + } } return super.onOptionsItemSelected(menuItem); } + + @Override public void onAttach(Activity activity) { super.onAttach(activity); From 60da5dc37a83a56b65792afc3a83109686f2bc4a Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 29 Jul 2016 19:50:09 +1200 Subject: [PATCH 2/3] Add else and negativeButton --- .../commons/category/CategorizationFragment.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 31cd3cd45..975d9ccce 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -519,6 +519,9 @@ public class CategorizationFragment extends Fragment { } } + //Need to reassign to a final variable to use in inner class + final ArrayList finalCategories = selectedCategories; + //If no categories selected, display warning to user if (numberSelected == 0) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); @@ -527,21 +530,23 @@ public class CategorizationFragment extends Fragment { .setTitle("No Categories Selected"); builder.setPositiveButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - //Exit menuItem + //Exit menuItem so user can select their categories return; } }); builder.setNegativeButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - //Proceed + //Proceed to submission + onCategoriesSaveHandler.onCategoriesSave(finalCategories); + return; } }); AlertDialog dialog = builder.create(); dialog.show(); } else { - - onCategoriesSaveHandler.onCategoriesSave(selectedCategories); + //Proceed to submission + onCategoriesSaveHandler.onCategoriesSave(finalCategories); return true; } } From a4db41b4ed56cb1716aaef13767a86aefb75bff5 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 29 Jul 2016 22:42:24 +1200 Subject: [PATCH 3/3] Change message --- .../free/nrw/commons/category/CategorizationFragment.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 975d9ccce..8fdd8b1c8 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -526,15 +526,15 @@ public class CategorizationFragment extends Fragment { if (numberSelected == 0) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setMessage("Are you sure you want to proceed without selecting categories? Images without categories are rarely usable.") + builder.setMessage("Images without categories are rarely usable. Are you sure you want to submit without selecting categories?") .setTitle("No Categories Selected"); - builder.setPositiveButton("No", new DialogInterface.OnClickListener() { + builder.setPositiveButton("No, go back", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //Exit menuItem so user can select their categories return; } }); - builder.setNegativeButton("Yes", new DialogInterface.OnClickListener() { + builder.setNegativeButton("Yes, submit", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { //Proceed to submission onCategoriesSaveHandler.onCategoriesSave(finalCategories);