package ca.etsmtl.applets.etsmobile.ui.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.octo.android.robospice.persistence.exception.SpiceException; import com.octo.android.robospice.request.listener.RequestListener; import ca.etsmtl.applets.etsmobile.http.DataManager; import ca.etsmtl.applets.etsmobile.views.LoadingView; import ca.etsmtl.applets.etsmobile2.R; /** * Base implementation for fragments that use the network * * @author Philippe * */ public abstract class HttpFragment extends BaseFragment implements RequestListener<Object> { protected DataManager dataManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dataManager = DataManager.getInstance(getActivity()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); updateUI(); } /** * Method call after onActivityCreated so the child class can send http * request */ abstract void updateUI(); @Override public void onRequestFailure(SpiceException e) { loadingView.hideProgessBar(); loadingView.setMessageError(getString(R.string.error_JSON_PARSING)); } @Override public void onRequestSuccess(Object o) { if(loadingView !=null && getActivity() != null){ getActivity().runOnUiThread( new Runnable() { @Override public void run() { LoadingView.hideLoadingView(loadingView); } }); } } }