package net.naonedbus.map.layer; import java.util.ArrayList; import java.util.List; import net.naonedbus.R; import net.naonedbus.activity.impl.ParcoursActivity; import net.naonedbus.bean.Equipement; import net.naonedbus.bean.Equipement.Type; import net.naonedbus.bean.Ligne; import net.naonedbus.intent.ParamIntent; import net.naonedbus.manager.impl.LigneManager; import net.naonedbus.map.ItemSelectedInfo; import net.naonedbus.utils.ColorUtils; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.google.android.gms.maps.model.BitmapDescriptor; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.MarkerOptions; import com.twotoasters.clusterkraf.ClusterPoint; public class EquipementMapLayer extends MapLayer { public EquipementMapLayer(final LayoutInflater inflater) { super(inflater); } @Override public void chooseMarker(final MarkerOptions markerOptions, final ClusterPoint clusterPoint) { final Equipement equipement = (Equipement) clusterPoint.getPointAtOffset(0).getTag(); final Equipement.Type type = equipement.getType(); final BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(type.getMapPin()); final String title = equipement.getNom(); markerOptions.icon(icon); markerOptions.title(title); } @Override protected ItemSelectedInfo getItemSelectedInfo(final Context context, final Equipement item) { return new ItemSelectedInfo() { @Override public String getTitle() { return item.getNom(); } @Override public String getDescription(final Context context) { String description = item.getDetails(); if (TextUtils.isEmpty(description)) { description = item.getAdresse(); } if (TextUtils.isEmpty(description)) { description = context.getString(item.getType().getTitleRes()); } return description; } @Override public List<View> getSubview(final ViewGroup root) { if (item.getType() == Type.TYPE_ARRET) { return getStationInfoContents(context, root, item); } else { return null; } } @Override public Integer getResourceAction() { return null; } @Override public Intent getIntent(final Context context) { if (item.getType() == Type.TYPE_ARRET) { final ParamIntent intent = new ParamIntent(context, ParcoursActivity.class); intent.putExtra(ParcoursActivity.PARAM_ID_SATION, item.getId()); return intent; } else { return null; } } }; } private List<View> getStationInfoContents(final Context context, final ViewGroup root, final Equipement station) { final LayoutInflater layoutInflater = getLayoutInflater(); final List<View> views = new ArrayList<View>(); final LigneManager ligneManager = LigneManager.getInstance(); final List<Ligne> lignes = ligneManager.getLignesFromStation(context.getContentResolver(), station.getId()); for (final Ligne ligneItem : lignes) { final TextView textView = (TextView) layoutInflater.inflate(R.layout.ligne_code_item, root, false); textView.setTextColor(ligneItem.getCouleurTexte()); textView.setBackgroundDrawable(ColorUtils.getGradiant(ligneItem.getCouleur())); textView.setText(ligneItem.getCode()); views.add(textView); } return views; } }