/* * 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.activevisits; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import org.openmrs.mobile.R; import org.openmrs.mobile.activities.visitdashboard.VisitDashboardActivity; import org.openmrs.mobile.dao.PatientDAO; import org.openmrs.mobile.models.Patient; import org.openmrs.mobile.models.Visit; import org.openmrs.mobile.utilities.ApplicationConstants; import org.openmrs.mobile.utilities.DateUtils; import org.openmrs.mobile.utilities.FontsUtil; import java.util.List; public class ActiveVisitsRecyclerViewAdapter extends RecyclerView.Adapter<ActiveVisitsRecyclerViewAdapter.VisitViewHolder> { private Context mContext; private List<Visit> mVisits; public ActiveVisitsRecyclerViewAdapter(Context 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.find_visits_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); Patient patient = new PatientDAO().findPatientByID(visit.getPatient().getId().toString()); visitViewHolder.mVisitPlace.setText(mContext.getString(R.string.visit_in, visit.getLocation().getDisplay())); if (null != visit.getPatient().getId()) { final String display = "#" + patient.getIdentifier().getIdentifier(); visitViewHolder.mIdentifier.setText(display); } if (null != patient.getPerson().getName()) { visitViewHolder.mDisplayName.setText(patient.getPerson().getName().getNameString()); } if (null != patient.getPerson().getGender()) { visitViewHolder.mGender.setText(patient.getPerson().getGender()); } try{ visitViewHolder.mBirthDate.setText(DateUtils.convertTime(DateUtils.convertTime(patient.getPerson().getBirthdate()))); } catch (Exception e) { visitViewHolder.mBirthDate.setText(" "); } visitViewHolder.mRelativeLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(mContext, VisitDashboardActivity.class); intent.putExtra(ApplicationConstants.BundleKeys.VISIT_ID, mVisits.get(adapterPos).getId()); mContext.startActivity(intent); } }); } @Override public void onViewDetachedFromWindow(VisitViewHolder holder) { holder.clearAnimation(); } @Override public int getItemCount() { return mVisits.size(); } class VisitViewHolder extends RecyclerView.ViewHolder{ private TextView mIdentifier; private TextView mDisplayName; private TextView mGender; private TextView mBirthDate; private TextView mVisitPlace; private LinearLayout mRelativeLayout; public VisitViewHolder(View itemView) { super(itemView); mRelativeLayout = (LinearLayout) itemView; mIdentifier = (TextView) itemView.findViewById(R.id.findVisitsIdentifier); mDisplayName = (TextView) itemView.findViewById(R.id.findVisitsDisplayName); mVisitPlace = (TextView) itemView.findViewById(R.id.findVisitsPlace); mBirthDate = (TextView) itemView.findViewById(R.id.findVisitsPatientBirthDate); mGender = (TextView) itemView.findViewById(R.id.findVisitsPatientGender); } public void clearAnimation() { mRelativeLayout.clearAnimation(); } } }