package org.mtransit.android.ui.view.map.impl;
import java.util.ArrayList;
import java.util.List;
import org.mtransit.android.ui.view.map.TileOverlay;
import org.mtransit.android.ui.view.map.TileOverlayOptions;
import android.support.v4.util.ArrayMap;
// based on Maciej Górski's Android Maps Extensions library (Apache License, Version 2.0)
class TileOverlayManager {
private final IGoogleMap factory;
private final ArrayMap<com.google.android.gms.maps.model.TileOverlay, TileOverlay> tileOverlays;
public TileOverlayManager(IGoogleMap factory) {
this.factory = factory;
this.tileOverlays = new ArrayMap<com.google.android.gms.maps.model.TileOverlay, TileOverlay>();
}
public TileOverlay addTileOverlay(TileOverlayOptions tileOverlayOptions) {
TileOverlay tileOverlay = createTileOverlay(tileOverlayOptions.real);
tileOverlay.setData(tileOverlayOptions.getData());
return tileOverlay;
}
private TileOverlay createTileOverlay(com.google.android.gms.maps.model.TileOverlayOptions tileOverlayOptions) {
com.google.android.gms.maps.model.TileOverlay real = factory.addTileOverlay(tileOverlayOptions);
TileOverlay tileOverlay = new DelegatingTileOverlay(real, this);
tileOverlays.put(real, tileOverlay);
return tileOverlay;
}
public void clear() {
tileOverlays.clear();
}
public List<TileOverlay> getTileOverlays() {
return new ArrayList<TileOverlay>(tileOverlays.values());
}
public void onRemove(com.google.android.gms.maps.model.TileOverlay real) {
tileOverlays.remove(real);
}
}