package org.devconmyanmar.apps.devcon.adapter;
import android.content.Context;
import android.content.res.Resources;
import android.os.Build;
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.FrameLayout;
import android.widget.TextView;
import butterknife.Bind;
import butterknife.ButterKnife;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import org.devconmyanmar.apps.devcon.R;
import org.devconmyanmar.apps.devcon.db.SpeakerDao;
import org.devconmyanmar.apps.devcon.model.Talk;
/**
* Created by yemyatthu on 11/15/14.
*/
public class LighteningTalkAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<Talk> mTalks = new ArrayList<>();
private Context mContext;
public LighteningTalkAdapter(Context context) {
mContext = context;
}
public void replaceWith(List<Talk> talks) {
mTalks = talks;
notifyDataSetChanged();
}
@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater mInflater = LayoutInflater.from(mContext);
View keynoteView = mInflater.inflate(R.layout.row_keynote, parent, false);
return new ViewHolder(keynoteView);
}
@Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Talk mTalk = mTalks.get(position);
Resources r = mContext.getResources();
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, r.getDisplayMetrics());
ViewHolder mViewHolder = (ViewHolder) holder;
mViewHolder.mLightningScheduleTitle.setText(mTalk.getTitle());
String speakers = flatternSpeakerNames(mTalk.getSpeakers());
mViewHolder.mLightningScheduleSpeaker.setText(speakers);
if (Build.VERSION.SDK_INT >= 21) {
mViewHolder.mLightningCardContainer.setPadding(0, px, 0, px);
}
}
@Override public long getItemId(int i) {
return mTalks.get(i).getId();
}
@Override public int getItemCount() {
return 0;
}
//@Override public View getHeaderView(int i, View view, ViewGroup viewGroup) {
// HeaderViewHolder holder;
// if (view == null) {
//
// view = mLayoutInflater.inflate(R.layout.room_header, viewGroup, false);
// holder = new HeaderViewHolder(view);
// view.setTag(holder);
// } else {
// holder = (HeaderViewHolder) view.getTag();
// }
//
// CharSequence headerChar = TimeUtils.getProperRoomName(mTalks.get(i).getRoom());
// holder.header.setText(headerChar);
// String keynoteFormattedFrom = TimeUtils.parseFromToString(mTalks.get(i).getFrom_time());
// String keynoteFormattedTo = TimeUtils.parseFromToString(mTalks.get(i).getTo_time());
// holder.time.setText(keynoteFormattedFrom + " to " + keynoteFormattedTo);
// holder.time.invalidate();
// holder.header.invalidate();
//
// return view;
//}
//
//@Override public long getHeaderId(int i) {
// return mTalks.get(i).getRoom().subSequence(0, 1).charAt(0);
//}
//
private String flatternSpeakerNames(String speakers) {
SpeakerDao speakerDao = new SpeakerDao(mContext);
String id[] = new Gson().fromJson(speakers, String[].class);
String s = "";
for (int i = 0; i < id.length; i++) {
s = s + speakerDao.getSpeakerNameById(id[i]);
// Do not append comma at the end of last element
if (i < id.length - 1) {
s = s + ", ";
}
}
return s;
}
static class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.lightning_schedule_title) TextView mLightningScheduleTitle;
@Bind(R.id.lightning_schedule_speaker) TextView mLightningScheduleSpeaker;
@Bind(R.id.lightning_card_container) FrameLayout mLightningCardContainer;
ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}