From 660cf633da91eb4a8a190315a6a35a56b8596794 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Thu, 1 Jul 2021 00:02:48 -0700 Subject: [PATCH] Fixes lists to use similar sized items. --- .../ui/library/LibraryFragment.java | 2 +- .../library/LibraryRecyclerViewAdapter.java | 2 +- .../MonsterListRecyclerViewAdapter.java | 115 ------------------ .../fragment_edit_languages_list_item.xml | 4 +- .../layout/fragment_edit_skills_list_item.xml | 2 +- .../fragment_edit_strings_list_item.xml | 2 +- .../layout/fragment_edit_traits_list_item.xml | 2 +- .../main/res/layout/monster_list_content.xml | 15 ++- 8 files changed, 18 insertions(+), 126 deletions(-) delete mode 100644 Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java index 8966015..51f7e1f 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java @@ -50,7 +50,7 @@ public class LibraryFragment extends MCFragment { Context context = requireContext(); MonsterRepository repository = this.getMonsterRepository(); - MonsterListRecyclerViewAdapter adapter = new MonsterListRecyclerViewAdapter( + LibraryRecyclerViewAdapter adapter = new LibraryRecyclerViewAdapter( context, repository.getMonsters(), (monster) -> navigateToMonsterDetail(monster.id), diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryRecyclerViewAdapter.java index 82a80da..6b20d59 100644 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryRecyclerViewAdapter.java +++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryRecyclerViewAdapter.java @@ -27,7 +27,7 @@ public class LibraryRecyclerViewAdapter extends RecyclerView.Adapter> mItemsObservable; private final View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override - public void onClick(@NonNull View view) { + public void onClick(View view) { Monster monster = (Monster) view.getTag(); if (mOnClick != null) { mOnClick.onItemCallback(monster); diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java deleted file mode 100644 index ca0bab0..0000000 --- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/MonsterListRecyclerViewAdapter.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.majinnaibu.monstercards.ui.library; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.majinnaibu.monstercards.R; -import com.majinnaibu.monstercards.models.Monster; - -import java.util.ArrayList; -import java.util.List; - -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.core.Flowable; -import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.schedulers.Schedulers; - -public class MonsterListRecyclerViewAdapter extends RecyclerView.Adapter { - private final Context mContext; - private final ItemCallback mOnDelete; - private final ItemCallback mOnClick; - private final Flowable> mItemsObservable; - private final View.OnClickListener mOnClickListener = new View.OnClickListener() { - @Override - public void onClick(View view) { - Monster monster = (Monster) view.getTag(); - if (mOnClick != null) { - mOnClick.onItemCallback(monster); - } - } - }; - private List mValues; - private Disposable mDisposable; - - public MonsterListRecyclerViewAdapter(Context context, - Flowable> itemsObservable, - ItemCallback onClick, - ItemCallback onDelete) { - mItemsObservable = itemsObservable; - mValues = new ArrayList<>(); - mContext = context; - mOnDelete = onDelete; - mOnClick = onClick; - mDisposable = null; - } - - @Override - @NonNull - public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.monster_list_content, parent, false); - return new ViewHolder(view); - } - - @Override - public void onBindViewHolder(final @NonNull ViewHolder holder, int position) { - Monster monster = mValues.get(position); - holder.mContentView.setText(monster.name); - holder.itemView.setTag(monster); - holder.itemView.setOnClickListener(mOnClickListener); - } - - @Override - public int getItemCount() { - return mValues.size(); - } - - public Context getContext() { - return mContext; - } - - @Override - public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) { - super.onAttachedToRecyclerView(recyclerView); - // TODO: consider moving this subscription out of the adapter and make the subscriber call setItems on the adapter - mDisposable = mItemsObservable - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(monsters -> { - mValues = monsters; - notifyDataSetChanged(); - }); - } - - @Override - public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) { - super.onDetachedFromRecyclerView(recyclerView); - mDisposable.dispose(); - } - - public void deleteItem(int position) { - if (mOnDelete != null) { - Monster monster = mValues.get(position); - mOnDelete.onItemCallback(monster); - } - } - - public interface ItemCallback { - void onItemCallback(Monster monster); - } - - static class ViewHolder extends RecyclerView.ViewHolder { - final TextView mContentView; - - ViewHolder(View view) { - super(view); - mContentView = view.findViewById(R.id.content); - } - } -} diff --git a/Android/app/src/main/res/layout/fragment_edit_languages_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_languages_list_item.xml index 6e9049a..ea0dc65 100644 --- a/Android/app/src/main/res/layout/fragment_edit_languages_list_item.xml +++ b/Android/app/src/main/res/layout/fragment_edit_languages_list_item.xml @@ -6,8 +6,8 @@ - \ No newline at end of file + diff --git a/Android/app/src/main/res/layout/fragment_edit_skills_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_skills_list_item.xml index 93d00b2..ea0dc65 100644 --- a/Android/app/src/main/res/layout/fragment_edit_skills_list_item.xml +++ b/Android/app/src/main/res/layout/fragment_edit_skills_list_item.xml @@ -6,7 +6,7 @@ diff --git a/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml index 93d00b2..ea0dc65 100644 --- a/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml +++ b/Android/app/src/main/res/layout/fragment_edit_strings_list_item.xml @@ -6,7 +6,7 @@ diff --git a/Android/app/src/main/res/layout/fragment_edit_traits_list_item.xml b/Android/app/src/main/res/layout/fragment_edit_traits_list_item.xml index 93d00b2..ea0dc65 100644 --- a/Android/app/src/main/res/layout/fragment_edit_traits_list_item.xml +++ b/Android/app/src/main/res/layout/fragment_edit_traits_list_item.xml @@ -6,7 +6,7 @@ diff --git a/Android/app/src/main/res/layout/monster_list_content.xml b/Android/app/src/main/res/layout/monster_list_content.xml index 704645a..b45ad3b 100644 --- a/Android/app/src/main/res/layout/monster_list_content.xml +++ b/Android/app/src/main/res/layout/monster_list_content.xml @@ -1,7 +1,14 @@ - + android:orientation="horizontal"> + + + +