package cgeo.geocaching.maps;
import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.R;
import java.util.EnumSet;
/**
* Defines the strategy for the Live Map
*/
public enum LivemapStrategy {
// id = 1 was used by an obsolete strategy, which is not supported anymore, see #6106
FAST(2, EnumSet.of(Flag.LOAD_TILES, Flag.PARSE_TILES), R.string.map_strategy_fast),
AUTO(3, EnumSet.noneOf(Flag.class), R.string.map_strategy_auto),
DETAILED(4, EnumSet.allOf(Flag.class), R.string.map_strategy_detailed);
public final int id;
public final EnumSet<Flag> flags;
private final int stringId;
public enum Flag {
LOAD_TILES, // 2x2 tiles filling the complete viewport
PARSE_TILES, // parse PNG images
SEARCH_NEARBY // searchByCoords()
}
LivemapStrategy(final int id, final EnumSet<Flag> flags, final int stringId) {
this.id = id;
this.flags = flags;
this.stringId = stringId;
}
public static LivemapStrategy getById(final int id) {
for (final LivemapStrategy strategy : LivemapStrategy.values()) {
if (strategy.id == id) {
return strategy;
}
}
return AUTO;
}
public final String getL10n() {
return CgeoApplication.getInstance().getBaseContext().getString(stringId);
}
}