From e06b5bc94e2adbbcf52b703359a9c6382556da2f Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 8 Sep 2020 12:25:06 +0900 Subject: [PATCH] minor changes to category adapter --- ...yInfoAdapter.java => CategoryAdapter.java} | 50 ++++++++++--------- .../preferences/CategoryPreferenceDialog.java | 25 +++++----- app/src/main/res/xml/pref_notification.xml | 2 +- 3 files changed, 39 insertions(+), 38 deletions(-) rename app/src/main/java/com/dkanada/gramophone/adapter/{CategoryInfoAdapter.java => CategoryAdapter.java} (62%) diff --git a/app/src/main/java/com/dkanada/gramophone/adapter/CategoryInfoAdapter.java b/app/src/main/java/com/dkanada/gramophone/adapter/CategoryAdapter.java similarity index 62% rename from app/src/main/java/com/dkanada/gramophone/adapter/CategoryInfoAdapter.java rename to app/src/main/java/com/dkanada/gramophone/adapter/CategoryAdapter.java index c25e6b57..8bdfae9d 100644 --- a/app/src/main/java/com/dkanada/gramophone/adapter/CategoryInfoAdapter.java +++ b/app/src/main/java/com/dkanada/gramophone/adapter/CategoryAdapter.java @@ -18,35 +18,35 @@ import com.dkanada.gramophone.helper.SwipeAndDragHelper; import java.util.List; -public class CategoryInfoAdapter extends RecyclerView.Adapter implements SwipeAndDragHelper.ActionCompletionContract { - private List categoryInfos; +public class CategoryAdapter extends RecyclerView.Adapter implements SwipeAndDragHelper.ActionCompletionContract { + private List categories; private ItemTouchHelper touchHelper; - public CategoryInfoAdapter(List categoryInfos) { - this.categoryInfos = categoryInfos; + public CategoryAdapter(List categories) { + this.categories = categories; SwipeAndDragHelper swipeAndDragHelper = new SwipeAndDragHelper(this); touchHelper = new ItemTouchHelper(swipeAndDragHelper); } @Override @NonNull - public CategoryInfoAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + public CategoryAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.preference_dialog_category_item, parent, false); return new ViewHolder(view); } @SuppressLint("ClickableViewAccessibility") @Override - public void onBindViewHolder(@NonNull CategoryInfoAdapter.ViewHolder holder, int position) { - CategoryInfo categoryInfo = categoryInfos.get(position); + public void onBindViewHolder(@NonNull CategoryAdapter.ViewHolder holder, int position) { + CategoryInfo category = categories.get(position); - holder.checkBox.setChecked(categoryInfo.visible); - holder.title.setText(holder.title.getResources().getString(categoryInfo.category.stringRes)); + holder.checkBox.setChecked(category.visible); + holder.title.setText(holder.title.getResources().getString(category.category.stringRes)); holder.itemView.setOnClickListener(v -> { - if (!(categoryInfo.visible && isLastCheckedCategory(categoryInfo))) { - categoryInfo.visible = !categoryInfo.visible; - holder.checkBox.setChecked(categoryInfo.visible); + if (!(category.visible && isLastCheckedCategory(category))) { + category.visible = !category.visible; + holder.checkBox.setChecked(category.visible); } else { Toast.makeText(holder.itemView.getContext(), R.string.you_have_to_select_at_least_one_category, Toast.LENGTH_SHORT).show(); } @@ -56,6 +56,7 @@ public class CategoryInfoAdapter extends RecyclerView.Adapter categoryInfos) { - this.categoryInfos = categoryInfos; + public void setCategories(List categories) { + this.categories = categories; notifyDataSetChanged(); } @Override public void onViewMoved(int oldPosition, int newPosition) { - CategoryInfo categoryInfo = categoryInfos.get(oldPosition); - categoryInfos.remove(oldPosition); - categoryInfos.add(newPosition, categoryInfo); + CategoryInfo categoryInfo = categories.get(oldPosition); + categories.remove(oldPosition); + categories.add(newPosition, categoryInfo); notifyItemMoved(oldPosition, newPosition); } @@ -83,16 +84,17 @@ public class CategoryInfoAdapter extends RecyclerView.Adapter getCategoryInfos() { - return categoryInfos; + public List getCategories() { + return categories; } - private boolean isLastCheckedCategory(CategoryInfo categoryInfo) { - if (categoryInfo.visible) { - for (CategoryInfo c : categoryInfos) { - if (c != categoryInfo && c.visible) return false; + private boolean isLastCheckedCategory(CategoryInfo category) { + if (category.visible) { + for (CategoryInfo c : categories) { + if (c != category && c.visible) return false; } } + return true; } diff --git a/app/src/main/java/com/dkanada/gramophone/preferences/CategoryPreferenceDialog.java b/app/src/main/java/com/dkanada/gramophone/preferences/CategoryPreferenceDialog.java index 48a58932..49685148 100644 --- a/app/src/main/java/com/dkanada/gramophone/preferences/CategoryPreferenceDialog.java +++ b/app/src/main/java/com/dkanada/gramophone/preferences/CategoryPreferenceDialog.java @@ -10,7 +10,7 @@ import android.view.View; import com.afollestad.materialdialogs.MaterialDialog; import com.dkanada.gramophone.R; -import com.dkanada.gramophone.adapter.CategoryInfoAdapter; +import com.dkanada.gramophone.adapter.CategoryAdapter; import com.dkanada.gramophone.model.CategoryInfo; import com.dkanada.gramophone.util.PreferenceUtil; @@ -22,21 +22,21 @@ public class CategoryPreferenceDialog extends DialogFragment { return new CategoryPreferenceDialog(); } - private CategoryInfoAdapter adapter; + private CategoryAdapter adapter; @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { View view = getActivity().getLayoutInflater().inflate(R.layout.preference_dialog_category, null); - List categoryInfos; + List categories; if (savedInstanceState != null) { - categoryInfos = savedInstanceState.getParcelableArrayList(PreferenceUtil.CATEGORIES); + categories = savedInstanceState.getParcelableArrayList(PreferenceUtil.CATEGORIES); } else { - categoryInfos = PreferenceUtil.getInstance(getContext()).getCategories(); + categories = PreferenceUtil.getInstance(getContext()).getCategories(); } - adapter = new CategoryInfoAdapter(categoryInfos); + adapter = new CategoryAdapter(categories); RecyclerView recyclerView = view.findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); @@ -51,19 +51,19 @@ public class CategoryPreferenceDialog extends DialogFragment { .negativeText(android.R.string.cancel) .neutralText(R.string.reset_action) .autoDismiss(false) - .onNeutral((dialog, action) -> adapter.setCategoryInfos(PreferenceUtil.getInstance(getContext()).getDefaultCategories())) + .onNeutral((dialog, action) -> adapter.setCategories(PreferenceUtil.getInstance(getContext()).getDefaultCategories())) .onNegative((dialog, action) -> dismiss()) .onPositive((dialog, action) -> { - updateCategories(adapter.getCategoryInfos()); + updateCategories(adapter.getCategories()); dismiss(); }) .build(); } @Override - public void onSaveInstanceState(Bundle outState) { + public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); - outState.putParcelableArrayList(PreferenceUtil.CATEGORIES, new ArrayList<>(adapter.getCategoryInfos())); + outState.putParcelableArrayList(PreferenceUtil.CATEGORIES, new ArrayList<>(adapter.getCategories())); } private void updateCategories(List categories) { @@ -74,9 +74,8 @@ public class CategoryPreferenceDialog extends DialogFragment { private int getSelected(List categories) { int selected = 0; - for (CategoryInfo categoryInfo : categories) { - if (categoryInfo.visible) - selected++; + for (CategoryInfo category : categories) { + if (category.visible) selected++; } return selected; diff --git a/app/src/main/res/xml/pref_notification.xml b/app/src/main/res/xml/pref_notification.xml index 6e980410..4bdf8caf 100644 --- a/app/src/main/res/xml/pref_notification.xml +++ b/app/src/main/res/xml/pref_notification.xml @@ -5,7 +5,7 @@