In MarkerList, do not show insert waypoint if paused.

In SearchList, update icon based on recording or paused state.
In TrackDetail, do not show insert waypoint if paused.
In TrackDetail, always show voice frequency and split marker settings.
This commit is contained in:
Jimmy Shih
2012-08-30 13:21:46 -07:00
parent 3b83d12056
commit 378cae7151
6 changed files with 54 additions and 45 deletions
-4
View File
@@ -890,10 +890,6 @@ limitations under the License.
translation_description="The accessibility description for the 'My Location' icon.">
My Location
</string>
<string name="icon_recording"
translation_description="The accessibility description for the 'Recording' icon.">
Recording
</string>
<string name="icon_track"
translation_description="The accessibility description for the 'Track' icon.">
Track
@@ -84,9 +84,10 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
// Note that key can be null
// Note that the key can be null
if (PreferencesUtils.getKey(MarkerListActivity.this, R.string.recording_track_id_key)
.equals(key)) {
.equals(key) || PreferencesUtils.getKey(
MarkerListActivity.this, R.string.recording_track_paused_key).equals(key)) {
updateMenu();
}
}
@@ -187,8 +188,11 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
private void updateMenu() {
if (insertMarkerMenuItem != null) {
insertMarkerMenuItem.setVisible(
trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
boolean isRecording = trackId
== PreferencesUtils.getLong(this, R.string.recording_track_id_key);
boolean isPaused = PreferencesUtils.getBoolean(this, R.string.recording_track_paused_key,
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
insertMarkerMenuItem.setVisible(isRecording && !isPaused);
}
}
@@ -91,10 +91,18 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
if (PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key)
.equals(key)) {
if (key == null || key.equals(
PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key))) {
recordingTrackId = PreferencesUtils.getLong(
SearchListActivity.this, R.string.recording_track_id_key);
}
if (key == null || key.equals(PreferencesUtils.getKey(
SearchListActivity.this, R.string.recording_track_paused_key))) {
recordingTrackPaused = PreferencesUtils.getBoolean(SearchListActivity.this,
R.string.recording_track_paused_key,
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
}
if (key != null) {
arrayAdapter.notifyDataSetChanged();
}
}
@@ -115,6 +123,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
private SearchRecentSuggestions searchRecentSuggestions;
private MyTracksLocationManager myTracksLocationManager;
private long recordingTrackId;
private boolean recordingTrackPaused;
private boolean metricUnits;
private ArrayAdapter<Map<String, Object>> arrayAdapter;
@@ -133,9 +142,10 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
searchEngine = new SearchEngine(myTracksProviderUtils);
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
myTracksLocationManager = new MyTracksLocationManager(this);
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
SharedPreferences sharedPreferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null);
listView = (ListView) findViewById(R.id.search_list);
listView.setEmptyView(findViewById(R.id.search_list_empty));
@@ -425,10 +435,18 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
boolean isRecording = track.getId() == recordingTrackId;
TripStatistics tripStatitics = track.getTripStatistics();
resultMap.put(NAME_FIELD, track.getName());
resultMap.put(ICON_FIELD, isRecording
? R.drawable.menu_record_track : TrackIconUtils.getIconDrawable(track.getIcon()));
resultMap.put(ICON_CONTENT_DESCRIPTION_FIELD, getString(isRecording ? R.string.icon_recording
: R.string.icon_track));
int iconId;
int iconContentDescriptionId;
if (isRecording) {
iconId = recordingTrackPaused ? R.drawable.menu_pause_track : R.drawable.menu_record_track;
iconContentDescriptionId = recordingTrackPaused ? R.string.menu_pause_track
: R.drawable.menu_record_track;
} else {
iconId = TrackIconUtils.getIconDrawable(track.getIcon());
iconContentDescriptionId = R.string.icon_track;
}
resultMap.put(ICON_FIELD, iconId);
resultMap.put(ICON_CONTENT_DESCRIPTION_FIELD, getString(iconContentDescriptionId));
resultMap.put(CATEGORY_FIELD, track.getCategory());
resultMap.put(TOTAL_TIME_FIELD, isRecording ? null : StringUtils.formatElapsedTime(
tripStatitics.getTotalTime()));
@@ -89,8 +89,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
private MenuItem insertMarkerMenuItem;
private MenuItem playMenuItem;
private MenuItem shareMenuItem;
private MenuItem voiceFrequencyMenuItem;
private MenuItem splitFrequencyMenuItem;
private MenuItem sendGoogleMenuItem;
private MenuItem saveMenuItem;
@@ -110,7 +108,8 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
recordingTrackId = PreferencesUtils.getLong(
TrackDetailActivity.this, R.string.recording_track_id_key);
if (key != null) {
updateMenuItems(trackId == recordingTrackId);
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
return;
}
}
if (key == null || key.equals(PreferencesUtils.getKey(
@@ -197,7 +196,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
super.onResume();
trackDataHub.loadTrack(trackId);
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
updateMenuItems(trackId == recordingTrackId);
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
}
@Override
@@ -237,12 +236,10 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
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);
voiceFrequencyMenuItem = menu.findItem(R.id.track_detail_voice_frequency);
splitFrequencyMenuItem = menu.findItem(R.id.track_detail_split_frequency);
sendGoogleMenuItem = menu.findItem(R.id.track_detail_send_google);
saveMenuItem = menu.findItem(R.id.track_detail_save);
updateMenuItems(trackId == recordingTrackId);
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
return true;
}
@@ -267,18 +264,15 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
Intent intent;
switch (item.getItemId()) {
case R.id.track_detail_record_track:
recordingTrackPaused = false;
updateMenuItems(true);
updateMenuItems(true, false);
TrackRecordingServiceConnectionUtils.resumeTrack(trackRecordingServiceConnection);
return true;
case R.id.track_detail_pause_track:
recordingTrackPaused = true;
updateMenuItems(true);
updateMenuItems(true, true);
TrackRecordingServiceConnectionUtils.pauseTrack(trackRecordingServiceConnection);
return true;
case R.id.track_detail_stop_recording:
recordingTrackPaused = true;
updateMenuItems(false);
updateMenuItems(false, true);
TrackRecordingServiceConnectionUtils.stopRecording(
this, trackRecordingServiceConnection, true);
return true;
@@ -369,7 +363,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
@Override
public boolean onTrackballEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (trackId == recordingTrackId) {
if (trackId == recordingTrackId && !recordingTrackPaused) {
TrackRecordingServiceConnectionUtils.addMarker(
this, trackRecordingServiceConnection, WaypointCreationRequest.DEFAULT_WAYPOINT);
return true;
@@ -442,18 +436,18 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
*
* @param isRecording true if recording
*/
private void updateMenuItems(boolean isRecording) {
private void updateMenuItems(boolean isRecording, boolean isPaused) {
if (recordTrackMenuItem != null) {
recordTrackMenuItem.setVisible(isRecording && recordingTrackPaused);
recordTrackMenuItem.setVisible(isRecording && isPaused);
}
if (pauseTrackMenuItem != null) {
pauseTrackMenuItem.setVisible(isRecording && !recordingTrackPaused);
pauseTrackMenuItem.setVisible(isRecording && !isPaused);
}
if (stopRecordingMenuItem != null) {
stopRecordingMenuItem.setVisible(isRecording);
}
if (insertMarkerMenuItem != null) {
insertMarkerMenuItem.setVisible(isRecording);
insertMarkerMenuItem.setVisible(isRecording && !isPaused);
}
if (playMenuItem != null) {
playMenuItem.setVisible(!isRecording);
@@ -461,12 +455,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
if (shareMenuItem != null) {
shareMenuItem.setVisible(!isRecording);
}
if (voiceFrequencyMenuItem != null) {
voiceFrequencyMenuItem.setVisible(isRecording);
}
if (splitFrequencyMenuItem != null) {
splitFrequencyMenuItem.setVisible(isRecording);
}
if (sendGoogleMenuItem != null) {
sendGoogleMenuItem.setVisible(!isRecording);
}
@@ -476,7 +464,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
String title;
if (isRecording) {
title = getString(
recordingTrackPaused ? R.string.generic_paused : R.string.generic_recording);
isPaused ? R.string.generic_paused : R.string.generic_recording);
} else {
Track track = MyTracksProviderUtils.Factory.get(this).getTrack(trackId);
title = track != null ? track.getName() : getString(R.string.my_tracks_app_name);
@@ -298,14 +298,17 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
boolean isRecording = cursor.getLong(idIndex) == recordingTrackId;
String name = cursor.getString(nameIndex);
int iconId;
int iconContentDescriptionId;
if (isRecording) {
iconId = recordingTrackPaused ? R.drawable.menu_pause_track
: R.drawable.menu_record_track;
iconContentDescriptionId = recordingTrackPaused ? R.string.menu_pause_track
: R.string.menu_record_track;
} else {
iconId = TrackIconUtils.getIconDrawable(cursor.getString(iconIndex));
iconContentDescriptionId = R.string.icon_track;
}
String iconContentDescription = getString(
isRecording ? R.string.icon_recording : R.string.icon_track);
String iconContentDescription = getString(iconContentDescriptionId);
String category = cursor.getString(categoryIndex);
String totalTime = isRecording ? null
: StringUtils.formatElapsedTime(cursor.getLong(totalTimeIndex));
@@ -161,7 +161,7 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
if (EndToEndTestUtils.hasActionBar) {
// Check the title is Recording.
assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks
.getString(R.string.icon_recording)));
.getString(R.string.generic_recording)));
}
createWaypoint();