diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | app/build.gradle | 3 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 11 | ||||
-rw-r--r-- | app/src/main/templates/about.html | 4 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java | 21 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/FeedMediaSizeService.java | 19 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java | 2 |
7 files changed, 48 insertions, 16 deletions
@@ -11,10 +11,10 @@ You can use the [AntennaPod Google Group](https://groups.google.com/forum/#!foru Bug reports and feature requests can be submitted [here](https://github.com/danieloeh/AntennaPod/issues/new) (please read the [instructions](https://github.com/danieloeh/AntennaPod/blob/master/CONTRIBUTING.md) on how to report a bug and how to submit a feature request first!). ## Beta Testing -You can participate in beta testing by joining the Google Plus [AntennaPod Beta](https://plus.google.com/communities/105484485757508984859) community. +You can participate in beta testing by joining the Google Plus [AntennaPod Beta](https://plus.google.com/communities/105484485757508984859) community and then going to [this url](https://play.google.com/apps/testing/de.danoeh.antennapod) ## Alpha Testing -You can participate in alpha testing by joining the Google Plus [AntennaPod Alpha](https://plus.google.com/communities/117446128636140585144) community. +You can participate in alpha testing by joining the Google Plus [AntennaPod Alpha](https://plus.google.com/communities/117446128636140585144) community and then going to [this url](https://play.google.com/apps/testing/de.danoeh.antennapod) ## Nightly Builds diff --git a/app/build.gradle b/app/build.gradle index 167e12933..daeb9ca39 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -121,8 +121,7 @@ task filterAbout { from 'src/main/templates/about.html' into 'src/main/assets' filter(ReplaceTokens, tokens: [versionname: android.defaultConfig.versionName, - versioncode: android.defaultConfig.versionCode.toString(), - commit: "git describe".execute().text]) + commit: "git rev-parse --short HEAD".execute().text]) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bf4ef6fdb..24c9c2726 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,9 +1,14 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.danoeh.antennapod" - android:versionCode="60" - android:versionName="1.3 alpha"> - + android:versionCode="1030002" + android:versionName="1.3-RC2"> + <!-- + Version code schema: + "1.2.3-SNAPSHOT" -> 1020300 + "1.2.3-RC4" -> 1020304 + "1.2.3[-RELEASE] -> 1020399 + --> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> diff --git a/app/src/main/templates/about.html b/app/src/main/templates/about.html index f37c28229..7dd00cd16 100644 --- a/app/src/main/templates/about.html +++ b/app/src/main/templates/about.html @@ -41,8 +41,8 @@ <div id="header" align="center"> <img src="logo.png" alt="Logo" width="100px" height="100px"/> - <p>AntennaPod, Version @versionname@, Build @versioncode@</p> - <p>commit: @commit@</p> + <p>AntennaPod, Version @versionname@</p> + <p>Commit: @commit@</p> <p>Created by Daniel Oeh</p> diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java index 33dd9d636..55ab46335 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java @@ -28,6 +28,15 @@ public class FeedMedia extends FeedFile implements Playable { public static final String PREF_MEDIA_ID = "FeedMedia.PrefMediaId"; public static final String PREF_FEED_ID = "FeedMedia.PrefFeedId"; + /** + * Indicates we've checked on the size of the item via the network + * and got an invalid response. Using Integer.MIN_VALUE because + * 1) we'll still check on it in case it gets downloaded (it's <= 0) + * 2) By default all FeedMedia have a size of 0 if we don't know it, + * so this won't conflict with existing practice. + */ + private static final int CHECKED_ON_SIZE = Integer.MIN_VALUE; + private int duration; private int position; // Current position in file private int played_duration; // How many ms of this file have been played (for autoflattring) @@ -199,6 +208,18 @@ public class FeedMedia extends FeedFile implements Playable { this.size = size; } + /** + * Indicates we asked the service what the size was, but didn't + * get a valid answer and we shoudln't check using the network again. + */ + public void setCheckedOnSize() { + this.size = CHECKED_ON_SIZE; + } + + public boolean checkedOnSize() { + return (CHECKED_ON_SIZE == this.size); + } + public String getMime_type() { return mime_type; } 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 e64a38901..2882039c0 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 @@ -28,21 +28,23 @@ public class FeedMediaSizeService extends IntentService { @Override protected void onHandleIntent(Intent intent) { Log.d(TAG, "onHandleIntent()"); - if(false == NetworkUtils.networkAvailable(this)) { + if(false == NetworkUtils.isDownloadAllowed(this)) { return; } List<FeedMedia> list = DBReader.getFeedMediaUnknownSize(this); for (FeedMedia media : list) { - if(false == NetworkUtils.networkAvailable(this)) { + Log.d(TAG, "Getting size currently " + media.getSize() + " for " + media.getDownload_url()); + if(false == NetworkUtils.isDownloadAllowed(this)) { return; } long size = Integer.MIN_VALUE; - if(media.isDownloaded()) { + if (media.isDownloaded()) { File mediaFile = new File(media.getLocalMediaUrl()); if(mediaFile.exists()) { size = mediaFile.length(); } - } else { + } else if (false == media.checkedOnSize()) { + // only query the network if we haven't already checked HttpURLConnection conn = null; try { URL url = new URL(media.getDownload_url()); @@ -50,7 +52,6 @@ public class FeedMediaSizeService extends IntentService { conn.setRequestProperty("Accept-Encoding", ""); conn.setRequestMethod("HEAD"); size = conn.getContentLength(); - conn.disconnect(); } catch (IOException e) { Log.d(TAG, media.getDownload_url()); e.printStackTrace(); @@ -60,7 +61,13 @@ public class FeedMediaSizeService extends IntentService { } } } - media.setSize(size); + if (size <= 0) { + // they didn't tell us the size, but we don't want to keep querying on it + media.setCheckedOnSize(); + } else { + media.setSize(size); + } + Log.d(TAG, "Size now: " + media.getSize()); DBWriter.setFeedMedia(this, media); EventBus.getDefault().post(FeedMediaEvent.update(media)); } 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 15f35d644..0153cbc8c 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 @@ -1113,7 +1113,7 @@ public class PodDBAdapter { public final Cursor getFeedMediaUnknownSizeCursor() { final String query = "SELECT * " + " FROM " + TABLE_NAME_FEED_MEDIA - + " WHERE " + KEY_SIZE + ">" + Integer.MIN_VALUE; + + " WHERE " + KEY_SIZE + "<= 0"; return db.rawQuery(query, null); } |