/* * Copyright (c) 2014. The Trustees of Indiana University. * * This version of the code is licensed under the MPL 2.0 Open Source license with additional * healthcare disclaimer. If the user is an entity intending to commercialize any application * that uses this code in a for-profit venture, please contact the copyright holder. */ package com.muzima.view.encounters; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.TextView; import com.muzima.MuzimaApplication; import com.muzima.R; import com.muzima.adapters.ListAdapter; import com.muzima.adapters.encounters.EncounterObservationsAdapter; import com.muzima.api.model.Encounter; import com.muzima.api.model.Patient; import com.muzima.utils.DateUtils; import com.muzima.utils.Fonts; import com.muzima.view.BroadcastListenerActivity; import com.muzima.view.patients.PatientSummaryActivity; public class EncounterSummaryActivity extends BroadcastListenerActivity implements ListAdapter.BackgroundListQueryTaskListener { public static final String ENCOUNTER="encounter"; private Encounter encounter; private ListView encounterObservationsLayout; private EncounterObservationsAdapter encounterObservationsAdapter; private View noDataView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_encounter_summary); Bundle intentExtras = getIntent().getExtras(); if (intentExtras != null) { encounter = (Encounter) intentExtras.getSerializable(ENCOUNTER); } setupActionBar(); setupEncounterMetadata(); setupStillLoadingView(); setUpEncounterObservations(); } private void setupActionBar() { Patient patient = (Patient) getIntent().getSerializableExtra(PatientSummaryActivity.PATIENT); getSupportActionBar().setTitle(patient.getSummary()); } private void setupEncounterMetadata(){ TextView encounterFormName = (TextView)findViewById(R.id.encounterFormName); encounterFormName.setText(encounter.getEncounterType().getName()); TextView encounterDate =(TextView)findViewById(R.id.encounterDate); encounterDate.setText(DateUtils.getMonthNameFormattedDate(encounter.getEncounterDatetime())); TextView encounterProvider = (TextView)findViewById(R.id.encounterProvider); encounterProvider.setText(encounter.getProvider().getDisplayName()); TextView encounterLocation = (TextView)findViewById(R.id.encounterLocation); encounterLocation.setText(encounter.getLocation().getName()); } private void setupNoDataView() { noDataView = findViewById(R.id.no_data_layout); TextView noDataMsgTextView = (TextView) findViewById(R.id.no_data_msg); noDataMsgTextView.setText(getResources().getText(R.string.info_observation_unavailable)); noDataMsgTextView.setTypeface(Fonts.roboto_bold_condensed(this)); } private void setupStillLoadingView(){ noDataView = findViewById(R.id.no_data_layout); TextView noDataMsgTextView = (TextView) findViewById(R.id.no_data_msg); noDataMsgTextView.setText(getResources().getText(R.string.info_observations_load_in_progress)); noDataMsgTextView.setTypeface(Fonts.roboto_bold_condensed(this)); } private void setUpEncounterObservations(){ encounterObservationsLayout = (ListView)findViewById(R.id.encounter_observations_list); encounterObservationsAdapter = new EncounterObservationsAdapter(EncounterSummaryActivity.this,R.layout.item_encounter_observation, ((MuzimaApplication) getApplicationContext()).getObservationController(),encounter); encounterObservationsAdapter.setBackgroundListQueryTaskListener(this); encounterObservationsLayout.setEmptyView(noDataView); encounterObservationsLayout.setAdapter(encounterObservationsAdapter); encounterObservationsAdapter.reloadData(); } @Override public void onQueryTaskStarted(){} @Override public void onQueryTaskFinish(){ if(encounterObservationsAdapter.isEmpty()){ setupNoDataView(); } } @Override public void onQueryTaskCancelled(){} @Override public void onQueryTaskCancelled(Object errorDefinition){} }