diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java index 252183e33..546c4e59d 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java @@ -105,8 +105,10 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity implements De getMenuInflater().inflate(R.menu.marker_detail, menu); Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId()); - menu.findItem(R.id.marker_detail_edit).setVisible(!track.isSharedWithMe()); - menu.findItem(R.id.marker_detail_delete).setVisible(!track.isSharedWithMe()); + boolean isSharedWithMe = track != null ? track.isSharedWithMe() : true; + + menu.findItem(R.id.marker_detail_edit).setVisible(!isSharedWithMe); + menu.findItem(R.id.marker_detail_delete).setVisible(!isSharedWithMe); return true; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java index 72d9ae603..55223f799 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java @@ -243,12 +243,17 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele insertMarkerMenuItem = menu.findItem(R.id.marker_list_insert_marker); searchMenuItem = menu.findItem(R.id.marker_list_search); ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, null); - if (insertMarkerMenuItem != null) { - insertMarkerMenuItem.setVisible(track.getId() == recordingTrackId && !recordingTrackPaused); - } return true; } + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + if (insertMarkerMenuItem != null) { + insertMarkerMenuItem.setVisible(track.getId() == recordingTrackId && !recordingTrackPaused); + } + return super.onPrepareOptionsMenu(menu); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 16c67c0a2..46f716255 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -88,14 +88,15 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity implements // Preferences private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT; - + private String sensorType = PreferencesUtils.SENSOR_TYPE_DEFAULT; + private MenuItem insertMarkerMenuItem; private MenuItem playMenuItem; private MenuItem shareMenuItem; private MenuItem exportMenuItem; private MenuItem voiceFrequencyMenuItem; private MenuItem splitFrequencyMenuItem; - private MenuItem feedbackMenuItem; + private MenuItem sensorStateMenuItem; private final Runnable bindChangedCallback = new Runnable() { @Override @@ -131,6 +132,11 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity implements R.string.recording_track_paused_key, PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT); } + if (key == null || key.equals( + PreferencesUtils.getKey(TrackDetailActivity.this, R.string.sensor_type_key))) { + sensorType = PreferencesUtils.getString(TrackDetailActivity.this, + R.string.sensor_type_key, PreferencesUtils.SENSOR_TYPE_DEFAULT); + } if (key != null) { runOnUiThread(new Runnable() { @Override @@ -296,30 +302,29 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity implements getMenuInflater().inflate(R.menu.track_detail, menu); Track track = myTracksProviderUtils.getTrack(trackId); - boolean sharedWithMe = track != null ? track.isSharedWithMe() : true; - menu.findItem(R.id.track_detail_edit).setVisible(!sharedWithMe); - shareMenuItem = menu.findItem(R.id.track_detail_share); - shareMenuItem.setEnabled(!sharedWithMe); - shareMenuItem.setVisible(!sharedWithMe); + boolean isSharedWithMe = track != null ? track.isSharedWithMe() : true; + + menu.findItem(R.id.track_detail_edit).setVisible(!isSharedWithMe); + menu.findItem(R.id.track_detail_feedback) + .setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker); playMenuItem = menu.findItem(R.id.track_detail_play); + + shareMenuItem = menu.findItem(R.id.track_detail_share); + shareMenuItem.setEnabled(!isSharedWithMe); + shareMenuItem.setVisible(!isSharedWithMe); + exportMenuItem = menu.findItem(R.id.track_detail_export); voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency); splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency); - feedbackMenuItem = menu.findItem(R.id.track_detail_feedback); - feedbackMenuItem.setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); - - updateMenuItems(trackId == recordingTrackId, recordingTrackPaused); + sensorStateMenuItem = menu.findItem(R.id.track_detail_sensor_state); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { - boolean showSensorState = !PreferencesUtils.SENSOR_TYPE_DEFAULT.equals( - PreferencesUtils.getString( - this, R.string.sensor_type_key, PreferencesUtils.SENSOR_TYPE_DEFAULT)); - menu.findItem(R.id.track_detail_sensor_state).setVisible(showSensorState); + updateMenuItems(trackId == recordingTrackId, recordingTrackPaused); return super.onPrepareOptionsMenu(menu); } @@ -522,6 +527,9 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity implements } if (splitFrequencyMenuItem != null) { splitFrequencyMenuItem.setVisible(isRecording); + } + if (sensorStateMenuItem != null) { + sensorStateMenuItem.setVisible(!PreferencesUtils.SENSOR_TYPE_DEFAULT.equals(sensorType)); } String title; diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 29d146a98..637b21e06 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -294,7 +294,6 @@ public class TrackListActivity extends AbstractSendToGoogleActivity private MenuItem exportAllMenuItem; private MenuItem importAllMenuItem; private MenuItem deleteAllMenuItem; - private MenuItem feedbackMenuItem; private boolean startGps = false; // true to start gps private boolean startNewRecording = false; // true to start a new recording @@ -412,7 +411,7 @@ public class TrackListActivity extends AbstractSendToGoogleActivity @Override protected void onResume() { super.onResume(); - + // Update UI ApiAdapterFactory.getApiAdapter().invalidMenu(this); sectionResourceCursorAdapter.notifyDataSetChanged(); @@ -463,22 +462,28 @@ public class TrackListActivity extends AbstractSendToGoogleActivity public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.track_list, menu); + menu.findItem(R.id.track_list_feedback) + .setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); + searchMenuItem = menu.findItem(R.id.track_list_search); + ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, trackController); + startGpsMenuItem = menu.findItem(R.id.track_list_start_gps); refreshMenuItem = menu.findItem(R.id.track_list_refresh); exportAllMenuItem = menu.findItem(R.id.track_list_export_all); importAllMenuItem = menu.findItem(R.id.track_list_import_all); deleteAllMenuItem = menu.findItem(R.id.track_list_delete_all); - feedbackMenuItem = menu.findItem(R.id.track_list_feedback); - feedbackMenuItem.setVisible(ApiAdapterFactory.getApiAdapter().isGoogleFeedbackAvailable()); - - ApiAdapterFactory.getApiAdapter().configureSearchWidget(this, searchMenuItem, trackController); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { boolean isGpsStarted = TrackRecordingServiceConnectionUtils.isRecordingServiceRunning(this); boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; updateMenuItems(isGpsStarted, isRecording); - return true; + return super.onPrepareOptionsMenu(menu); } - + @Override public boolean onOptionsItemSelected(MenuItem item) { Intent intent;