Add progress reporting for index-v1 (using `LocalBroadcastManager`)
A reimagination of !548 (closed), using LocalBroadcastManager
as suggested.
I still think LocalBroadcastManager
is a terrible API, but this works fine and reads pretty well.
If it is too messy or too large a change, feel free to merge !548 (closed) and close this. Alternatively, if this is merged, could you please close !548 (closed) in response.
This refactors existing progress handling between RepoUpdater
and
UpdateService
to use LocalBroadcastManager
in preference to
ProgressListener
. Still needs to use ProgressListener
to talk
between RepoUpdater
and the Downloader
+
ProgressBufferedInputStream
.
The only change that is related to something more important than
notifications is the fact that now IndexV1Updater
makes use of the
indexUrl
. To do so, because it is final, the base class constructor
delegates to getIndexUrl()
which is overriden by the v1 updater.
This is required because we want to differentiate between broadcasts
coming from different repo update processes.
Fixes #1054 (closed).