summaryrefslogtreecommitdiff
path: root/core/src/main/java/de/danoeh
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2015-07-03 23:59:40 +0200
committerMartin Fietz <Martin.Fietz@gmail.com>2015-07-09 10:22:05 +0200
commit23a3e7c766a4dfbba9101672d8628b65ad16c855 (patch)
treef030e084be6b019292ba24c36586096a5f1db531 /core/src/main/java/de/danoeh
parent4f84ceff734889748dc9d846bdf117db5fac4dce (diff)
downloadAntennaPod-23a3e7c766a4dfbba9101672d8628b65ad16c855.zip
Check network for every media file, manually check suspiciously low file sizes
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java4
4 files changed, 16 insertions, 5 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java b/core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java
index b4542aae8..1f7dfa386 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java
@@ -30,13 +30,20 @@ public class FeedMediaSizeService extends IntentService {
}
List<FeedMedia> list = DBReader.getFeedMediaUnknownSize(this);
for (FeedMedia media : list) {
- long size = -1;
+ if(false == NetworkUtils.networkAvailable(this)) {
+ return;
+ }
+ long size = Integer.MIN_VALUE;
+ Log.d(TAG, media.getDownload_url());
try {
URL url = new URL(media.getDownload_url());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestProperty( "Accept-Encoding", "" );
+ conn.setRequestMethod("HEAD");
size = conn.getContentLength();
conn.disconnect();
} catch (IOException e) {
+ Log.d(TAG, media.getDownload_url());
e.printStackTrace();
}
media.setSize(size);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
index 1af0fa0a9..26a974616 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
@@ -551,11 +551,11 @@ public final class DBReader {
}
/**
- * Loads the IDs of the FeedItems whose 'read'-attribute is set to false.
+ * Loads FeedMedia whose file size is unknown
*
* @param context A context that is used for opening a database connection.
- * @return A list of IDs of the FeedItems whose 'read'-attribute is set to false. This method should be preferred
- * over {@link #getUnreadItemsList(android.content.Context)} if the FeedItems in the UnreadItems list are not used.
+ * @return A list of FeedMedia items whose size is 0 (unknown and never tried to
+ * determine the correct size)
*/
public static List<FeedMedia> getFeedMediaUnknownSize(Context context) {
PodDBAdapter adapter = new PodDBAdapter(context);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index d42b67459..319987cb2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -1108,7 +1108,7 @@ public class PodDBAdapter {
public final Cursor getFeedMediaUnknownSizeCursor() {
final String query = "SELECT * "
+ " FROM " + TABLE_NAME_FEED_MEDIA
- + " WHERE " + KEY_SIZE + "=0";
+ + " WHERE " + KEY_SIZE + ">" + Integer.MIN_VALUE;
return db.rawQuery(query, null);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java
index 6455332be..31eb2efd6 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSRSS20.java
@@ -57,6 +57,10 @@ public class NSRSS20 extends Namespace {
long size = 0;
try {
size = Long.parseLong(attributes.getValue(ENC_LEN));
+ if(size < 16384) {
+ // less than 16kb is suspicious, check manually
+ size = 0;
+ }
} catch (NumberFormatException e) {
if (BuildConfig.DEBUG)
Log.d(TAG, "Length attribute could not be parsed.");