diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/TrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/TrackWriter.java index cb49c4a51..6c901a5a2 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/TrackWriter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/TrackWriter.java @@ -316,6 +316,8 @@ public class TrackWriter { isLastValid = isValid; } while (locationsCursor.moveToNext()); + locationsCursor.close(); + if (segmentOpen) { writer.writeCloseSegment(); segmentOpen = false; diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/GingerbreadPlatformAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/GingerbreadPlatformAdapter.java index 1df23c861..72dd67371 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/GingerbreadPlatformAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/GingerbreadPlatformAdapter.java @@ -19,7 +19,6 @@ public class GingerbreadPlatformAdapter extends EclairPlatformAdapter { .detectDiskWrites() .detectNetwork() .penaltyLog() - .penaltyDeath() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectAll() diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java index f9e466dce..d47442af2 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java @@ -820,18 +820,22 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { String select = TracksColumns._ID + "=" + id; return findTrackBy(select); } - + @Override public List getAllTracks() { Cursor cursor = getTracksCursor(null); - if (cursor == null || !cursor.moveToFirst()) { - return new ArrayList(); - } + ArrayList tracks = new ArrayList(); + if (cursor != null) { + tracks.ensureCapacity(cursor.getCount()); - List tracks = new ArrayList(cursor.getCount()); - do { - tracks.add(createTrack(cursor)); - } while(cursor.moveToNext()); + if (cursor.moveToFirst()) { + do { + tracks.add(createTrack(cursor)); + } while(cursor.moveToNext()); + } + + cursor.close(); + } return tracks; } diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java index f54f6d6c1..9f48ac210 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java @@ -499,7 +499,7 @@ public class TrackRecordingServiceTest public void testDeleteAllTracks_trackInProgress() throws Exception { createDummyTrack(123, -1, true); assertEquals(1, providerUtils.getAllTracks().size()); - + ITrackRecordingService service = bindAndGetService(createStartIntent()); assertTrue(service.isRecording());