diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackList.java b/MyTracks/src/com/google/android/apps/mytracks/TrackList.java index 30ff06b94..7cab45364 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackList.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackList.java @@ -310,7 +310,7 @@ public class TrackList extends ListActivity TextView textView = (TextView) view; if (columnIndex == startTimeIdx) { long time = cursor.getLong(startTimeIdx); - textView.setText(String.format("%tc", time)); + textView.setText(StringUtils.formatDateTime(time)); } else if (columnIndex == totalDistanceIdx) { double length = cursor.getDouble(totalDistanceIdx); String lengthUnit = null; diff --git a/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java b/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java index ede45afee..799131d33 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java +++ b/MyTracks/src/com/google/android/apps/mytracks/WaypointsList.java @@ -269,7 +269,7 @@ public class WaypointsList extends ListActivity if (time == 0) { textView.setVisibility(View.GONE); } else { - textView.setText(String.format("%tc", time)); + textView.setText(StringUtils.formatDateTime(time)); textView.setVisibility(View.VISIBLE); } } else if (columnIndex == typeIdx) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupActivityHelper.java b/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupActivityHelper.java index 0ad12be0b..03d5a71e4 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupActivityHelper.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/backup/BackupActivityHelper.java @@ -18,6 +18,7 @@ package com.google.android.apps.mytracks.io.backup; import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.MyTracks; import com.google.android.apps.mytracks.util.FileUtils; +import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.maps.mytracks.R; import android.app.Activity; @@ -32,7 +33,6 @@ import android.util.Log; import android.widget.Toast; import java.io.IOException; -import java.text.DateFormat; import java.util.Arrays; import java.util.Comparator; import java.util.Date; @@ -46,10 +46,6 @@ import java.util.Date; */ public class BackupActivityHelper { - // Since the user sees this format, we use the local timezone - private static final DateFormat DISPLAY_BACKUP_FORMAT = DateFormat.getDateTimeInstance( - DateFormat.SHORT, DateFormat.SHORT); - private static final Comparator REVERSE_DATE_ORDER = new Comparator() { @Override @@ -160,7 +156,7 @@ public class BackupActivityHelper { // Make a user-visible version of the backup filenames final String backupDateStrs[] = new String[backupDates.length]; for (int i = 0; i < backupDates.length; i++) { - backupDateStrs[i] = DISPLAY_BACKUP_FORMAT.format(backupDates[i]); + backupDateStrs[i] = StringUtils.formatDateTime(backupDates[i].getTime()); } // Show a dialog for the user to pick which backup to restore diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/docs/DocsHelper.java b/MyTracks/src/com/google/android/apps/mytracks/io/docs/DocsHelper.java index fb90a2280..f072dc78c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/docs/DocsHelper.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/docs/DocsHelper.java @@ -44,8 +44,6 @@ import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; -import java.text.DateFormat; -import java.util.Date; import java.util.concurrent.atomic.AtomicReference; /** @@ -290,7 +288,7 @@ public class DocsHelper { DocsTagBuilder tagBuilder = new DocsTagBuilder(metricUnits) .append("name", track.getName()) .append("description", track.getDescription()) - .append("date", getDisplayDate(stats.getStartTime())) + .append("date", StringUtils.formatDateTime(stats.getStartTime())) .append("totaltime", StringUtils.formatTimeAlwaysShowingHours( stats.getTotalTime())) .append("movingtime", StringUtils.formatTimeAlwaysShowingHours( @@ -330,19 +328,6 @@ public class DocsHelper { Log.i(Constants.TAG, "Post finished."); } - /** - * Gets the display string for a time. - * - * @param time the time - * @return the display string of the time - */ - private String getDisplayDate(long time) { - DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - Date startTime = new Date(time); - String dateString = format.format(startTime); - return dateString; - } - /** * Writes spreadsheet row data to the indicated worksheet. * diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactory.java b/MyTracks/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactory.java index 3519fa12c..adbb91d2e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactory.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactory.java @@ -16,14 +16,12 @@ package com.google.android.apps.mytracks.services; import com.google.android.apps.mytracks.Constants; +import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.maps.mytracks.R; import android.content.Context; import android.content.SharedPreferences; -import java.text.DateFormat; -import java.util.Date; - /** * Creates a default track name based on the current default track name policy. * @@ -46,8 +44,7 @@ class DefaultTrackNameFactory { */ String newTrackName(long trackId, long startTime) { if (useTimestampTrackName()) { - DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - return formatter.format(new Date(startTime)); + return StringUtils.formatDateTime(startTime); } else { return String.format(context.getString(R.string.track_name_format), trackId); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java index cbbbd0ad7..5f6b6819d 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java @@ -25,6 +25,7 @@ import com.google.android.maps.mytracks.R; import android.content.Context; import android.content.SharedPreferences; +import java.text.DateFormat; import java.text.NumberFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; @@ -44,6 +45,16 @@ public class StringUtils implements DescriptionGenerator { private final Context context; + /** + * Formats the time based on user locale. + * + * @param time time + */ + public static String formatDateTime(long time) { + DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + return formatter.format(new Date(time)); + } + /** * Formats a number of milliseconds as a string. * @@ -303,7 +314,7 @@ public class StringUtils implements DescriptionGenerator { + "%s: %d %s (%d %s)
" + "%s: %d %%
" + "%s: %d %%
" - + "%s: %tc
" + + "%s: %s
" + "%s: %s
" + "", @@ -349,7 +360,7 @@ public class StringUtils implements DescriptionGenerator { // Line 11 context.getString(R.string.send_google_recorded), - new Date(trackStats.getStartTime()), + StringUtils.formatDateTime(trackStats.getStartTime()), // Line 12 context.getString(R.string.track_detail_activity_type_hint), category, diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/docs/DocsHelper_AddTrackRowTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/docs/DocsHelper_AddTrackRowTest.java index 60e4dc33b..af9631828 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/io/docs/DocsHelper_AddTrackRowTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/docs/DocsHelper_AddTrackRowTest.java @@ -18,6 +18,7 @@ package com.google.android.apps.mytracks.io.docs; import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.io.AuthManager; import com.google.android.apps.mytracks.stats.TripStatistics; +import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.maps.mytracks.R; import com.google.android.testing.mocking.AndroidMock; import com.google.android.testing.mocking.UsesMocks; @@ -28,8 +29,6 @@ import android.test.mock.MockContext; import android.test.mock.MockResources; import java.io.IOException; -import java.text.DateFormat; -import java.util.Date; import junit.framework.TestCase; @@ -40,9 +39,7 @@ import junit.framework.TestCase; */ public class DocsHelper_AddTrackRowTest extends TestCase { private static final long TIME = 1288721514000L; - private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance( - DateFormat.SHORT, DateFormat.SHORT); - + private static class StringWritingDocsHelper extends DocsHelper { String writtenSheetUri = null; String writtenData = null; @@ -64,7 +61,7 @@ public class DocsHelper_AddTrackRowTest extends TestCase { + "xmlns:gsx='http://schemas.google.com/spreadsheets/2006/extended'>" + "" + "" - + "" + + "" + "" + "" + "" diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactoryTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactoryTest.java index 9c5fbfc26..a7bbf41cf 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactoryTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/DefaultTrackNameFactoryTest.java @@ -15,12 +15,11 @@ */ package com.google.android.apps.mytracks.services; +import com.google.android.apps.mytracks.util.StringUtils; + import android.content.Context; import android.test.AndroidTestCase; -import java.text.DateFormat; -import java.util.Date; - /** * Tests {@link DefaultTrackNameFactory} * @@ -52,9 +51,7 @@ public class DefaultTrackNameFactoryTest extends AndroidTestCase { DefaultTrackNameFactory factory = new MockDefaultTrackNameFactory(getContext(), true); - DateFormat formatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); - assertEquals(formatter.format(new Date(TIMESTAMP)), - factory.newTrackName(1, TIMESTAMP)); + assertEquals(StringUtils.formatDateTime(TIMESTAMP), factory.newTrackName(1, TIMESTAMP)); } public void testIncrementingTrackName() {