The Free build bundles a modern Conscrypt which means TLSv1.3 is always
guaranteed no matter android version. So it can always be enabled. Since
it also provides modern cipher suites, there is no need to enable older
protocols than TLSv1.2 (that is: SSLv3, TLSv1.0 and TLSv1.1 which are
all now deprecated).
And the support for modern cipher suites also means there is no need to
explicitly enable the following (obsolete+unsafe) ciphers suites:
* TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
* TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
on Android API < 21 (Android < 5.0).
No changes are made to the Play builds (since the available security
provider can't be guaranteed to support modern protocols and cipher
suites).
Changed the gradlew build targets assembleRelease to assemblePlayRelease
and assembleDebug to assemblePlayDebug, because the old targets causes
files for the free builds to get compiled when not needed. It's
unnecessary and also done without -PfreeBuild which gives build errors.
These are also the targets used in makeRelease.sh, so the workflow
should better match the expected.
This fixes protocol and cipher errors on older versions of android
without requiring Google API/Services (which are non-free) to replace
the security provider from the OS. No changes are made to Play builds.
The value of conscryptVersion in build.gradle should be updated
regularly to keep the bundled version of conscrypt up to date (or
changed to "latest.release", which will cause issues with verifying
reproducible builds).
Fixes: #2814 (for users of free builds)
Apparently, there are ways to end up with items that have no feed.
This hotfix prevents the app from crashing but it does not solve the
reason for items without feeds.
Sometimes (Bluetooth/Android Auto), the service is created and then just bound to.
That means that onStartCommand is never called. This causes a persistent notification.
Just in case the notification is somehow still shown to users, modified the message to
tell them how to hide it.
Moved favorite item CSS to main template file.
Added template files for feed information and favorite episode
information, reducing in-line HTML usage in Java code.