The base `Downloader` class now wraps the `InputStream` returned by
any child classes, in order to notify the child class when that stream
is closed. This prevents each child class having to figure out a way
to be notified of this.
Also removed some dead code which was unused.
Leave only the ones which align with the current multi-repo behaviour
that F-Droid exhibits.
The commented out tests can be uncommented in the future when working
on proper multi-repo support.
(One of) the problems with F-Droid's multiple support is that there is
a primary key on the fdroid_apk table which is a composite of:
* id
* vercode
Which means that two repos providing the same version means one will
update the other, rather than ending up with two different versions.
Instead, there should be some other way to differentiate apks from
different sources. Firstly, it should take into account the signing
cert. Secondly, it may taken into account the hash, because two people
could sign different apks with the same cert and then we are back at
square one.
The new test skeletons right now update three different repos
in different configurations. They do so such that the order of updates
changes and therefore the way in which conflicts between repos are
dealt with are tested.
They should all have the same result (though I'm not sure exactly what
that should be yet).
Make category filter look Material
Get rid of Gingerbred legacy.
Before and after (note the glitch below the spinner):


See merge request !159
Use darker primary colors for the Dark theme
Primary colors of the Light theme are too bright for the Dark theme. The difference should be especially noticeable on OLED screens.
Before and after:


See merge request !160
Translators:
ageru French
agilob Polish
Ajeje Brazorf Sardinian
Dario Tordoni Italian
Laura Arjona Reina Spanish
Ldm Public French
naofum Japanese
Osoitz Basque
Sérgio Marques Portuguese (Portugal)
We were fetching information on all installed packages and doing a linear
search. Which is silly and inefficient since we can directly fetch information
on a single installed package by id.
If it doesn't result in any version being marked as suggested, e.g. because it
is higher than 0 but lower than any available version, we end up with a NULL
suggestedVercode.
Run the Latest() algorithm after the Upstream() one, and have it pick up those
cases too by adding "OR suggestedVercode IS NULL". This way, we treat invalid
upstreamVercode values as if they were NULL.
Also some cleanup of comments.
Fixes#371.