Use local file size if episode is downloaded

This commit is contained in:
Martin Fietz 2015-07-12 21:17:22 +02:00
parent 5608d228be
commit 65611129e1
1 changed files with 21 additions and 13 deletions

View File

@ -4,6 +4,7 @@ import android.app.IntentService;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
@ -36,11 +37,17 @@ public class FeedMediaSizeService extends IntentService {
return; return;
} }
long size = Integer.MIN_VALUE; long size = Integer.MIN_VALUE;
if(media.isDownloaded()) {
File mediaFile = new File(media.getLocalMediaUrl());
if(mediaFile.exists()) {
size = mediaFile.length();
}
} else {
HttpURLConnection conn = null; HttpURLConnection conn = null;
try { try {
URL url = new URL(media.getDownload_url()); URL url = new URL(media.getDownload_url());
conn = (HttpURLConnection) url.openConnection(); conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty( "Accept-Encoding", "" ); conn.setRequestProperty("Accept-Encoding", "");
conn.setRequestMethod("HEAD"); conn.setRequestMethod("HEAD");
size = conn.getContentLength(); size = conn.getContentLength();
conn.disconnect(); conn.disconnect();
@ -48,10 +55,11 @@ public class FeedMediaSizeService extends IntentService {
Log.d(TAG, media.getDownload_url()); Log.d(TAG, media.getDownload_url());
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
if(conn != null) { if (conn != null) {
conn.disconnect(); conn.disconnect();
} }
} }
}
media.setSize(size); media.setSize(size);
DBWriter.setFeedMedia(this, media); DBWriter.setFeedMedia(this, media);
EventBus.getDefault().post(FeedMediaEvent.update(media)); EventBus.getDefault().post(FeedMediaEvent.update(media));