Fixing Sandor's fix :)

This commit is contained in:
Rodrigo Damazio
2010-09-08 22:36:59 -03:00
parent 525f1b7781
commit b284c8bc56
4 changed files with 51 additions and 56 deletions
@@ -38,7 +38,7 @@ public abstract class MyTracksConstants {
* Name of the top-level directory inside the SD card where our files will * Name of the top-level directory inside the SD card where our files will
* be read from/written to. * be read from/written to.
*/ */
public static final Object SDCARD_TOP_DIR = "MyTracks"; public static final String SDCARD_TOP_DIR = "MyTracks";
/** /**
* The API level of the Android version we're being run under. * The API level of the Android version we're being run under.
@@ -29,38 +29,39 @@ import com.google.android.maps.mytracks.R;
*/ */
public class PreferenceManager { public class PreferenceManager {
private TrackRecordingService service; private TrackRecordingService service;
private String announcement_frequency_key; private final String announcementFrequencyKey;
private String max_recording_distance_key; private final String maxRecordingDistanceKey;
private String metric_units_key; private final String metricUnitsKey;
private String min_recording_distance_key; private final String minRecordingDistanceKey;
private String min_recording_interval_key; private final String minRecordingIntervalKey;
private String min_required_accuracy_key; private final String minRequiredAccuracyKey;
private String recording_track_key; private final String recordingTrackKey;
private String signal_sampling_frequency_key; private final String signalSamplingFrequencyKey;
private String split_frequency_key; private final String splitFrequencyKey;
public PreferenceManager(TrackRecordingService service) { public PreferenceManager(TrackRecordingService service) {
this.service = service; this.service = service;
announcement_frequency_key =
service.getString(R.string.announcement_frequency_key); announcementFrequencyKey =
max_recording_distance_key = service.getString(R.string.announcement_frequency_key);
service.getString(R.string.max_recording_distance_key); maxRecordingDistanceKey =
metric_units_key = service.getString(R.string.max_recording_distance_key);
service.getString(R.string.metric_units_key); metricUnitsKey =
min_recording_distance_key = service.getString(R.string.metric_units_key);
minRecordingDistanceKey =
service.getString(R.string.min_recording_distance_key); service.getString(R.string.min_recording_distance_key);
min_recording_interval_key = minRecordingIntervalKey =
service.getString(R.string.min_recording_interval_key); service.getString(R.string.min_recording_interval_key);
min_required_accuracy_key = minRequiredAccuracyKey =
service.getString(R.string.min_required_accuracy_key); service.getString(R.string.min_required_accuracy_key);
split_frequency_key = splitFrequencyKey =
service.getString(R.string.split_frequency_key); service.getString(R.string.split_frequency_key);
signal_sampling_frequency_key = signalSamplingFrequencyKey =
service.getString(R.string.signal_sampling_frequency_key); service.getString(R.string.signal_sampling_frequency_key);
recording_track_key = recordingTrackKey =
service.getString(R.string.recording_track_key); service.getString(R.string.recording_track_key);
} }
/** /**
* Notifies that preferences have changed. * Notifies that preferences have changed.
* Call this with key == null to update all preferences in one call. * Call this with key == null to update all preferences in one call.
@@ -76,24 +77,24 @@ public class PreferenceManager {
return; return;
} }
if (key == null || key.equals(min_recording_distance_key)) { if (key == null || key.equals(minRecordingDistanceKey)) {
service.setMinRecordingDistance( service.setMinRecordingDistance(
sharedPreferences.getInt( sharedPreferences.getInt(
min_recording_distance_key, minRecordingDistanceKey,
MyTracksSettings.DEFAULT_MIN_RECORDING_DISTANCE)); MyTracksSettings.DEFAULT_MIN_RECORDING_DISTANCE));
Log.d(MyTracksConstants.TAG, Log.d(MyTracksConstants.TAG,
"TrackRecordingService: minRecordingDistance = " "TrackRecordingService: minRecordingDistance = "
+ service.getMinRecordingDistance()); + service.getMinRecordingDistance());
} }
if (key == null || key.equals(max_recording_distance_key)) { if (key == null || key.equals(maxRecordingDistanceKey)) {
service.setMaxRecordingDistance( service.setMaxRecordingDistance(
sharedPreferences.getInt( sharedPreferences.getInt(
max_recording_distance_key, maxRecordingDistanceKey,
MyTracksSettings.DEFAULT_MAX_RECORDING_DISTANCE)); MyTracksSettings.DEFAULT_MAX_RECORDING_DISTANCE));
} }
if (key == null || key.equals(min_recording_interval_key)) { if (key == null || key.equals(minRecordingIntervalKey)) {
int minRecordingInterval = sharedPreferences.getInt( int minRecordingInterval = sharedPreferences.getInt(
min_recording_interval_key, minRecordingIntervalKey,
MyTracksSettings.DEFAULT_MIN_RECORDING_INTERVAL); MyTracksSettings.DEFAULT_MIN_RECORDING_INTERVAL);
switch (minRecordingInterval) { switch (minRecordingInterval) {
case -2: case -2:
@@ -117,33 +118,34 @@ public class PreferenceManager {
new AbsoluteLocationListenerPolicy(minRecordingInterval * 1000)); new AbsoluteLocationListenerPolicy(minRecordingInterval * 1000));
} }
} }
if (key == null || key.equals(min_required_accuracy_key)) { if (key == null || key.equals(minRequiredAccuracyKey)) {
service.setMinRequiredAccuracy( service.setMinRequiredAccuracy(
sharedPreferences.getInt( sharedPreferences.getInt(
min_required_accuracy_key, minRequiredAccuracyKey,
MyTracksSettings.DEFAULT_MIN_REQUIRED_ACCURACY)); MyTracksSettings.DEFAULT_MIN_REQUIRED_ACCURACY));
} }
if (key == null || key.equals(announcement_frequency_key)) { if (key == null || key.equals(announcementFrequencyKey)) {
service.setAnnouncementFrequency( service.setAnnouncementFrequency(
sharedPreferences.getInt(announcement_frequency_key, sharedPreferences.getInt(announcementFrequencyKey,
-1)); -1));
} }
if (key == null || key.equals(recording_track_key)) { if (key == null || key.equals(recordingTrackKey)) {
service.setRecordingTrackId( service.setRecordingTrackId(
sharedPreferences.getInt(recording_track_key, -1)); sharedPreferences.getLong(recordingTrackKey, -1));
} }
if (key == null || key.equals(split_frequency_key)) { if (key == null || key.equals(splitFrequencyKey)) {
service.getSplitManager().setSplitFrequency( service.getSplitManager().setSplitFrequency(
sharedPreferences.getInt(split_frequency_key, 0)); sharedPreferences.getInt(splitFrequencyKey, 0));
} }
if (key == null || key.equals(signal_sampling_frequency_key)) { if (key == null || key.equals(signalSamplingFrequencyKey)) {
service.getSignalManager().setFrequency( service.getSignalManager().setFrequency(
sharedPreferences.getInt( sharedPreferences.getInt(
signal_sampling_frequency_key, -1), service); signalSamplingFrequencyKey, -1), service);
} }
if (key == null || key.equals(metric_units_key)) { if (key == null || key.equals(metricUnitsKey)) {
service.getSplitManager().setMetricUnits(sharedPreferences.getBoolean( service.getSplitManager().setMetricUnits(
metric_units_key, true)); sharedPreferences.getBoolean(
metricUnitsKey, true));
} }
} }
} }
@@ -76,7 +76,7 @@ public class SplitManager {
if (splitFrequency >= 0) { if (splitFrequency >= 0) {
nextSplitDistance = Double.MAX_VALUE; nextSplitDistance = Double.MAX_VALUE;
Log.d(MyTracksConstants.TAG, Log.d(MyTracksConstants.TAG,
"SplitManager: Distance splits dissabled."); "SplitManager: Distance splits disabled.");
return; return;
} }
@@ -86,13 +86,6 @@ public class ExtremityMonitor {
* Sets the minimum and maximum values. * Sets the minimum and maximum values.
*/ */
public void set(double min, double max) { public void set(double min, double max) {
// If the min is greater than the max and they were actually initialized to
// some values, then we have a problem.
if (min > max && !Double.isInfinite(max) && !Double.isInfinite(min)) {
throw new IllegalArgumentException(
"Invalid min: " + min + " vs max:" + max);
}
this.min = min; this.min = min;
this.max = max; this.max = max;
} }