package com.android.smap.fragments;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import com.android.smap.GatewayApp;
import com.android.smap.R;
import com.android.smap.activities.FragmentContainerActivity.Builder;
import com.android.smap.adapters.FormListAdapter;
import com.android.smap.api.models.Survey;
import com.android.smap.api.models.FormList.Form;
import com.android.smap.controllers.ControllerError;
import com.android.smap.controllers.ControllerErrorListener;
import com.android.smap.controllers.ControllerListener;
import com.android.smap.controllers.FormListController;
import com.android.smap.controllers.SurveyDefinitionController;
import com.android.smap.di.DataManager;
import com.android.smap.utils.MWUiUtils;
import com.google.inject.Inject;
public class FormListFragment extends BaseFragment implements
OnItemClickListener,
ControllerListener,
ControllerErrorListener {
@Inject
private DataManager mDataManager;
private FormListAdapter mAdapter;
private FormListController mController;
@Override
public View onCreateContentView(LayoutInflater inflater, Bundle savedInstanceState) {
LinearLayout view = (LinearLayout) inflater.inflate(
R.layout.fragment_form_list,
null);
ListView listView = (ListView) view.findViewById(R.id.list_surveys);
mDataManager = GatewayApp.getDependencyContainer().getDataManager();
mAdapter = new FormListAdapter(getActivity(), null);
listView.setOnItemClickListener(this);
listView.setAdapter(mAdapter);
mController = new FormListController(getActivity(), this, this);
return view;
}
@Override
public void onResume() {
super.onResume();
showLoading(true);
mController.start();
}
@Override
public void onControllerResult() {
mAdapter.setModel(mController.getModel());
showLoading(false);
}
@Override
public void onControllerError(ControllerError error) {
MWUiUtils.showMessagePopup(getActivity(), "Failed to retrieve Surveys");
showLoading(false);
getActivity().onBackPressed();
}
@Override
public void onItemClick(AdapterView<?> av, View parent, int pos, long viewId) {
showLoading(true);
Form form = (Form) mAdapter.getItem(pos);
SurveyDefinitionController controller = new SurveyDefinitionController(
getActivity(),
new ControllerListener() {
@Override
public void onControllerResult() {
showLoading(false);
getActivity().onBackPressed();
}
}, this, form.getUrl());
controller.start();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean handled = true;
switch (item.getItemId()) {
case android.R.id.home: // Actionbar home/up icon
getActivity().onBackPressed();
break;
}
return handled;
}
}