/* * 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.visitdashboard; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.ExpandableListView; import android.widget.TextView; import org.openmrs.mobile.R; import org.openmrs.mobile.activities.ACBaseFragment; import org.openmrs.mobile.activities.formlist.FormListActivity; import org.openmrs.mobile.application.OpenMRS; import org.openmrs.mobile.models.Encounter; import org.openmrs.mobile.utilities.ApplicationConstants; import org.openmrs.mobile.utilities.FontsUtil; import org.openmrs.mobile.utilities.ToastUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; public class VisitDashboardFragment extends ACBaseFragment<VisitDashboardContract.Presenter> implements VisitDashboardContract.View{ private ExpandableListView mExpandableListView; private TextView mEmptyListView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_visit_dashboard, container, false); mEmptyListView = (TextView) root.findViewById(R.id.visitDashboardEmpty); FontsUtil.setFont(mEmptyListView, FontsUtil.OpenFonts.OPEN_SANS_BOLD); mExpandableListView = (ExpandableListView) root.findViewById(R.id.visitDashboardExpList); mExpandableListView.setEmptyView(mEmptyListView); setEmptyListVisibility(false); return root; } @Override public void startCaptureVitals(long patientId) { try { Intent intent = new Intent(this.getActivity(), FormListActivity.class); intent.putExtra(ApplicationConstants.BundleKeys.PATIENT_ID_BUNDLE, patientId); startActivity(intent); } catch (Exception e) { ToastUtil.showLongToast(this.getActivity(), ToastUtil.ToastType.ERROR, R.string.failed_to_open_vitals_form); OpenMRS.getInstance().getOpenMRSLogger().d(e.toString()); } } public static VisitDashboardFragment newInstance() { return new VisitDashboardFragment(); } @Override public void moveToPatientDashboard() { Intent intent = new Intent(); getActivity().setResult(Activity.RESULT_OK, intent); getActivity().finish(); } @Override public void updateList(List<Encounter> visitEncounters) { final String[] displayableEncounterTypes = ApplicationConstants.EncounterTypes.ENCOUNTER_TYPES_DISPLAYS; final HashSet<String> displayableEncounterTypesArray = new HashSet<>(Arrays.asList(displayableEncounterTypes)); List<Encounter> displayableEncounters = new ArrayList<>(); for (Encounter encounter : visitEncounters) { String encounterTypeDisplay = encounter.getEncounterType().getDisplay(); if (displayableEncounterTypesArray.contains(encounterTypeDisplay)) { displayableEncounters.add(encounter); } } VisitExpandableListAdapter expandableListAdapter = new VisitExpandableListAdapter(this.getActivity(), displayableEncounters); mExpandableListView.setAdapter(expandableListAdapter); mExpandableListView.setGroupIndicator(null); } @Override public void setEmptyListVisibility(boolean visibility) { if (visibility) { mEmptyListView.setVisibility(View.VISIBLE); } else { mEmptyListView.setVisibility(View.GONE); } } @Override public void setActionBarTitle(String name) { ((VisitDashboardActivity)getActivity()).getSupportActionBar().setTitle(name); } @Override public void setActiveVisitMenu() { Menu menu = ((VisitDashboardActivity) getActivity()).menu; (getActivity()).getMenuInflater().inflate(R.menu.active_visit_menu, menu); } @Override public void showErrorToast(String message) { ToastUtil.error(message); } @Override public void showErrorToast(int messageId) { ToastUtil.error(getString(messageId)); } }