summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2009-09-24 07:59:02 -0700
committerJean-Baptiste Queru <jbq@google.com>2009-09-24 09:22:49 -0700
commit4a977a52c3eb3ac08b94b81aef72fb618be39f81 (patch)
tree5e1a9e32c16f0f71af6ec24cf04e843be1ea1755 /src
parent2061c03400a8e23cfeee5394b7e71db2440a48ed (diff)
downloadandroid_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.tar.gz
android_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.tar.bz2
android_packages_providers_DownloadProvider-4a977a52c3eb3ac08b94b81aef72fb618be39f81.zip
Re-use the same random value to compute a download's restart time.
The restart time is used multiple times during the same pass, and it needs to be consistent across calls. Otherwise, it's possible for a download to not be restarted immediately and to not be scheduled for a future restart. BUG=2055624
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadInfo.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/DownloadInfo.java b/src/com/android/providers/downloads/DownloadInfo.java
index 336a2a0d..88cdede2 100644
--- a/src/com/android/providers/downloads/DownloadInfo.java
+++ b/src/com/android/providers/downloads/DownloadInfo.java
@@ -50,6 +50,8 @@ public class DownloadInfo {
public String mETag;
public boolean mMediaScanned;
+ public int mFuzz;
+
public volatile boolean mHasActiveThread;
public DownloadInfo(int id, String uri, boolean noIntegrity,
@@ -83,6 +85,7 @@ public class DownloadInfo {
mCurrentBytes = currentBytes;
mETag = eTag;
mMediaScanned = mediaScanned;
+ mFuzz = Helpers.sRandom.nextInt(1001);
}
public void sendIntentIfRequested(Uri contentUri, Context context) {
@@ -110,7 +113,7 @@ public class DownloadInfo {
}
return mLastMod +
Constants.RETRY_FIRST_DELAY *
- (1000 + Helpers.sRandom.nextInt(1001)) * (1 << (mNumFailed - 1));
+ (1000 + mFuzz) * (1 << (mNumFailed - 1));
}
/**