update UI in onSharedPreferenceChangedListener in the UI thread

This commit is contained in:
Jimmy Shih
2012-11-02 14:21:59 -07:00
parent b4eaad984e
commit 3c59a33759
6 changed files with 45 additions and 27 deletions
@@ -94,8 +94,13 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
} }
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
updateMenu(); updateMenu();
} }
});
}
} }
}; };
@@ -110,8 +110,13 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
} }
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
arrayAdapter.notifyDataSetChanged(); arrayAdapter.notifyDataSetChanged();
} }
});
}
} }
}; };
@@ -133,10 +133,15 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
} }
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
boolean isRecording = trackId == recordingTrackId; boolean isRecording = trackId == recordingTrackId;
updateMenuItems(isRecording, recordingTrackPaused); updateMenuItems(isRecording, recordingTrackPaused);
trackController.update(isRecording, recordingTrackPaused); trackController.update(isRecording, recordingTrackPaused);
} }
});
}
} }
}; };
@@ -144,38 +144,31 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key))) { PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key))) {
metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this, metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this,
R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
if (key != null) {
resourceCursorAdapter.notifyDataSetChanged();
return;
}
} }
if (key == null || key.equals( if (key == null || key.equals(
PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key))) { PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key))) {
recordingTrackId = PreferencesUtils.getLong( recordingTrackId = PreferencesUtils.getLong(
TrackListActivity.this, R.string.recording_track_id_key); TrackListActivity.this, R.string.recording_track_id_key);
if (key != null) { if (key != null && recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT) {
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
if (isRecording) {
trackRecordingServiceConnection.startAndBind(); trackRecordingServiceConnection.startAndBind();
} }
updateMenuItems(isRecording);
resourceCursorAdapter.notifyDataSetChanged();
trackController.update(isRecording, recordingTrackPaused);
return;
}
} }
if (key == null || key.equals(PreferencesUtils.getKey( if (key == null || key.equals(PreferencesUtils.getKey(
TrackListActivity.this, R.string.recording_track_paused_key))) { TrackListActivity.this, R.string.recording_track_paused_key))) {
recordingTrackPaused = PreferencesUtils.getBoolean(TrackListActivity.this, recordingTrackPaused = PreferencesUtils.getBoolean(TrackListActivity.this,
R.string.recording_track_paused_key, R.string.recording_track_paused_key,
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
if (key != null) {
resourceCursorAdapter.notifyDataSetChanged();
trackController.update(
recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT,
recordingTrackPaused);
return;
} }
if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
updateMenuItems(isRecording);
resourceCursorAdapter.notifyDataSetChanged();
trackController.update(isRecording, recordingTrackPaused);
}
});
} }
} }
}; };
@@ -63,8 +63,13 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
BackupSettingsActivity.this, R.string.recording_track_id_key); BackupSettingsActivity.this, R.string.recording_track_id_key);
} }
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
updateUi(); updateUi();
} }
});
}
} }
}; };
@@ -47,8 +47,13 @@ public class StatsSettingsActivity extends AbstractSettingsActivity {
R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT); R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
} }
if (key != null) { if (key != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
updateUi(); updateUi();
} }
});
}
} }
}; };