diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/CategoryAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/CategoryAdapter.java index eacff7ca..8f19450f 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/CategoryAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/CategoryAdapter.java @@ -39,8 +39,10 @@ public class CategoryAdapter extends RecyclerView.Adapter { - category.visible = !category.visible; - holder.checkBox.setChecked(category.visible); + if (!(category.visible && isLastCheckedCategory(category))) { + category.visible = !category.visible; + holder.checkBox.setChecked(category.visible); + } }); holder.dragView.setOnTouchListener((view, event) -> { @@ -79,6 +81,15 @@ public class CategoryAdapter extends RecyclerView.Adapter { + .onNeutral((dialog, action) -> { adapter.setCategories(PreferenceUtil.getInstance(getContext()).getDefaultLibraryCategories()); }) - .onNegative((dialog12, action) -> dismiss()) - .onPositive((dialog13, action) -> { - if (!updateCategories(adapter.getCategories())) { - new MaterialDialog.Builder(getContext()) - .title(R.string.edit_categories) - .content(R.string.at_least_one_category_must_be_enabled) - .positiveText(android.R.string.ok) - .show(); - } else { - dismiss(); - } + .onNegative((dialog, action) -> dismiss()) + .onPositive((dialog, action) -> { + updateCategories(adapter.getCategories()); + dismiss(); }) .build(); - - return dialog; } - private boolean updateCategories(ArrayList categories) { - if (getSelected(categories) == 0) return false; + private void updateCategories(ArrayList categories) { + if (getSelected(categories) == 0) return; PreferenceUtil.getInstance(getContext()).setLibraryCategories(categories); - - return true; } private int getSelected(ArrayList categories) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 3c31482c..9cc08451 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -7,6 +7,7 @@ import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.annotation.StyleRes; +import com.google.gson.Gson; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.SortOrder; import com.kabouzeid.gramophone.model.Category; @@ -14,13 +15,11 @@ import com.kabouzeid.gramophone.ui.fragments.mainactivity.folders.FoldersFragmen import com.kabouzeid.gramophone.ui.fragments.player.NowPlayingScreen; import java.io.File; -import java.util.Collections; import java.util.ArrayList; +import java.util.Collections; import java.util.HashSet; import java.util.Set; -import com.google.gson.Gson; - public final class PreferenceUtil { public static final String GENERAL_THEME = "general_theme"; public static final String DEFAULT_START_PAGE = "default_start_page"; @@ -449,7 +448,7 @@ public final class PreferenceUtil { SharedPreferences.Editor editor = mPreferences.edit(); editor.putStringSet(LIBRARY_CATEGORIES, data); - editor.commit(); + editor.apply(); } public ArrayList getLibraryCategories() {