forked from upstream-mirrors/OpenTracks
Bugfix: not all activityTypes were shown in dropdownlist.
This commit is contained in:
@@ -24,6 +24,7 @@ import android.widget.ArrayAdapter;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||||
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.databinding.TrackEditBinding;
|
import de.dennisguse.opentracks.databinding.TrackEditBinding;
|
||||||
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
||||||
@@ -75,7 +76,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
|
|||||||
|
|
||||||
viewBinding.fields.trackEditActivityType.setText(track.getCategory());
|
viewBinding.fields.trackEditActivityType.setText(track.getCategory());
|
||||||
|
|
||||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
|
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this));
|
||||||
viewBinding.fields.trackEditActivityType.setAdapter(adapter);
|
viewBinding.fields.trackEditActivityType.setAdapter(adapter);
|
||||||
viewBinding.fields.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getIconValue(this, (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position))));
|
viewBinding.fields.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getIconValue(this, (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position))));
|
||||||
viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import android.view.View;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||||
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
||||||
import de.dennisguse.opentracks.data.models.SpeedFormatter;
|
import de.dennisguse.opentracks.data.models.SpeedFormatter;
|
||||||
import de.dennisguse.opentracks.data.models.Track;
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
@@ -51,7 +52,7 @@ public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements
|
|||||||
|
|
||||||
viewBinding.trackEditActivityType.setText(track.getCategory());
|
viewBinding.trackEditActivityType.setText(track.getCategory());
|
||||||
|
|
||||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
|
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this));
|
||||||
viewBinding.trackEditActivityType.setAdapter(adapter);
|
viewBinding.trackEditActivityType.setAdapter(adapter);
|
||||||
viewBinding.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getIconValue(this, (String) viewBinding.trackEditActivityType.getAdapter().getItem(position))));
|
viewBinding.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getIconValue(this, (String) viewBinding.trackEditActivityType.getAdapter().getItem(position))));
|
||||||
viewBinding.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
viewBinding.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
|
|||||||
@@ -1,39 +1,48 @@
|
|||||||
package de.dennisguse.opentracks.data.models;
|
package de.dennisguse.opentracks.data.models;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
|
|
||||||
public enum ActivityType {
|
public enum ActivityType {
|
||||||
AIRPLANE("AIRPLANE", R.drawable.ic_activity_flight_24dp, R.string.activity_type_airplane, R.string.activity_type_commercial_airplane, R.string.activity_type_rc_airplane),
|
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, 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),
|
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, R.string.activity_type_mountain_biking),
|
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, R.string.activity_type_motor_bike),
|
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, R.string.activity_type_kayaking),
|
KAYAK("KAYAK", R.drawable.ic_activity_kayaking_24dp, true, R.string.activity_type_kayaking),
|
||||||
BOAT("BOAT", R.drawable.ic_activity_boat_24dp, R.string.activity_type_boat, R.string.activity_type_ferry, R.string.activity_type_motor_boating, R.string.activity_type_rc_boat),
|
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, R.string.activity_type_sailing),
|
SAILING("SAILING", R.drawable.ic_activity_sailing_24dp, true, R.string.activity_type_sailing),
|
||||||
DRIVE("DRIVE", R.drawable.ic_activity_drive_24dp, R.string.activity_type_atv, R.string.activity_type_driving, R.string.activity_type_driving_bus, R.string.activity_type_driving_car),
|
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, R.string.activity_type_running, R.string.activity_type_street_running, R.string.activity_type_track_running, R.string.activity_type_trail_running),
|
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, R.string.activity_type_cross_country_skiing, R.string.activity_type_skiing),
|
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, R.string.activity_type_snow_boarding),
|
SNOW_BOARDING("SNOW_BOARDING", R.drawable.ic_activity_snowboarding_24dp, true, R.string.activity_type_snow_boarding),
|
||||||
UNKNOWN("UNKNOWN", R.drawable.ic_logo_24dp, R.string.activity_type_unknown),
|
UNKNOWN("UNKNOWN", R.drawable.ic_logo_24dp, true, R.string.activity_type_unknown),
|
||||||
WALK("WALK", R.drawable.ic_activity_walk_24dp, 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),
|
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, R.string.activity_type_escooter),
|
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, R.string.activity_type_inline_skating),
|
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, R.string.activity_type_skate_boarding),
|
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, R.string.activity_type_climbing),
|
CLIMBING("CLIMBING", R.drawable.ic_activity_climbing_24dp, false, R.string.activity_type_climbing),
|
||||||
SWIMMING("SWIMMING", R.drawable.ic_activity_swimming_24dp, R.string.activity_type_swimming),
|
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, R.string.activity_type_swimming_open),
|
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, R.string.activity_type_workout);
|
WORKOUT("WORKOUT", R.drawable.ic_activity_workout_24dp, false, R.string.activity_type_workout);
|
||||||
|
|
||||||
final String id;
|
final String id;
|
||||||
final int[] localizedStringIds;
|
|
||||||
final int iconId;
|
final int iconId;
|
||||||
|
final boolean showSpeedPreferred;
|
||||||
|
final int[] localizedStringIds;
|
||||||
|
|
||||||
//isSpeed?
|
//isSpeed?
|
||||||
|
|
||||||
ActivityType(java.lang.String id, int iconId, int... localizedStringIds) {
|
ActivityType(String id, int iconId, boolean showSpeedPreferred, int... localizedStringIds) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.localizedStringIds = localizedStringIds;
|
|
||||||
this.iconId = iconId;
|
this.iconId = iconId;
|
||||||
|
this.showSpeedPreferred = showSpeedPreferred;
|
||||||
|
this.localizedStringIds = localizedStringIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
@@ -44,6 +53,10 @@ public enum ActivityType {
|
|||||||
return iconId;
|
return iconId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isShowSpeedPreferred() {
|
||||||
|
return showSpeedPreferred;
|
||||||
|
}
|
||||||
|
|
||||||
public int[] getLocalizedStringIds() {
|
public int[] getLocalizedStringIds() {
|
||||||
return localizedStringIds;
|
return localizedStringIds;
|
||||||
}
|
}
|
||||||
@@ -51,4 +64,16 @@ public enum ActivityType {
|
|||||||
public int getFirstLocalizedStringId() {
|
public int getFirstLocalizedStringId() {
|
||||||
return localizedStringIds[0];
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import androidx.preference.DialogPreference;
|
|||||||
import androidx.preference.PreferenceDialogFragmentCompat;
|
import androidx.preference.PreferenceDialogFragmentCompat;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
||||||
import de.dennisguse.opentracks.util.TrackIconUtils;
|
import de.dennisguse.opentracks.util.TrackIconUtils;
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
textView = view.findViewById(R.id.activity_type_preference_text_view);
|
textView = view.findViewById(R.id.activity_type_preference_text_view);
|
||||||
String category = PreferencesUtils.getDefaultActivity();
|
String category = PreferencesUtils.getDefaultActivity();
|
||||||
textView.setText(category);
|
textView.setText(category);
|
||||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.activity_types, android.R.layout.simple_dropdown_item_1line);
|
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(context));
|
||||||
textView.setAdapter(adapter);
|
textView.setAdapter(adapter);
|
||||||
textView.setOnItemClickListener((parent, v, position, id) -> {
|
textView.setOnItemClickListener((parent, v, position, id) -> {
|
||||||
String iconValue = TrackIconUtils.getIconValue(context, (String) textView.getAdapter().getItem(position));
|
String iconValue = TrackIconUtils.getIconValue(context, (String) textView.getAdapter().getItem(position));
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
|
||||||
import de.dennisguse.opentracks.data.models.ActivityType;
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,49 +35,6 @@ import de.dennisguse.opentracks.data.models.ActivityType;
|
|||||||
*/
|
*/
|
||||||
public class TrackIconUtils {
|
public class TrackIconUtils {
|
||||||
|
|
||||||
// List of icons whose sports associated use speed (in km/h or mi/h).
|
|
||||||
private static final int[] SPEED_ICON = {
|
|
||||||
// Unknown.
|
|
||||||
R.string.activity_type_unknown,
|
|
||||||
// All airplane categories.
|
|
||||||
R.string.activity_type_airplane, R.string.activity_type_commercial_airplane, R.string.activity_type_rc_airplane,
|
|
||||||
// All bike categories.
|
|
||||||
R.string.activity_type_biking, R.string.activity_type_cycling, R.string.activity_type_dirt_bike, R.string.activity_type_motor_bike, R.string.activity_type_mountain_biking, R.string.activity_type_road_biking, R.string.activity_type_track_cycling, R.string.activity_type_inline_skating,
|
|
||||||
// All boat categories.
|
|
||||||
R.string.activity_type_boat, R.string.activity_type_ferry, R.string.activity_type_motor_boating, R.string.activity_type_rc_boat, R.string.activity_type_sailing, R.string.activity_type_kayaking,
|
|
||||||
// All drive categories.
|
|
||||||
R.string.activity_type_atv, R.string.activity_type_driving, R.string.activity_type_driving_bus, R.string.activity_type_driving_car, R.string.activity_type_escooter, R.string.activity_type_skate_boarding,
|
|
||||||
// All wintersport categories
|
|
||||||
R.string.activity_type_skiing, R.string.activity_type_snow_boarding
|
|
||||||
};
|
|
||||||
|
|
||||||
private static final List<ActivityType> MAP = List.of(
|
|
||||||
//Reflects order in ChooseActivityTypeDialogFragmentActivity
|
|
||||||
ActivityType.UNKNOWN,
|
|
||||||
ActivityType.RUN,
|
|
||||||
ActivityType.WALK,
|
|
||||||
ActivityType.CLIMBING,
|
|
||||||
ActivityType.SKATE_BOARDING,
|
|
||||||
ActivityType.INLINE_SKATING,
|
|
||||||
ActivityType.SNOW_BOARDING,
|
|
||||||
ActivityType.SKI,
|
|
||||||
ActivityType.ESCOOTER,
|
|
||||||
ActivityType.BIKE,
|
|
||||||
ActivityType.MOUNTAIN_BIKE,
|
|
||||||
ActivityType.MOTOR_BIKE,
|
|
||||||
ActivityType.DRIVE,
|
|
||||||
ActivityType.AIRPLANE,
|
|
||||||
ActivityType.KAYAK,
|
|
||||||
ActivityType.BOAT,
|
|
||||||
ActivityType.SAILING,
|
|
||||||
ActivityType.SWIMMING,
|
|
||||||
ActivityType.SWIMMING_OPEN,
|
|
||||||
ActivityType.WORKOUT
|
|
||||||
);
|
|
||||||
|
|
||||||
private TrackIconUtils() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getIconDrawable(String activityTypeId) {
|
public static int getIconDrawable(String activityTypeId) {
|
||||||
Optional<ActivityType> found = Arrays.stream(ActivityType.values()).filter(
|
Optional<ActivityType> found = Arrays.stream(ActivityType.values()).filter(
|
||||||
it -> it.getId().equals(activityTypeId)
|
it -> it.getId().equals(activityTypeId)
|
||||||
@@ -132,28 +88,18 @@ public class TrackIconUtils {
|
|||||||
return selected.get().getId();
|
return selected.get().getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public static boolean isSpeedIcon(Resources resources, String activityTypeId) {
|
||||||
* Returns true if the activity type is in the list.
|
Optional<ActivityType> selected = Arrays.stream(ActivityType.values())
|
||||||
*
|
.filter(
|
||||||
* @param context the context
|
it -> Arrays.stream(it.getLocalizedStringIds())
|
||||||
* @param activityType the activity type
|
.anyMatch(id -> resources.getString(id).equals(activityTypeId))
|
||||||
* @param list the list
|
)
|
||||||
*/
|
.findFirst();
|
||||||
private static boolean inList(Resources context, String activityType, int[] list) {
|
|
||||||
for (int i : list) {
|
|
||||||
if (context.getString(i).equals(activityType)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
if (selected.isEmpty()) {
|
||||||
* Returns true if category is in the SPEED_ICON array. Otherwise returns false.
|
return false;
|
||||||
*
|
}
|
||||||
* @param category the name of the category, activity type.
|
|
||||||
*/
|
return selected.get().isShowSpeedPreferred();
|
||||||
public static boolean isSpeedIcon(Resources resources, String category) {
|
|
||||||
return inList(resources, category, SPEED_ICON);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,75 +64,6 @@
|
|||||||
<!-- Stats layout customization default layout -->
|
<!-- Stats layout customization default layout -->
|
||||||
<string name="default_activity_key" translatable="false">defaultActivity</string>
|
<string name="default_activity_key" translatable="false">defaultActivity</string>
|
||||||
<string name="default_activity_default" translatable="false">@string/activity_type_unknown</string>
|
<string name="default_activity_default" translatable="false">@string/activity_type_unknown</string>
|
||||||
<string-array name="activity_types">
|
|
||||||
<item>@string/default_activity_default</item>
|
|
||||||
|
|
||||||
<item>@string/activity_type_airplane</item>
|
|
||||||
<item>@string/activity_type_atv</item>
|
|
||||||
<item>@string/activity_type_biking</item>
|
|
||||||
<item>@string/activity_type_blimp</item>
|
|
||||||
<item>@string/activity_type_boat</item>
|
|
||||||
<item>@string/activity_type_climbing</item>
|
|
||||||
<item>@string/activity_type_commercial_airplane</item>
|
|
||||||
<item>@string/activity_type_cross_country_skiing</item>
|
|
||||||
<item>@string/activity_type_cycling</item>
|
|
||||||
<item>@string/activity_type_dirt_bike</item>
|
|
||||||
<item>@string/activity_type_donkey_back_riding</item>
|
|
||||||
<item>@string/activity_type_driving</item>
|
|
||||||
<item>@string/activity_type_driving_bus</item>
|
|
||||||
<item>@string/activity_type_driving_car</item>
|
|
||||||
<item>@string/activity_type_ferry</item>
|
|
||||||
<item>@string/activity_type_frisbee</item>
|
|
||||||
<item>@string/activity_type_gliding</item>
|
|
||||||
<item>@string/activity_type_hang_gliding</item>
|
|
||||||
<item>@string/activity_type_helicopter</item>
|
|
||||||
<item>@string/activity_type_hiking</item>
|
|
||||||
<item>@string/activity_type_horse_back_riding</item>
|
|
||||||
<item>@string/activity_type_hot_air_balloon</item>
|
|
||||||
<item>@string/activity_type_ice_sailing</item>
|
|
||||||
<item>@string/activity_type_inline_skating</item>
|
|
||||||
<item>@string/activity_type_kayaking</item>
|
|
||||||
<item>@string/activity_type_kite_surfing</item>
|
|
||||||
<item>@string/activity_type_land_sailing</item>
|
|
||||||
<item>@string/activity_type_mixed_type</item>
|
|
||||||
<item>@string/activity_type_motor_bike</item>
|
|
||||||
<item>@string/activity_type_motor_boating</item>
|
|
||||||
<item>@string/activity_type_mountain_biking</item>
|
|
||||||
<item>@string/activity_type_off_trail_hiking</item>
|
|
||||||
<item>@string/activity_type_other</item>
|
|
||||||
<item>@string/activity_type_paddling</item>
|
|
||||||
<item>@string/activity_type_para_gliding</item>
|
|
||||||
<item>@string/activity_type_rc_airplane</item>
|
|
||||||
<item>@string/activity_type_rc_boat</item>
|
|
||||||
<item>@string/activity_type_rc_helicopter</item>
|
|
||||||
<item>@string/activity_type_riding</item>
|
|
||||||
<item>@string/activity_type_road_biking</item>
|
|
||||||
<item>@string/activity_type_roller_skiing</item>
|
|
||||||
<item>@string/activity_type_rowing</item>
|
|
||||||
<item>@string/activity_type_running</item>
|
|
||||||
<item>@string/activity_type_sailing</item>
|
|
||||||
<item>@string/activity_type_seaplane</item>
|
|
||||||
<item>@string/activity_type_skate_boarding</item>
|
|
||||||
<item>@string/activity_type_skating</item>
|
|
||||||
<item>@string/activity_type_skiing</item>
|
|
||||||
<item>@string/activity_type_sky_jumping</item>
|
|
||||||
<item>@string/activity_type_sled</item>
|
|
||||||
<item>@string/activity_type_snow_boarding</item>
|
|
||||||
<item>@string/activity_type_snow_shoeing</item>
|
|
||||||
<item>@string/activity_type_speed_walking</item>
|
|
||||||
<item>@string/activity_type_street_running</item>
|
|
||||||
<item>@string/activity_type_surfing</item>
|
|
||||||
<item>@string/activity_type_track_cycling</item>
|
|
||||||
<item>@string/activity_type_track_running</item>
|
|
||||||
<item>@string/activity_type_trail_hiking</item>
|
|
||||||
<item>@string/activity_type_trail_running</item>
|
|
||||||
<item>@string/activity_type_train</item>
|
|
||||||
<item>@string/activity_type_ultimate_frisbee</item>
|
|
||||||
<item>@string/activity_type_wakeboarding</item>
|
|
||||||
<item>@string/activity_type_walking</item>
|
|
||||||
<item>@string/activity_type_water_skiing</item>
|
|
||||||
<item>@string/activity_type_wind_surfing</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
<string name="recording_distance_interval_key" translatable="false">recordingDistanceInterval</string>
|
<string name="recording_distance_interval_key" translatable="false">recordingDistanceInterval</string>
|
||||||
<string name="recording_distance_interval_default" translatable="false">10</string>
|
<string name="recording_distance_interval_default" translatable="false">10</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user