|
|
@@ -0,0 +1,175 @@
|
|
|
+package com.modular.appmessages.adapter;
|
|
|
+
|
|
|
+import android.content.Context;
|
|
|
+import android.support.v7.widget.DefaultItemAnimator;
|
|
|
+import android.support.v7.widget.LinearLayoutManager;
|
|
|
+import android.support.v7.widget.RecyclerView;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.view.ViewGroup;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.modular.appmessages.R;
|
|
|
+import com.modular.appmessages.model.UUHelperModel;
|
|
|
+import com.nostra13.universalimageloader.core.ImageLoader;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Created by Bitliker on 2017/9/7.
|
|
|
+ */
|
|
|
+
|
|
|
+public class UUHelperAdapter extends RecyclerView.Adapter<UUHelperAdapter.ViewHolder> {
|
|
|
+
|
|
|
+ private Context ct;
|
|
|
+ private List<UUHelperModel> models;
|
|
|
+ private LayoutInflater inflater;
|
|
|
+
|
|
|
+ public UUHelperAdapter(Context ct, List<UUHelperModel> models) {
|
|
|
+ this.ct = ct;
|
|
|
+ this.models = models;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<UUHelperModel> getModels() {
|
|
|
+ return models;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setModels(List<UUHelperModel> models) {
|
|
|
+ this.models = models;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void insertStart(List<UUHelperModel> startModels) {
|
|
|
+ if (startModels == null || startModels.size() <= 0) return;
|
|
|
+ if (models == null || models.size() <= 0) {
|
|
|
+ setModels(startModels);
|
|
|
+ notifyDataSetChanged();
|
|
|
+ } else {
|
|
|
+ models.addAll(0, startModels);
|
|
|
+ notifyItemRangeInserted(0, startModels.size());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void insertEnd(List<UUHelperModel> startModels) {
|
|
|
+ if (startModels == null || startModels.size() <= 0) return;
|
|
|
+ if (models == null || models.size() <= 0) {
|
|
|
+ setModels(startModels);
|
|
|
+ notifyDataSetChanged();
|
|
|
+ } else {
|
|
|
+ int startItem = models.size();
|
|
|
+ models.addAll(startModels);
|
|
|
+ notifyItemRangeInserted(startItem, models.size());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public UUHelperAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
+ return new ViewHolder(parent);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onBindViewHolder(ViewHolder holder, int position) {
|
|
|
+ UUHelperModel model = models.get(position);
|
|
|
+ holder.itemRV.setTag(model.getDateShow());
|
|
|
+ holder.itemRV.setAdapter(new ItemAdapter(model.getItems()));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int getItemCount() {
|
|
|
+ return models == null ? 0 : models.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ class ViewHolder extends RecyclerView.ViewHolder {
|
|
|
+ TextView timeTV;
|
|
|
+ RecyclerView itemRV;
|
|
|
+
|
|
|
+ public ViewHolder(ViewGroup parent) {
|
|
|
+ this(getViewByLayout(R.layout.item_uuhelper, parent));
|
|
|
+ }
|
|
|
+
|
|
|
+ public ViewHolder(View itemView) {
|
|
|
+ super(itemView);
|
|
|
+ timeTV = (TextView) itemView.findViewById(R.id.timeTV);
|
|
|
+ itemRV = (RecyclerView) itemView.findViewById(R.id.itemRV);
|
|
|
+ itemRV.setLayoutManager(new LinearLayoutManager(ct));
|
|
|
+ itemRV.setItemAnimator(new DefaultItemAnimator());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ItemViewHolder> {
|
|
|
+ private List<UUHelperModel.UUHelperItem> items;
|
|
|
+
|
|
|
+ public ItemAdapter(List<UUHelperModel.UUHelperItem> items) {
|
|
|
+ this.items = items;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setItems(List<UUHelperModel.UUHelperItem> items) {
|
|
|
+ this.items = items;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
+ return new ItemViewHolder(parent);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int getItemCount() {
|
|
|
+ return this.items == null ? 0 : this.items.size();
|
|
|
+ }
|
|
|
+
|
|
|
+ class ItemViewHolder extends RecyclerView.ViewHolder {
|
|
|
+ RelativeLayout fristRL, normalRL;
|
|
|
+ ImageView fristIV, normalIV;
|
|
|
+ TextView fristTV, normalTV;
|
|
|
+ View line;
|
|
|
+
|
|
|
+ public ItemViewHolder(ViewGroup parent) {
|
|
|
+ this(getViewByLayout(R.layout.item_uuhelper_item, parent));
|
|
|
+ }
|
|
|
+
|
|
|
+ public ItemViewHolder(View itemView) {
|
|
|
+ super(itemView);
|
|
|
+ fristRL = (RelativeLayout) itemView.findViewById(R.id.fristRL);
|
|
|
+ normalRL = (RelativeLayout) itemView.findViewById(R.id.normalRL);
|
|
|
+ fristIV = (ImageView) itemView.findViewById(R.id.fristIV);
|
|
|
+ normalIV = (ImageView) itemView.findViewById(R.id.normalIV);
|
|
|
+ fristTV = (TextView) itemView.findViewById(R.id.fristTV);
|
|
|
+ normalTV = (TextView) itemView.findViewById(R.id.normalTV);
|
|
|
+ line = itemView.findViewById(R.id.line);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onBindViewHolder(ItemViewHolder holder, int position) {
|
|
|
+ UUHelperModel.UUHelperItem model = this.items.get(position);
|
|
|
+ if (position == 0) {
|
|
|
+ holder.fristRL.setVisibility(View.VISIBLE);
|
|
|
+ holder.normalRL.setVisibility(View.GONE);
|
|
|
+ ImageLoader.getInstance().displayImage(model.getImageUrl(), holder.fristIV);
|
|
|
+ holder.fristTV.setText(model.getContent());
|
|
|
+ } else {
|
|
|
+ holder.fristRL.setVisibility(View.GONE);
|
|
|
+ holder.normalRL.setVisibility(View.VISIBLE);
|
|
|
+ ImageLoader.getInstance().displayImage(model.getImageUrl(), holder.normalIV);
|
|
|
+ holder.normalTV.setText(model.getContent());
|
|
|
+ }
|
|
|
+ if (position == (items.size() - 1)) {
|
|
|
+ holder.line.setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ holder.line.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private View getViewByLayout(int layout, ViewGroup parent) {
|
|
|
+ if (inflater == null) {
|
|
|
+ inflater = LayoutInflater.from(ct);
|
|
|
+ }
|
|
|
+ return inflater.inflate(layout, parent, false);
|
|
|
+ }
|
|
|
+}
|