forked from upstream-mirrors/OpenTracks
sync from main
This commit is contained in:
@@ -262,6 +262,6 @@ public class StatsUtilities {
|
||||
R.string.stat_average_moving_pace);
|
||||
setSpeedLabel(R.id.max_speed_label,
|
||||
R.string.stat_max_speed,
|
||||
R.string.stat_min_pace);
|
||||
R.string.stat_fastest_pace);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,14 +87,14 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
private NavControls navControls;
|
||||
private long trackId;
|
||||
|
||||
private MenuItem stopRecording;
|
||||
private MenuItem insertMarker;
|
||||
private MenuItem play;
|
||||
private MenuItem share;
|
||||
private MenuItem sendGoogle;
|
||||
private MenuItem save;
|
||||
private MenuItem edit;
|
||||
private MenuItem delete;
|
||||
private MenuItem stopRecordingMenuItem;
|
||||
private MenuItem insertMarkerMenuItem;
|
||||
private MenuItem playMenuItem;
|
||||
private MenuItem shareMenuItem;
|
||||
private MenuItem sendGoogleMenuItem;
|
||||
private MenuItem saveMenuItem;
|
||||
private MenuItem editMenuItem;
|
||||
private MenuItem deleteMenuItem;
|
||||
|
||||
private final Runnable changeTab = new Runnable() {
|
||||
public void run() {
|
||||
@@ -110,10 +110,8 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
new OnSharedPreferenceChangeListener() {
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||
if (key == null) {
|
||||
return;
|
||||
}
|
||||
if (key.equals(getString(R.string.recording_track_key))) {
|
||||
// Note that key can be null
|
||||
if (getString(R.string.recording_track_key).equals(key)) {
|
||||
updateMenu();
|
||||
}
|
||||
}
|
||||
@@ -210,7 +208,7 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
R.string.track_detail_delete_confirm_message, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
MyTracksProviderUtils.Factory.get(TrackDetailActivity.this).deleteTrack(trackId);
|
||||
deleteCurrentTrack();
|
||||
startTrackListActivity();
|
||||
}
|
||||
});
|
||||
@@ -241,14 +239,14 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
menu.findItem(R.id.track_detail_share_tcx)
|
||||
.setTitle(getString(R.string.menu_share_file, fileTypes[3]));
|
||||
|
||||
stopRecording = menu.findItem(R.id.track_detail_stop_recording);
|
||||
insertMarker = menu.findItem(R.id.track_detail_insert_marker);
|
||||
play = menu.findItem(R.id.track_detail_play);
|
||||
share = menu.findItem(R.id.track_detail_share);
|
||||
sendGoogle = menu.findItem(R.id.track_detail_send_google);
|
||||
save = menu.findItem(R.id.track_detail_save);
|
||||
edit = menu.findItem(R.id.track_detail_edit);
|
||||
delete = menu.findItem(R.id.track_detail_delete);
|
||||
stopRecordingMenuItem = menu.findItem(R.id.track_detail_stop_recording);
|
||||
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);
|
||||
sendGoogleMenuItem = menu.findItem(R.id.track_detail_send_google);
|
||||
saveMenuItem = menu.findItem(R.id.track_detail_save);
|
||||
editMenuItem = menu.findItem(R.id.track_detail_edit);
|
||||
deleteMenuItem = menu.findItem(R.id.track_detail_delete);
|
||||
|
||||
updateMenu();
|
||||
return true;
|
||||
@@ -282,7 +280,7 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
stopRecording();
|
||||
return true;
|
||||
case R.id.track_detail_insert_marker:
|
||||
// TODO:
|
||||
// TODO: Add insert marker when updating WaypointList to ICS
|
||||
return true;
|
||||
case R.id.track_detail_play:
|
||||
if (isEarthInstalled()) {
|
||||
@@ -469,37 +467,45 @@ public class TrackDetailActivity extends TabActivity implements OnTouchListener
|
||||
}
|
||||
|
||||
/**
|
||||
* s Updates the menu items.
|
||||
* Updates the menu items.
|
||||
*
|
||||
* @param isRecording true if recording
|
||||
*/
|
||||
private void updateMenuItems(boolean isRecording) {
|
||||
if (stopRecording != null) {
|
||||
stopRecording.setVisible(isRecording);
|
||||
if (stopRecordingMenuItem != null) {
|
||||
stopRecordingMenuItem.setVisible(isRecording);
|
||||
}
|
||||
if (insertMarker != null) {
|
||||
insertMarker.setVisible(isRecording);
|
||||
if (insertMarkerMenuItem != null) {
|
||||
insertMarkerMenuItem.setVisible(isRecording);
|
||||
}
|
||||
if (play != null) {
|
||||
play.setVisible(!isRecording);
|
||||
if (playMenuItem != null) {
|
||||
playMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (share != null) {
|
||||
share.setVisible(!isRecording);
|
||||
if (shareMenuItem != null) {
|
||||
shareMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (sendGoogle != null) {
|
||||
sendGoogle.setVisible(!isRecording);
|
||||
if (sendGoogleMenuItem != null) {
|
||||
sendGoogleMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (save != null) {
|
||||
save.setVisible(!isRecording);
|
||||
if (saveMenuItem != null) {
|
||||
saveMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (edit != null) {
|
||||
edit.setVisible(!isRecording);
|
||||
if (editMenuItem != null) {
|
||||
editMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
if (delete != null) {
|
||||
delete.setVisible(!isRecording);
|
||||
if (deleteMenuItem != null) {
|
||||
deleteMenuItem.setVisible(!isRecording);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the current track.
|
||||
*/
|
||||
private void deleteCurrentTrack() {
|
||||
long trackId = trackDataHub.getSelectedTrackId();
|
||||
MyTracksProviderUtils.Factory.get(TrackDetailActivity.this).deleteTrack(trackId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the {@link TrackListActivity}.
|
||||
*/
|
||||
|
||||
@@ -86,24 +86,25 @@ public class TrackListActivity extends FragmentActivity {
|
||||
private final Runnable bindChangedCallback = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (startNewRecording) {
|
||||
ITrackRecordingService service = trackRecordingServiceConnection.getServiceIfBound();
|
||||
if (service != null) {
|
||||
try {
|
||||
recordingTrackId = service.startNewTrack();
|
||||
startNewRecording = false;
|
||||
Toast.makeText(
|
||||
TrackListActivity.this, R.string.track_list_record_success, Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
Log.d(TAG, "Started a new recording");
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(
|
||||
TrackListActivity.this, R.string.track_list_record_error, Toast.LENGTH_LONG).show();
|
||||
Log.d(TAG, "Unable to start a new recording.", e);
|
||||
}
|
||||
} else {
|
||||
Log.d(TAG, "service not available to start a new recording");
|
||||
}
|
||||
if (!startNewRecording) {
|
||||
return;
|
||||
}
|
||||
|
||||
ITrackRecordingService service = trackRecordingServiceConnection.getServiceIfBound();
|
||||
if (service == null) {
|
||||
Log.d(TAG, "service not available to start a new recording");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
recordingTrackId = service.startNewTrack();
|
||||
startNewRecording = false;
|
||||
Toast.makeText(
|
||||
TrackListActivity.this, R.string.track_list_record_success, Toast.LENGTH_SHORT).show();
|
||||
Log.d(TAG, "Started a new recording");
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(TrackListActivity.this, R.string.track_list_record_error, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
Log.e(TAG, "Unable to start a new recording.", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -116,13 +117,11 @@ public class TrackListActivity extends FragmentActivity {
|
||||
new OnSharedPreferenceChangeListener() {
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||
if (key == null) {
|
||||
return;
|
||||
}
|
||||
if (key.equals(getString(R.string.metric_units_key))) {
|
||||
// Note that key can be null
|
||||
if (getString(R.string.metric_units_key).equals(key)) {
|
||||
metricUnits = preferences.getBoolean(getString(R.string.metric_units_key), true);
|
||||
}
|
||||
if (key.equals(getString(R.string.recording_track_key))) {
|
||||
if (getString(R.string.recording_track_key).equals(key)) {
|
||||
recordingTrackId = sharedPreferences.getLong(getString(R.string.recording_track_key), -1L);
|
||||
if (isRecording()) {
|
||||
trackRecordingServiceConnection.startAndBind();
|
||||
|
||||
@@ -116,8 +116,8 @@ public class DescriptionGeneratorImpl implements DescriptionGenerator {
|
||||
// Average moving pace
|
||||
writePace(averageMovingSpeed, builder, R.string.description_average_moving_pace, lineBreak);
|
||||
|
||||
// Min pace
|
||||
writePace(maxSpeed, builder, R.string.description_min_pace, lineBreak);
|
||||
// Fastest pace
|
||||
writePace(maxSpeed, builder, R.string.description_fastest_pace, lineBreak);
|
||||
|
||||
// Max elevation
|
||||
writeElevation(stats.getMaxElevation(), builder, R.string.description_max_elevation, lineBreak);
|
||||
|
||||
+5
-2
@@ -19,6 +19,7 @@ package com.google.android.apps.mytracks.io.sendtogoogle;
|
||||
import com.google.android.apps.mytracks.content.Track;
|
||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import android.location.Location;
|
||||
import android.util.Log;
|
||||
@@ -109,11 +110,12 @@ public class SendToGoogleUtils {
|
||||
* @param segment the track segment
|
||||
* @param splitTracks an array of track segments
|
||||
*/
|
||||
private static void prepareTrackSegment(Track segment, ArrayList<Track> splitTracks) {
|
||||
@VisibleForTesting
|
||||
static boolean prepareTrackSegment(Track segment, ArrayList<Track> splitTracks) {
|
||||
// Make sure the segment has at least 2 points
|
||||
if (segment.getLocations().size() < 2) {
|
||||
Log.d(TAG, "segment has less than 2 points");
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
// For a new segment, sets it stop time
|
||||
@@ -128,5 +130,6 @@ public class SendToGoogleUtils {
|
||||
LocationUtils.decimate(segment, 2.0);
|
||||
|
||||
splitTracks.add(segment);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user