forked from upstream-mirrors/OpenTracks
@@ -295,6 +295,10 @@ public class ChartView extends View {
|
|||||||
series[index].setEnabled(enabled);
|
series[index].setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getMetricUnits() {
|
||||||
|
return metricUnits;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets metric units.
|
* Sets metric units.
|
||||||
*
|
*
|
||||||
@@ -304,6 +308,10 @@ public class ChartView extends View {
|
|||||||
metricUnits = value;
|
metricUnits = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getReportSpeed() {
|
||||||
|
return reportSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets report speed.
|
* Sets report speed.
|
||||||
*
|
*
|
||||||
@@ -486,7 +494,6 @@ public class ChartView extends View {
|
|||||||
@Override
|
@Override
|
||||||
protected void onDraw(Canvas canvas) {
|
protected void onDraw(Canvas canvas) {
|
||||||
synchronized (chartData) {
|
synchronized (chartData) {
|
||||||
|
|
||||||
canvas.save();
|
canvas.save();
|
||||||
|
|
||||||
canvas.drawColor(Color.WHITE);
|
canvas.drawColor(Color.WHITE);
|
||||||
|
|||||||
@@ -76,8 +76,6 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
private TripStatisticsUpdater tripStatisticsUpdater;
|
private TripStatisticsUpdater tripStatisticsUpdater;
|
||||||
private long startTime;
|
private long startTime;
|
||||||
|
|
||||||
private boolean metricUnits = true;
|
|
||||||
private boolean reportSpeed = true;
|
|
||||||
private int recordingDistanceInterval;
|
private int recordingDistanceInterval;
|
||||||
|
|
||||||
// Modes of operation
|
// Modes of operation
|
||||||
@@ -90,13 +88,9 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
if (!isResumed()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (PreferencesUtils.isKey(getContext(), R.string.stats_units_key, key)) {
|
if (PreferencesUtils.isKey(getContext(), R.string.stats_units_key, key)) {
|
||||||
boolean metric = PreferencesUtils.isMetricUnits(getContext());
|
boolean metricUnits = PreferencesUtils.isMetricUnits(getContext());
|
||||||
if (metricUnits != metric) {
|
if (metricUnits != chartView.getMetricUnits()) {
|
||||||
metricUnits = metric;
|
|
||||||
chartView.setMetricUnits(metricUnits);
|
chartView.setMetricUnits(metricUnits);
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -109,9 +103,8 @@ 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 speed = PreferencesUtils.isReportSpeed(getContext());
|
boolean reportSpeed = PreferencesUtils.isReportSpeed(getContext());
|
||||||
if (reportSpeed != speed) {
|
if (reportSpeed != chartView.getReportSpeed()) {
|
||||||
reportSpeed = speed;
|
|
||||||
chartView.setReportSpeed(reportSpeed);
|
chartView.setReportSpeed(reportSpeed);
|
||||||
setSeriesEnabled(ChartView.SPEED_SERIES, reportSpeed);
|
setSeriesEnabled(ChartView.SPEED_SERIES, reportSpeed);
|
||||||
setSeriesEnabled(ChartView.PACE_SERIES, !reportSpeed);
|
setSeriesEnabled(ChartView.PACE_SERIES, !reportSpeed);
|
||||||
@@ -152,7 +145,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
chartByDistance = getArguments().getBoolean(KEY_CHART_VIEW_BY_DISTANCE_KEY, chartByDistance);
|
chartByDistance = getArguments().getBoolean(KEY_CHART_VIEW_BY_DISTANCE_KEY, true);
|
||||||
|
|
||||||
recordingDistanceInterval = PreferencesUtils.getRecordingDistanceIntervalDefault(getContext());
|
recordingDistanceInterval = PreferencesUtils.getRecordingDistanceIntervalDefault(getContext());
|
||||||
|
|
||||||
@@ -178,6 +171,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
resumeTrackDataHub();
|
resumeTrackDataHub();
|
||||||
PreferencesUtils.register(getContext(), sharedPreferenceChangeListener);
|
PreferencesUtils.register(getContext(), sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
|
|
||||||
checkChartSettings();
|
checkChartSettings();
|
||||||
getActivity().runOnUiThread(updateChart);
|
getActivity().runOnUiThread(updateChart);
|
||||||
@@ -277,10 +271,10 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
private void checkChartSettings() {
|
private void checkChartSettings() {
|
||||||
boolean needUpdate = false;
|
boolean needUpdate = false;
|
||||||
|
|
||||||
if (setSeriesEnabled(ChartView.SPEED_SERIES, reportSpeed)) {
|
if (setSeriesEnabled(ChartView.SPEED_SERIES, chartView.getReportSpeed())) {
|
||||||
needUpdate = true;
|
needUpdate = true;
|
||||||
}
|
}
|
||||||
if (setSeriesEnabled(ChartView.PACE_SERIES, !reportSpeed)) {
|
if (setSeriesEnabled(ChartView.PACE_SERIES, !chartView.getReportSpeed())) {
|
||||||
needUpdate = true;
|
needUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -381,7 +375,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
TripStatistics tripStatistics = tripStatisticsUpdater.getTripStatistics();
|
TripStatistics tripStatistics = tripStatisticsUpdater.getTripStatistics();
|
||||||
if (chartByDistance) {
|
if (chartByDistance) {
|
||||||
double distance = tripStatistics.getTotalDistance() * UnitConversions.M_TO_KM;
|
double distance = tripStatistics.getTotalDistance() * UnitConversions.M_TO_KM;
|
||||||
if (!metricUnits) {
|
if (!chartView.getMetricUnits()) {
|
||||||
distance *= UnitConversions.KM_TO_MI;
|
distance *= UnitConversions.KM_TO_MI;
|
||||||
}
|
}
|
||||||
timeOrDistance = distance;
|
timeOrDistance = distance;
|
||||||
@@ -390,12 +384,12 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
elevation = tripStatisticsUpdater.getSmoothedElevation();
|
elevation = tripStatisticsUpdater.getSmoothedElevation();
|
||||||
if (!metricUnits) {
|
if (!chartView.getMetricUnits()) {
|
||||||
elevation *= UnitConversions.M_TO_FT;
|
elevation *= UnitConversions.M_TO_FT;
|
||||||
}
|
}
|
||||||
|
|
||||||
speed = tripStatisticsUpdater.getSmoothedSpeed() * UnitConversions.MS_TO_KMH;
|
speed = tripStatisticsUpdater.getSmoothedSpeed() * UnitConversions.MS_TO_KMH;
|
||||||
if (!metricUnits) {
|
if (!chartView.getMetricUnits()) {
|
||||||
speed *= UnitConversions.KM_TO_MI;
|
speed *= UnitConversions.KM_TO_MI;
|
||||||
}
|
}
|
||||||
pace = speed == 0 ? 0.0 : 60.0 / speed;
|
pace = speed == 0 ? 0.0 : 60.0 / speed;
|
||||||
@@ -441,12 +435,12 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setMetricUnits(boolean value) {
|
void setMetricUnits(boolean value) {
|
||||||
metricUnits = value;
|
chartView.setMetricUnits(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setReportSpeed(boolean value) {
|
void setReportSpeed(boolean value) {
|
||||||
reportSpeed = value;
|
chartView.setReportSpeed(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|||||||
Reference in New Issue
Block a user