/*
* 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.preferences;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;
import android.widget.Toast;
import android.view.MenuItem;
import com.muzima.R;
import com.muzima.adapters.cohort.CohortPrefixPrefAdapter;
import com.muzima.adapters.concept.AutoCompleteCohortPrefixAdapter;
import com.muzima.api.model.Cohort;
import com.muzima.service.CohortPrefixPreferenceService;
import com.muzima.view.BaseFragmentActivity;
import com.muzima.view.HelpActivity;
public class CohortPreferenceActivity extends BaseFragmentActivity {
protected CohortPrefixPrefAdapter prefAdapter;
private AutoCompleteCohortPrefixAdapter autoCompleteCohortPrefixAdapter;
private AutoCompleteTextView cohortPrefix;
private CohortPrefixPreferenceService preferenceService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentView());
preferenceService = new CohortPrefixPreferenceService(this);
ListView cohortPrefList = (ListView) findViewById(R.id.cohort_pref_list);
prefAdapter = new CohortPrefixPrefAdapter(this, R.layout.item_preference, this);
cohortPrefList.setEmptyView(findViewById(R.id.no_data_msg));
cohortPrefList.setAdapter(prefAdapter);
cohortPrefix = (AutoCompleteTextView) findViewById(R.id.prefix_add_prefix);
autoCompleteCohortPrefixAdapter = new AutoCompleteCohortPrefixAdapter(getApplicationContext(), R.layout.item_option_autocomplete, cohortPrefix);
cohortPrefix.setAdapter(autoCompleteCohortPrefixAdapter);
cohortPrefix.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) {
Cohort selectedCohort = (Cohort) parent.getItemAtPosition(position);
cohortPrefix.setText(selectedCohort.getName());
}
});
}
protected int getContentView() {
return R.layout.activity_cohort_pref;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_help:
Intent intent = new Intent(this, HelpActivity.class);
intent.putExtra(HelpActivity.HELP_TYPE, HelpActivity.COHORT_PREFIX_HELP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onResume() {
super.onResume();
prefAdapter.reloadData();
}
public void addPrefix(View view) {
String newPrefix = cohortPrefix.getText().toString();
if (newPrefix.length() == 0) {
Toast.makeText(this, getString(R.string.warning_empty_cohort_prefix), Toast.LENGTH_SHORT).show();
return;
}
if (!preferenceService.addCohortPrefix(newPrefix)) {
Toast.makeText(this, getString(R.string.warning_cohort_prefix_exists), Toast.LENGTH_SHORT).show();
}
prefAdapter.reloadData();
cohortPrefix.clearListSelection();
}
public void onDeletePreferenceClick(String pref) {
preferenceService.deleteCohortPrefix(pref);
prefAdapter.reloadData();
}
}