diff options
author | Steve Howard <showard@google.com> | 2010-07-15 19:59:40 -0700 |
---|---|---|
committer | Steve Howard <showard@google.com> | 2010-07-19 11:04:38 -0700 |
commit | 071bd7acb3185f4f1e807855605c5e6018e9742f (patch) | |
tree | 85e1d36689bb632b20b74faaac9596d660a7a46d /res | |
parent | 1aa26989047495ff58d3e2598d3f9549465cbb65 (diff) | |
download | android_packages_providers_DownloadProvider-071bd7acb3185f4f1e807855605c5e6018e9742f.tar.gz android_packages_providers_DownloadProvider-071bd7acb3185f4f1e807855605c5e6018e9742f.tar.bz2 android_packages_providers_DownloadProvider-071bd7acb3185f4f1e807855605c5e6018e9742f.zip |
Support for max download size that may go over mobile
This change introduces support for a maximum download size that may go
over a mobile connection. Downloads above this limit will wait for a
wifi connection.
To accomplish this, I moved a lot of the logic for checking
connectivity info into DownloadInfo itself. I then moved the code to
call these checks from DownloadService, where it would call the checks
before spawning a DownloadThread, into DownloadThread itself. This
makes it simpler to check connectivity after we get Content-Length
info. It also eliminates the risk of a race condition where
connectivity changes between the check and the actual request
execution.
I realize this change reduces efficiency, because we now call into
ConnectivityManager/TelephonyManager twice per DownloadThread, rather
than once per DownloadService "tick". I feel that it's OK since its a
small amount of computation running relatively infrequently. If we
feel that it's a serious concern, and that the efficiency issues
outweigh the race problem, I can go easily back to the old approach.
I've left out the code to actually fetch the limit. I think this will
come from system settings, but I want to double-check, so I'll put it
in a separate change.
Other changes:
* simplify SystemFacade's interface to get connectivity info - rather
than returning all connected types, just return the active type,
since that should be all we care about
* adding @LargeTest to PublicApiFunctionalTest
Change-Id: Id1faa2c45bf2dade9fe779440721a1d42cbdfcd1
Diffstat (limited to 'res')
0 files changed, 0 insertions, 0 deletions