FeedManager now maintains a list of DownloadStatus entries
This commit is contained in:
parent
c41a61752f
commit
2f5e0dd023
|
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import de.podfetcher.activity.MediaplayerActivity;
|
import de.podfetcher.activity.MediaplayerActivity;
|
||||||
|
import de.podfetcher.service.DownloadStatus;
|
||||||
import de.podfetcher.service.PlaybackService;
|
import de.podfetcher.service.PlaybackService;
|
||||||
import de.podfetcher.storage.*;
|
import de.podfetcher.storage.*;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -20,6 +21,9 @@ import android.util.Log;
|
||||||
public class FeedManager {
|
public class FeedManager {
|
||||||
private static final String TAG = "FeedManager";
|
private static final String TAG = "FeedManager";
|
||||||
|
|
||||||
|
/** Number of completed Download status entries to store. */
|
||||||
|
private static final int DOWNLOAD_LOG_SIZE = 25;
|
||||||
|
|
||||||
private static FeedManager singleton;
|
private static FeedManager singleton;
|
||||||
|
|
||||||
private ArrayList<Feed> feeds;
|
private ArrayList<Feed> feeds;
|
||||||
|
@ -27,6 +31,10 @@ public class FeedManager {
|
||||||
|
|
||||||
/** Contains all items where 'read' is false */
|
/** Contains all items where 'read' is false */
|
||||||
private ArrayList<FeedItem> unreadItems;
|
private ArrayList<FeedItem> unreadItems;
|
||||||
|
|
||||||
|
/** Contains completed Download status entries */
|
||||||
|
private ArrayList<DownloadStatus> downloadLog;
|
||||||
|
|
||||||
private DownloadRequester requester;
|
private DownloadRequester requester;
|
||||||
|
|
||||||
private FeedManager() {
|
private FeedManager() {
|
||||||
|
@ -34,7 +42,7 @@ public class FeedManager {
|
||||||
categories = new ArrayList<FeedCategory>();
|
categories = new ArrayList<FeedCategory>();
|
||||||
unreadItems = new ArrayList<FeedItem>();
|
unreadItems = new ArrayList<FeedItem>();
|
||||||
requester = DownloadRequester.getInstance();
|
requester = DownloadRequester.getInstance();
|
||||||
|
downloadLog = new ArrayList<DownloadStatus>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FeedManager getInstance() {
|
public static FeedManager getInstance() {
|
||||||
|
@ -99,6 +107,15 @@ public class FeedManager {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long addDownloadStatus(Context context, DownloadStatus status) {
|
||||||
|
PodDBAdapter adapter = new PodDBAdapter(context);
|
||||||
|
downloadLog.add(status);
|
||||||
|
if (downloadLog.size() > DOWNLOAD_LOG_SIZE) {
|
||||||
|
adapter.removeDownloadStatus(downloadLog.remove(0));
|
||||||
|
}
|
||||||
|
return adapter.setDownloadStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
private void addNewFeed(Context context, Feed feed) {
|
private void addNewFeed(Context context, Feed feed) {
|
||||||
feeds.add(feed);
|
feeds.add(feed);
|
||||||
feed.setId(setFeed(context, feed));
|
feed.setId(setFeed(context, feed));
|
||||||
|
@ -106,25 +123,18 @@ public class FeedManager {
|
||||||
setFeedItem(context, item);
|
setFeedItem(context, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* TODO Decide if still useful
|
|
||||||
|
|
||||||
public void addFeedItem(Context context, FeedItem item) {
|
/*
|
||||||
PodDBAdapter adapter = new PodDBAdapter(context);
|
* TODO Decide if still useful
|
||||||
// Search list for feeditem
|
*
|
||||||
Feed feed = item.getFeed();
|
* public void addFeedItem(Context context, FeedItem item) { PodDBAdapter
|
||||||
FeedItem foundItem = searchFeedItemByLink(feed, item.getLink());
|
* adapter = new PodDBAdapter(context); // Search list for feeditem Feed
|
||||||
if (foundItem != null) {
|
* feed = item.getFeed(); FeedItem foundItem = searchFeedItemByLink(feed,
|
||||||
// Update Information
|
* item.getLink()); if (foundItem != null) { // Update Information item.id =
|
||||||
item.id = foundItem.id;
|
* foundItem.id; foundItem = item; item.setRead(foundItem.isRead());
|
||||||
foundItem = item;
|
* adapter.setFeedItem(item); } else { feed.getItems().add(item); item.id =
|
||||||
item.setRead(foundItem.isRead());
|
* adapter.setFeedItem(item); } }
|
||||||
adapter.setFeedItem(item);
|
*/
|
||||||
} else {
|
|
||||||
feed.getItems().add(item);
|
|
||||||
item.id = adapter.setFeedItem(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public void updateFeed(Context context, Feed newFeed) {
|
public void updateFeed(Context context, Feed newFeed) {
|
||||||
// Look up feed in the feedslist
|
// Look up feed in the feedslist
|
||||||
Feed savedFeed = searchFeedByLink(newFeed.getLink());
|
Feed savedFeed = searchFeedByLink(newFeed.getLink());
|
||||||
|
@ -240,6 +250,19 @@ public class FeedManager {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get a FeedMedia object by the id of the Media object. */
|
||||||
|
public FeedMedia getFeedMedia(long id) {
|
||||||
|
for (Feed feed : feeds) {
|
||||||
|
for (FeedItem item : feed.getItems()) {
|
||||||
|
if (item.getMedia().getId() == id) {
|
||||||
|
return item.getMedia();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Log.w(TAG, "Couldn't find FeedMedia with id " + id);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/** Reads the database */
|
/** Reads the database */
|
||||||
public void loadDBData(Context context) {
|
public void loadDBData(Context context) {
|
||||||
PodDBAdapter adapter = new PodDBAdapter(context);
|
PodDBAdapter adapter = new PodDBAdapter(context);
|
||||||
|
@ -327,6 +350,40 @@ public class FeedManager {
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void extractDownloadLogFromCursor(Context context) {
|
||||||
|
PodDBAdapter adapter = new PodDBAdapter(context);
|
||||||
|
adapter.open();
|
||||||
|
Cursor logCursor = adapter.getDownloadLogCursor();
|
||||||
|
if (logCursor.moveToFirst()) {
|
||||||
|
do {
|
||||||
|
long id = logCursor.getLong(logCursor
|
||||||
|
.getColumnIndex(PodDBAdapter.KEY_ID));
|
||||||
|
long feedfileId = logCursor.getLong(logCursor
|
||||||
|
.getColumnIndex(PodDBAdapter.KEY_FEEDFILE));
|
||||||
|
int feedfileType = logCursor.getInt(logCursor
|
||||||
|
.getColumnIndex(PodDBAdapter.KEY_FEEDFILETYPE));
|
||||||
|
FeedFile feedfile = null;
|
||||||
|
switch (feedfileType) {
|
||||||
|
case PodDBAdapter.FEEDFILETYPE_FEED:
|
||||||
|
feedfile = getFeed(feedfileId);
|
||||||
|
break;
|
||||||
|
case PodDBAdapter.FEEDFILETYPE_FEEDIMAGE:
|
||||||
|
feedfile = getFeedImage(feedfileId);
|
||||||
|
break;
|
||||||
|
case PodDBAdapter.FEEDFILETYPE_FEEDMEDIA:
|
||||||
|
feedfile = getFeedMedia(feedfileId);
|
||||||
|
}
|
||||||
|
if (feedfile != null) { // otherwise ignore status
|
||||||
|
boolean successful = logCursor.getInt(logCursor.getColumnIndex(PodDBAdapter.KEY_SUCCESSFUL)) > 0;
|
||||||
|
int reason = logCursor.getInt(logCursor.getColumnIndex(PodDBAdapter.KEY_REASON));
|
||||||
|
Date completionDate = new Date(logCursor.getLong(logCursor.getColumnIndex(PodDBAdapter.KEY_COMPLETION_DATE)));
|
||||||
|
downloadLog.add(new DownloadStatus(id, feedfile, successful, reason, completionDate));
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (logCursor.moveToNext());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public ArrayList<Feed> getFeeds() {
|
public ArrayList<Feed> getFeeds() {
|
||||||
return feeds;
|
return feeds;
|
||||||
}
|
}
|
||||||
|
@ -335,6 +392,4 @@ public class FeedManager {
|
||||||
return unreadItems;
|
return unreadItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,8 +63,6 @@ public class DownloadService extends Service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
queryDownloads();
|
queryDownloads();
|
||||||
|
@ -148,7 +146,8 @@ public class DownloadService extends Service {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
int status = -1;
|
int status = -1;
|
||||||
|
boolean successful = false;
|
||||||
|
int reason = 0;
|
||||||
Log.d(TAG, "Received 'Download Complete' - message.");
|
Log.d(TAG, "Received 'Download Complete' - message.");
|
||||||
long downloadId = intent.getLongExtra(
|
long downloadId = intent.getLongExtra(
|
||||||
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
|
DownloadManager.EXTRA_DOWNLOAD_ID, 0);
|
||||||
|
@ -160,10 +159,10 @@ public class DownloadService extends Service {
|
||||||
status = c.getInt(c
|
status = c.getInt(c
|
||||||
.getColumnIndex(DownloadManager.COLUMN_STATUS));
|
.getColumnIndex(DownloadManager.COLUMN_STATUS));
|
||||||
}
|
}
|
||||||
|
FeedFile download = requester.getFeedFile(downloadId);
|
||||||
|
if (download != null) {
|
||||||
|
if (status == DownloadManager.STATUS_SUCCESSFUL) {
|
||||||
|
|
||||||
if (status == DownloadManager.STATUS_SUCCESSFUL) {
|
|
||||||
FeedFile download = requester.getFeedFile(downloadId);
|
|
||||||
if (download != null) {
|
|
||||||
if (download.getClass() == Feed.class) {
|
if (download.getClass() == Feed.class) {
|
||||||
handleCompletedFeedDownload(context, (Feed) download);
|
handleCompletedFeedDownload(context, (Feed) download);
|
||||||
} else if (download.getClass() == FeedImage.class) {
|
} else if (download.getClass() == FeedImage.class) {
|
||||||
|
@ -173,16 +172,18 @@ public class DownloadService extends Service {
|
||||||
handleCompletedFeedMediaDownload(context,
|
handleCompletedFeedMediaDownload(context,
|
||||||
(FeedMedia) download);
|
(FeedMedia) download);
|
||||||
}
|
}
|
||||||
|
successful = true;
|
||||||
|
queryDownloads();
|
||||||
|
} else if (status == DownloadManager.STATUS_FAILED) {
|
||||||
|
reason = c.getInt(c
|
||||||
|
.getColumnIndex(DownloadManager.COLUMN_REASON));
|
||||||
|
Log.d(TAG, "reason code is " + reason);
|
||||||
|
successful = false;
|
||||||
}
|
}
|
||||||
queryDownloads();
|
manager.addDownloadStatus(context, new DownloadStatus(download,
|
||||||
} else if (status == DownloadManager.STATUS_FAILED) {
|
reason, successful));
|
||||||
int reason = c.getInt(c
|
c.close();
|
||||||
.getColumnIndex(DownloadManager.COLUMN_REASON));
|
|
||||||
Log.d(TAG, "reason code is " + reason);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
c.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,48 +1,90 @@
|
||||||
package de.podfetcher.service;
|
package de.podfetcher.service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import de.podfetcher.feed.FeedFile;
|
import de.podfetcher.feed.FeedFile;
|
||||||
|
|
||||||
/** Contains status attributes for one download*/
|
/** Contains status attributes for one download */
|
||||||
public class DownloadStatus {
|
public class DownloadStatus {
|
||||||
|
|
||||||
protected FeedFile feedfile;
|
public Date getCompletionDate() {
|
||||||
protected int progressPercent;
|
return completionDate;
|
||||||
protected long soFar;
|
}
|
||||||
protected long size;
|
|
||||||
protected int statusMsg;
|
|
||||||
protected int reason;
|
|
||||||
protected boolean successful;
|
|
||||||
protected boolean done;
|
|
||||||
|
|
||||||
public DownloadStatus(FeedFile feedfile) {
|
/** Unique id for storing the object in database. */
|
||||||
this.feedfile = feedfile;
|
protected long id;
|
||||||
}
|
|
||||||
|
|
||||||
public FeedFile getFeedFile() {
|
protected FeedFile feedfile;
|
||||||
return feedfile;
|
protected int progressPercent;
|
||||||
}
|
protected long soFar;
|
||||||
|
protected long size;
|
||||||
|
protected int statusMsg;
|
||||||
|
protected int reason;
|
||||||
|
protected boolean successful;
|
||||||
|
protected boolean done;
|
||||||
|
protected Date completionDate;
|
||||||
|
|
||||||
public int getProgressPercent() {
|
public DownloadStatus(FeedFile feedfile) {
|
||||||
return progressPercent;
|
this.feedfile = feedfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getSoFar() {
|
/** Constructor for restoring Download status entries from DB. */
|
||||||
return soFar;
|
public DownloadStatus(long id, FeedFile feedfile, boolean successful, int reason,
|
||||||
}
|
Date completionDate) {
|
||||||
|
this.id = id;
|
||||||
|
this.feedfile = feedfile;
|
||||||
|
progressPercent = 100;
|
||||||
|
soFar = 0;
|
||||||
|
size = 0;
|
||||||
|
this.reason = reason;
|
||||||
|
this.successful = successful;
|
||||||
|
this.done = true;
|
||||||
|
this.completionDate = completionDate;
|
||||||
|
}
|
||||||
|
|
||||||
public long getSize() {
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatusMsg() {
|
/** Constructor for creating new completed downloads. */
|
||||||
return statusMsg;
|
public DownloadStatus(FeedFile feedfile, int reason,
|
||||||
}
|
boolean successful) {
|
||||||
|
this(0, feedfile, successful, reason, new Date());
|
||||||
|
}
|
||||||
|
|
||||||
|
public FeedFile getFeedFile() {
|
||||||
|
return feedfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getProgressPercent() {
|
||||||
|
return progressPercent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getSoFar() {
|
||||||
|
return soFar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getSize() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatusMsg() {
|
||||||
|
return statusMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSuccessful() {
|
||||||
|
return successful;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public int getReason() {
|
|
||||||
return reason;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSuccessful() {
|
|
||||||
return successful;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@ import de.podfetcher.feed.FeedCategory;
|
||||||
import de.podfetcher.feed.FeedImage;
|
import de.podfetcher.feed.FeedImage;
|
||||||
import de.podfetcher.feed.FeedItem;
|
import de.podfetcher.feed.FeedItem;
|
||||||
import de.podfetcher.feed.FeedMedia;
|
import de.podfetcher.feed.FeedMedia;
|
||||||
|
import de.podfetcher.service.DownloadStatus;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
@ -42,13 +43,18 @@ public class PodDBAdapter {
|
||||||
public static final String KEY_MEDIA = "media";
|
public static final String KEY_MEDIA = "media";
|
||||||
public static final String KEY_DOWNLOADED = "downloaded";
|
public static final String KEY_DOWNLOADED = "downloaded";
|
||||||
public static final String KEY_LASTUPDATE = "last_update";
|
public static final String KEY_LASTUPDATE = "last_update";
|
||||||
|
public static final String KEY_FEEDFILE = "feedfile";
|
||||||
|
public static final String KEY_REASON = "reason";
|
||||||
|
public static final String KEY_SUCCESSFUL = "successful";
|
||||||
|
public static final String KEY_FEEDFILETYPE = "feedfile_type";
|
||||||
|
public static final String KEY_COMPLETION_DATE = "completion_date";
|
||||||
// Table names
|
// Table names
|
||||||
public static final String TABLE_NAME_FEEDS = "Feeds";
|
public static final String TABLE_NAME_FEEDS = "Feeds";
|
||||||
public static final String TABLE_NAME_FEED_ITEMS = "FeedItems";
|
public static final String TABLE_NAME_FEED_ITEMS = "FeedItems";
|
||||||
public static final String TABLE_NAME_FEED_CATEGORIES = "FeedCategories";
|
public static final String TABLE_NAME_FEED_CATEGORIES = "FeedCategories";
|
||||||
public static final String TABLE_NAME_FEED_IMAGES = "FeedImages";
|
public static final String TABLE_NAME_FEED_IMAGES = "FeedImages";
|
||||||
public static final String TABLE_NAME_FEED_MEDIA = "FeedMedia";
|
public static final String TABLE_NAME_FEED_MEDIA = "FeedMedia";
|
||||||
|
public static final String TABLE_NAME_DOWNLOAD_LOG = "DownloadLog";
|
||||||
|
|
||||||
// SQL Statements for creating new tables
|
// SQL Statements for creating new tables
|
||||||
private static final String TABLE_PRIMARY_KEY = KEY_ID
|
private static final String TABLE_PRIMARY_KEY = KEY_ID
|
||||||
|
@ -81,6 +87,20 @@ public class PodDBAdapter {
|
||||||
+ KEY_MIME_TYPE + " TEXT," + KEY_FILE_URL + " TEXT,"
|
+ KEY_MIME_TYPE + " TEXT," + KEY_FILE_URL + " TEXT,"
|
||||||
+ KEY_DOWNLOAD_URL + " TEXT," + KEY_DOWNLOADED + " INTEGER)";
|
+ KEY_DOWNLOAD_URL + " TEXT," + KEY_DOWNLOADED + " INTEGER)";
|
||||||
|
|
||||||
|
private static final String CREATE_TABLE_DOWNLOAD_LOG = "CREATE TABLE "
|
||||||
|
+ TABLE_NAME_DOWNLOAD_LOG + " (" + TABLE_PRIMARY_KEY + KEY_FEEDFILE
|
||||||
|
+ " INTEGER," + KEY_FEEDFILETYPE + " INTEGER," + KEY_REASON
|
||||||
|
+ " INTEGER," + KEY_SUCCESSFUL + " INTEGER," + KEY_COMPLETION_DATE
|
||||||
|
+ " INTEGER)";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for storing download status entries to determine the type of the
|
||||||
|
* Feedfile.
|
||||||
|
*/
|
||||||
|
public static final int FEEDFILETYPE_FEED = 0;
|
||||||
|
public static final int FEEDFILETYPE_FEEDIMAGE = 1;
|
||||||
|
public static final int FEEDFILETYPE_FEEDMEDIA = 2;
|
||||||
|
|
||||||
private SQLiteDatabase db;
|
private SQLiteDatabase db;
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private PodDBHelper helper;
|
private PodDBHelper helper;
|
||||||
|
@ -246,6 +266,41 @@ public class PodDBAdapter {
|
||||||
return item.getId();
|
return item.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Inserts or updates a download status.
|
||||||
|
* */
|
||||||
|
public long setDownloadStatus(DownloadStatus status) {
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(KEY_FEEDFILE, status.getFeedFile().getId());
|
||||||
|
if (status.getFeedFile().getClass() == Feed.class) {
|
||||||
|
values.put(KEY_FEEDFILETYPE, FEEDFILETYPE_FEED);
|
||||||
|
} else if (status.getFeedFile().getClass() == FeedImage.class) {
|
||||||
|
values.put(KEY_FEEDFILETYPE, FEEDFILETYPE_FEEDIMAGE);
|
||||||
|
} else if (status.getFeedFile().getClass() == FeedMedia.class) {
|
||||||
|
values.put(KEY_FEEDFILETYPE, FEEDFILETYPE_FEEDMEDIA);
|
||||||
|
}
|
||||||
|
|
||||||
|
values.put(KEY_REASON, status.getReason());
|
||||||
|
values.put(KEY_SUCCESSFUL, status.isSuccessful());
|
||||||
|
values.put(KEY_COMPLETION_DATE, status.getCompletionDate().getTime());
|
||||||
|
open();
|
||||||
|
if (status.getId() == 0) {
|
||||||
|
status.setId(db.insert(TABLE_NAME_DOWNLOAD_LOG, null, values));
|
||||||
|
} else {
|
||||||
|
db.update(TABLE_NAME_DOWNLOAD_LOG, values, KEY_ID + "=?",
|
||||||
|
new String[] { String.valueOf(status.getId()) });
|
||||||
|
}
|
||||||
|
close();
|
||||||
|
return status.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeDownloadStatus(DownloadStatus remove) {
|
||||||
|
open();
|
||||||
|
db.delete(TABLE_NAME_DOWNLOAD_LOG, KEY_ID + "=?",
|
||||||
|
new String[] { String.valueOf(remove.getId()) });
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all Categories from the Categories Table.
|
* Get all Categories from the Categories Table.
|
||||||
*
|
*
|
||||||
|
@ -315,6 +370,13 @@ public class PodDBAdapter {
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final Cursor getDownloadLogCursor() {
|
||||||
|
open();
|
||||||
|
Cursor c = db.query(TABLE_NAME_DOWNLOAD_LOG, null, null, null, null,
|
||||||
|
null, null);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a FeedMedia object from the Database.
|
* Get a FeedMedia object from the Database.
|
||||||
*
|
*
|
||||||
|
@ -393,6 +455,7 @@ public class PodDBAdapter {
|
||||||
db.execSQL(CREATE_TABLE_FEED_CATEGORIES);
|
db.execSQL(CREATE_TABLE_FEED_CATEGORIES);
|
||||||
db.execSQL(CREATE_TABLE_FEED_IMAGES);
|
db.execSQL(CREATE_TABLE_FEED_IMAGES);
|
||||||
db.execSQL(CREATE_TABLE_FEED_MEDIA);
|
db.execSQL(CREATE_TABLE_FEED_MEDIA);
|
||||||
|
db.execSQL(CREATE_TABLE_DOWNLOAD_LOG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -403,4 +466,5 @@ public class PodDBAdapter {
|
||||||
// TODO delete Database
|
// TODO delete Database
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue