package com.truckmuncher.app.customer; import android.content.Context; import android.database.Cursor; import android.support.annotation.NonNull; import android.view.View; import android.widget.ImageView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; import com.squareup.picasso.Picasso; import com.truckmuncher.app.R; import com.truckmuncher.app.data.PublicContract; import java.util.ArrayList; public class TrucksGridAdapter extends SimpleCursorAdapter { public TrucksGridAdapter(Context context, int layout, Cursor c) { super(context, layout, c, TruckQuery.PROJECTION, new int[]{R.id.truck_name, R.id.truck_image}, 0); } @Override public void bindView(@NonNull View view, Context context, @NonNull Cursor cursor) { String name = cursor.getString(TruckQuery.NAME); String imageUrl = cursor.getString(TruckQuery.IMAGE_URL); TextView textView = (TextView) view.findViewById(R.id.truck_name); ImageView imageView = (ImageView) view.findViewById(R.id.truck_image); textView.setText(name); Picasso.with(context) .load(imageUrl) .fit() .centerInside() .transform(new CircleTransform()) .into(imageView); } public int getTruckPosition(String truckId) { Cursor cursor = getCursor(); for (int i = 0; i < getCount(); i++) { cursor.moveToPosition(i); if (cursor.getString(TruckQuery.ID).equals(truckId)) { return i; } } return -1; } public String getTruckId(int position) { getCursor().moveToPosition(position); return getCursor().getString(TruckQuery.ID); } public ArrayList<String> getTruckIds() { ArrayList<String> truckIds = new ArrayList<>(getCursor().getCount()); getCursor().moveToFirst(); do { truckIds.add(getCursor().getString(TruckQuery.ID)); } while (getCursor().moveToNext()); return truckIds; } interface TruckQuery { String[] PROJECTION = new String[]{ PublicContract.Truck._ID, PublicContract.Truck.ID, PublicContract.Truck.NAME, PublicContract.Truck.IMAGE_URL }; int _ID = 0; int ID = 1; int NAME = 2; int IMAGE_URL = 3; } }