Ensuring the rest of the app can deal with preferences being restored from the backup

This commit is contained in:
Rodrigo Damazio
2010-08-24 21:17:55 -03:00
parent 68a9f1bc46
commit d014f422d2
3 changed files with 76 additions and 56 deletions
@@ -866,21 +866,27 @@ public class MyTracksMap extends MapActivity
} }
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, public void onSharedPreferenceChanged(
String key) { final SharedPreferences sharedPreferences,
final String key) {
if (key != null) { if (key != null) {
uiHandler.post(new Runnable() {
@Override
public void run() {
if (key.equals(getString(R.string.min_required_accuracy_key))) { if (key.equals(getString(R.string.min_required_accuracy_key))) {
minRequiredAccuracy = sharedPreferences.getInt( minRequiredAccuracy = sharedPreferences.getInt(
getString(R.string.min_required_accuracy_key), getString(R.string.min_required_accuracy_key),
MyTracksSettings.DEFAULT_MIN_REQUIRED_ACCURACY); MyTracksSettings.DEFAULT_MIN_REQUIRED_ACCURACY);
} else if (key.equals(getString(R.string.selected_track_key))) { } else if (key.equals(getString(R.string.selected_track_key))) {
long selectedTrackId = long selectedTrackId =
sharedPreferences.getLong(getString(R.string.selected_track_key), sharedPreferences.getLong(
getString(R.string.selected_track_key),
-1); -1);
setSelectedTrack(selectedTrackId); setSelectedTrack(selectedTrackId);
} else if (key.equals(getString(R.string.recording_track_key))) { } else if (key.equals(getString(R.string.recording_track_key))) {
recordingTrackId = recordingTrackId =
sharedPreferences.getLong(getString(R.string.recording_track_key), sharedPreferences.getLong(
getString(R.string.recording_track_key),
-1); -1);
if (selectedTrack != null) { if (selectedTrack != null) {
mapOverlay.setShowEndMarker( mapOverlay.setShowEndMarker(
@@ -889,6 +895,8 @@ public class MyTracksMap extends MapActivity
} }
} }
} }
});
}
} }
@Override @Override
@@ -216,20 +216,25 @@ public class StatsActivity extends Activity
@Override @Override
public void onSharedPreferenceChanged( public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) { final SharedPreferences sharedPreferences, final String key) {
Log.d(MyTracksConstants.TAG, Log.d(MyTracksConstants.TAG,
"StatsActivity: onSharedPreferences changed " + key); "StatsActivity: onSharedPreferences changed " + key);
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (key.equals(getString(R.string.selected_track_key))) { if (key.equals(getString(R.string.selected_track_key))) {
selectedTrackId = selectedTrackId =
sharedPreferences.getLong(getString(R.string.selected_track_key), sharedPreferences.getLong(
getString(R.string.selected_track_key),
-1); -1);
checkLiveTrack(); checkLiveTrack();
restoreStats(); restoreStats();
updateLocation(null); updateLocation(null);
} else if (key.equals(getString(R.string.recording_track_key))) { } else if (key.equals(getString(R.string.recording_track_key))) {
recordingTrackId = recordingTrackId =
sharedPreferences.getLong(getString(R.string.recording_track_key), sharedPreferences.getLong(
getString(R.string.recording_track_key),
-1); -1);
checkLiveTrack(); checkLiveTrack();
restoreStats(); restoreStats();
@@ -243,7 +248,8 @@ public class StatsActivity extends Activity
restoreStats(); restoreStats();
} else if (key.equals(getString(R.string.report_speed_key))) { } else if (key.equals(getString(R.string.report_speed_key))) {
displaySpeed = displaySpeed =
sharedPreferences.getBoolean(getString(R.string.report_speed_key), sharedPreferences.getBoolean(
getString(R.string.report_speed_key),
true); true);
utils.setReportSpeed(displaySpeed); utils.setReportSpeed(displaySpeed);
utils.updateUnits(); utils.updateUnits();
@@ -254,6 +260,8 @@ public class StatsActivity extends Activity
restoreStats(); restoreStats();
} }
} }
});
}
} }
@Override @Override
@@ -353,6 +361,11 @@ public class StatsActivity extends Activity
} }
track = providerUtils.getTrack(selectedTrackId); track = providerUtils.getTrack(selectedTrackId);
if (track == null || track.getStatistics() == null) {
utils.setAllToUnknown();
return;
}
startTime = track.getStatistics().getStartTime(); startTime = track.getStatistics().getStartTime();
if (!selectedTrackIsRecording()) { if (!selectedTrackIsRecording()) {
utils.setTime(R.id.total_time_register, utils.setTime(R.id.total_time_register,
@@ -36,7 +36,6 @@ import android.app.Service;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException;
import android.location.Location; import android.location.Location;