Skip to content

Instantly share code, notes, and snippets.

@DanielyBotelho
Created February 18, 2016 21:42
Show Gist options
  • Save DanielyBotelho/53ddfbabca0cd7c1ace1 to your computer and use it in GitHub Desktop.
Save DanielyBotelho/53ddfbabca0cd7c1ace1 to your computer and use it in GitHub Desktop.
package br.com.apps.jaya.vagas.ui.Search.Results;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.List;
import br.com.apps.jaya.vagas.Helpers.TimeRemainingHelper;
import br.com.apps.jaya.vagas.Models.Opportunity;
import br.com.apps.jaya.vagas.R;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* Created by Daniely Botelho on 11/18/15.
*/
public class OpportunityResultAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
List<Opportunity> opportunityList;
Header header;
Context context;
int layoutId;
public OpportunityResultAdapter(List<Opportunity> opportunities, Header header, Context context,
int layoutId) {
this.opportunityList = opportunities;
this.header = header;
this.context = context;
this.layoutId = layoutId;
}
@Override
public int getItemViewType(int position) {
if (isHeader(position)) {
return TYPE_HEADER;
}
return TYPE_ITEM;
}
private boolean isHeader(int position) {
return position == 0;
}
public Opportunity getItem(int position) {
return opportunityList.get(position);
}
@Override
public int getItemCount() {
return opportunityList.size() + 1;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case TYPE_HEADER:
HeaderHolder headerHolder = (HeaderHolder)holder;
headerHolder.txtTitle.setText(header.getHeader());
break;
case TYPE_ITEM:
bindOpportunityViewHolder(holder, position);
break;
default:
break;
}
}
private void bindOpportunityViewHolder(RecyclerView.ViewHolder holder, int position) {
Opportunity opportunity = opportunityList.get(position - 1);
JobViewHolder jobViewHolder = (JobViewHolder) holder;
jobViewHolder.title.setText(Html.fromHtml(opportunity.getOpportunityStripped()).toString());
jobViewHolder.office.setText(Html.fromHtml(opportunity.getHierarchy()).toString());
jobViewHolder.days.setText(TimeRemainingHelper.calculateTimeRemaining(opportunity.getStartDate()));
if (opportunity.getCompany() == null) {
jobViewHolder.companyLayout.setVisibility(View.GONE);
} else {
jobViewHolder.company.setText(Html.fromHtml(opportunity.getCompany()).toString());
}
if (opportunity.getLocation() == null) {
jobViewHolder.localLayout.setVisibility(View.GONE);
} else {
jobViewHolder.location.setText(Html.fromHtml(opportunity.getLocation()).toString());
}
if (opportunity.isAvaliableJob())
jobViewHolder.avaliableJob.setVisibility(View.VISIBLE);
else
jobViewHolder.avaliableJob.setVisibility(View.GONE);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
RecyclerView.ViewHolder viewHolder = null;
switch (viewType) {
case TYPE_HEADER:
View header = LayoutInflater.from(viewGroup.getContext()).inflate(android.R.layout.simple_list_item_1, viewGroup, false);
viewHolder = new HeaderHolder(header);
break;
case TYPE_ITEM:
View item = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_results, viewGroup, false);
viewHolder = new JobViewHolder(item);
break;
default:
break;
}
return viewHolder;
}
class JobViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.typesCard) protected CardView cardView;
@Bind(R.id.title) protected TextView title;
@Bind(R.id.company) protected TextView company;
@Bind(R.id.office) protected TextView office;
@Bind(R.id.location) protected TextView location;
@Bind(R.id.avaliableJob) protected LinearLayout avaliableJob;
@Bind(R.id.company_layout) protected LinearLayout companyLayout;
@Bind(R.id.local_layout) protected LinearLayout localLayout;
@Bind(R.id.days) protected TextView days;
public JobViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
if (layoutId == 1) {
cardView.setLayoutParams(new RecyclerView.LayoutParams(950, RecyclerView.LayoutParams.WRAP_CONTENT));
}
}
}
class HeaderHolder extends RecyclerView.ViewHolder {
TextView txtTitle;
public HeaderHolder(View itemView) {
super(itemView);
this.txtTitle = (TextView)itemView.findViewById(android.R.id.text1);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment