summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/de/danoeh/antennapod/service/download/DownloadService.java13
-rw-r--r--src/de/danoeh/antennapod/storage/DBWriter.java2
-rw-r--r--src/de/danoeh/antennapod/storage/PodDBAdapter.java16
-rw-r--r--src/de/danoeh/antennapod/util/DownloadError.java3
4 files changed, 18 insertions, 16 deletions
diff --git a/src/de/danoeh/antennapod/service/download/DownloadService.java b/src/de/danoeh/antennapod/service/download/DownloadService.java
index 4040c85a8..c1af4ef19 100644
--- a/src/de/danoeh/antennapod/service/download/DownloadService.java
+++ b/src/de/danoeh/antennapod/service/download/DownloadService.java
@@ -827,23 +827,24 @@ public class DownloadService extends Service {
}
}
- saveDownloadStatus(status);
- sendDownloadHandledIntent();
-
try {
if (chaptersRead) {
DBWriter.setFeedItem(DownloadService.this, media.getItem()).get();
}
DBWriter.setFeedMedia(DownloadService.this, media).get();
+ if (!DBTasks.isInQueue(DownloadService.this, media.getItem().getId())) {
+ DBWriter.addQueueItem(DownloadService.this, media.getItem().getId()).get();
+ }
} catch (ExecutionException e) {
e.printStackTrace();
+ status = new DownloadStatus(media, media.getEpisodeTitle(), DownloadError.ERROR_DB_ACCESS_ERROR, false, e.getMessage());
} catch (InterruptedException e) {
e.printStackTrace();
+ status = new DownloadStatus(media, media.getEpisodeTitle(), DownloadError.ERROR_DB_ACCESS_ERROR, false, e.getMessage());
}
- if (!DBTasks.isInQueue(DownloadService.this, media.getItem().getId())) {
- DBWriter.addQueueItem(DownloadService.this, media.getItem().getId());
- }
+ saveDownloadStatus(status);
+ sendDownloadHandledIntent();
numberOfDownloads.decrementAndGet();
queryDownloadsAsync();
diff --git a/src/de/danoeh/antennapod/storage/DBWriter.java b/src/de/danoeh/antennapod/storage/DBWriter.java
index 9eb0ab643..490629b27 100644
--- a/src/de/danoeh/antennapod/storage/DBWriter.java
+++ b/src/de/danoeh/antennapod/storage/DBWriter.java
@@ -254,9 +254,7 @@ public class DBWriter {
PodDBAdapter adapter = new PodDBAdapter(context);
adapter.open();
-
adapter.setDownloadStatus(status);
- cleanupDownloadLog(adapter);
adapter.close();
EventDistributor.getInstance().sendDownloadLogUpdateBroadcast();
}
diff --git a/src/de/danoeh/antennapod/storage/PodDBAdapter.java b/src/de/danoeh/antennapod/storage/PodDBAdapter.java
index e22fe56c9..2e2fa070c 100644
--- a/src/de/danoeh/antennapod/storage/PodDBAdapter.java
+++ b/src/de/danoeh/antennapod/storage/PodDBAdapter.java
@@ -558,23 +558,25 @@ public class PodDBAdapter {
db.update(TABLE_NAME_DOWNLOAD_LOG, values, KEY_ID + "=?",
new String[]{String.valueOf(status.getId())});
}
-
return status.getId();
}
public long getDownloadLogSize() {
- Cursor result = db.rawQuery("SELECT COUNT(?) AS ? FROM ?",
- new String[]{KEY_ID, KEY_ID, TABLE_NAME_DOWNLOAD_LOG});
- long count = result.getLong(KEY_ID_INDEX);
+ final String query = String.format("SELECT COUNT(%s) FROM %s", KEY_ID, TABLE_NAME_DOWNLOAD_LOG);
+ Cursor result = db.rawQuery(query, null);
+ long count = 0;
+ if (result.moveToFirst()) {
+ count = result.getLong(0);
+ }
result.close();
return count;
}
public void removeDownloadLogItems(long count) {
if (count > 0) {
- db.rawQuery("DELETE FROM ? ORDER BY ? ASC LIMIT ?",
- new String[]{TABLE_NAME_DOWNLOAD_LOG,
- KEY_COMPLETION_DATE, String.valueOf(count)});
+ final String sql = String.format("DELETE FROM %s WHERE %s in (SELECT %s from %s ORDER BY %s ASC LIMIT %d)",
+ TABLE_NAME_DOWNLOAD_LOG, KEY_ID, KEY_ID, TABLE_NAME_DOWNLOAD_LOG, KEY_COMPLETION_DATE, count);
+ db.execSQL(sql, null);
}
}
diff --git a/src/de/danoeh/antennapod/util/DownloadError.java b/src/de/danoeh/antennapod/util/DownloadError.java
index c37a14584..f7a5c23fe 100644
--- a/src/de/danoeh/antennapod/util/DownloadError.java
+++ b/src/de/danoeh/antennapod/util/DownloadError.java
@@ -17,7 +17,8 @@ public enum DownloadError {
ERROR_HTTP_DATA_ERROR(9, R.string.download_error_http_data_error),
ERROR_NOT_ENOUGH_SPACE(10, R.string.download_error_insufficient_space),
ERROR_UNKNOWN_HOST(11, R.string.download_error_unknown_host),
- ERROR_REQUEST_ERROR(12, R.string.download_error_request_error);
+ ERROR_REQUEST_ERROR(12, R.string.download_error_request_error),
+ ERROR_DB_ACCESS_ERROR(13, R.string.download_error_db_access);
private final int code;
private final int resId;