Adds generic ItemCallback interface.
This commit is contained in:
@@ -20,6 +20,7 @@ import com.majinnaibu.monstercards.databinding.CardMonsterBinding;
|
|||||||
import com.majinnaibu.monstercards.helpers.CommonMarkHelper;
|
import com.majinnaibu.monstercards.helpers.CommonMarkHelper;
|
||||||
import com.majinnaibu.monstercards.models.Monster;
|
import com.majinnaibu.monstercards.models.Monster;
|
||||||
import com.majinnaibu.monstercards.models.Trait;
|
import com.majinnaibu.monstercards.models.Trait;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
import com.majinnaibu.monstercards.utils.Logger;
|
import com.majinnaibu.monstercards.utils.Logger;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -36,9 +37,9 @@ public class DashboardRecyclerViewAdapter extends ListAdapter<Monster, Dashboard
|
|||||||
return Monster.areContentsTheSame(oldItem, newItem);
|
return Monster.areContentsTheSame(oldItem, newItem);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final ItemCallback mOnClick;
|
private final ItemCallback<Monster> mOnClick;
|
||||||
|
|
||||||
protected DashboardRecyclerViewAdapter(ItemCallback onClick) {
|
protected DashboardRecyclerViewAdapter(ItemCallback<Monster> onClick) {
|
||||||
super(DIFF_CALLBACK);
|
super(DIFF_CALLBACK);
|
||||||
mOnClick = onClick;
|
mOnClick = onClick;
|
||||||
}
|
}
|
||||||
@@ -119,15 +120,11 @@ public class DashboardRecyclerViewAdapter extends ListAdapter<Monster, Dashboard
|
|||||||
|
|
||||||
holder.itemView.setOnClickListener(v -> {
|
holder.itemView.setOnClickListener(v -> {
|
||||||
if (mOnClick != null) {
|
if (mOnClick != null) {
|
||||||
mOnClick.onItemCallback(holder.monster);
|
mOnClick.onItem(holder.monster);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItemCallback(Monster monster);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
public final TextView name;
|
public final TextView name;
|
||||||
public final TextView meta;
|
public final TextView meta;
|
||||||
|
|||||||
@@ -6,20 +6,21 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.majinnaibu.monstercards.databinding.FragmentEditLanguagesListHeaderBinding;
|
import com.majinnaibu.monstercards.databinding.FragmentEditLanguagesListHeaderBinding;
|
||||||
import com.majinnaibu.monstercards.databinding.FragmentEditLanguagesListItemBinding;
|
import com.majinnaibu.monstercards.databinding.FragmentEditLanguagesListItemBinding;
|
||||||
import com.majinnaibu.monstercards.models.Language;
|
import com.majinnaibu.monstercards.models.Language;
|
||||||
import com.majinnaibu.monstercards.ui.components.Stepper;
|
import com.majinnaibu.monstercards.ui.components.Stepper;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
private final List<Language> mValues;
|
private final List<Language> mValues;
|
||||||
private final ItemCallback mOnClick;
|
private final ItemCallback<Language> mOnClick;
|
||||||
private final int mTelepathyRange;
|
private final int mTelepathyRange;
|
||||||
private final String mUnderstandsBut;
|
private final String mUnderstandsBut;
|
||||||
private final Stepper.OnValueChangeListener mOnTelepathyRangeChanged;
|
private final Stepper.OnValueChangeListener mOnTelepathyRangeChanged;
|
||||||
@@ -29,18 +30,18 @@ public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
|
|||||||
private final int ITEM_VIEW_TYPE = 2;
|
private final int ITEM_VIEW_TYPE = 2;
|
||||||
private final String DISTANCE_IN_FEET_FORMAT = "%d ft.";
|
private final String DISTANCE_IN_FEET_FORMAT = "%d ft.";
|
||||||
|
|
||||||
public EditLanguagesRecyclerViewAdapter(List<Language> items, ItemCallback onClick, int telepathyRange, Stepper.OnValueChangeListener telepathyRangeChangedListener, String undderstandsBut, TextWatcher understandsButChangedListener) {
|
public EditLanguagesRecyclerViewAdapter(List<Language> items, ItemCallback<Language> onClick, int telepathyRange, Stepper.OnValueChangeListener telepathyRangeChangedListener, String understandsBut, TextWatcher understandsButChangedListener) {
|
||||||
mValues = items;
|
mValues = items;
|
||||||
mOnClick = onClick;
|
mOnClick = onClick;
|
||||||
mTelepathyRange = telepathyRange;
|
mTelepathyRange = telepathyRange;
|
||||||
mOnTelepathyRangeChanged = telepathyRangeChangedListener;
|
mOnTelepathyRangeChanged = telepathyRangeChangedListener;
|
||||||
mUnderstandsBut = undderstandsBut;
|
mUnderstandsBut = understandsBut;
|
||||||
mOnUnderstandsButChanged = understandsButChangedListener;
|
mOnUnderstandsButChanged = understandsButChangedListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(@NotNull ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
if (viewType == HEADER_VIEW_TYPE) {
|
if (viewType == HEADER_VIEW_TYPE) {
|
||||||
return new HeaderViewHolder(FragmentEditLanguagesListHeaderBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
return new HeaderViewHolder(FragmentEditLanguagesListHeaderBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
||||||
}
|
}
|
||||||
@@ -48,21 +49,21 @@ public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NotNull final RecyclerView.ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder, int position) {
|
||||||
if (holder instanceof HeaderViewHolder) {
|
if (holder instanceof HeaderViewHolder) {
|
||||||
HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder;
|
HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder;
|
||||||
headerViewHolder.telepathy.setOnFormatValueCallback(value -> String.format(DISTANCE_IN_FEET_FORMAT, value));
|
headerViewHolder.telepathy.setOnFormatValueCallback(value -> String.format(Locale.getDefault(), DISTANCE_IN_FEET_FORMAT, value));
|
||||||
headerViewHolder.telepathy.setValue(mTelepathyRange);
|
headerViewHolder.telepathy.setValue(mTelepathyRange);
|
||||||
headerViewHolder.telepathy.setOnValueChangeListener(mOnTelepathyRangeChanged);
|
headerViewHolder.telepathy.setOnValueChangeListener(mOnTelepathyRangeChanged);
|
||||||
headerViewHolder.understandsBut.setText(mUnderstandsBut);
|
headerViewHolder.understandsBut.setText(mUnderstandsBut);
|
||||||
headerViewHolder.understandsBut.addTextChangedListener(mOnUnderstandsButChanged);
|
headerViewHolder.understandsBut.addTextChangedListener(mOnUnderstandsButChanged);
|
||||||
} else if(holder instanceof ItemViewHolder) {
|
} else if (holder instanceof ItemViewHolder) {
|
||||||
ItemViewHolder itemViewHolder = (ItemViewHolder)holder;
|
ItemViewHolder itemViewHolder = (ItemViewHolder) holder;
|
||||||
itemViewHolder.mItem = mValues.get(position-1);
|
itemViewHolder.mItem = mValues.get(position - 1);
|
||||||
itemViewHolder.mContentView.setText(itemViewHolder.mItem.getName());
|
itemViewHolder.mContentView.setText(itemViewHolder.mItem.getName());
|
||||||
itemViewHolder.itemView.setOnClickListener(view -> {
|
itemViewHolder.itemView.setOnClickListener(view -> {
|
||||||
if (mOnClick != null) {
|
if (mOnClick != null) {
|
||||||
mOnClick.onItemCallback(itemViewHolder.mItem);
|
mOnClick.onItem(itemViewHolder.mItem);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -70,7 +71,7 @@ public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return mValues.size() +1;
|
return mValues.size() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -81,15 +82,11 @@ public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
|
|||||||
return ITEM_VIEW_TYPE;
|
return ITEM_VIEW_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItemCallback(Language language);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class HeaderViewHolder extends RecyclerView.ViewHolder {
|
public static class HeaderViewHolder extends RecyclerView.ViewHolder {
|
||||||
public final Stepper telepathy;
|
public final Stepper telepathy;
|
||||||
public final EditText understandsBut;
|
public final EditText understandsBut;
|
||||||
|
|
||||||
public HeaderViewHolder(FragmentEditLanguagesListHeaderBinding binding) {
|
public HeaderViewHolder(@NonNull FragmentEditLanguagesListHeaderBinding binding) {
|
||||||
super(binding.getRoot());
|
super(binding.getRoot());
|
||||||
telepathy = binding.telepathy;
|
telepathy = binding.telepathy;
|
||||||
understandsBut = binding.understandsBut;
|
understandsBut = binding.understandsBut;
|
||||||
@@ -100,15 +97,15 @@ public class EditLanguagesRecyclerViewAdapter extends RecyclerView.Adapter<Recyc
|
|||||||
public final TextView mContentView;
|
public final TextView mContentView;
|
||||||
public Language mItem;
|
public Language mItem;
|
||||||
|
|
||||||
public ItemViewHolder(FragmentEditLanguagesListItemBinding binding) {
|
public ItemViewHolder(@NonNull FragmentEditLanguagesListItemBinding binding) {
|
||||||
super(binding.getRoot());
|
super(binding.getRoot());
|
||||||
mContentView = binding.content;
|
mContentView = binding.content;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " '" + mContentView.getText() + "'";
|
return super.toString() + " '" + mContentView.getText() + "'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,34 +4,42 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.majinnaibu.monstercards.databinding.FragmentEditSkillsListItemBinding;
|
import com.majinnaibu.monstercards.databinding.FragmentEditSkillsListItemBinding;
|
||||||
import com.majinnaibu.monstercards.models.Skill;
|
import com.majinnaibu.monstercards.models.Skill;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link RecyclerView.Adapter} that can display a {@link Skill}.
|
* {@link RecyclerView.Adapter} that can display a {@link Skill}.
|
||||||
* TODO: Replace the implementation with code for your data type.
|
|
||||||
*/
|
*/
|
||||||
public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter<EditSkillsRecyclerViewAdapter.ViewHolder> {
|
public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter<EditSkillsRecyclerViewAdapter.ViewHolder> {
|
||||||
|
|
||||||
private final List<Skill> mValues;
|
private final List<Skill> mValues;
|
||||||
|
private final ItemCallback<Skill> mOnClick;
|
||||||
|
|
||||||
public EditSkillsRecyclerViewAdapter(List<Skill> items) {
|
public EditSkillsRecyclerViewAdapter(List<Skill> items, ItemCallback<Skill> onClick) {
|
||||||
mValues = items;
|
mValues = items;
|
||||||
|
mOnClick = onClick;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
return new ViewHolder(FragmentEditSkillsListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
return new ViewHolder(FragmentEditSkillsListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(final ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
|
||||||
holder.mItem = mValues.get(position);
|
holder.mItem = mValues.get(position);
|
||||||
holder.mContentView.setText(mValues.get(position).name);
|
holder.mContentView.setText(mValues.get(position).name);
|
||||||
|
holder.itemView.setOnClickListener(v -> {
|
||||||
|
if (mOnClick != null) {
|
||||||
|
mOnClick.onItem(holder.mItem);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -39,18 +47,19 @@ public class EditSkillsRecyclerViewAdapter extends RecyclerView.Adapter<EditSkil
|
|||||||
return mValues.size();
|
return mValues.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
public final TextView mContentView;
|
public final TextView mContentView;
|
||||||
public Skill mItem;
|
public Skill mItem;
|
||||||
|
|
||||||
public ViewHolder(FragmentEditSkillsListItemBinding binding) {
|
public ViewHolder(@NonNull FragmentEditSkillsListItemBinding binding) {
|
||||||
super(binding.getRoot());
|
super(binding.getRoot());
|
||||||
mContentView = binding.content;
|
mContentView = binding.content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return super.toString() + " '" + mContentView.getText() + "'";
|
return super.toString() + " '" + mContentView.getText() + "'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import android.widget.TextView;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.majinnaibu.monstercards.databinding.FragmentEditStringsListItemBinding;
|
import com.majinnaibu.monstercards.databinding.FragmentEditStringsListItemBinding;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -14,9 +15,9 @@ import java.util.List;
|
|||||||
|
|
||||||
public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter<EditStringsRecyclerViewAdapter.ViewHolder> {
|
public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter<EditStringsRecyclerViewAdapter.ViewHolder> {
|
||||||
private final List<String> mValues;
|
private final List<String> mValues;
|
||||||
private final ItemCallback mOnClick;
|
private final ItemCallback<String> mOnClick;
|
||||||
|
|
||||||
public EditStringsRecyclerViewAdapter(List<String> items, ItemCallback onClick) {
|
public EditStringsRecyclerViewAdapter(List<String> items, ItemCallback<String> onClick) {
|
||||||
mValues = items;
|
mValues = items;
|
||||||
mOnClick = onClick;
|
mOnClick = onClick;
|
||||||
}
|
}
|
||||||
@@ -33,7 +34,7 @@ public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter<EditStr
|
|||||||
holder.mContentView.setText(mValues.get(position));
|
holder.mContentView.setText(mValues.get(position));
|
||||||
holder.itemView.setOnClickListener(v -> {
|
holder.itemView.setOnClickListener(v -> {
|
||||||
if (mOnClick != null) {
|
if (mOnClick != null) {
|
||||||
mOnClick.onItemCallback(holder.mItem);
|
mOnClick.onItem(holder.mItem);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -43,10 +44,6 @@ public class EditStringsRecyclerViewAdapter extends RecyclerView.Adapter<EditStr
|
|||||||
return mValues.size();
|
return mValues.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItemCallback(String value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
public final TextView mContentView;
|
public final TextView mContentView;
|
||||||
public String mItem;
|
public String mItem;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.majinnaibu.monstercards.databinding.FragmentEditTraitsListItemBinding;
|
import com.majinnaibu.monstercards.databinding.FragmentEditTraitsListItemBinding;
|
||||||
import com.majinnaibu.monstercards.models.Trait;
|
import com.majinnaibu.monstercards.models.Trait;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -27,9 +28,9 @@ public class EditTraitsRecyclerViewAdapter extends ListAdapter<Trait, EditTraits
|
|||||||
return oldItem.equals(newItem);
|
return oldItem.equals(newItem);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final ItemCallback mOnClick;
|
private final ItemCallback<Trait> mOnClick;
|
||||||
|
|
||||||
protected EditTraitsRecyclerViewAdapter(ItemCallback onClick) {
|
protected EditTraitsRecyclerViewAdapter(ItemCallback<Trait> onClick) {
|
||||||
super(DIFF_CALLBACK);
|
super(DIFF_CALLBACK);
|
||||||
mOnClick = onClick;
|
mOnClick = onClick;
|
||||||
}
|
}
|
||||||
@@ -46,15 +47,11 @@ public class EditTraitsRecyclerViewAdapter extends ListAdapter<Trait, EditTraits
|
|||||||
holder.mContentView.setText(holder.mItem.name);
|
holder.mContentView.setText(holder.mItem.name);
|
||||||
holder.itemView.setOnClickListener(v -> {
|
holder.itemView.setOnClickListener(v -> {
|
||||||
if (mOnClick != null) {
|
if (mOnClick != null) {
|
||||||
mOnClick.onItemCallback(holder.mItem);
|
mOnClick.onItem(holder.mItem);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItemCallback(Trait trait);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
public final TextView mContentView;
|
public final TextView mContentView;
|
||||||
public Trait mItem;
|
public Trait mItem;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.majinnaibu.monstercards.R;
|
import com.majinnaibu.monstercards.R;
|
||||||
import com.majinnaibu.monstercards.models.Monster;
|
import com.majinnaibu.monstercards.models.Monster;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
|
|
||||||
public class LibraryRecyclerViewAdapter extends ListAdapter<Monster, LibraryRecyclerViewAdapter.ViewHolder> {
|
public class LibraryRecyclerViewAdapter extends ListAdapter<Monster, LibraryRecyclerViewAdapter.ViewHolder> {
|
||||||
private static final DiffUtil.ItemCallback<Monster> DIFF_CALLBACK = new DiffUtil.ItemCallback<Monster>() {
|
private static final DiffUtil.ItemCallback<Monster> DIFF_CALLBACK = new DiffUtil.ItemCallback<Monster>() {
|
||||||
@@ -25,9 +26,9 @@ public class LibraryRecyclerViewAdapter extends ListAdapter<Monster, LibraryRecy
|
|||||||
return Monster.areContentsTheSame(oldItem, newItem);
|
return Monster.areContentsTheSame(oldItem, newItem);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
private final ItemCallback mOnClick;
|
private final ItemCallback<Monster> mOnClick;
|
||||||
|
|
||||||
public LibraryRecyclerViewAdapter(ItemCallback onClick) {
|
public LibraryRecyclerViewAdapter(ItemCallback<Monster> onClick) {
|
||||||
super(DIFF_CALLBACK);
|
super(DIFF_CALLBACK);
|
||||||
mOnClick = onClick;
|
mOnClick = onClick;
|
||||||
}
|
}
|
||||||
@@ -48,15 +49,11 @@ public class LibraryRecyclerViewAdapter extends ListAdapter<Monster, LibraryRecy
|
|||||||
holder.itemView.setTag(monster);
|
holder.itemView.setTag(monster);
|
||||||
holder.itemView.setOnClickListener(v -> {
|
holder.itemView.setOnClickListener(v -> {
|
||||||
if (mOnClick != null) {
|
if (mOnClick != null) {
|
||||||
mOnClick.onItemCallback(holder.item);
|
mOnClick.onItem(holder.item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItemCallback(Monster monster);
|
|
||||||
}
|
|
||||||
|
|
||||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
final TextView contentView;
|
final TextView contentView;
|
||||||
Monster item;
|
Monster item;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import com.majinnaibu.monstercards.R;
|
import com.majinnaibu.monstercards.R;
|
||||||
import com.majinnaibu.monstercards.data.MonsterRepository;
|
import com.majinnaibu.monstercards.data.MonsterRepository;
|
||||||
import com.majinnaibu.monstercards.models.Monster;
|
import com.majinnaibu.monstercards.models.Monster;
|
||||||
|
import com.majinnaibu.monstercards.utils.ItemCallback;
|
||||||
import com.majinnaibu.monstercards.utils.Logger;
|
import com.majinnaibu.monstercards.utils.Logger;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -23,12 +24,12 @@ import io.reactivex.rxjava3.disposables.Disposable;
|
|||||||
|
|
||||||
public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter<SearchResultsRecyclerViewAdapter.ViewHolder> {
|
public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter<SearchResultsRecyclerViewAdapter.ViewHolder> {
|
||||||
private final MonsterRepository mRepository;
|
private final MonsterRepository mRepository;
|
||||||
private final ItemCallback mOnClickHandler;
|
private final ItemCallback<Monster> mOnClickHandler;
|
||||||
private String mSearchText;
|
private String mSearchText;
|
||||||
private List<Monster> mValues;
|
private List<Monster> mValues;
|
||||||
private Disposable mSubscriptionHandler;
|
private Disposable mSubscriptionHandler;
|
||||||
public SearchResultsRecyclerViewAdapter(MonsterRepository repository,
|
public SearchResultsRecyclerViewAdapter(MonsterRepository repository,
|
||||||
ItemCallback onClick) {
|
ItemCallback<Monster> onClick) {
|
||||||
mRepository = repository;
|
mRepository = repository;
|
||||||
mSearchText = "";
|
mSearchText = "";
|
||||||
mValues = new ArrayList<>();
|
mValues = new ArrayList<>();
|
||||||
@@ -76,10 +77,6 @@ public class SearchResultsRecyclerViewAdapter extends RecyclerView.Adapter<Searc
|
|||||||
return mValues.size();
|
return mValues.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ItemCallback {
|
|
||||||
void onItem(Monster monster);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
final TextView mContentView;
|
final TextView mContentView;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.majinnaibu.monstercards.utils;
|
||||||
|
|
||||||
|
public interface ItemCallback<T> {
|
||||||
|
void onItem(T item);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user