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.">
|
translation_description="The accessibility description for the 'My Location' icon.">
|
||||||
My Location
|
My Location
|
||||||
</string>
|
</string>
|
||||||
<string name="icon_recording"
|
|
||||||
translation_description="The accessibility description for the 'Recording' icon.">
|
|
||||||
Recording
|
|
||||||
</string>
|
|
||||||
<string name="icon_track"
|
<string name="icon_track"
|
||||||
translation_description="The accessibility description for the 'Track' icon.">
|
translation_description="The accessibility description for the 'Track' icon.">
|
||||||
Track
|
Track
|
||||||
|
|||||||
@@ -84,9 +84,10 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
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)
|
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();
|
updateMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,8 +188,11 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
|
|
||||||
private void updateMenu() {
|
private void updateMenu() {
|
||||||
if (insertMarkerMenuItem != null) {
|
if (insertMarkerMenuItem != null) {
|
||||||
insertMarkerMenuItem.setVisible(
|
boolean isRecording = trackId
|
||||||
trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
|
== 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() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
if (PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key)
|
if (key == null || key.equals(
|
||||||
.equals(key)) {
|
PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key))) {
|
||||||
recordingTrackId = PreferencesUtils.getLong(
|
recordingTrackId = PreferencesUtils.getLong(
|
||||||
SearchListActivity.this, R.string.recording_track_id_key);
|
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();
|
arrayAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -115,6 +123,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
private SearchRecentSuggestions searchRecentSuggestions;
|
private SearchRecentSuggestions searchRecentSuggestions;
|
||||||
private MyTracksLocationManager myTracksLocationManager;
|
private MyTracksLocationManager myTracksLocationManager;
|
||||||
private long recordingTrackId;
|
private long recordingTrackId;
|
||||||
|
private boolean recordingTrackPaused;
|
||||||
private boolean metricUnits;
|
private boolean metricUnits;
|
||||||
private ArrayAdapter<Map<String, Object>> arrayAdapter;
|
private ArrayAdapter<Map<String, Object>> arrayAdapter;
|
||||||
|
|
||||||
@@ -133,9 +142,10 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
searchEngine = new SearchEngine(myTracksProviderUtils);
|
searchEngine = new SearchEngine(myTracksProviderUtils);
|
||||||
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
||||||
myTracksLocationManager = new MyTracksLocationManager(this);
|
myTracksLocationManager = new MyTracksLocationManager(this);
|
||||||
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
SharedPreferences sharedPreferences = getSharedPreferences(
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null);
|
||||||
|
|
||||||
listView = (ListView) findViewById(R.id.search_list);
|
listView = (ListView) findViewById(R.id.search_list);
|
||||||
listView.setEmptyView(findViewById(R.id.search_list_empty));
|
listView.setEmptyView(findViewById(R.id.search_list_empty));
|
||||||
@@ -425,10 +435,18 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
boolean isRecording = track.getId() == recordingTrackId;
|
boolean isRecording = track.getId() == recordingTrackId;
|
||||||
TripStatistics tripStatitics = track.getTripStatistics();
|
TripStatistics tripStatitics = track.getTripStatistics();
|
||||||
resultMap.put(NAME_FIELD, track.getName());
|
resultMap.put(NAME_FIELD, track.getName());
|
||||||
resultMap.put(ICON_FIELD, isRecording
|
int iconId;
|
||||||
? R.drawable.menu_record_track : TrackIconUtils.getIconDrawable(track.getIcon()));
|
int iconContentDescriptionId;
|
||||||
resultMap.put(ICON_CONTENT_DESCRIPTION_FIELD, getString(isRecording ? R.string.icon_recording
|
if (isRecording) {
|
||||||
: R.string.icon_track));
|
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(CATEGORY_FIELD, track.getCategory());
|
||||||
resultMap.put(TOTAL_TIME_FIELD, isRecording ? null : StringUtils.formatElapsedTime(
|
resultMap.put(TOTAL_TIME_FIELD, isRecording ? null : StringUtils.formatElapsedTime(
|
||||||
tripStatitics.getTotalTime()));
|
tripStatitics.getTotalTime()));
|
||||||
|
|||||||
@@ -89,8 +89,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
private MenuItem insertMarkerMenuItem;
|
private MenuItem insertMarkerMenuItem;
|
||||||
private MenuItem playMenuItem;
|
private MenuItem playMenuItem;
|
||||||
private MenuItem shareMenuItem;
|
private MenuItem shareMenuItem;
|
||||||
private MenuItem voiceFrequencyMenuItem;
|
|
||||||
private MenuItem splitFrequencyMenuItem;
|
|
||||||
private MenuItem sendGoogleMenuItem;
|
private MenuItem sendGoogleMenuItem;
|
||||||
private MenuItem saveMenuItem;
|
private MenuItem saveMenuItem;
|
||||||
|
|
||||||
@@ -110,7 +108,8 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
recordingTrackId = PreferencesUtils.getLong(
|
recordingTrackId = PreferencesUtils.getLong(
|
||||||
TrackDetailActivity.this, R.string.recording_track_id_key);
|
TrackDetailActivity.this, R.string.recording_track_id_key);
|
||||||
if (key != null) {
|
if (key != null) {
|
||||||
updateMenuItems(trackId == recordingTrackId);
|
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(
|
if (key == null || key.equals(PreferencesUtils.getKey(
|
||||||
@@ -197,7 +196,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
trackDataHub.loadTrack(trackId);
|
trackDataHub.loadTrack(trackId);
|
||||||
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
|
||||||
updateMenuItems(trackId == recordingTrackId);
|
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -237,12 +236,10 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
insertMarkerMenuItem = menu.findItem(R.id.track_detail_insert_marker);
|
||||||
playMenuItem = menu.findItem(R.id.track_detail_play);
|
playMenuItem = menu.findItem(R.id.track_detail_play);
|
||||||
shareMenuItem = menu.findItem(R.id.track_detail_share);
|
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);
|
sendGoogleMenuItem = menu.findItem(R.id.track_detail_send_google);
|
||||||
saveMenuItem = menu.findItem(R.id.track_detail_save);
|
saveMenuItem = menu.findItem(R.id.track_detail_save);
|
||||||
|
|
||||||
updateMenuItems(trackId == recordingTrackId);
|
updateMenuItems(trackId == recordingTrackId, recordingTrackPaused);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,18 +264,15 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
Intent intent;
|
Intent intent;
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.track_detail_record_track:
|
case R.id.track_detail_record_track:
|
||||||
recordingTrackPaused = false;
|
updateMenuItems(true, false);
|
||||||
updateMenuItems(true);
|
|
||||||
TrackRecordingServiceConnectionUtils.resumeTrack(trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.resumeTrack(trackRecordingServiceConnection);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_pause_track:
|
case R.id.track_detail_pause_track:
|
||||||
recordingTrackPaused = true;
|
updateMenuItems(true, true);
|
||||||
updateMenuItems(true);
|
|
||||||
TrackRecordingServiceConnectionUtils.pauseTrack(trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.pauseTrack(trackRecordingServiceConnection);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_stop_recording:
|
case R.id.track_detail_stop_recording:
|
||||||
recordingTrackPaused = true;
|
updateMenuItems(false, true);
|
||||||
updateMenuItems(false);
|
|
||||||
TrackRecordingServiceConnectionUtils.stopRecording(
|
TrackRecordingServiceConnectionUtils.stopRecording(
|
||||||
this, trackRecordingServiceConnection, true);
|
this, trackRecordingServiceConnection, true);
|
||||||
return true;
|
return true;
|
||||||
@@ -369,7 +363,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
@Override
|
@Override
|
||||||
public boolean onTrackballEvent(MotionEvent event) {
|
public boolean onTrackballEvent(MotionEvent event) {
|
||||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
if (trackId == recordingTrackId) {
|
if (trackId == recordingTrackId && !recordingTrackPaused) {
|
||||||
TrackRecordingServiceConnectionUtils.addMarker(
|
TrackRecordingServiceConnectionUtils.addMarker(
|
||||||
this, trackRecordingServiceConnection, WaypointCreationRequest.DEFAULT_WAYPOINT);
|
this, trackRecordingServiceConnection, WaypointCreationRequest.DEFAULT_WAYPOINT);
|
||||||
return true;
|
return true;
|
||||||
@@ -442,18 +436,18 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
*
|
*
|
||||||
* @param isRecording true if recording
|
* @param isRecording true if recording
|
||||||
*/
|
*/
|
||||||
private void updateMenuItems(boolean isRecording) {
|
private void updateMenuItems(boolean isRecording, boolean isPaused) {
|
||||||
if (recordTrackMenuItem != null) {
|
if (recordTrackMenuItem != null) {
|
||||||
recordTrackMenuItem.setVisible(isRecording && recordingTrackPaused);
|
recordTrackMenuItem.setVisible(isRecording && isPaused);
|
||||||
}
|
}
|
||||||
if (pauseTrackMenuItem != null) {
|
if (pauseTrackMenuItem != null) {
|
||||||
pauseTrackMenuItem.setVisible(isRecording && !recordingTrackPaused);
|
pauseTrackMenuItem.setVisible(isRecording && !isPaused);
|
||||||
}
|
}
|
||||||
if (stopRecordingMenuItem != null) {
|
if (stopRecordingMenuItem != null) {
|
||||||
stopRecordingMenuItem.setVisible(isRecording);
|
stopRecordingMenuItem.setVisible(isRecording);
|
||||||
}
|
}
|
||||||
if (insertMarkerMenuItem != null) {
|
if (insertMarkerMenuItem != null) {
|
||||||
insertMarkerMenuItem.setVisible(isRecording);
|
insertMarkerMenuItem.setVisible(isRecording && !isPaused);
|
||||||
}
|
}
|
||||||
if (playMenuItem != null) {
|
if (playMenuItem != null) {
|
||||||
playMenuItem.setVisible(!isRecording);
|
playMenuItem.setVisible(!isRecording);
|
||||||
@@ -461,12 +455,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
if (shareMenuItem != null) {
|
if (shareMenuItem != null) {
|
||||||
shareMenuItem.setVisible(!isRecording);
|
shareMenuItem.setVisible(!isRecording);
|
||||||
}
|
}
|
||||||
if (voiceFrequencyMenuItem != null) {
|
|
||||||
voiceFrequencyMenuItem.setVisible(isRecording);
|
|
||||||
}
|
|
||||||
if (splitFrequencyMenuItem != null) {
|
|
||||||
splitFrequencyMenuItem.setVisible(isRecording);
|
|
||||||
}
|
|
||||||
if (sendGoogleMenuItem != null) {
|
if (sendGoogleMenuItem != null) {
|
||||||
sendGoogleMenuItem.setVisible(!isRecording);
|
sendGoogleMenuItem.setVisible(!isRecording);
|
||||||
}
|
}
|
||||||
@@ -476,7 +464,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
String title;
|
String title;
|
||||||
if (isRecording) {
|
if (isRecording) {
|
||||||
title = getString(
|
title = getString(
|
||||||
recordingTrackPaused ? R.string.generic_paused : R.string.generic_recording);
|
isPaused ? R.string.generic_paused : R.string.generic_recording);
|
||||||
} else {
|
} else {
|
||||||
Track track = MyTracksProviderUtils.Factory.get(this).getTrack(trackId);
|
Track track = MyTracksProviderUtils.Factory.get(this).getTrack(trackId);
|
||||||
title = track != null ? track.getName() : getString(R.string.my_tracks_app_name);
|
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;
|
boolean isRecording = cursor.getLong(idIndex) == recordingTrackId;
|
||||||
String name = cursor.getString(nameIndex);
|
String name = cursor.getString(nameIndex);
|
||||||
int iconId;
|
int iconId;
|
||||||
|
int iconContentDescriptionId;
|
||||||
if (isRecording) {
|
if (isRecording) {
|
||||||
iconId = recordingTrackPaused ? R.drawable.menu_pause_track
|
iconId = recordingTrackPaused ? R.drawable.menu_pause_track
|
||||||
: R.drawable.menu_record_track;
|
: R.drawable.menu_record_track;
|
||||||
|
iconContentDescriptionId = recordingTrackPaused ? R.string.menu_pause_track
|
||||||
|
: R.string.menu_record_track;
|
||||||
} else {
|
} else {
|
||||||
iconId = TrackIconUtils.getIconDrawable(cursor.getString(iconIndex));
|
iconId = TrackIconUtils.getIconDrawable(cursor.getString(iconIndex));
|
||||||
|
iconContentDescriptionId = R.string.icon_track;
|
||||||
}
|
}
|
||||||
String iconContentDescription = getString(
|
String iconContentDescription = getString(iconContentDescriptionId);
|
||||||
isRecording ? R.string.icon_recording : R.string.icon_track);
|
|
||||||
String category = cursor.getString(categoryIndex);
|
String category = cursor.getString(categoryIndex);
|
||||||
String totalTime = isRecording ? null
|
String totalTime = isRecording ? null
|
||||||
: StringUtils.formatElapsedTime(cursor.getLong(totalTimeIndex));
|
: StringUtils.formatElapsedTime(cursor.getLong(totalTimeIndex));
|
||||||
|
|||||||
+1
-1
@@ -161,7 +161,7 @@ public class CreateAndSendTrackTest extends ActivityInstrumentationTestCase2<Tra
|
|||||||
if (EndToEndTestUtils.hasActionBar) {
|
if (EndToEndTestUtils.hasActionBar) {
|
||||||
// Check the title is Recording.
|
// Check the title is Recording.
|
||||||
assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks
|
assertTrue(EndToEndTestUtils.SOLO.searchText(activityMyTracks
|
||||||
.getString(R.string.icon_recording)));
|
.getString(R.string.generic_recording)));
|
||||||
}
|
}
|
||||||
|
|
||||||
createWaypoint();
|
createWaypoint();
|
||||||
|
|||||||
Reference in New Issue
Block a user