package edu.mit.mobile.android.locast.maps; import android.content.Context; import android.content.res.Resources; import android.graphics.Point; import android.graphics.drawable.Drawable; import com.google.android.maps.MapView; import com.google.android.maps.OverlayItem; import com.stackoverflow.ArrayUtils; import edu.mit.mobile.android.locast.data.Cast; import edu.mit.mobile.android.locast.ver2.R; import edu.mit.mobile.android.locast.ver2.itineraries.LocatableItemIconOverlay; public class CastsIconOverlay extends LocatableItemIconOverlay { private int mOfficialCol, mTitleCol, mDescriptionCol, mIdCol; private final Drawable mOfficialCastDrawable; private final Drawable mCommunityCastDrawable; public static final String[] CASTS_OVERLAY_PROJECTION = ArrayUtils.concat( LOCATABLE_ITEM_PROJECTION, new String[] { Cast._TITLE, Cast._DESCRIPTION, Cast._OFFICIAL }); public CastsIconOverlay(Context context) { super(context.getResources().getDrawable(R.drawable.ic_map_community)); final Resources res = context.getResources(); mOfficialCastDrawable = boundCenterBottom(res.getDrawable(R.drawable.ic_map_official)); mCommunityCastDrawable = boundCenterBottom(res.getDrawable(R.drawable.ic_map_community)); } @Override protected void updateCursorCols() { super.updateCursorCols(); if (mLocatableItems != null) { mIdCol = mLocatableItems.getColumnIndex(Cast._ID); mTitleCol = mLocatableItems.getColumnIndex(Cast._TITLE); mDescriptionCol = mLocatableItems.getColumnIndex(Cast._DESCRIPTION); mOfficialCol = mLocatableItems.getColumnIndex(Cast._OFFICIAL); } } @Override protected OverlayItem createItem(int i) { mLocatableItems.moveToPosition(i); final OverlayItem item = new OverlayItem( getItemLocation(mLocatableItems), mLocatableItems.getString(mTitleCol), mLocatableItems.getString(mDescriptionCol) ); if (mLocatableItems.getInt(mOfficialCol) != 0) { item.setMarker(mOfficialCastDrawable); } else { item.setMarker(mCommunityCastDrawable); } return item; } @Override public boolean onSnapToItem(int x, int y, Point snapPoint, MapView mapView) { // TODO Auto-generated method stub return false; } }