package com.truckmuncher.app.customer; import android.database.Cursor; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import com.google.android.gms.maps.model.LatLng; import com.truckmuncher.app.data.PublicContract; import java.util.ArrayList; public class TruckHeaderPagerAdapter extends FragmentStatePagerAdapter { private final Cursor cursor; private final LatLng referenceLocation; private final TruckHeaderFragment.OnTruckHeaderClickListener listener; public TruckHeaderPagerAdapter(FragmentManager fm, Cursor cursor, LatLng referenceLocation, TruckHeaderFragment.OnTruckHeaderClickListener listener) { super(fm); this.cursor = cursor; this.referenceLocation = referenceLocation; this.listener = listener; } @Override public TruckHeaderFragment getItem(int i) { cursor.moveToPosition(i); TruckHeaderFragment fragment = TruckHeaderFragment.newInstance(cursor.getString(Query.TRUCK_ID), referenceLocation); fragment.setOnTruckHeaderClickListener(listener); return fragment; } @Override public int getCount() { return cursor.getCount(); } public String getTruckId(int position) { cursor.moveToPosition(position); return cursor.getString(Query.TRUCK_ID); } public int getTruckPosition(String truckId) { for (int i = 0; i < getCount(); i++) { cursor.moveToPosition(i); if (cursor.getString(Query.TRUCK_ID).equals(truckId)) { return i; } } return -1; } public ArrayList<String> getTruckIds() { ArrayList<String> truckIds = new ArrayList<>(cursor.getCount()); cursor.moveToFirst(); do { truckIds.add(cursor.getString(Query.TRUCK_ID)); } while (cursor.moveToNext()); return truckIds; } public interface Query { static final String[] PROJECTION = new String[]{PublicContract.Truck.ID}; static final int TRUCK_ID = 0; } }