forked from upstream-mirrors/OpenTracks
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:
@@ -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));
|
||||
|
||||
+1
-1
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user