package fr.pagesjaunes.mdm.ui; import android.accounts.OperationCanceledException; import android.app.Activity; import android.os.Bundle; import android.support.v4.content.Loader; import android.view.View; import android.widget.ListView; import java.util.Collections; import java.util.List; import javax.inject.Inject; import fr.pagesjaunes.mdm.BootstrapServiceProvider; import fr.pagesjaunes.mdm.Injector; import fr.pagesjaunes.mdm.R; import fr.pagesjaunes.mdm.authenticator.LogoutService; import fr.pagesjaunes.mdm.core.Device; import fr.pagesjaunes.mdm.util.Ln; import fr.pagesjaunes.mdm.wishlist.SingleTypeAdapter; public class DevicesListFragment extends ItemListFragment<Device> { @Inject protected BootstrapServiceProvider serviceProvider; @Inject protected LogoutService logoutService; @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); Injector.inject(this); Ln.d("Here"); } @Override protected void configureList(final Activity activity, final ListView listView) { super.configureList(activity, listView); listView.setFastScrollEnabled(true); listView.setDividerHeight(0); getListAdapter().addHeader(activity.getLayoutInflater().inflate(R.layout.checkins_list_item_labels, null)); } @Override protected LogoutService getLogoutService() { return logoutService; } @Override public void onDestroyView() { setListAdapter(null); super.onDestroyView(); } @Override public Loader<List<Device>> onCreateLoader(final int id, final Bundle args) { final List<Device> initialItems = items; return new ThrowableLoader<List<Device>>(getActivity(), items) { @Override public List<Device> loadData() throws Exception { try { if (getActivity() != null) { return serviceProvider.getService(getActivity()).getDevices(); } else { return Collections.emptyList(); } } catch (final OperationCanceledException e) { final Activity activity = getActivity(); if (activity != null) { activity.finish(); } return initialItems; } } }; } @Override protected SingleTypeAdapter<Device> createAdapter(final List<Device> items) { return new DevicesListAdapter(getActivity().getLayoutInflater(), items); } public void onListItemClick(ListView l, View v, int position, long id) { Device device = ((Device) l.getItemAtPosition(position)); } @Override protected int getErrorMessage(final Exception exception) { return R.string.error_loading_checkins; } }