forked from upstream-mirrors/OpenTracks
+1
-1
@@ -40,7 +40,7 @@ public class AggregatedStatisticsTest {
|
|||||||
statistics.setMinAltitude(1200.0); // Resulting min altitude
|
statistics.setMinAltitude(1200.0); // Resulting min altitude
|
||||||
|
|
||||||
Track track = new Track();
|
Track track = new Track();
|
||||||
track.setIcon(TrackIconUtils.getIconValue(context, category));
|
track.setIcon(TrackIconUtils.getActivityTypeId(context, category));
|
||||||
track.setActivityType(category);
|
track.setActivityType(category);
|
||||||
track.setTrackStatistics(statistics);
|
track.setTrackStatistics(statistics);
|
||||||
return track;
|
return track;
|
||||||
|
|||||||
@@ -78,10 +78,10 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
|
|||||||
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this));
|
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.getActivityTypeId(this, (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position))));
|
||||||
viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
if (!hasFocus) {
|
if (!hasFocus) {
|
||||||
setActivityTypeIcon(TrackIconUtils.getIconValue(
|
setActivityTypeIcon(TrackIconUtils.getActivityTypeId(
|
||||||
TrackEditActivity.this, viewBinding.fields.trackEditActivityType.getText().toString()));
|
TrackEditActivity.this, viewBinding.fields.trackEditActivityType.getText().toString()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -138,7 +138,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
|
|||||||
|
|
||||||
private void setActivityTypeIcon(String iconValue) {
|
private void setActivityTypeIcon(String iconValue) {
|
||||||
this.iconValue = iconValue;
|
this.iconValue = iconValue;
|
||||||
viewBinding.fields.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawable(iconValue));
|
viewBinding.fields.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawableId(iconValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co
|
|||||||
Track.Id trackId = new Track.Id(cursor.getLong(idIndex));
|
Track.Id trackId = new Track.Id(cursor.getLong(idIndex));
|
||||||
boolean isRecording = trackId.equals(recordingStatus.getTrackId());
|
boolean isRecording = trackId.equals(recordingStatus.getTrackId());
|
||||||
String icon = cursor.getString(iconIndex);
|
String icon = cursor.getString(iconIndex);
|
||||||
int iconId = TrackIconUtils.getIconDrawable(icon);
|
int iconId = TrackIconUtils.getIconDrawableId(icon);
|
||||||
String name = cursor.getString(nameIndex);
|
String name = cursor.getString(nameIndex);
|
||||||
String totalTime = StringUtils.formatElapsedTime(Duration.ofMillis(cursor.getLong(totalTimeIndex)));
|
String totalTime = StringUtils.formatElapsedTime(Duration.ofMillis(cursor.getLong(totalTimeIndex)));
|
||||||
String totalDistance = DistanceFormatter.Builder()
|
String totalDistance = DistanceFormatter.Builder()
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements
|
|||||||
|
|
||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this));
|
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.getActivityTypeId(this, (String) viewBinding.trackEditActivityType.getAdapter().getItem(position))));
|
||||||
viewBinding.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
viewBinding.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
if (!hasFocus) {
|
if (!hasFocus) {
|
||||||
setActivityTypeIcon(TrackIconUtils.getIconValue(
|
setActivityTypeIcon(TrackIconUtils.getActivityTypeId(
|
||||||
TrackStoppedActivity.this, viewBinding.trackEditActivityType.getText().toString()));
|
TrackStoppedActivity.this, viewBinding.trackEditActivityType.getText().toString()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -126,7 +126,7 @@ public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setActivityTypeIcon(String iconValue) {
|
private void setActivityTypeIcon(String iconValue) {
|
||||||
viewBinding.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawable(iconValue));
|
viewBinding.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawableId(iconValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class ContentProviderUtils {
|
|||||||
int uuidIndex = cursor.getColumnIndexOrThrow(TracksColumns.UUID);
|
int uuidIndex = cursor.getColumnIndexOrThrow(TracksColumns.UUID);
|
||||||
int nameIndex = cursor.getColumnIndexOrThrow(TracksColumns.NAME);
|
int nameIndex = cursor.getColumnIndexOrThrow(TracksColumns.NAME);
|
||||||
int descriptionIndex = cursor.getColumnIndexOrThrow(TracksColumns.DESCRIPTION);
|
int descriptionIndex = cursor.getColumnIndexOrThrow(TracksColumns.DESCRIPTION);
|
||||||
int categoryIndex = cursor.getColumnIndexOrThrow(TracksColumns.ACTIVITY_TYPE);
|
int activityTypeIndex = cursor.getColumnIndexOrThrow(TracksColumns.ACTIVITY_TYPE);
|
||||||
int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME);
|
int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME);
|
||||||
int startTimeOffsetIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME_OFFSET);
|
int startTimeOffsetIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME_OFFSET);
|
||||||
int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME);
|
int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME);
|
||||||
@@ -128,8 +128,8 @@ public class ContentProviderUtils {
|
|||||||
if (!cursor.isNull(descriptionIndex)) {
|
if (!cursor.isNull(descriptionIndex)) {
|
||||||
track.setDescription(cursor.getString(descriptionIndex));
|
track.setDescription(cursor.getString(descriptionIndex));
|
||||||
}
|
}
|
||||||
if (!cursor.isNull(categoryIndex)) {
|
if (!cursor.isNull(activityTypeIndex)) {
|
||||||
track.setActivityType(cursor.getString(categoryIndex));
|
track.setActivityType(cursor.getString(activityTypeIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cursor.isNull(startTimeIndex)) {
|
if (!cursor.isNull(startTimeIndex)) {
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package de.dennisguse.opentracks.data.models;
|
package de.dennisguse.opentracks.data.models;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -32,15 +35,15 @@ public enum ActivityType {
|
|||||||
WORKOUT("WORKOUT", R.drawable.ic_activity_workout_24dp, false, 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 iconId;
|
final int iconDrawableId;
|
||||||
final boolean showSpeedPreferred;
|
final boolean showSpeedPreferred;
|
||||||
final int[] localizedStringIds;
|
final int[] localizedStringIds;
|
||||||
|
|
||||||
//isSpeed?
|
//isSpeed?
|
||||||
|
|
||||||
ActivityType(String id, int iconId, boolean showSpeedPreferred, int... localizedStringIds) {
|
ActivityType(String id, int iconDrawableId, boolean showSpeedPreferred, int... localizedStringIds) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.iconId = iconId;
|
this.iconDrawableId = iconDrawableId;
|
||||||
this.showSpeedPreferred = showSpeedPreferred;
|
this.showSpeedPreferred = showSpeedPreferred;
|
||||||
this.localizedStringIds = localizedStringIds;
|
this.localizedStringIds = localizedStringIds;
|
||||||
}
|
}
|
||||||
@@ -49,8 +52,8 @@ public enum ActivityType {
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getIconId() {
|
public int getIconDrawableId() {
|
||||||
return iconId;
|
return iconDrawableId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isShowSpeedPreferred() {
|
public boolean isShowSpeedPreferred() {
|
||||||
@@ -76,4 +79,25 @@ public enum ActivityType {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public static ActivityType findByActivityTypeId(String activityTypeId) {
|
||||||
|
return Arrays.stream(ActivityType.values()).filter(
|
||||||
|
it -> it.getId().equals(activityTypeId)
|
||||||
|
).findFirst()
|
||||||
|
.orElse(ActivityType.UNKNOWN);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ActivityType findByLocalizedString(Context context, String localizedActivityType) {
|
||||||
|
return findByLocalizedString(context.getResources(), localizedActivityType);
|
||||||
|
}
|
||||||
|
|
||||||
|
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()
|
||||||
|
.orElse(ActivityType.UNKNOWN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-7
@@ -13,9 +13,12 @@ import androidx.fragment.app.DialogFragment;
|
|||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
import de.dennisguse.opentracks.databinding.ChooseActivityTypeBinding;
|
import de.dennisguse.opentracks.databinding.ChooseActivityTypeBinding;
|
||||||
import de.dennisguse.opentracks.util.TrackIconUtils;
|
import de.dennisguse.opentracks.util.TrackIconUtils;
|
||||||
|
|
||||||
@@ -34,9 +37,9 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment implements
|
|||||||
if (category == null) {
|
if (category == null) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
String iconValue = TrackIconUtils.getIconValue(context, category);
|
String iconValue = TrackIconUtils.getActivityTypeId(context, category);
|
||||||
|
|
||||||
return TrackIconUtils.getAllIconValues().indexOf(iconValue);
|
return getAllActivityTypeIds().indexOf(iconValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ChooseActivityTypeBinding viewBinding;
|
private ChooseActivityTypeBinding viewBinding;
|
||||||
@@ -61,12 +64,12 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment implements
|
|||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
viewBinding = ChooseActivityTypeBinding.inflate(inflater, container, false);
|
viewBinding = ChooseActivityTypeBinding.inflate(inflater, container, false);
|
||||||
|
|
||||||
List<Integer> imageIds = new ArrayList<>();
|
List<Integer> iconDrawableIds = new ArrayList<>();
|
||||||
for (String iconValue : TrackIconUtils.getAllIconValues()) {
|
for (String iconValue : getAllActivityTypeIds()) {
|
||||||
imageIds.add(TrackIconUtils.getIconDrawable(iconValue));
|
iconDrawableIds.add(TrackIconUtils.getIconDrawableId(iconValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
final ChooseActivityTypeImageAdapter imageAdapter = new ChooseActivityTypeImageAdapter(imageIds);
|
final ChooseActivityTypeImageAdapter imageAdapter = new ChooseActivityTypeImageAdapter(iconDrawableIds);
|
||||||
int position = getPosition(getContext(), preselectedCategory);
|
int position = getPosition(getContext(), preselectedCategory);
|
||||||
if (position != -1) {
|
if (position != -1) {
|
||||||
imageAdapter.setSelected(position);
|
imageAdapter.setSelected(position);
|
||||||
@@ -94,10 +97,16 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
|
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
|
||||||
chooseActivityTypeCaller.onChooseActivityTypeDone(TrackIconUtils.getAllIconValues().get(position));
|
chooseActivityTypeCaller.onChooseActivityTypeDone(getAllActivityTypeIds().get(position));
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<String> getAllActivityTypeIds() {
|
||||||
|
return Arrays.stream(ActivityType.values())
|
||||||
|
.map(ActivityType::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for chooseActivityTypeCaller of this dialog fragment.
|
* Interface for chooseActivityTypeCaller of this dialog fragment.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -191,8 +191,8 @@ public class StatisticsRecordedFragment extends Fragment {
|
|||||||
|
|
||||||
// Set activity type
|
// Set activity type
|
||||||
{
|
{
|
||||||
String trackIconValue = TrackIconUtils.getIconValue(getContext(), track.getActivityType());
|
String trackIconValue = TrackIconUtils.getActivityTypeId(getContext(), track.getActivityType());
|
||||||
viewBinding.statsActivityTypeIcon.setImageDrawable(ContextCompat.getDrawable(getContext(), TrackIconUtils.getIconDrawable(trackIconValue)));
|
viewBinding.statsActivityTypeIcon.setImageDrawable(ContextCompat.getDrawable(getContext(), TrackIconUtils.getIconDrawableId(trackIconValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set time and start datetime
|
// Set time and start datetime
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ public class TrackImporter {
|
|||||||
track.setActivityType(activityType);
|
track.setActivityType(activityType);
|
||||||
|
|
||||||
if (icon == null) {
|
if (icon == null) {
|
||||||
icon = TrackIconUtils.getIconValue(context, activityType);
|
icon = TrackIconUtils.getActivityTypeId(context, activityType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang
|
|||||||
|
|
||||||
String category = PreferencesUtils.getDefaultActivity();
|
String category = PreferencesUtils.getDefaultActivity();
|
||||||
track.setActivityType(category);
|
track.setActivityType(category);
|
||||||
track.setIcon(TrackIconUtils.getIconValue(context, category));
|
track.setIcon(TrackIconUtils.getActivityTypeId(context, category));
|
||||||
track.setTrackStatistics(trackStatisticsUpdater.getTrackStatistics());
|
track.setTrackStatistics(trackStatisticsUpdater.getTrackStatistics());
|
||||||
//TODO Pass TrackPoint
|
//TODO Pass TrackPoint
|
||||||
track.setName(TrackNameUtils.getTrackName(context, trackId, track.getStartTime()));
|
track.setName(TrackNameUtils.getTrackName(context, trackId, track.getStartTime()));
|
||||||
|
|||||||
@@ -83,12 +83,12 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(context));
|
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.getActivityTypeId(context, (String) textView.getAdapter().getItem(position));
|
||||||
updateIcon(iconValue);
|
updateIcon(iconValue);
|
||||||
});
|
});
|
||||||
textView.setOnFocusChangeListener((v, hasFocus) -> {
|
textView.setOnFocusChangeListener((v, hasFocus) -> {
|
||||||
if (!hasFocus) {
|
if (!hasFocus) {
|
||||||
String iconValue = TrackIconUtils.getIconValue(context, textView.getText().toString());
|
String iconValue = TrackIconUtils.getActivityTypeId(context, textView.getText().toString());
|
||||||
updateIcon(iconValue);
|
updateIcon(iconValue);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -96,7 +96,7 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
iconView = view.findViewById(R.id.activity_type_preference_spinner);
|
iconView = view.findViewById(R.id.activity_type_preference_spinner);
|
||||||
iconView.setOnClickListener((it) -> showIconSelectDialog());
|
iconView.setOnClickListener((it) -> showIconSelectDialog());
|
||||||
|
|
||||||
updateIcon(TrackIconUtils.getIconValue(context, category));
|
updateIcon(TrackIconUtils.getActivityTypeId(context, category));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showIconSelectDialog() {
|
private void showIconSelectDialog() {
|
||||||
@@ -122,7 +122,7 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateIcon(String iconValue) {
|
private void updateIcon(String iconValue) {
|
||||||
iconView.setImageResource(TrackIconUtils.getIconDrawable(iconValue));
|
iconView.setImageResource(TrackIconUtils.getIconDrawableId(iconValue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -178,8 +178,8 @@ public class AggregatedStatisticsAdapter extends BaseAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getIcon(AggregatedStatistics.AggregatedStatistic aggregatedStatistic) {
|
private int getIcon(AggregatedStatistics.AggregatedStatistic aggregatedStatistic) {
|
||||||
String iconValue = TrackIconUtils.getIconValue(context, aggregatedStatistic.getActivityType());
|
String iconValue = TrackIconUtils.getActivityTypeId(context, aggregatedStatistic.getActivityType());
|
||||||
return TrackIconUtils.getIconDrawable(iconValue);
|
return TrackIconUtils.getIconDrawableId(iconValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,6 @@ import android.content.res.Resources;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import de.dennisguse.opentracks.data.models.ActivityType;
|
import de.dennisguse.opentracks.data.models.ActivityType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -35,65 +30,24 @@ import de.dennisguse.opentracks.data.models.ActivityType;
|
|||||||
*/
|
*/
|
||||||
public class TrackIconUtils {
|
public class TrackIconUtils {
|
||||||
|
|
||||||
public static int getIconDrawable(String activityTypeId) {
|
public static int getIconDrawableId(String activityTypeId) {
|
||||||
Optional<ActivityType> found = Arrays.stream(ActivityType.values()).filter(
|
return ActivityType.findByActivityTypeId(activityTypeId)
|
||||||
it -> it.getId().equals(activityTypeId)
|
.getIconDrawableId();
|
||||||
).findFirst();
|
|
||||||
|
|
||||||
return found.map(ActivityType::getIconId)
|
|
||||||
.orElseGet(ActivityType.UNKNOWN::getIconId);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getIconActivityType(String activityTypeId) {
|
public static int getIconActivityType(String activityTypeId) {
|
||||||
Optional<ActivityType> found = Arrays.stream(ActivityType.values()).filter(
|
return ActivityType.findByActivityTypeId(activityTypeId)
|
||||||
it -> it.getId().equals(activityTypeId)
|
.getFirstLocalizedStringId();
|
||||||
).findFirst();
|
|
||||||
|
|
||||||
return found.map(ActivityType::getFirstLocalizedStringId)
|
|
||||||
.orElseGet(ActivityType.UNKNOWN::getFirstLocalizedStringId);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets all icon values.
|
|
||||||
*/
|
|
||||||
public static List<String> getAllIconValues() {
|
|
||||||
return Arrays.stream(ActivityType.values())
|
|
||||||
.map(ActivityType::getId)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the icon value.
|
|
||||||
*
|
|
||||||
* @param context the context
|
|
||||||
* @param activityTypeId the activity type
|
|
||||||
*/
|
|
||||||
@NonNull
|
@NonNull
|
||||||
public static String getIconValue(Context context, String activityTypeId) {
|
public static String getActivityTypeId(Context context, String localizedActivityType) {
|
||||||
Optional<ActivityType> selected = Arrays.stream(ActivityType.values())
|
return ActivityType.findByLocalizedString(context, localizedActivityType)
|
||||||
.filter(
|
.getId();
|
||||||
it -> Arrays.stream(it.getLocalizedStringIds())
|
|
||||||
.anyMatch(id -> context.getString(id).equals(activityTypeId))
|
|
||||||
)
|
|
||||||
.findFirst();
|
|
||||||
if (selected.isEmpty()) {
|
|
||||||
return ActivityType.UNKNOWN.getId();
|
|
||||||
}
|
|
||||||
return selected.get().getId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isSpeedIcon(Resources resources, String activityTypeId) {
|
public static boolean isSpeedIcon(Resources resources, String localizedActivityType) {
|
||||||
Optional<ActivityType> selected = Arrays.stream(ActivityType.values())
|
return ActivityType.findByLocalizedString(resources, localizedActivityType)
|
||||||
.filter(
|
.isShowSpeedPreferred();
|
||||||
it -> Arrays.stream(it.getLocalizedStringIds())
|
|
||||||
.anyMatch(id -> resources.getString(id).equals(activityTypeId))
|
|
||||||
)
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
return selected.map(ActivityType::isShowSpeedPreferred)
|
|
||||||
.orElse(false);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class TrackUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void updateTrack(Context context, Track track, String name, String activityType, String description, ContentProviderUtils contentProviderUtils) {
|
public static void updateTrack(Context context, Track track, String name, String activityType, String description, ContentProviderUtils contentProviderUtils) {
|
||||||
updateTrack(context, track, name, activityType, TrackIconUtils.getIconValue(context, activityType), description, contentProviderUtils);
|
updateTrack(context, track, name, activityType, TrackIconUtils.getActivityTypeId(context, activityType), description, contentProviderUtils);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateTrack(Context context, Track track, String name, String activityType, String iconValue, String description, ContentProviderUtils contentProviderUtils) {
|
public static void updateTrack(Context context, Track track, String name, String activityType, String iconValue, String description, ContentProviderUtils contentProviderUtils) {
|
||||||
@@ -49,7 +49,7 @@ public class TrackUtils {
|
|||||||
if (iconValue != null) {
|
if (iconValue != null) {
|
||||||
track.setIcon(iconValue);
|
track.setIcon(iconValue);
|
||||||
} else if (activityType != null) {
|
} else if (activityType != null) {
|
||||||
track.setIcon(TrackIconUtils.getIconValue(context, activityType));
|
track.setIcon(TrackIconUtils.getActivityTypeId(context, activityType));
|
||||||
}
|
}
|
||||||
if (description != null) {
|
if (description != null) {
|
||||||
track.setDescription(description);
|
track.setDescription(description);
|
||||||
|
|||||||
Reference in New Issue
Block a user