forked from upstream-mirrors/OpenTracks
Added new option in Preferred rate setting: By Default.
With By Default option it will use pace or speed depending on activity type. Fixes #151.
This commit is contained in:
@@ -75,6 +75,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
|
|
||||||
//TODO Why is this needed?
|
//TODO Why is this needed?
|
||||||
private int recordingDistanceInterval;
|
private int recordingDistanceInterval;
|
||||||
|
private String category = "";
|
||||||
|
|
||||||
// Modes of operation
|
// Modes of operation
|
||||||
private boolean chartByDistance;
|
private boolean chartByDistance;
|
||||||
@@ -100,7 +101,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (PreferencesUtils.isKey(getContext(), R.string.stats_rate_key, key)) {
|
if (PreferencesUtils.isKey(getContext(), R.string.stats_rate_key, key)) {
|
||||||
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext());
|
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext(), category);
|
||||||
if (reportSpeed != chartView.getReportSpeed()) {
|
if (reportSpeed != chartView.getReportSpeed()) {
|
||||||
chartView.setReportSpeed(reportSpeed);
|
chartView.setReportSpeed(reportSpeed);
|
||||||
chartView.applyReportSpeed();
|
chartView.applyReportSpeed();
|
||||||
@@ -193,8 +194,11 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
if (isResumed()) {
|
if (isResumed()) {
|
||||||
if (track == null || track.getTrackStatistics() == null) {
|
if (track == null || track.getTrackStatistics() == null) {
|
||||||
startTime = -1L;
|
startTime = -1L;
|
||||||
|
category = "";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
category = track.getCategory();
|
||||||
startTime = track.getTrackStatistics().getStartTime_ms();
|
startTime = track.getTrackStatistics().getStartTime_ms();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -510,7 +510,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
|
|||||||
String trackIconValue = TrackIconUtils.getIconValue(getContext(), category);
|
String trackIconValue = TrackIconUtils.getIconValue(getContext(), category);
|
||||||
|
|
||||||
boolean metricUnits = PreferencesUtils.isMetricUnits(getContext());
|
boolean metricUnits = PreferencesUtils.isMetricUnits(getContext());
|
||||||
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext());
|
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext(), category);
|
||||||
boolean isRecording = isSelectedTrackRecording();
|
boolean isRecording = isSelectedTrackRecording();
|
||||||
|
|
||||||
// Set total distance
|
// Set total distance
|
||||||
@@ -603,7 +603,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
|
|||||||
|
|
||||||
private void setLocationValues() {
|
private void setLocationValues() {
|
||||||
boolean metricUnits = PreferencesUtils.isMetricUnits(getContext());
|
boolean metricUnits = PreferencesUtils.isMetricUnits(getContext());
|
||||||
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext());
|
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext(), category);
|
||||||
boolean isRecording = isSelectedTrackRecording();
|
boolean isRecording = isSelectedTrackRecording();
|
||||||
|
|
||||||
// Set speed/pace
|
// Set speed/pace
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import android.util.Log;
|
|||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.R;
|
||||||
|
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
|
||||||
import de.dennisguse.opentracks.services.TrackRecordingService;
|
import de.dennisguse.opentracks.services.TrackRecordingService;
|
||||||
import de.dennisguse.opentracks.stats.TrackStatistics;
|
import de.dennisguse.opentracks.stats.TrackStatistics;
|
||||||
import de.dennisguse.opentracks.util.AnnouncementUtils;
|
import de.dennisguse.opentracks.util.AnnouncementUtils;
|
||||||
@@ -47,6 +49,8 @@ public class AnnouncementPeriodicTask implements PeriodicTask {
|
|||||||
|
|
||||||
private final AudioManager audioManager;
|
private final AudioManager audioManager;
|
||||||
|
|
||||||
|
private ContentProviderUtils contentProviderUtils;
|
||||||
|
|
||||||
private final AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
|
private final AudioManager.OnAudioFocusChangeListener audioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onAudioFocusChange(int focusChange) {
|
public void onAudioFocusChange(int focusChange) {
|
||||||
@@ -103,6 +107,7 @@ public class AnnouncementPeriodicTask implements PeriodicTask {
|
|||||||
AnnouncementPeriodicTask(Context context) {
|
AnnouncementPeriodicTask(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
|
audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
|
||||||
|
contentProviderUtils = new ContentProviderUtils(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -197,9 +197,14 @@ public class PreferencesUtils {
|
|||||||
return STATS_UNIT.equals(getString(context, R.string.stats_units_key, STATS_UNIT));
|
return STATS_UNIT.equals(getString(context, R.string.stats_units_key, STATS_UNIT));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isReportSpeed(Context context) {
|
public static boolean isReportSpeed(Context context, String category) {
|
||||||
final String STATS_RATE_DEFAULT = context.getString(R.string.stats_rate_default);
|
final String STATS_RATE_DEFAULT = context.getString(R.string.stats_rate_default);
|
||||||
return STATS_RATE_DEFAULT.equals(getString(context, R.string.stats_rate_key, STATS_RATE_DEFAULT));
|
String currentStatsRate = getString(context, R.string.stats_rate_key, STATS_RATE_DEFAULT);
|
||||||
|
if (currentStatsRate.equals(getString(context, R.string.stats_rate_default_speed_or_pace, STATS_RATE_DEFAULT))) {
|
||||||
|
return TrackIconUtils.isSpeedIcon(context, category);
|
||||||
|
}
|
||||||
|
|
||||||
|
return currentStatsRate.equals(context.getString(R.string.stats_rate_speed));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isRecordingTrackPaused(Context context) {
|
public static boolean isRecordingTrackPaused(Context context) {
|
||||||
|
|||||||
@@ -59,6 +59,21 @@ public class TrackIconUtils {
|
|||||||
private static final int[] SNOW_BOARDING_LIST = new int[]{R.string.activity_type_snow_boarding};
|
private static final int[] SNOW_BOARDING_LIST = new int[]{R.string.activity_type_snow_boarding};
|
||||||
private static final int[] WALK_LIST = new int[]{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};
|
private static final int[] WALK_LIST = new int[]{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};
|
||||||
|
|
||||||
|
// 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,
|
||||||
|
// 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,
|
||||||
|
// 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,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
private static final LinkedHashMap<String, Pair<Integer, Integer>> MAP = new LinkedHashMap<>();
|
private static final LinkedHashMap<String, Pair<Integer, Integer>> MAP = new LinkedHashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@@ -192,4 +207,14 @@ public class TrackIconUtils {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if category is in the SPEED_ICON array. Otherwise returns false.
|
||||||
|
*
|
||||||
|
* @param context the context.
|
||||||
|
* @param category the name of the category, activity type.
|
||||||
|
*/
|
||||||
|
public static boolean isSpeedIcon(Context context, String category) {
|
||||||
|
return inList(context, category, SPEED_ICON);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,8 @@
|
|||||||
<string name="description_sensor_cadence">Cadencia (rpm)</string>
|
<string name="description_sensor_cadence">Cadencia (rpm)</string>
|
||||||
<string name="description_sensor_heart_rate">Frecuencia cardíaca (lpm)</string>
|
<string name="description_sensor_heart_rate">Frecuencia cardíaca (lpm)</string>
|
||||||
<string name="description_sensor_power">Potencia (W)</string>
|
<string name="description_sensor_power">Potencia (W)</string>
|
||||||
|
<string name="description_default_speed_or_pace_imperial">Por Defecto</string>
|
||||||
|
<string name="description_default_speed_or_pace_metric">Por Defecto</string>
|
||||||
<string name="description_speed_imperial">Velocidad (mi/h)</string>
|
<string name="description_speed_imperial">Velocidad (mi/h)</string>
|
||||||
<string name="description_speed_metric">Velocidad (km/h)</string>
|
<string name="description_speed_metric">Velocidad (km/h)</string>
|
||||||
<string name="description_time">Tiempo</string>
|
<string name="description_time">Tiempo</string>
|
||||||
|
|||||||
@@ -93,6 +93,8 @@
|
|||||||
<string name="description_sensor_cadence">Cadència (rpm)</string>
|
<string name="description_sensor_cadence">Cadència (rpm)</string>
|
||||||
<string name="description_sensor_heart_rate">Freqüència cardíaca (bpm)</string>
|
<string name="description_sensor_heart_rate">Freqüència cardíaca (bpm)</string>
|
||||||
<string name="description_sensor_power">Potència (W)</string>
|
<string name="description_sensor_power">Potència (W)</string>
|
||||||
|
<string name="description_default_speed_or_pace_imperial">Per Defecte</string>
|
||||||
|
<string name="description_default_speed_or_pace_metric">Per Defecte</string>
|
||||||
<string name="description_speed_imperial">Velocitat (mi/h)</string>
|
<string name="description_speed_imperial">Velocitat (mi/h)</string>
|
||||||
<string name="description_speed_metric">Velocitat (km/h)</string>
|
<string name="description_speed_metric">Velocitat (km/h)</string>
|
||||||
<string name="description_time">Temps</string>
|
<string name="description_time">Temps</string>
|
||||||
|
|||||||
@@ -170,19 +170,23 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="stats_rate_key" translatable="false">statsRate</string>
|
<string name="stats_rate_key" translatable="false">statsRate</string>
|
||||||
<string name="stats_rate_default" translatable="false">@string/stats_rate_speed</string>
|
<string name="stats_rate_default" translatable="false">@string/stats_rate_default_speed_or_pace</string>
|
||||||
<string-array name="stats_rate_imperial_options">
|
<string-array name="stats_rate_imperial_options">
|
||||||
|
<item>@string/description_default_speed_or_pace_imperial</item>
|
||||||
<item>@string/description_speed_imperial</item>
|
<item>@string/description_speed_imperial</item>
|
||||||
<item>@string/description_pace_imperial</item>
|
<item>@string/description_pace_imperial</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="stats_rate_metric_options">
|
<string-array name="stats_rate_metric_options">
|
||||||
|
<item>@string/description_default_speed_or_pace_metric</item>
|
||||||
<item>@string/description_speed_metric</item>
|
<item>@string/description_speed_metric</item>
|
||||||
<item>@string/description_pace_metric</item>
|
<item>@string/description_pace_metric</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string name="stats_rate_default_speed_or_pace" translatable="false">DEFAULT</string>
|
||||||
<string name="stats_rate_pace" translatable="false">PACE</string>
|
<string name="stats_rate_pace" translatable="false">PACE</string>
|
||||||
<string name="stats_rate_speed" translatable="false">SPEED</string>
|
<string name="stats_rate_speed" translatable="false">SPEED</string>
|
||||||
<string-array name="stats_rate_values">
|
<string-array name="stats_rate_values">
|
||||||
|
<item>@string/stats_rate_default_speed_or_pace</item>
|
||||||
<item>@string/stats_rate_speed</item>
|
<item>@string/stats_rate_speed</item>
|
||||||
<item>@string/stats_rate_pace</item>
|
<item>@string/stats_rate_pace</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|||||||
@@ -191,6 +191,8 @@ limitations under the License.
|
|||||||
<string name="description_sensor_cadence">Cadence (rpm)</string>
|
<string name="description_sensor_cadence">Cadence (rpm)</string>
|
||||||
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
|
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
|
||||||
<string name="description_sensor_power">Power (W)</string>
|
<string name="description_sensor_power">Power (W)</string>
|
||||||
|
<string name="description_default_speed_or_pace_imperial">By Default</string>
|
||||||
|
<string name="description_default_speed_or_pace_metric">By Default</string>
|
||||||
<string name="description_speed_imperial">Speed (mi/hr)</string>
|
<string name="description_speed_imperial">Speed (mi/hr)</string>
|
||||||
<string name="description_speed_metric">Speed (km/hr)</string>
|
<string name="description_speed_metric">Speed (km/hr)</string>
|
||||||
<string name="description_time">Time</string>
|
<string name="description_time">Time</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user