diff --git a/src/main/java/de/dennisguse/opentracks/ChartView.java b/src/main/java/de/dennisguse/opentracks/ChartView.java
index bc35f0d57..948ca5f26 100644
--- a/src/main/java/de/dennisguse/opentracks/ChartView.java
+++ b/src/main/java/de/dennisguse/opentracks/ChartView.java
@@ -223,8 +223,8 @@ public class ChartView extends View {
}
/**
- * Sets chart by distance. It is expected that after changing this value, data
- * will be reloaded.
+ * Sets chart by distance.
+ * It is expected that after changing this value, data will be reloaded.
*
* @param value true for by distance, false for by time
*/
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
index 6113a6eb3..7a2d08ab4 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java
@@ -352,8 +352,8 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
/**
- * Resumes the trackDataHub. Needs to be synchronized because trackDataHub can
- * be accessed by multiple threads.
+ * Resumes the trackDataHub.
+ * Needs to be synchronized because trackDataHub can be accessed by multiple threads.
*/
private synchronized void resumeTrackDataHub() {
trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub();
@@ -363,8 +363,8 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
/**
- * Pauses the trackDataHub. Needs to be synchronized because trackDataHub can
- * be accessed by multiple threads.
+ * Pauses the trackDataHub.
+ * Needs to be synchronized because trackDataHub can be accessed by multiple threads.
*/
private synchronized void pauseTrackDataHub() {
trackDataHub.unregisterTrackDataListener(this);
@@ -372,16 +372,16 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
/**
- * Returns true if the selected track is recording. Needs to be synchronized
- * because trackDataHub can be accessed by multiple threads.
+ * Returns true if the selected track is recording.
+ * Needs to be synchronized because trackDataHub can be accessed by multiple threads.
*/
private synchronized boolean isSelectedTrackRecording() {
return trackDataHub != null && trackDataHub.isSelectedTrackRecording();
}
/**
- * Reloads the trackDataHub. Needs to be synchronized because trackDataHub can
- * be accessed by multiple threads.
+ * Reloads the trackDataHub.
+ * Needs to be synchronized because trackDataHub can be accessed by multiple threads.
*/
private synchronized void reloadTrackDataHub() {
if (trackDataHub != null) {
@@ -389,18 +389,12 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
}
- /**
- * To zoom in.
- */
private void zoomIn() {
chartView.zoomIn();
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
zoomControls.setIsZoomOutEnabled(chartView.canZoomOut());
}
- /**
- * To zoom out.
- */
private void zoomOut() {
chartView.zoomOut();
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
@@ -438,9 +432,6 @@ public class ChartFragment extends Fragment implements TrackDataListener {
double elevation = Double.NaN;
double speed = Double.NaN;
double pace = Double.NaN;
- double heartRate = Double.NaN;
- double cadence = Double.NaN;
- double power = Double.NaN;
if (tripStatisticsUpdater != null) {
tripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
@@ -466,6 +457,10 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
pace = speed == 0 ? 0.0 : 60.0 / speed;
}
+
+ double heartRate = Double.NaN;
+ double cadence = Double.NaN;
+ double power = Double.NaN;
if (location instanceof SensorDataSetLocation && ((SensorDataSetLocation) location).getSensorDataSet() != null) {
SensorDataSet sensorDataSet = ((SensorDataSetLocation) location).getSensorDataSet();
if (sensorDataSet.hasHeartRate()) {
@@ -479,6 +474,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
}
}
+ //TODO: Is related to ChartView.ELEVATION_SERIES etc.
if (data != null) {
data[0] = timeOrDistance;
data[1] = elevation;
diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
index 57f49ade3..852d0acb3 100644
--- a/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsActivity.java
@@ -45,6 +45,15 @@ public class SettingsActivity extends FragmentActivity implements ChooseActivity
updateUI();
}
});
+
+ if (key == null || key.equals(PreferencesUtils.getKey(getActivity(), R.string.stats_units_key))) {
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ updateUnits();
+ }
+ });
+ }
}
};
@@ -54,20 +63,7 @@ public class SettingsActivity extends FragmentActivity implements ChooseActivity
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.settings);
-
- boolean metricUnits = PreferencesUtils.isMetricUnits(getActivity());
-
- configFrequencyPreference(R.string.voice_frequency_key, metricUnits);
- configFrequencyPreference(R.string.split_frequency_key, metricUnits);
- configListPreference(R.string.min_recording_interval_key, R.array.min_recording_interval_values, metricUnits);
- configListPreference(R.string.recording_distance_interval_key, R.array.recording_distance_interval_values, metricUnits);
- configListPreference(R.string.max_recording_distance_key, R.array.max_recording_distance_values, metricUnits);
- configListPreference(R.string.recording_gps_accuracy_key, R.array.recording_gps_accuracy_values, metricUnits);
- configListPreference(R.string.auto_resume_track_timeout_key, R.array.auto_resume_track_timeout_values, metricUnits);
- configListPreference(R.string.auto_resume_track_timeout_key, R.array.auto_resume_track_timeout_values, metricUnits);
-
- ListPreference bluetoothPreference = findPreference(getString(R.string.bluetooth_sensor_key));
- PreferenceHelper.configureBluetoothSensorList(bluetoothPreference);
+ updateUnits();
}
@Override
@@ -151,6 +147,29 @@ public class SettingsActivity extends FragmentActivity implements ChooseActivity
Preference speedCheckBoxPreference = findPreference(getString(R.string.chart_show_speed_key));
speedCheckBoxPreference.setTitle(PreferencesUtils.isReportSpeed(getActivity()) ? R.string.stats_speed : R.string.stats_pace);
+
+ ListPreference bluetoothPreference = findPreference(getString(R.string.bluetooth_sensor_key));
+ PreferenceHelper.configureBluetoothSensorList(bluetoothPreference);
+ }
+
+ private void updateUnits() {
+ boolean metricUnits = PreferencesUtils.isMetricUnits(getActivity());
+
+ configFrequencyPreference(R.string.voice_frequency_key, metricUnits);
+ configFrequencyPreference(R.string.split_frequency_key, metricUnits);
+ configListPreference(R.string.min_recording_interval_key, R.array.min_recording_interval_values, metricUnits);
+ configListPreference(R.string.recording_distance_interval_key, R.array.recording_distance_interval_values, metricUnits);
+ configListPreference(R.string.max_recording_distance_key, R.array.max_recording_distance_values, metricUnits);
+ configListPreference(R.string.recording_gps_accuracy_key, R.array.recording_gps_accuracy_values, metricUnits);
+ configListPreference(R.string.auto_resume_track_timeout_key, R.array.auto_resume_track_timeout_values, metricUnits);
+ configListPreference(R.string.auto_resume_track_timeout_key, R.array.auto_resume_track_timeout_values, metricUnits);
+
+ final ListPreference statsRatePreferences = findPreference(getString(R.string.stats_rate_key));
+ String[] options = getResources().getStringArray(metricUnits ? R.array.stats_rate_metric_options : R.array.stats_rate_imperial_options);
+ statsRatePreferences.setEntries(options);
+ //TODO This is a hack!!! Need to manually updated the summary as otherwise it will only be updated after scrolling down and up again (bring the object out of view).
+ //Check if this is still needed after upgraded PreferenceFragment.
+ statsRatePreferences.setSummary(statsRatePreferences.getEntry());
}
}
}
diff --git a/src/main/res/xml/settings_recording.xml b/src/main/res/xml/settings_recording.xml
deleted file mode 100644
index 7a644fcaf..000000000
--- a/src/main/res/xml/settings_recording.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/res/xml/settings_statistics.xml b/src/main/res/xml/settings_statistics.xml
deleted file mode 100644
index ef4a58db0..000000000
--- a/src/main/res/xml/settings_statistics.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file