Created
February 18, 2016 21:42
-
-
Save DanielyBotelho/53ddfbabca0cd7c1ace1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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