Only refresh the feeds that have not been refreshed since their last interval.
This solves the problem where force-stopping the app during a long feed refresh
would start the refresh all over instead of just taking the feeds that were not
refreshed already.
Who knows what happened exactly, but JitPack changed something
to the way they deliver dependencies. The version with the
v prefix got rebuilt (files inside jar have a new time stamp,
jar has a new hash, but contents are the same).
Now it no longer has any dependencies attached to it.
Switching to the version without v, which still works.
Connect to each newly added URL with a HEAD request.
If there is a redirect to an existing URL, ignore the added feed.
This does not handle `itunes:new-feed-url` or other redirects.
This will likely still cause problems with synchronization
because the server still knows the old url.
However, it makes the situation better than it was before by avoiding the duplicates.
For a proper fix, we need a new protocol that can deal with redirects more elegantly
We already added the queue to the auto-download candidates.
Now that auto-download was rewritten to not be a "master switch",
the code is called even if auto-download is turned off for all subscriptions.
This lead to queued episodes being downloaded for users who had auto-download disabled.
Convert the feature to an explicit setting to avoid behavior changes for users.
Also, this implements a setting to auto-download the queue,
which users have requested because they did not know that AntennaPod already does this.
Finally, it should solve user confusion where they automatically add episodes to the queue
but set the auto-download filter to ignore specific episodes.
Apparently requesting to run the manager cancels the already running one on some devices.
This leads to an endless loop trying to refresh over and over again.
- Enables users to manually trigger sync
- Makes sure that we actually refresh when a new feed arrives:
Previously, we might request the feed to be refreshed but then don't
actually wait for it to be completed because the refresh service
wouldn't start up quickly enough.
This makes sure that we do not try to sync again before the refresh
actually went through, even if the sync service is called multiple times.
93% of our users have an Android version modern enough that the setting is not available there anyway.
From the remaining 7%, probably only a tiny percentage use that setting.
Removing simplifies our code and makes it easier to maintain.
GlobalSign has migrated to R6, which is only shipped with Android 10+.
Blubrry switched to the new root CA, which causes certificate errors for some users.
AntennaPod currently supports Android 5.0+ and is installed on about 25k
Google Play devices with Android 5-9.
Before when refreshing any feed(s) without network the refresh indicator
stayed indefinitely.
This was also the case if you were on mobile, trying to refresh a need
and in the popup selected "don't update over mobile".