package cgeo.geocaching.connector.trackable; import android.support.annotation.DrawableRes; import android.support.annotation.StringRes; import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.R; import android.support.annotation.NonNull; public enum TrackableBrand { TRAVELBUG(1, R.drawable.trackable_travelbug, R.string.trackable_travelbug), GEOKRETY(2, R.drawable.trackable_geokrety, R.string.trackable_geokrety), GEOLUTINS(4, R.drawable.trackable_geolutins, R.string.trackable_geolutins), UNKNOWN(0, R.drawable.trackable_all, R.string.trackable_unknown); // Trackable not initialized yet private final int id; @StringRes private final int stringId; @DrawableRes private final int markerId; TrackableBrand(final int id, @DrawableRes final int markerId, @StringRes final int stringId) { this.id = id; this.markerId = markerId; this.stringId = stringId; } public int getId() { return id; } @DrawableRes public int getIconResource() { return markerId; } public String getLabel() { return CgeoApplication.getInstance().getString(stringId); } @NonNull public static TrackableBrand getById(final int id) { for (final TrackableBrand brand : values()) { if (brand.id == id) { return brand; } } return UNKNOWN; } }