Update MyTracksProviderUtils api to make it clear

the valid values that can be used.
This commit is contained in:
Jimmy Shih
2012-12-18 15:02:50 -08:00
parent f94d27acca
commit 11ca9cc450
15 changed files with 72 additions and 48 deletions
@@ -565,7 +565,7 @@ public class TrackDataHub implements DataSourceListener {
Cursor cursor = null;
try {
cursor = myTracksProviderUtils.getWaypointCursor(
selectedTrackId, 0L, MAX_DISPLAYED_WAYPOINTS_POINTS);
selectedTrackId, -1L, MAX_DISPLAYED_WAYPOINTS_POINTS);
if (cursor != null && cursor.moveToFirst()) {
do {
Waypoint waypoint = myTracksProviderUtils.createWaypoint(cursor);
@@ -242,7 +242,7 @@ class TrackWriterImpl implements TrackWriter {
// problem because we don't try to load them into objects all at the
// same time.
Cursor cursor = null;
cursor = providerUtils.getWaypointCursor(trackId, 0,
cursor = providerUtils.getWaypointCursor(trackId, -1L,
Constants.MAX_LOADED_WAYPOINTS_POINTS);
boolean hasWaypoints = false;
if (cursor != null) {
@@ -311,7 +311,7 @@ class TrackWriterImpl implements TrackWriter {
};
TrackWriterLocationFactory locationFactory = new TrackWriterLocationFactory();
LocationIterator it = providerUtils.getTrackPointLocationIterator(track.getId(), 0, false,
LocationIterator it = providerUtils.getTrackPointLocationIterator(track.getId(), -1L, false,
locationFactory);
try {
int pointNumber = 0;
@@ -210,7 +210,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask {
private boolean uploadAllTrackPoints(Track track) {
Cursor cursor = null;
try {
cursor = myTracksProviderUtils.getTrackPointCursor(trackId, 0, -1, false);
cursor = myTracksProviderUtils.getTrackPointCursor(trackId, -1L, -1, false);
if (cursor == null) {
Log.d(TAG, "Location cursor is null");
return false;
@@ -329,7 +329,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask {
Cursor cursor = null;
try {
cursor = myTracksProviderUtils.getWaypointCursor(
trackId, 0, Constants.MAX_LOADED_WAYPOINTS_POINTS);
trackId, -1L, Constants.MAX_LOADED_WAYPOINTS_POINTS);
if (cursor != null && cursor.moveToFirst()) {
// This will skip the first waypoint (it carries the stats for the
// track).
@@ -253,7 +253,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask {
boolean uploadAllTrackPoints(Track track) {
Cursor cursor = null;
try {
cursor = myTracksProviderUtils.getTrackPointCursor(trackId, 0, -1, false);
cursor = myTracksProviderUtils.getTrackPointCursor(trackId, -1L, -1, false);
if (cursor == null) {
Log.d(TAG, "Location cursor is null");
return false;
@@ -437,7 +437,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask {
Cursor cursor = null;
try {
cursor = myTracksProviderUtils.getWaypointCursor(
trackId, 0, Constants.MAX_LOADED_WAYPOINTS_POINTS);
trackId, -1L, Constants.MAX_LOADED_WAYPOINTS_POINTS);
if (cursor != null && cursor.moveToFirst()) {
// This will skip the first waypoint (it carries the stats for the
// track).
@@ -604,7 +604,7 @@ public class TrackRecordingService extends Service {
try {
// TODO: how to handle very long track.
cursor = myTracksProviderUtils.getTrackPointCursor(
recordingTrackId, -1, Constants.MAX_LOADED_TRACK_POINTS, true);
recordingTrackId, -1L, Constants.MAX_LOADED_TRACK_POINTS, true);
if (cursor == null) {
Log.e(TAG, "Cursor is null.");
} else {
@@ -27,6 +27,7 @@ import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -96,7 +97,31 @@ public class StringUtils {
* @param time the time in milliseconds
*/
public static String formatElapsedTime(long time) {
return DateUtils.formatElapsedTime(time / 1000);
/*
* Temporary workaround for DateUtils.formatElapsedTime(time / 1000). In API
* level 17, it returns strings like "1:0:00" instead of "1:00:00", which
* breaks several unit tests.
*/
long elapsedSeconds = time / 1000;
long hours = 0;
long minutes = 0;
long seconds = 0;
if (elapsedSeconds >= 3600) {
hours = elapsedSeconds / 3600;
elapsedSeconds -= hours * 3600;
}
if (elapsedSeconds >= 60) {
minutes = elapsedSeconds / 60;
elapsedSeconds -= minutes * 60;
}
seconds = elapsedSeconds;
if (hours > 0) {
return String.format(Locale.US, "%d:%02d:%02d", hours, minutes, seconds);
} else {
return String.format(Locale.US, "%02d:%02d", minutes, seconds);
}
}
/**