Fixed assumption that repo updates have all apps available.
authorPeter Serwylo <peter@ivt.com.au>
Sat, 5 Apr 2014 17:19:49 +0000 (17:19 +0000)
committerPeter Serwylo <peter@ivt.com.au>
Sun, 6 Apr 2014 12:34:47 +0000 (12:34 +0000)
commitdcf3a9dae8c0c26eb9a24c49ada392da6ae05da9
tree68dbf255600491b69cc7f5d29f7313bbf4c2e366
parent628d684ab98cc5cc7e2f79999a6b67f4c287b64e
Fixed assumption that repo updates have all apps available.

Previously, I accidentally made the repo updater presume that it
had access to all apps in a big fat list. This meant that I was iterating
over that list, performing calculations, etc, rather than actually
querying the entire database.

The solution was to bundled all update-service related processing to one
process in AppProvider (I didn't want to have to pull every single app/apk
out of the database in order to perform the update, because that will become
more and more burdensom as the repo grows).

There is a method calcDetailsFromIndex() in the AppProvider.Helper class.
It now does three things:
 * updates compatibility flag.
 * updates suggested version (outstanding issue is documented in gitlab issue #1)
 * updates iconsUrl (fixed in this commit)

Icons from old repos will just have icons in an "icons" dir
in the same folder as the index.jar. New repos have density
specific icon dirs (e.g. "icons-240") which depend on the
device F-Droid is running on.
src/org/fdroid/fdroid/UpdateService.java
src/org/fdroid/fdroid/data/AppProvider.java