package org.mtransit.android.ui.view.map.impl;
import java.util.ArrayList;
import java.util.List;
import org.mtransit.android.ui.view.map.GroundOverlay;
import org.mtransit.android.ui.view.map.GroundOverlayOptions;
import android.support.v4.util.ArrayMap;
// based on Maciej Górski's Android Maps Extensions library (Apache License, Version 2.0)
class GroundOverlayManager {
private final IGoogleMap factory;
private final ArrayMap<com.google.android.gms.maps.model.GroundOverlay, GroundOverlay> groundOverlays;
public GroundOverlayManager(IGoogleMap factory) {
this.factory = factory;
this.groundOverlays = new ArrayMap<com.google.android.gms.maps.model.GroundOverlay, GroundOverlay>();
}
public GroundOverlay addGroundOverlay(GroundOverlayOptions groundOverlayOptions) {
GroundOverlay groundOverlay = createGroundOverlay(groundOverlayOptions.real);
groundOverlay.setData(groundOverlayOptions.getData());
return groundOverlay;
}
private GroundOverlay createGroundOverlay(com.google.android.gms.maps.model.GroundOverlayOptions groundOverlayOptions) {
com.google.android.gms.maps.model.GroundOverlay real = factory.addGroundOverlay(groundOverlayOptions);
GroundOverlay groundOverlay = new DelegatingGroundOverlay(real, this);
groundOverlays.put(real, groundOverlay);
return groundOverlay;
}
public void clear() {
groundOverlays.clear();
}
public List<GroundOverlay> getGroundOverlays() {
return new ArrayList<GroundOverlay>(groundOverlays.values());
}
public void onRemove(com.google.android.gms.maps.model.GroundOverlay real) {
groundOverlays.remove(real);
}
}