forked from upstream-mirrors/OpenTracks
@@ -0,0 +1,35 @@
|
||||
package de.dennisguse.opentracks.data.models;
|
||||
|
||||
import de.dennisguse.opentracks.R;
|
||||
|
||||
public enum ActivityIcon {
|
||||
AIRPLANE("AIRPLANE", R.drawable.ic_activity_flight_24dp),
|
||||
BIKE("BIKE", R.drawable.ic_activity_bike_24dp),
|
||||
MOUNTAIN_BIKE("MOUNTAIN_BIKE", R.drawable.ic_activity_mtb_24dp),
|
||||
MOTOR_BIKE("MOTOR_BIKE", R.drawable.ic_activity_motorbike_24dp),
|
||||
KAYAK("KAYAK", R.drawable.ic_activity_kayaking_24dp),
|
||||
BOAT("BOAT", R.drawable.ic_activity_boat_24dp),
|
||||
SAILING("SAILING", R.drawable.ic_activity_sailing_24dp),
|
||||
DRIVE("DRIVE", R.drawable.ic_activity_drive_24dp),
|
||||
RUN("RUN", R.drawable.ic_activity_run_24dp),
|
||||
SKI("SKI", R.drawable.ic_activity_skiing_24dp),
|
||||
SNOW_BOARDING("SNOW_BOARDING", R.drawable.ic_activity_snowboarding_24dp),
|
||||
UNKNOWN("UNKNOWN", R.drawable.ic_logo_24dp),
|
||||
WALK("WALK", R.drawable.ic_activity_walk_24dp),
|
||||
ESCOOTER("ESCOOTER", R.drawable.ic_activity_escooter_24dp),
|
||||
INLINE_SKATING("INLINES_SKATING", R.drawable.ic_activity_inline_skating_24dp),
|
||||
SKATE_BOARDING("SKATE_BOARDING", R.drawable.ic_activity_skateboarding_24dp),
|
||||
CLIMBING("CLIMBING", R.drawable.ic_activity_climbing_24dp),
|
||||
SWIMMING("SWIMMING", R.drawable.ic_activity_swimming_24dp),
|
||||
SWIMMING_OPEN("SWIMMING_OPEN", R.drawable.ic_activity_swimming_open_24dp),
|
||||
WORKOUT("WORKOUT", R.drawable.ic_activity_workout_24dp);
|
||||
|
||||
@Deprecated //TODO should be removed.
|
||||
final String iconId;
|
||||
final int iconDrawableId;
|
||||
|
||||
ActivityIcon(String iconId, int iconDrawableId) {
|
||||
this.iconId = iconId;
|
||||
this.iconDrawableId = iconDrawableId;
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,6 @@ import android.content.res.Resources;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -13,77 +12,126 @@ import java.util.stream.Collectors;
|
||||
import de.dennisguse.opentracks.R;
|
||||
|
||||
public enum ActivityType {
|
||||
AIRPLANE("AIRPLANE", R.drawable.ic_activity_flight_24dp, true, R.string.activity_type_airplane, R.string.activity_type_commercial_airplane, R.string.activity_type_rc_airplane),
|
||||
BIKE("BIKE", R.drawable.ic_activity_bike_24dp, true, R.string.activity_type_biking, R.string.activity_type_cycling, R.string.activity_type_dirt_bike, R.string.activity_type_road_biking, R.string.activity_type_track_cycling),
|
||||
MOUNTAIN_BIKE("MOUNTAIN_BIKE", R.drawable.ic_activity_mtb_24dp, true, R.string.activity_type_mountain_biking),
|
||||
MOTOR_BIKE("MOTOR_BIKE", R.drawable.ic_activity_motorbike_24dp, true, R.string.activity_type_motor_bike),
|
||||
KAYAK("KAYAK", R.drawable.ic_activity_kayaking_24dp, true, R.string.activity_type_kayaking),
|
||||
BOAT("BOAT", R.drawable.ic_activity_boat_24dp, true, R.string.activity_type_boat, R.string.activity_type_ferry, R.string.activity_type_motor_boating, R.string.activity_type_rc_boat),
|
||||
SAILING("SAILING", R.drawable.ic_activity_sailing_24dp, true, R.string.activity_type_sailing),
|
||||
DRIVE("DRIVE", R.drawable.ic_activity_drive_24dp, true, R.string.activity_type_atv, R.string.activity_type_driving, R.string.activity_type_driving_bus, R.string.activity_type_driving_car),
|
||||
RUN("RUN", R.drawable.ic_activity_run_24dp, false, R.string.activity_type_running, R.string.activity_type_street_running, R.string.activity_type_track_running, R.string.activity_type_trail_running),
|
||||
SKI("SKI", R.drawable.ic_activity_skiing_24dp, true, R.string.activity_type_cross_country_skiing, R.string.activity_type_skiing),
|
||||
SNOW_BOARDING("SNOW_BOARDING", R.drawable.ic_activity_snowboarding_24dp, true, R.string.activity_type_snow_boarding),
|
||||
UNKNOWN("UNKNOWN", R.drawable.ic_logo_24dp, true, R.string.activity_type_unknown),
|
||||
WALK("WALK", R.drawable.ic_activity_walk_24dp, false, R.string.activity_type_hiking, R.string.activity_type_off_trail_hiking, R.string.activity_type_speed_walking, R.string.activity_type_trail_hiking, R.string.activity_type_walking),
|
||||
ESCOOTER("ESCOOTER", R.drawable.ic_activity_escooter_24dp, true, R.string.activity_type_escooter),
|
||||
INLINE_SKATING("INLINES_SKATING", R.drawable.ic_activity_inline_skating_24dp, true, R.string.activity_type_inline_skating),
|
||||
SKATE_BOARDING("SKATE_BOARDING", R.drawable.ic_activity_skateboarding_24dp, true, R.string.activity_type_skate_boarding),
|
||||
CLIMBING("CLIMBING", R.drawable.ic_activity_climbing_24dp, false, R.string.activity_type_climbing),
|
||||
SWIMMING("SWIMMING", R.drawable.ic_activity_swimming_24dp, false, R.string.activity_type_swimming),
|
||||
SWIMMING_OPEN("SWIMMING_OPEN", R.drawable.ic_activity_swimming_open_24dp, false, R.string.activity_type_swimming_open),
|
||||
WORKOUT("WORKOUT", R.drawable.ic_activity_workout_24dp, false, R.string.activity_type_workout);
|
||||
|
||||
final String iconId;
|
||||
final int iconDrawableId;
|
||||
AIRPLANE("airplane", R.string.activity_type_airplane, ActivityIcon.AIRPLANE, true),
|
||||
ATV("ATV", R.string.activity_type_atv, ActivityIcon.DRIVE, true),
|
||||
BIKING("biking", R.string.activity_type_biking, ActivityIcon.BIKE, true),
|
||||
BLIMP("blimp", R.string.activity_type_blimp, ActivityIcon.UNKNOWN, true),
|
||||
BOAT("boat", R.string.activity_type_boat, ActivityIcon.BOAT, true),
|
||||
CLIMBING("climbing", R.string.activity_type_climbing, ActivityIcon.CLIMBING, false),
|
||||
COMMERCIAL_AIRPLANE("commercial airplane", R.string.activity_type_commercial_airplane, ActivityIcon.AIRPLANE, true),
|
||||
CROSS_COUNTRY_SKIING("cross-country skiing", R.string.activity_type_cross_country_skiing, ActivityIcon.SKI, true),
|
||||
CYCLING("cycling", R.string.activity_type_cycling, ActivityIcon.BIKE, true),
|
||||
DIRT_BIKE("dirt bike", R.string.activity_type_dirt_bike, ActivityIcon.MOTOR_BIKE, true),
|
||||
DONKEY_BACK_RIDING("donkey back riding", R.string.activity_type_donkey_back_riding, ActivityIcon.UNKNOWN, true),
|
||||
DRIVING("driving", R.string.activity_type_driving, ActivityIcon.DRIVE, true),
|
||||
DRIVING_BUS("driving bus", R.string.activity_type_driving_bus, ActivityIcon.DRIVE, true),
|
||||
DRIVING_CAR("driving car", R.string.activity_type_driving_car, ActivityIcon.DRIVE, true),
|
||||
ESCOOTER("escooter", R.string.activity_type_escooter, ActivityIcon.ESCOOTER, true),
|
||||
FERRY("ferry", R.string.activity_type_ferry, ActivityIcon.BOAT, true),
|
||||
FRISBEE("frisbee", R.string.activity_type_frisbee, ActivityIcon.UNKNOWN, true),
|
||||
GLIDING("gliding", R.string.activity_type_gliding, ActivityIcon.UNKNOWN, true),
|
||||
HANG_GLIDING("hang gliding", R.string.activity_type_hang_gliding, ActivityIcon.UNKNOWN, true),
|
||||
HELICOPTER("helicopter", R.string.activity_type_helicopter, ActivityIcon.UNKNOWN, true),
|
||||
HIKING("hiking", R.string.activity_type_hiking, ActivityIcon.WALK, false),
|
||||
HORSE_BACK_RIDING("horse back riding", R.string.activity_type_horse_back_riding, ActivityIcon.UNKNOWN, true),
|
||||
HOT_AIR_BALLOON("hot air balloon", R.string.activity_type_hot_air_balloon, ActivityIcon.UNKNOWN, true),
|
||||
ICE_SAILING("ice sailing", R.string.activity_type_ice_sailing, ActivityIcon.UNKNOWN, true),
|
||||
INLINE_SKATING("inline skating", R.string.activity_type_inline_skating, ActivityIcon.INLINE_SKATING, true),
|
||||
KAYAKING("kayaking", R.string.activity_type_kayaking, ActivityIcon.KAYAK, true),
|
||||
KITE_SURFING("kite surfing", R.string.activity_type_kite_surfing, ActivityIcon.UNKNOWN, true),
|
||||
LAND_SAILING("land sailing", R.string.activity_type_land_sailing, ActivityIcon.UNKNOWN, true),
|
||||
MIXED_TYPE("mixed type", R.string.activity_type_mixed_type, ActivityIcon.UNKNOWN, true),
|
||||
MOTOR_BIKE("motor bike", R.string.activity_type_motor_bike, ActivityIcon.MOTOR_BIKE, true),
|
||||
MOTOR_BOATING("motor boating", R.string.activity_type_motor_boating, ActivityIcon.BOAT, true),
|
||||
MOUNTAIN_BIKING("mountain biking", R.string.activity_type_mountain_biking, ActivityIcon.MOUNTAIN_BIKE, true),
|
||||
OFF_TRAIL_HIKING("off trail hiking", R.string.activity_type_hiking, ActivityIcon.WALK, false),
|
||||
OTHER("other", R.string.activity_type_other, ActivityIcon.UNKNOWN, true),
|
||||
PADDLING("paddling", R.string.activity_type_paddling, ActivityIcon.UNKNOWN, true),
|
||||
PARA_GLIDING("para gliding", R.string.activity_type_para_gliding, ActivityIcon.UNKNOWN, true),
|
||||
RC_AIRPLANE("RC airplane", R.string.activity_type_rc_airplane, ActivityIcon.AIRPLANE, true),
|
||||
RC_BOAT("RC boat", R.string.activity_type_rc_boat, ActivityIcon.BOAT, true),
|
||||
RC_HELICOPTER("RC helicopter", R.string.activity_type_rc_helicopter, ActivityIcon.UNKNOWN, true),
|
||||
RIDING("riding", R.string.activity_type_horse_back_riding, ActivityIcon.UNKNOWN, true),
|
||||
ROAD_BIKING("road biking", R.string.activity_type_road_biking, ActivityIcon.BIKE, true),
|
||||
ROLLER_SKIING("roller skiing", R.string.activity_type_roller_skiing, ActivityIcon.UNKNOWN, true),
|
||||
ROWING("rowing", R.string.activity_type_rowing, ActivityIcon.UNKNOWN, true),
|
||||
RUNNING("running", R.string.activity_type_running, ActivityIcon.RUN, false),
|
||||
SAILING("sailing", R.string.activity_type_sailing, ActivityIcon.SAILING, true),
|
||||
SEAPLANE("seaplane", R.string.activity_type_seaplane, ActivityIcon.AIRPLANE, true),
|
||||
SKATE_BOARDING("skate boarding", R.string.activity_type_skate_boarding, ActivityIcon.SKATE_BOARDING, true),
|
||||
SKATING("skating", R.string.activity_type_skating, ActivityIcon.UNKNOWN, true),
|
||||
SKIING("skiing", R.string.activity_type_skiing, ActivityIcon.SKI, true),
|
||||
SKY_JUMPING("sky jumping", R.string.activity_type_sky_jumping, ActivityIcon.UNKNOWN, true),
|
||||
SLED("sled", R.string.activity_type_sled, ActivityIcon.UNKNOWN, true),
|
||||
SNOW_BOARDING("snow boarding", R.string.activity_type_snow_boarding, ActivityIcon.SNOW_BOARDING, true),
|
||||
SNOW_SHOEING("snow shoeing", R.string.activity_type_snow_shoeing, ActivityIcon.UNKNOWN, true),
|
||||
SPEED_WALKING("speed walking", R.string.activity_type_speed_walking, ActivityIcon.WALK, false),
|
||||
STREET_RUNNING("street running", R.string.activity_type_street_running, ActivityIcon.RUN, false),
|
||||
SURFING("surfing", R.string.activity_type_surfing, ActivityIcon.UNKNOWN, true),
|
||||
TRACK_CYCLING("track cycling", R.string.activity_type_track_cycling, ActivityIcon.BIKE, true),
|
||||
TRACK_RUNNING("track running", R.string.activity_type_trail_running, ActivityIcon.RUN, false),
|
||||
TRAIL_HIKING("trail hiking", R.string.activity_type_trail_hiking, ActivityIcon.WALK, false),
|
||||
TRAIL_RUNNING("trail running", R.string.activity_type_trail_running, ActivityIcon.RUN, false),
|
||||
TRAIN("train", R.string.activity_type_train, ActivityIcon.UNKNOWN, true),
|
||||
ULTIMATE_FRISBEE("ultimate frisbee", R.string.activity_type_ultimate_frisbee, ActivityIcon.UNKNOWN, true),
|
||||
WAKEBOARDING("wakeboarding", R.string.activity_type_wakeboarding, ActivityIcon.UNKNOWN, true),
|
||||
WALKING("walking", R.string.activity_type_walking, ActivityIcon.WALK, false),
|
||||
WATER_SKIING("water skiing", R.string.activity_type_water_skiing, ActivityIcon.UNKNOWN, true),
|
||||
WIND_SURFING("wind surfing", R.string.activity_type_wind_surfing, ActivityIcon.UNKNOWN, true),
|
||||
SWIMMING("swimming", R.string.activity_type_swimming, ActivityIcon.SWIMMING, false),
|
||||
SWIMMING_OPEN("swimming in open water", R.string.activity_type_swimming_open, ActivityIcon.SWIMMING_OPEN, false),
|
||||
WORKOUT("workout", R.string.activity_type_workout, ActivityIcon.WORKOUT, false),
|
||||
UNKNOWN("unknown", R.string.activity_type_unknown, ActivityIcon.UNKNOWN, true);
|
||||
|
||||
final String id;
|
||||
|
||||
final ActivityIcon icon;
|
||||
final boolean showSpeedPreferred;
|
||||
final int[] localizedStringIds;
|
||||
final int localizedStringId;
|
||||
|
||||
//isSpeed?
|
||||
|
||||
ActivityType(String iconId, int iconDrawableId, boolean showSpeedPreferred, int... localizedStringIds) {
|
||||
this.iconId = iconId;
|
||||
this.iconDrawableId = iconDrawableId;
|
||||
ActivityType(String id, int localizedStringId, ActivityIcon icon, boolean showSpeedPreferred) {
|
||||
this.id = id;
|
||||
this.localizedStringId = localizedStringId;
|
||||
this.icon = icon;
|
||||
this.showSpeedPreferred = showSpeedPreferred;
|
||||
this.localizedStringIds = localizedStringIds;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public String getIconId() {
|
||||
return iconId;
|
||||
return icon.iconId;
|
||||
}
|
||||
|
||||
public int getIconDrawableId() {
|
||||
return iconDrawableId;
|
||||
return icon.iconDrawableId;
|
||||
}
|
||||
|
||||
public int getLocalizedStringId() {
|
||||
return localizedStringId;
|
||||
}
|
||||
|
||||
public boolean isShowSpeedPreferred() {
|
||||
return showSpeedPreferred;
|
||||
}
|
||||
|
||||
public int[] getLocalizedStringIds() {
|
||||
return localizedStringIds;
|
||||
}
|
||||
|
||||
public int getFirstLocalizedStringId() {
|
||||
return localizedStringIds[0];
|
||||
}
|
||||
|
||||
public static List<String> getLocalizedStrings(Context context) {
|
||||
List<String> result = new ArrayList<>();
|
||||
for (ActivityType activityType : values()) {
|
||||
List<String> strings = Arrays.stream(activityType.localizedStringIds)
|
||||
.mapToObj(context::getString)
|
||||
.collect(Collectors.toList());
|
||||
result.addAll(strings);
|
||||
}
|
||||
|
||||
return result;
|
||||
return Arrays.stream(values())
|
||||
.map(ActivityType::getLocalizedStringId)
|
||||
.map(context::getString)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static ActivityType findBy(String iconId) {
|
||||
if (ActivityIcon.UNKNOWN.iconId.equals(iconId)) {
|
||||
return ActivityType.UNKNOWN;
|
||||
}
|
||||
return Arrays.stream(ActivityType.values()).filter(
|
||||
it -> it.getIconId().equals(iconId)
|
||||
it -> it.icon.iconId.equals(iconId)
|
||||
).findFirst()
|
||||
.orElse(ActivityType.UNKNOWN);
|
||||
}
|
||||
@@ -94,10 +142,8 @@ public enum ActivityType {
|
||||
|
||||
public static ActivityType findByLocalizedString(Resources resources, String localizedActivityType) {
|
||||
return Arrays.stream(ActivityType.values())
|
||||
.filter(
|
||||
it -> Arrays.stream(it.getLocalizedStringIds())
|
||||
.anyMatch(id -> resources.getString(id).equals(localizedActivityType))
|
||||
).findFirst()
|
||||
.filter(it -> resources.getString(it.getLocalizedStringId()).equals(localizedActivityType))
|
||||
.findFirst()
|
||||
.orElse(ActivityType.UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user