/*
* The contents of this file are subject to the OpenMRS Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://license.openmrs.org
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/
package org.openmrs.mobile.activities.patientdashboard.visits;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import org.openmrs.mobile.R;
import org.openmrs.mobile.models.Visit;
import org.openmrs.mobile.utilities.DateUtils;
import org.openmrs.mobile.utilities.FontsUtil;
import java.util.List;
public class PatientVisitsRecyclerViewAdapter extends RecyclerView.Adapter<PatientVisitsRecyclerViewAdapter.VisitViewHolder> {
private PatientVisitsFragment mContext;
private List<Visit> mVisits;
public PatientVisitsRecyclerViewAdapter(PatientVisitsFragment context, List<Visit> items) {
this.mContext = context;
this.mVisits = items;
}
@Override
public VisitViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.patient_visit_row, parent, false);
FontsUtil.setFont((ViewGroup) itemView);
return new VisitViewHolder(itemView);
}
@Override
public void onBindViewHolder(VisitViewHolder visitViewHolder, final int position) {
final int adapterPos = visitViewHolder.getAdapterPosition();
Visit visit = mVisits.get(adapterPos);
visitViewHolder.mVisitStart.setText(DateUtils.convertTime1(visit.getStartDatetime(), DateUtils.DATE_WITH_TIME_FORMAT));
if (DateUtils.convertTime(visit.getStopDatetime()) != null) {
visitViewHolder.mVisitEnd.setVisibility(View.VISIBLE);
visitViewHolder.mVisitEnd.setText(DateUtils.convertTime1((visit.getStopDatetime()), DateUtils.DATE_WITH_TIME_FORMAT));
Drawable icon = mContext.getResources().getDrawable(R.drawable.past_visit_dot);
icon.setBounds(0, 0, icon.getIntrinsicHeight(), icon.getIntrinsicWidth());
visitViewHolder.mVisitStatus.setCompoundDrawables(icon, null, null, null);
visitViewHolder.mVisitStatus.setText(mContext.getString(R.string.past_visit_label));
} else {
visitViewHolder.mVisitEnd.setVisibility(View.INVISIBLE);
Drawable icon = mContext.getResources().getDrawable(R.drawable.active_visit_dot);
icon.setBounds(0, 0, icon.getIntrinsicHeight(), icon.getIntrinsicWidth());
visitViewHolder.mVisitStatus.setCompoundDrawables(icon, null, null, null);
visitViewHolder.mVisitStatus.setText(mContext.getString(R.string.active_visit_label));
}
if (visit.getLocation() != null) {
visitViewHolder.mVisitPlace.setText(mContext.getString(R.string.visit_in, visit.getLocation().getDisplay()));
}
visitViewHolder.mRelativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContext.goToVisitDashboard(mVisits.get(adapterPos).getId());
}
});
}
@Override
public void onViewDetachedFromWindow(VisitViewHolder holder) {
holder.clearAnimation();
}
@Override
public int getItemCount() {
return mVisits.size();
}
class VisitViewHolder extends RecyclerView.ViewHolder{
private TextView mVisitPlace;
private TextView mVisitStart;
private TextView mVisitEnd;
private TextView mVisitStatus;
private RelativeLayout mRelativeLayout;
public VisitViewHolder(View itemView) {
super(itemView);
mRelativeLayout = (RelativeLayout) itemView;
mVisitStart = (TextView) itemView.findViewById(R.id.patientVisitStartDate);
mVisitEnd = (TextView) itemView.findViewById(R.id.patientVisitEndDate);
mVisitPlace = (TextView) itemView.findViewById(R.id.patientVisitPlace);
mVisitStatus = (TextView) itemView.findViewById(R.id.visitStatusLabel);
}
public void clearAnimation() {
mRelativeLayout.clearAnimation();
}
}
}