summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-02-19 17:11:41 -0800
committerJeff Sharkey <jsharkey@android.com>2013-02-19 17:11:41 -0800
commitd1214c9c92b6a4a44cfc46125c33d071a0f3d880 (patch)
tree580d8d0d8d241bcb41be3d00adbe0d3d89bbd741 /src
parent2eb144d8effed2dbb067957c5b25e735233bca89 (diff)
downloadandroid_packages_providers_DownloadProvider-d1214c9c92b6a4a44cfc46125c33d071a0f3d880.tar.gz
android_packages_providers_DownloadProvider-d1214c9c92b6a4a44cfc46125c33d071a0f3d880.tar.bz2
android_packages_providers_DownloadProvider-d1214c9c92b6a4a44cfc46125c33d071a0f3d880.zip
Only report speeds from full samples windows.
Wait until we've passed a full sample window (500ms) before reporting an estimated speed. This avoid showing skewed times like "900 hours remaining." Also remember to clean up the UpdateThread. Bug: 8176417 Change-Id: I851e0abcbb443114abe9c22f4650fee7a9bc3aaa
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadService.java1
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java7
2 files changed, 6 insertions, 2 deletions
diff --git a/src/com/android/providers/downloads/DownloadService.java b/src/com/android/providers/downloads/DownloadService.java
index 34b1b495..66d3be96 100644
--- a/src/com/android/providers/downloads/DownloadService.java
+++ b/src/com/android/providers/downloads/DownloadService.java
@@ -185,6 +185,7 @@ public class DownloadService extends Service {
@Override
public void onDestroy() {
+ mUpdateThread.quit();
mScanner.shutdown();
getContentResolver().unregisterContentObserver(mObserver);
if (Constants.LOGVV) {
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index 95754a03..48eebfc0 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -540,10 +540,13 @@ public class DownloadThread implements Runnable {
state.mSpeed = ((state.mSpeed * 3) + sampleSpeed) / 4;
}
+ // Only notify once we have a full sample window
+ if (state.mSpeedSampleStart != 0) {
+ mNotifier.notifyDownloadSpeed(mInfo.mId, state.mSpeed);
+ }
+
state.mSpeedSampleStart = now;
state.mSpeedSampleBytes = state.mCurrentBytes;
-
- mNotifier.notifyDownloadSpeed(mInfo.mId, state.mSpeed);
}
if (state.mCurrentBytes - state.mBytesNotified > Constants.MIN_PROGRESS_STEP &&