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