package com.maxiee.heartbeat.ui.adapter;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.preference.PreferenceManager;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.maxiee.heartbeat.R;
import com.maxiee.heartbeat.common.GalleryUtils;
import com.maxiee.heartbeat.common.TimeUtils;
import com.maxiee.heartbeat.model.Thoughts;
import com.maxiee.heartbeat.ui.AddEditThoughtActivity;
import com.maxiee.heartbeat.ui.GalleryActivity;
/**
* Created by maxiee on 15-6-13.
*/
public class ThoughtTimeaxisAdapter extends RecyclerView.Adapter<ThoughtTimeaxisAdapter.ViewHolder> {
private Thoughts mThoughtList;
public ThoughtTimeaxisAdapter(Thoughts thoughtList) {
mThoughtList = thoughtList;
}
public void setData(Thoughts thoughts) {
mThoughtList = thoughts;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_thought_timeaxis, parent, false);
final TypedValue typedValue = new TypedValue();
parent.getContext().getTheme().resolveAttribute(R.attr.colorAccent, typedValue, true);
int color = typedValue.data;
Drawable d = ContextCompat.getDrawable(parent.getContext(), R.drawable.circle_timeaxis);
d.setColorFilter(color, PorterDuff.Mode.MULTIPLY);
View point = v.findViewById(R.id.time_point);
point.setBackgroundDrawable(d);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
String order;
if (holder.sortingType.equals("0")) {
switch (position) {
case 0:
order = holder.mContext.getString(R.string.firtime);
break;
case 1:
order = holder.mContext.getString(R.string.sectime);
break;
default:
order = String.valueOf(position + 1) + ".";
break;
}
} else {
if (position == mThoughtList.length() - 1) {
order = holder.mContext.getString(R.string.firtime);
} else if (position == mThoughtList.length() - 2) {
order = holder.mContext.getString(R.string.sectime);
} else {
order = String.valueOf(mThoughtList.length() - position) + ".";
}
}
holder.tvOrder.setText(order);
long time = mThoughtList.get(position).getTimeStamp();
holder.tvThought.setText(mThoughtList.get(position).getThought());
holder.tvTime.setText(TimeUtils.parseTime(holder.mContext, time));
if (mThoughtList.get(position).hasImage()) {
holder.mImage.setVisibility(View.VISIBLE);
Glide.with(holder.mContext).load(
GalleryUtils.getImagePath(
mThoughtList.get(position).getPath())).into(holder.mImage);
holder.mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(holder.mContext, GalleryActivity.class);
i.putExtra(GalleryActivity.PATH, mThoughtList.get(position).getPath());
holder.mContext.startActivity(i);
}
});
} else {
holder.mImage.setVisibility(View.GONE);
}
holder.mView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Intent i = new Intent(holder.mContext, AddEditThoughtActivity.class);
i.putExtra(AddEditThoughtActivity.MODE, AddEditThoughtActivity.MODE_EDIT);
i.putExtra(AddEditThoughtActivity.THOUGHT_ID, mThoughtList.get(position).getKey());
i.putExtra(AddEditThoughtActivity.THOUGHT, mThoughtList.get(position).getThought());
i.putExtra(Thoughts.Thought.THOUGHT_RES, mThoughtList.get(position).getResType());
i.putExtra(Thoughts.Thought.THOUGHT_PATH, mThoughtList.get(position).getPath());
i.putExtra(AddEditThoughtActivity.TIMESTAMP, mThoughtList.get(position).getTimeStamp());
holder.mContext.startActivity(i);
return true;
}
});
}
@Override
public int getItemCount() {
return mThoughtList.length();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView tvOrder, tvThought, tvTime;
public ImageView mImage;
public final View mView;
public Context mContext;
public String sortingType;
public ViewHolder(View itemView) {
super(itemView);
mView = itemView;
mContext = itemView.getContext();
tvOrder = (TextView) itemView.findViewById(R.id.tv_order);
tvThought = (TextView) itemView.findViewById(R.id.tv_thought);
tvTime = (TextView) itemView.findViewById(R.id.tv_time);
mImage = (ImageView) itemView.findViewById(R.id.image_thought);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mContext);
sortingType = sp.getString("time_axis_sorting", "0");
}
}
}