diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-02-19 17:11:41 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-02-19 17:11:41 -0800 |
commit | d1214c9c92b6a4a44cfc46125c33d071a0f3d880 (patch) | |
tree | 580d8d0d8d241bcb41be3d00adbe0d3d89bbd741 /src | |
parent | 2eb144d8effed2dbb067957c5b25e735233bca89 (diff) | |
download | android_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.java | 1 | ||||
-rw-r--r-- | src/com/android/providers/downloads/DownloadThread.java | 7 |
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 && |