/* * 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; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.util.SparseArray; import android.view.ViewGroup; import org.openmrs.mobile.activities.patientdashboard.details.PatientDashboardDetailsPresenter; import org.openmrs.mobile.activities.patientdashboard.details.PatientDetailsFragment; import org.openmrs.mobile.activities.patientdashboard.diagnosis.PatientDashboardDiagnosisPresenter; import org.openmrs.mobile.activities.patientdashboard.diagnosis.PatientDiagnosisFragment; import org.openmrs.mobile.activities.patientdashboard.visits.PatientDashboardVisitsPresenter; import org.openmrs.mobile.activities.patientdashboard.visits.PatientVisitsFragment; import org.openmrs.mobile.activities.patientdashboard.vitals.PatientDashboardVitalsPresenter; import org.openmrs.mobile.activities.patientdashboard.vitals.PatientVitalsFragment; class PatientDashboardPagerAdapter extends FragmentPagerAdapter { private static final int TAB_COUNT = 4; private static final int DETAILS_TAB_POS = 0; private static final int DIAGNOSIS_TAB_POS = 1; private static final int VISITS_TAB_POS = 2; private static final int VITALS_TAB_POS = 3; private SparseArray<Fragment> registeredFragments = new SparseArray<>(); private String mPatientId; PatientDashboardPagerAdapter(FragmentManager fm, String id) { super(fm); this.mPatientId = id; } @Override public Fragment getItem(int i) { switch (i) { case DETAILS_TAB_POS: PatientDetailsFragment patientDetailsFragment = PatientDetailsFragment.newInstance(); new PatientDashboardDetailsPresenter(mPatientId, patientDetailsFragment); return patientDetailsFragment; case DIAGNOSIS_TAB_POS: PatientDiagnosisFragment patientDiagnosisFragment = PatientDiagnosisFragment.newInstance(); new PatientDashboardDiagnosisPresenter(mPatientId, patientDiagnosisFragment); return patientDiagnosisFragment; case VISITS_TAB_POS: PatientVisitsFragment patientVisitsFragment = PatientVisitsFragment.newInstance(); new PatientDashboardVisitsPresenter(mPatientId, patientVisitsFragment); return patientVisitsFragment; case VITALS_TAB_POS: PatientVitalsFragment patientVitalsFragment = PatientVitalsFragment.newInstance(); new PatientDashboardVitalsPresenter(mPatientId, patientVitalsFragment); return patientVitalsFragment; default: return null; } } @Override public Object instantiateItem(ViewGroup container, int position) { Fragment fragment = (Fragment) super.instantiateItem(container, position); registeredFragments.put(position, fragment); return fragment; } @Override public void destroyItem(ViewGroup container, int position, Object object) { registeredFragments.remove(position); super.destroyItem(container, position, object); } @Override public int getItemPosition(Object object) { return POSITION_NONE; } @Override public int getCount() { return TAB_COUNT; } }