package org.mtransit.android.ui.view.map.impl;
import java.util.ArrayList;
import java.util.List;
import org.mtransit.android.ui.view.map.Polyline;
import org.mtransit.android.ui.view.map.PolylineOptions;
import android.support.v4.util.ArrayMap;
// based on Maciej Górski's Android Maps Extensions library (Apache License, Version 2.0)
class PolylineManager {
private final IGoogleMap factory;
private final ArrayMap<com.google.android.gms.maps.model.Polyline, Polyline> polylines;
public PolylineManager(IGoogleMap factory) {
this.factory = factory;
this.polylines = new ArrayMap<com.google.android.gms.maps.model.Polyline, Polyline>();
}
public Polyline addPolyline(PolylineOptions polylineOptions) {
Polyline polyline = createPolyline(polylineOptions.real);
polyline.setData(polylineOptions.getData());
return polyline;
}
private Polyline createPolyline(com.google.android.gms.maps.model.PolylineOptions polylineOptions) {
com.google.android.gms.maps.model.Polyline real = factory.addPolyline(polylineOptions);
Polyline polyline = new DelegatingPolyline(real, this);
polylines.put(real, polyline);
return polyline;
}
public void clear() {
polylines.clear();
}
public List<Polyline> getPolylines() {
return new ArrayList<Polyline>(polylines.values());
}
public void onRemove(com.google.android.gms.maps.model.Polyline real) {
polylines.remove(real);
}
}