Merge pull request #1526 from mfietz/issue/1522-download-log-NPE
Prevent DownloadLog NPE
This commit is contained in:
commit
e19c08de8a
@ -134,12 +134,16 @@ public class DownloadLogAdapter extends BaseAdapter {
|
|||||||
}
|
}
|
||||||
} else if(holder.typeId == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
} else if(holder.typeId == FeedMedia.FEEDFILETYPE_FEEDMEDIA) {
|
||||||
FeedMedia media = DBReader.getFeedMedia(holder.id);
|
FeedMedia media = DBReader.getFeedMedia(holder.id);
|
||||||
try {
|
if (media != null) {
|
||||||
DBTasks.downloadFeedItems(context, media.getItem());
|
try {
|
||||||
Toast.makeText(context, R.string.status_downloading_label, Toast.LENGTH_SHORT).show();
|
DBTasks.downloadFeedItems(context, media.getItem());
|
||||||
} catch (DownloadRequestException e) {
|
Toast.makeText(context, R.string.status_downloading_label, Toast.LENGTH_SHORT).show();
|
||||||
e.printStackTrace();
|
} catch (DownloadRequestException e) {
|
||||||
DownloadRequestErrorDialogCreator.newRequestErrorDialog(context, e.getMessage());
|
e.printStackTrace();
|
||||||
|
DownloadRequestErrorDialogCreator.newRequestErrorDialog(context, e.getMessage());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.wtf(TAG, "Could not find media for id: " + holder.id);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.wtf(TAG, "Unexpected type id: " + holder.typeId);
|
Log.wtf(TAG, "Unexpected type id: " + holder.typeId);
|
||||||
|
@ -223,6 +223,11 @@ public class DBWriter {
|
|||||||
}
|
}
|
||||||
EventDistributor.getInstance().sendFeedUpdateBroadcast();
|
EventDistributor.getInstance().sendFeedUpdateBroadcast();
|
||||||
|
|
||||||
|
// we assume we also removed download log entries for the feed or its media files.
|
||||||
|
// especially important if download or refresh failed, as the user should not be able
|
||||||
|
// to retry these
|
||||||
|
EventDistributor.getInstance().sendDownloadLogUpdateBroadcast();
|
||||||
|
|
||||||
BackupManager backupManager = new BackupManager(context);
|
BackupManager backupManager = new BackupManager(context);
|
||||||
backupManager.dataChanged();
|
backupManager.dataChanged();
|
||||||
}
|
}
|
||||||
|
@ -886,6 +886,10 @@ public class PodDBAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void removeFeedMedia(FeedMedia media) {
|
public void removeFeedMedia(FeedMedia media) {
|
||||||
|
// delete download log entries for feed media
|
||||||
|
db.delete(TABLE_NAME_DOWNLOAD_LOG, KEY_FEEDFILE + "=? AND " + KEY_FEEDFILETYPE +"=?",
|
||||||
|
new String[] { String.valueOf(media.getId()), String.valueOf(FeedMedia.FEEDFILETYPE_FEEDMEDIA) });
|
||||||
|
|
||||||
db.delete(TABLE_NAME_FEED_MEDIA, KEY_ID + "=?",
|
db.delete(TABLE_NAME_FEED_MEDIA, KEY_ID + "=?",
|
||||||
new String[]{String.valueOf(media.getId())});
|
new String[]{String.valueOf(media.getId())});
|
||||||
}
|
}
|
||||||
@ -930,6 +934,9 @@ public class PodDBAdapter {
|
|||||||
removeFeedItem(item);
|
removeFeedItem(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// delete download log entries for feed
|
||||||
|
db.delete(TABLE_NAME_DOWNLOAD_LOG, KEY_FEEDFILE + "=? AND " + KEY_FEEDFILETYPE +"=?",
|
||||||
|
new String[] { String.valueOf(feed.getId()), String.valueOf(Feed.FEEDFILETYPE_FEED) });
|
||||||
|
|
||||||
db.delete(TABLE_NAME_FEEDS, KEY_ID + "=?",
|
db.delete(TABLE_NAME_FEEDS, KEY_ID + "=?",
|
||||||
new String[]{String.valueOf(feed.getId())});
|
new String[]{String.valueOf(feed.getId())});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user