|
|
@@ -1,8 +1,8 @@
|
|
|
package com.modular.appmessages.adapter;
|
|
|
|
|
|
import android.content.Context;
|
|
|
-import android.support.v7.widget.DefaultItemAnimator;
|
|
|
-import android.support.v7.widget.LinearLayoutManager;
|
|
|
+import android.content.DialogInterface;
|
|
|
+import android.support.v7.app.AlertDialog;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
@@ -11,7 +11,6 @@ import android.widget.ImageView;
|
|
|
import android.widget.RelativeLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
-import com.common.LogUtil;
|
|
|
import com.common.data.ListUtils;
|
|
|
import com.core.dao.UUHelperDao;
|
|
|
import com.core.model.UUHelperModel;
|
|
|
@@ -26,7 +25,7 @@ import java.util.List;
|
|
|
* Created by Bitliker on 2017/9/7.
|
|
|
*/
|
|
|
|
|
|
-public class UUHelperAdapter extends RecyclerView.Adapter<UUHelperAdapter.ViewHolder> {
|
|
|
+public class UUHelperAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
|
|
private Context ct;
|
|
|
private List<UUHelperModel> models;
|
|
|
private LayoutInflater inflater;
|
|
|
@@ -69,130 +68,98 @@ public class UUHelperAdapter extends RecyclerView.Adapter<UUHelperAdapter.ViewHo
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public UUHelperAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
- return new ViewHolder(parent);
|
|
|
+ public int getItemViewType(int position) {
|
|
|
+ return position;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onBindViewHolder(ViewHolder holder, int position) {
|
|
|
- UUHelperModel model = models.get(position);
|
|
|
- holder.timeTV.setText(model.getDate());
|
|
|
- ItemAdapter itemAdapter = null;
|
|
|
- if (holder.itemRV.getAdapter() != null && holder.itemRV.getAdapter() instanceof ItemAdapter) {
|
|
|
- itemAdapter = (ItemAdapter) holder.itemRV.getAdapter();
|
|
|
- itemAdapter.setItems(model.getItems());
|
|
|
- itemAdapter.notifyDataSetChanged();
|
|
|
+ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
|
+ boolean isTag = models.get(viewType).isTag();
|
|
|
+ if (isTag) {
|
|
|
+ return new TimeHolder(parent);
|
|
|
} else {
|
|
|
- itemAdapter = new ItemAdapter(model.getItems());
|
|
|
- holder.itemRV.setAdapter(itemAdapter);
|
|
|
+ return new ViewHolder(parent);
|
|
|
}
|
|
|
-// if (position == getItemCount() - 1) {
|
|
|
-// ViewUtils.moveRecyclerView2Postion(holder.itemRV, ListUtils.getSize(model.getItems()));
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public int getItemCount() {
|
|
|
- return ListUtils.getSize(models);
|
|
|
- }
|
|
|
-
|
|
|
- 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());
|
|
|
+ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
|
|
+ UUHelperModel model = models.get(position);
|
|
|
+ if (holder instanceof TimeHolder) {
|
|
|
+ ((TimeHolder) holder).timeTV.setText(model.getDate());
|
|
|
+ } else if (holder instanceof ViewHolder) {
|
|
|
+ bindViewHolder((ViewHolder) holder, model, position);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- 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) {
|
|
|
- final UUHelperModel.UUHelperItem model = this.items.get(position);
|
|
|
- if (position == 0) {
|
|
|
+ private void bindViewHolder(ViewHolder holder, final UUHelperModel model, final int position) {
|
|
|
+ if (position > 0) {
|
|
|
+ if (models.get(position - 1).isTag()) {//上一个是时间
|
|
|
holder.fristRL.setVisibility(View.VISIBLE);
|
|
|
holder.normalRL.setVisibility(View.GONE);
|
|
|
ImageLoader.getInstance().displayImage(model.getImageUrl(), holder.fristIV);
|
|
|
holder.fristTV.setText(model.getContent());
|
|
|
- } else {
|
|
|
+ } 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);
|
|
|
-// }
|
|
|
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
- LogUtil.i(model.toString());
|
|
|
onItemClick(model);
|
|
|
}
|
|
|
});
|
|
|
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
|
|
|
@Override
|
|
|
public boolean onLongClick(View v) {
|
|
|
- onLongItemClick(model);
|
|
|
+ onLongItemClick(model, position);
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public int getItemCount() {
|
|
|
+ return ListUtils.getSize(models);
|
|
|
+ }
|
|
|
+
|
|
|
+ class ViewHolder extends RecyclerView.ViewHolder {
|
|
|
+ RelativeLayout fristRL, normalRL;
|
|
|
+ ImageView fristIV, normalIV;
|
|
|
+ TextView fristTV, normalTV;
|
|
|
+ View line;
|
|
|
+
|
|
|
+ public ViewHolder(ViewGroup parent) {
|
|
|
+ this(getViewByLayout(R.layout.item_uuhelper_item, parent));
|
|
|
+ }
|
|
|
+
|
|
|
+ public ViewHolder(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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ class TimeHolder extends RecyclerView.ViewHolder {
|
|
|
+ TextView timeTV;
|
|
|
+
|
|
|
+ public TimeHolder(ViewGroup parent) {
|
|
|
+ this(getViewByLayout(R.layout.item_uuhelper_time, parent));
|
|
|
+ }
|
|
|
+
|
|
|
+ public TimeHolder(View itemView) {
|
|
|
+ super(itemView);
|
|
|
+ timeTV = (TextView) itemView.findViewById(R.id.timeTV);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private View getViewByLayout(int layout, ViewGroup parent) {
|
|
|
if (inflater == null) {
|
|
|
@@ -201,26 +168,23 @@ public class UUHelperAdapter extends RecyclerView.Adapter<UUHelperAdapter.ViewHo
|
|
|
return inflater.inflate(layout, parent, false);
|
|
|
}
|
|
|
|
|
|
- private void onItemClick(UUHelperModel.UUHelperItem item) {
|
|
|
+ private void onItemClick(UUHelperModel item) {
|
|
|
String title = item.getContent();
|
|
|
UUHelperDao.getInstance().updateRead(item.getId());
|
|
|
String url = item.getLinkUrl();
|
|
|
IntentUtils.webLinks(ct, url, title);
|
|
|
-// Intent intent = new Intent(ct, AppWebViewActivity.class);
|
|
|
-// intent.putExtra("url", url);
|
|
|
-// intent.putExtra("p", title);
|
|
|
-// intent.putExtra("title", title);
|
|
|
-// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
|
-// ct.startActivity(intent);
|
|
|
}
|
|
|
|
|
|
- private void onLongItemClick(final UUHelperModel.UUHelperItem item) {
|
|
|
-// AlertDialog.Builder builder = new AlertDialog.Builder(ct);
|
|
|
-// builder.setTitle(R.string.prompt_title).setMessage("确定删除该消息吗?").setPositiveButton(R.string.sure, new DialogInterface.OnClickListener() {
|
|
|
-// @Override
|
|
|
-// public void onClick(DialogInterface dialogInterface, int i) {
|
|
|
-// UUHelperDao.getInstance().deleteData(item.getId());
|
|
|
-// }
|
|
|
-// }).setNegativeButton(R.string.cancel, null).show();
|
|
|
+ private void onLongItemClick(final UUHelperModel model, final int position) {
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(ct);
|
|
|
+ builder.setTitle(R.string.prompt_title).setMessage("确定删除" + model.getContent() + "吗?").setPositiveButton(R.string.sure, new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialogInterface, int i) {
|
|
|
+ UUHelperDao.getInstance().deleteData(model.getId());
|
|
|
+ models.remove(position);
|
|
|
+ notifyItemRemoved(position);
|
|
|
+ notifyItemRangeChanged(position, models.size());
|
|
|
+ }
|
|
|
+ }).setNegativeButton(R.string.cancel, null).show();
|
|
|
}
|
|
|
}
|