diff --git a/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java index 31a012c8f..28a0360c2 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java @@ -16,11 +16,11 @@ import java.time.Instant; import java.util.List; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.Speed; import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.stats.TrackStatistics; -import de.dennisguse.opentracks.util.TrackIconUtils; @RunWith(JUnit4.class) public class AggregatedStatisticsTest { @@ -40,7 +40,8 @@ public class AggregatedStatisticsTest { statistics.setMinAltitude(1200.0); // Resulting min altitude Track track = new Track(); - track.setIcon(TrackIconUtils.getActivityTypeId(context, category)); + track.setIcon(ActivityType.findByLocalizedString(context, category) + .getId()); track.setActivityType(category); track.setTrackStatistics(statistics); return track; diff --git a/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java b/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java index 5d8c1ee36..54a4eedd6 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java @@ -29,7 +29,6 @@ import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackEditBinding; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; -import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackUtils; /** @@ -78,11 +77,16 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this)); viewBinding.fields.trackEditActivityType.setAdapter(adapter); - viewBinding.fields.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getActivityTypeId(this, (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position)))); + viewBinding.fields.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> { + String localizedActivityType = (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position); + setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType) + .getId()); + }); viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - setActivityTypeIcon(TrackIconUtils.getActivityTypeId( - TrackEditActivity.this, viewBinding.fields.trackEditActivityType.getText().toString())); + String localizedActivityType = viewBinding.fields.trackEditActivityType.getText().toString(); + setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType) + .getId()); } }); @@ -138,12 +142,14 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit private void setActivityTypeIcon(String iconValue) { this.iconValue = iconValue; - viewBinding.fields.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawableId(iconValue)); + viewBinding.fields.trackEditActivityTypeIcon.setImageResource(ActivityType.findByActivityTypeId(iconValue) + .getIconDrawableId()); } @Override public void onChooseActivityTypeDone(String value) { setActivityTypeIcon(value); - viewBinding.fields.trackEditActivityType.setText(getString(TrackIconUtils.getIconActivityType(value))); + viewBinding.fields.trackEditActivityType.setText(getString(ActivityType.findByActivityTypeId(value) + .getFirstLocalizedStringId())); } } diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java index 5927dd711..119ea1c99 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java @@ -50,6 +50,7 @@ import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneOffset; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.DistanceFormatter; import de.dennisguse.opentracks.data.models.Track; @@ -72,7 +73,6 @@ import de.dennisguse.opentracks.util.IntentDashboardUtils; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.PermissionRequester; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * An activity displaying a list of tracks. @@ -219,7 +219,8 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co Track.Id trackId = new Track.Id(cursor.getLong(idIndex)); boolean isRecording = trackId.equals(recordingStatus.getTrackId()); String icon = cursor.getString(iconIndex); - int iconId = TrackIconUtils.getIconDrawableId(icon); + int iconId = ActivityType.findByActivityTypeId(icon) + .getIconDrawableId(); String name = cursor.getString(nameIndex); String totalTime = StringUtils.formatElapsedTime(Duration.ofMillis(cursor.getLong(totalTimeIndex))); String totalDistance = DistanceFormatter.Builder() diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java index f8fb0c00b..2ebcd9bd7 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java @@ -30,6 +30,7 @@ import de.dennisguse.opentracks.chart.ChartFragment; import de.dennisguse.opentracks.chart.TrackDataHubInterface; import de.dennisguse.opentracks.data.ContentProviderUtils; import de.dennisguse.opentracks.data.TrackDataHub; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackRecordingBinding; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; @@ -46,7 +47,6 @@ import de.dennisguse.opentracks.ui.markers.MarkerListActivity; import de.dennisguse.opentracks.ui.util.ActivityUtils; import de.dennisguse.opentracks.util.IntentDashboardUtils; import de.dennisguse.opentracks.util.IntentUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackUtils; /** @@ -319,7 +319,8 @@ public class TrackRecordingActivity extends AbstractActivity implements ChooseAc @Override public void onChooseActivityTypeDone(String iconValue) { Track track = contentProviderUtils.getTrack(trackId); - String activityType = getString(TrackIconUtils.getIconActivityType(iconValue)); + String activityType = getString(ActivityType.findByActivityTypeId(iconValue) + .getFirstLocalizedStringId()); TrackUtils.updateTrack(this, track, null, activityType, null, contentProviderUtils); } diff --git a/src/main/java/de/dennisguse/opentracks/TrackStoppedActivity.java b/src/main/java/de/dennisguse/opentracks/TrackStoppedActivity.java index be8aabd1c..e6c163e30 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackStoppedActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackStoppedActivity.java @@ -20,7 +20,6 @@ import de.dennisguse.opentracks.ui.aggregatedStatistics.ConfirmDeleteDialogFragm import de.dennisguse.opentracks.util.ExportUtils; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackUtils; public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller { @@ -54,11 +53,16 @@ public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this)); viewBinding.trackEditActivityType.setAdapter(adapter); - viewBinding.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> setActivityTypeIcon(TrackIconUtils.getActivityTypeId(this, (String) viewBinding.trackEditActivityType.getAdapter().getItem(position)))); + viewBinding.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> { + String localizedActivityType = (String) viewBinding.trackEditActivityType.getAdapter().getItem(position); + setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType) + .getId()); + }); viewBinding.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - setActivityTypeIcon(TrackIconUtils.getActivityTypeId( - TrackStoppedActivity.this, viewBinding.trackEditActivityType.getText().toString())); + String localizedActivityType = viewBinding.trackEditActivityType.getText().toString(); + setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType) + .getId()); } }); @@ -126,13 +130,15 @@ public class TrackStoppedActivity extends AbstractTrackDeleteActivity implements } private void setActivityTypeIcon(String iconValue) { - viewBinding.trackEditActivityTypeIcon.setImageResource(TrackIconUtils.getIconDrawableId(iconValue)); + viewBinding.trackEditActivityTypeIcon.setImageResource(ActivityType.findByActivityTypeId(iconValue) + .getIconDrawableId()); } @Override public void onChooseActivityTypeDone(String iconValue) { setActivityTypeIcon(iconValue); - viewBinding.trackEditActivityType.setText(getString(TrackIconUtils.getIconActivityType(iconValue))); + viewBinding.trackEditActivityType.setText(getString(ActivityType.findByActivityTypeId(iconValue) + .getFirstLocalizedStringId())); } private void resumeTrackAndFinish() { diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeDialogFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeDialogFragment.java index b00677d3c..8c96d8007 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeDialogFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeDialogFragment.java @@ -20,7 +20,6 @@ import java.util.stream.Collectors; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.databinding.ChooseActivityTypeBinding; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * A DialogFragment to choose an activity type. @@ -37,7 +36,8 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment implements if (category == null) { return -1; } - String iconValue = TrackIconUtils.getActivityTypeId(context, category); + String iconValue = ActivityType.findByLocalizedString(context, category) + .getId(); return getAllActivityTypeIds().indexOf(iconValue); } @@ -66,7 +66,8 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment implements List iconDrawableIds = new ArrayList<>(); for (String iconValue : getAllActivityTypeIds()) { - iconDrawableIds.add(TrackIconUtils.getIconDrawableId(iconValue)); + iconDrawableIds.add(ActivityType.findByActivityTypeId(iconValue) + .getIconDrawableId()); } final ChooseActivityTypeImageAdapter imageAdapter = new ChooseActivityTypeImageAdapter(iconDrawableIds); diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java index e3da82bea..ff645a2f1 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java @@ -16,6 +16,7 @@ package de.dennisguse.opentracks.fragments; +import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; @@ -34,6 +35,7 @@ import androidx.recyclerview.widget.RecyclerView; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.TrackRecordedActivity; 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.SpeedFormatter; import de.dennisguse.opentracks.data.models.Track; @@ -43,7 +45,6 @@ import de.dennisguse.opentracks.settings.UnitSystem; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * A fragment to display track statistics to the user for a recorded {@link Track}. @@ -191,8 +192,12 @@ public class StatisticsRecordedFragment extends Fragment { // Set activity type { - String trackIconValue = TrackIconUtils.getActivityTypeId(getContext(), track.getActivityType()); - viewBinding.statsActivityTypeIcon.setImageDrawable(ContextCompat.getDrawable(getContext(), TrackIconUtils.getIconDrawableId(trackIconValue))); + Context context = getContext(); + String localizedActivityType = track.getActivityType(); + String trackIconValue = ActivityType.findByLocalizedString(context, localizedActivityType) + .getId(); + viewBinding.statsActivityTypeIcon.setImageDrawable(ContextCompat.getDrawable(getContext(), ActivityType.findByActivityTypeId(trackIconValue) + .getIconDrawableId())); } // Set time and start datetime diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java index dbd938406..ba2e8d922 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java @@ -20,6 +20,7 @@ import java.util.stream.Collectors; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.Marker; import de.dennisguse.opentracks.data.models.Speed; @@ -30,7 +31,6 @@ import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; import de.dennisguse.opentracks.ui.markers.MarkerUtils; import de.dennisguse.opentracks.util.FileUtils; import de.dennisguse.opentracks.util.LocationUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * Handles logic to import: @@ -107,7 +107,8 @@ public class TrackImporter { track.setActivityType(activityType); if (icon == null) { - icon = TrackIconUtils.getActivityTypeId(context, activityType); + icon = ActivityType.findByLocalizedString(context, activityType) + .getId(); } } diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 32c9e3c91..52e13e8e9 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -15,6 +15,7 @@ import java.time.ZoneOffset; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.Marker; import de.dennisguse.opentracks.data.models.Track; @@ -24,7 +25,6 @@ import de.dennisguse.opentracks.services.handlers.TrackPointCreator; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; -import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackNameUtils; class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -74,7 +74,8 @@ class TrackRecordingManager implements SharedPreferences.OnSharedPreferenceChang String category = PreferencesUtils.getDefaultActivity(); track.setActivityType(category); - track.setIcon(TrackIconUtils.getActivityTypeId(context, category)); + track.setIcon(ActivityType.findByLocalizedString(context, category) + .getId()); track.setTrackStatistics(trackStatisticsUpdater.getTrackStatistics()); //TODO Pass TrackPoint track.setName(TrackNameUtils.getTrackName(context, trackId, track.getStartTime())); diff --git a/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java b/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java index 49b47da8c..2aaa3679e 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java @@ -30,7 +30,6 @@ import androidx.preference.PreferenceDialogFragmentCompat; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * For entering the default activity type. @@ -83,12 +82,16 @@ public class ActivityTypePreference extends DialogPreference { ArrayAdapter adapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(context)); textView.setAdapter(adapter); textView.setOnItemClickListener((parent, v, position, id) -> { - String iconValue = TrackIconUtils.getActivityTypeId(context, (String) textView.getAdapter().getItem(position)); + String localizedActivityType = (String) textView.getAdapter().getItem(position); + String iconValue = ActivityType.findByLocalizedString(context, localizedActivityType) + .getId(); updateIcon(iconValue); }); textView.setOnFocusChangeListener((v, hasFocus) -> { if (!hasFocus) { - String iconValue = TrackIconUtils.getActivityTypeId(context, textView.getText().toString()); + String localizedActivityType = textView.getText().toString(); + String iconValue = ActivityType.findByLocalizedString(context, localizedActivityType) + .getId(); updateIcon(iconValue); } }); @@ -96,7 +99,8 @@ public class ActivityTypePreference extends DialogPreference { iconView = view.findViewById(R.id.activity_type_preference_spinner); iconView.setOnClickListener((it) -> showIconSelectDialog()); - updateIcon(TrackIconUtils.getActivityTypeId(context, category)); + updateIcon(ActivityType.findByLocalizedString(context, category) + .getId()); } private void showIconSelectDialog() { @@ -117,12 +121,14 @@ public class ActivityTypePreference extends DialogPreference { public void updateUI(String iconValue) { updateIcon(iconValue); - textView.setText(getActivity().getString(TrackIconUtils.getIconActivityType(iconValue))); + textView.setText(getActivity().getString(ActivityType.findByActivityTypeId(iconValue) + .getFirstLocalizedStringId())); textView.clearFocus(); } private void updateIcon(String iconValue) { - iconView.setImageResource(TrackIconUtils.getIconDrawableId(iconValue)); + iconView.setImageResource(ActivityType.findByActivityTypeId(iconValue) + .getIconDrawableId()); } } } diff --git a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java index 1835b1f42..0174b24d5 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java @@ -40,6 +40,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.data.models.DistanceFormatter; import de.dennisguse.opentracks.data.models.HeartRate; @@ -51,7 +52,6 @@ import de.dennisguse.opentracks.ui.customRecordingLayout.CsvLayoutUtils; import de.dennisguse.opentracks.ui.customRecordingLayout.RecordingLayout; import de.dennisguse.opentracks.ui.customRecordingLayout.RecordingLayoutIO; import de.dennisguse.opentracks.util.IntentDashboardUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; /** * Utilities to access preferences stored in {@link SharedPreferences}. @@ -237,7 +237,8 @@ public class PreferencesUtils { final String STATS_RATE_DEFAULT = resources.getString(R.string.stats_rate_default); String currentStatsRate = getString(R.string.stats_rate_key, STATS_RATE_DEFAULT); if (currentStatsRate.equals(getString(R.string.stats_rate_speed_or_pace_default, STATS_RATE_DEFAULT))) { - return TrackIconUtils.isSpeedIcon(resources, category); + return ActivityType.findByLocalizedString(resources, category) + .isShowSpeedPreferred(); } return currentStatsRate.equals(resources.getString(R.string.stats_rate_speed)); diff --git a/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java index ad77e3e3f..71f0d3237 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java @@ -1,6 +1,7 @@ package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.content.Context; +import android.content.res.Resources; import android.util.Pair; import android.view.LayoutInflater; import android.view.View; @@ -13,12 +14,12 @@ import java.util.ArrayList; import java.util.List; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.DistanceFormatter; import de.dennisguse.opentracks.data.models.SpeedFormatter; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.settings.UnitSystem; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.util.TrackIconUtils; public class AggregatedStatisticsAdapter extends BaseAdapter { @@ -62,7 +63,10 @@ public class AggregatedStatisticsAdapter extends BaseAdapter { viewHolder = (ViewHolder) convertView.getTag(); } - if (TrackIconUtils.isSpeedIcon(context.getResources(), aggregatedStatistic.getActivityType())) { + Resources resources = context.getResources(); + String localizedActivityType = aggregatedStatistic.getActivityType(); + if (ActivityType.findByLocalizedString(resources, localizedActivityType) + .isShowSpeedPreferred()) { viewHolder.setSpeed(aggregatedStatistic); } else { viewHolder.setPace(aggregatedStatistic); @@ -178,8 +182,11 @@ public class AggregatedStatisticsAdapter extends BaseAdapter { } private int getIcon(AggregatedStatistics.AggregatedStatistic aggregatedStatistic) { - String iconValue = TrackIconUtils.getActivityTypeId(context, aggregatedStatistic.getActivityType()); - return TrackIconUtils.getIconDrawableId(iconValue); + String localizedActivityType = aggregatedStatistic.getActivityType(); + String iconValue = ActivityType.findByLocalizedString(context, localizedActivityType) + .getId(); + return ActivityType.findByActivityTypeId(iconValue) + .getIconDrawableId(); } } } diff --git a/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java b/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java deleted file mode 100644 index cfd440bc5..000000000 --- a/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package de.dennisguse.opentracks.util; - -import android.content.Context; -import android.content.res.Resources; - -import androidx.annotation.NonNull; - -import de.dennisguse.opentracks.data.models.ActivityType; - -/** - * Utilities for track icon. - * - * @author Jimmy Shih - */ -public class TrackIconUtils { - - public static int getIconDrawableId(String activityTypeId) { - return ActivityType.findByActivityTypeId(activityTypeId) - .getIconDrawableId(); - } - - public static int getIconActivityType(String activityTypeId) { - return ActivityType.findByActivityTypeId(activityTypeId) - .getFirstLocalizedStringId(); - } - - @NonNull - public static String getActivityTypeId(Context context, String localizedActivityType) { - return ActivityType.findByLocalizedString(context, localizedActivityType) - .getId(); - } - - public static boolean isSpeedIcon(Resources resources, String localizedActivityType) { - return ActivityType.findByLocalizedString(resources, localizedActivityType) - .isShowSpeedPreferred(); - } -} diff --git a/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java b/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java index d49fe247e..5847773eb 100644 --- a/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java @@ -19,6 +19,7 @@ package de.dennisguse.opentracks.util; import android.content.Context; import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.ActivityType; import de.dennisguse.opentracks.data.models.Track; /** @@ -33,7 +34,8 @@ public class TrackUtils { } public static void updateTrack(Context context, Track track, String name, String activityType, String description, ContentProviderUtils contentProviderUtils) { - updateTrack(context, track, name, activityType, TrackIconUtils.getActivityTypeId(context, activityType), description, contentProviderUtils); + updateTrack(context, track, name, activityType, ActivityType.findByLocalizedString(context, activityType) + .getId(), description, contentProviderUtils); } public static void updateTrack(Context context, Track track, String name, String activityType, String iconValue, String description, ContentProviderUtils contentProviderUtils) { @@ -49,7 +51,8 @@ public class TrackUtils { if (iconValue != null) { track.setIcon(iconValue); } else if (activityType != null) { - track.setIcon(TrackIconUtils.getActivityTypeId(context, activityType)); + track.setIcon(ActivityType.findByLocalizedString(context, activityType) + .getId()); } if (description != null) { track.setDescription(description);