package com.cafejeunesse.android.fragment.service;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.cafejeunesse.android.database.ServiceDataSource;
import com.cafejeunesse.android.fragment.BasicFragment;
import com.cafejeunesse.android.navigationdrawer.R;
import com.cafejeunesse.android.structure.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Created by David Levayer on 12/03/15.
*/
public class ServiceFragment extends BasicFragment implements AdapterView.OnItemClickListener {
private ListView mListView;
private ServiceArrayAdapter mListViewAdapter;
private List<Service> mServices;
public static Fragment newInstance(Context context){
ServiceFragment fragment = new ServiceFragment();
fragment.collectServices(context);
return fragment;
}
private void collectServices(Context context) {
ServiceDataSource mDataSource = new ServiceDataSource(context);
mDataSource.open();
mServices = mDataSource.getAllServices();
if(mServices.size() == 0) {
mDataSource.importDataFromAsset(ServiceDataSource.NEWDB_FILEPATH);
mServices = mDataSource.getAllServices();
}
mListViewAdapter = new ServiceArrayAdapter(context, new ArrayList<Service>());
for(Service s: mServices) {
String name = s.getServiceName();
if (name != null && !name.isEmpty())
mListViewAdapter.add(s);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Chargement générique des fragments de l'application
initFragment(inflater, container, R.layout.fragment_service_main);
// Chargement spécifique au fragment
mListView = (ListView)mView.findViewById(R.id.listview_services);
mListView.setAdapter(mListViewAdapter);
mListView.setOnItemClickListener(ServiceFragment.this);
return mView;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Service s = (Service) parent.getAdapter().getItem(position);
Bundle b = new Bundle();
b.putSerializable(Service.SERVICE_MAP_INFO, s.getMapInfo());
b.putString(Service.SERVICE_TITLE, s.getServiceName());
b.putString(Service.SERVICE_DESCR, s.getServiceDescription());
FragmentManager fm = getFragmentManager();
ServiceDetailsFragment mDialogFragment = new ServiceDetailsFragment();
mDialogFragment.setArguments(b);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, mDialogFragment);
ft.addToBackStack(null);
ft.commit();
}
}