From 6488e7982725f3174035e0c6562bae425a204c9a Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Tue, 26 Jun 2012 13:17:48 +0200 Subject: [PATCH] Fixed bug that caused the application to crash when playing the last played media of a feed that was already deleted --- src/de/podfetcher/feed/FeedManager.java | 21 ++++++++++++------- .../podfetcher/service/PlaybackService.java | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/de/podfetcher/feed/FeedManager.java b/src/de/podfetcher/feed/FeedManager.java index a9eb4e015..745ebf461 100644 --- a/src/de/podfetcher/feed/FeedManager.java +++ b/src/de/podfetcher/feed/FeedManager.java @@ -145,9 +145,10 @@ public class FeedManager { unreadItems.add(item); } } - - /** + + /** * Sets the 'read' attribute of all FeedItems of a specific feed to true + * * @param context */ public void markFeedRead(Context context, Feed feed) { @@ -323,12 +324,15 @@ public class FeedManager { /** Get a FeedMedia object by the id of the Media object and the feed object */ public FeedMedia getFeedMedia(long id, Feed feed) { - for (FeedItem item : feed.getItems()) { - if (item.getMedia().getId() == id) { - return item.getMedia(); + if (feed != null) { + for (FeedItem item : feed.getItems()) { + if (item.getMedia().getId() == id) { + return item.getMedia(); + } } } Log.e(TAG, "Couldn't find FeedMedia with id " + id); + if (feed == null) Log.e(TAG, "Feed was null"); return null; } @@ -371,7 +375,7 @@ public class FeedManager { } private void extractFeedlistFromCursor(Context context, PodDBAdapter adapter) { - + Cursor feedlistCursor = adapter.getAllFeedsCursor(); if (feedlistCursor.moveToFirst()) { do { @@ -407,7 +411,7 @@ public class FeedManager { } while (feedlistCursor.moveToNext()); } feedlistCursor.close(); - + } private ArrayList extractFeedItemsFromCursor(Context context, @@ -447,7 +451,8 @@ public class FeedManager { return items; } - private void extractDownloadLogFromCursor(Context context, PodDBAdapter adapter) { + private void extractDownloadLogFromCursor(Context context, + PodDBAdapter adapter) { Cursor logCursor = adapter.getDownloadLogCursor(); if (logCursor.moveToFirst()) { do { diff --git a/src/de/podfetcher/service/PlaybackService.java b/src/de/podfetcher/service/PlaybackService.java index 412e84198..3adbc350b 100644 --- a/src/de/podfetcher/service/PlaybackService.java +++ b/src/de/podfetcher/service/PlaybackService.java @@ -187,6 +187,7 @@ public class PlaybackService extends Service { } else { Log.e(TAG, "Media is null"); + stopSelf(); } } else if (media != null && status != PlayerStatus.PLAYING) {