Added AsyncDownloadWrapper and used it in AppDetails to download apks.
This has a very different interface to the Downloader class, because
a handful of operations need to be run off the main thread (not just
download, but also totalDownloadSize and perhaps cache tag related
stuff). The AsyncDownloadWrapper provides its own listener, more
specific than just the progress listener, which invokes functions
at different points in time (e.g. download failed, completed, cancelled).
Refactored progress events to use string types instead of ints.
This way, it is less likely that two different events from
different processes will clash with each other.
- ApkDownloader.java (diff)
- AppDetails.java (diff)
- ProgressListener.java (diff)
- RepoXMLHandler.java (diff)
- UpdateService.java (diff)