forked from upstream-mirrors/OpenTracks
Update Settings if the units (metric/imperial) are changed.
This commit is contained in:
@@ -223,8 +223,8 @@ public class ChartView extends View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets chart by distance. It is expected that after changing this value, data
|
* Sets chart by distance.
|
||||||
* will be reloaded.
|
* It is expected that after changing this value, data will be reloaded.
|
||||||
*
|
*
|
||||||
* @param value true for by distance, false for by time
|
* @param value true for by distance, false for by time
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -352,8 +352,8 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resumes the trackDataHub. Needs to be synchronized because trackDataHub can
|
* Resumes the trackDataHub.
|
||||||
* be accessed by multiple threads.
|
* Needs to be synchronized because trackDataHub can be accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void resumeTrackDataHub() {
|
private synchronized void resumeTrackDataHub() {
|
||||||
trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub();
|
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
|
* Pauses the trackDataHub.
|
||||||
* be accessed by multiple threads.
|
* Needs to be synchronized because trackDataHub can be accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void pauseTrackDataHub() {
|
private synchronized void pauseTrackDataHub() {
|
||||||
trackDataHub.unregisterTrackDataListener(this);
|
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
|
* Returns true if the selected track is recording.
|
||||||
* because trackDataHub can be accessed by multiple threads.
|
* Needs to be synchronized because trackDataHub can be accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized boolean isSelectedTrackRecording() {
|
private synchronized boolean isSelectedTrackRecording() {
|
||||||
return trackDataHub != null && trackDataHub.isSelectedTrackRecording();
|
return trackDataHub != null && trackDataHub.isSelectedTrackRecording();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reloads the trackDataHub. Needs to be synchronized because trackDataHub can
|
* Reloads the trackDataHub.
|
||||||
* be accessed by multiple threads.
|
* Needs to be synchronized because trackDataHub can be accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void reloadTrackDataHub() {
|
private synchronized void reloadTrackDataHub() {
|
||||||
if (trackDataHub != null) {
|
if (trackDataHub != null) {
|
||||||
@@ -389,18 +389,12 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* To zoom in.
|
|
||||||
*/
|
|
||||||
private void zoomIn() {
|
private void zoomIn() {
|
||||||
chartView.zoomIn();
|
chartView.zoomIn();
|
||||||
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
|
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
|
||||||
zoomControls.setIsZoomOutEnabled(chartView.canZoomOut());
|
zoomControls.setIsZoomOutEnabled(chartView.canZoomOut());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* To zoom out.
|
|
||||||
*/
|
|
||||||
private void zoomOut() {
|
private void zoomOut() {
|
||||||
chartView.zoomOut();
|
chartView.zoomOut();
|
||||||
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
|
zoomControls.setIsZoomInEnabled(chartView.canZoomIn());
|
||||||
@@ -438,9 +432,6 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
double elevation = Double.NaN;
|
double elevation = Double.NaN;
|
||||||
double speed = Double.NaN;
|
double speed = Double.NaN;
|
||||||
double pace = Double.NaN;
|
double pace = Double.NaN;
|
||||||
double heartRate = Double.NaN;
|
|
||||||
double cadence = Double.NaN;
|
|
||||||
double power = Double.NaN;
|
|
||||||
|
|
||||||
if (tripStatisticsUpdater != null) {
|
if (tripStatisticsUpdater != null) {
|
||||||
tripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
|
tripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
|
||||||
@@ -466,6 +457,10 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
}
|
}
|
||||||
pace = speed == 0 ? 0.0 : 60.0 / speed;
|
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) {
|
if (location instanceof SensorDataSetLocation && ((SensorDataSetLocation) location).getSensorDataSet() != null) {
|
||||||
SensorDataSet sensorDataSet = ((SensorDataSetLocation) location).getSensorDataSet();
|
SensorDataSet sensorDataSet = ((SensorDataSetLocation) location).getSensorDataSet();
|
||||||
if (sensorDataSet.hasHeartRate()) {
|
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) {
|
if (data != null) {
|
||||||
data[0] = timeOrDistance;
|
data[0] = timeOrDistance;
|
||||||
data[1] = elevation;
|
data[1] = elevation;
|
||||||
|
|||||||
@@ -45,6 +45,15 @@ public class SettingsActivity extends FragmentActivity implements ChooseActivity
|
|||||||
updateUI();
|
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
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.settings);
|
addPreferencesFromResource(R.xml.settings);
|
||||||
|
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);
|
|
||||||
|
|
||||||
ListPreference bluetoothPreference = findPreference(getString(R.string.bluetooth_sensor_key));
|
|
||||||
PreferenceHelper.configureBluetoothSensorList(bluetoothPreference);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -151,6 +147,29 @@ public class SettingsActivity extends FragmentActivity implements ChooseActivity
|
|||||||
|
|
||||||
Preference speedCheckBoxPreference = findPreference(getString(R.string.chart_show_speed_key));
|
Preference speedCheckBoxPreference = findPreference(getString(R.string.chart_show_speed_key));
|
||||||
speedCheckBoxPreference.setTitle(PreferencesUtils.isReportSpeed(getActivity()) ? R.string.stats_speed : R.string.stats_pace);
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,79 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:title="@string/settings_recording">
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="0"
|
|
||||||
android:entryValues="@array/frequency_values"
|
|
||||||
android:key="@string/voice_frequency_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/menu_voice_frequency" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="0"
|
|
||||||
android:entryValues="@array/frequency_values"
|
|
||||||
android:key="@string/split_frequency_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/menu_split_frequency" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="@string/settings_recording_track_name_date_iso_8601_value"
|
|
||||||
android:entries="@array/track_name_options"
|
|
||||||
android:entryValues="@array/track_name_values"
|
|
||||||
android:key="@string/track_name_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_track_name_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="0"
|
|
||||||
android:entryValues="@array/min_recording_interval_values"
|
|
||||||
android:key="@string/min_recording_interval_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_min_recording_interval_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="10"
|
|
||||||
android:entryValues="@array/recording_distance_interval_values"
|
|
||||||
android:key="@string/recording_distance_interval_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_min_recording_distance_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="200"
|
|
||||||
android:entryValues="@array/max_recording_distance_values"
|
|
||||||
android:key="@string/max_recording_distance_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_max_recording_distance_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="50"
|
|
||||||
android:entryValues="@array/recording_gps_accuracy_values"
|
|
||||||
android:key="@string/recording_gps_accuracy_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_min_required_accuracy_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="10"
|
|
||||||
android:entryValues="@array/auto_resume_track_timeout_values"
|
|
||||||
android:entries="@array/auto_resume_track_timeout_values"
|
|
||||||
android:key="@string/auto_resume_track_timeout_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_recording_auto_resume_track_timeout_title" />
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:key="@string/trackdetail_show_on_lockscreen_while_recording_key"
|
|
||||||
android:summary="@string/settings_recording_show_on_lockscreen_while_recording_summary"
|
|
||||||
android:title="@string/settings_recording_show_on_lockscreen_while_recording_title" />
|
|
||||||
<!-- <de.dennisguse.opentracks.settings.ActivityTypePreference-->
|
|
||||||
<!-- android:defaultValue="@string/activity_type_running"-->
|
|
||||||
<!-- android:key="@string/default_activity_key"-->
|
|
||||||
<!-- android:summary="%s"-->
|
|
||||||
<!-- android:title="@string/settings_recording_default_activity_title" />-->
|
|
||||||
</PreferenceScreen>
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:title="@string/track_detail_stats_tab">
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="@string/stats_units_metric"
|
|
||||||
android:entries="@array/stats_units_options"
|
|
||||||
android:entryValues="@array/stats_units_values"
|
|
||||||
android:key="@string/stats_units_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_stats_units_title" />
|
|
||||||
<ListPreference
|
|
||||||
android:defaultValue="@string/stats_rate_speed"
|
|
||||||
android:entries="@array/stats_rate_metric_options"
|
|
||||||
android:entryValues="@array/stats_rate_values"
|
|
||||||
android:key="@string/stats_rate_key"
|
|
||||||
android:summary="%s"
|
|
||||||
android:title="@string/settings_stats_rate_title" />
|
|
||||||
<PreferenceCategory android:title="@string/settings_show">
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:key="@string/stats_show_grade_elevation_key"
|
|
||||||
android:title="@string/settings_stats_grade_elevation" />
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:defaultValue="false"
|
|
||||||
android:key="@string/stats_show_coordinate_key"
|
|
||||||
android:title="@string/settings_stats_coordinate" />
|
|
||||||
</PreferenceCategory>
|
|
||||||
</PreferenceScreen>
|
|
||||||
Reference in New Issue
Block a user