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