diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2009-11-15 12:07:00 -0800 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2009-11-15 12:07:00 -0800 |
commit | bb9dc6e1ac5e7ae0f12a8bb0aeb2a3b324328ec5 (patch) | |
tree | efc617bf851c98b42b699d414ee48831d26631b3 /src/com/android | |
parent | dbc76518512a1a5d8a0fe09e20e5aac692fd9ac4 (diff) | |
parent | cf79a11f9fee88daf48aa71b1d521fc5e07bf839 (diff) | |
download | android_packages_providers_DownloadProvider-bb9dc6e1ac5e7ae0f12a8bb0aeb2a3b324328ec5.tar.gz android_packages_providers_DownloadProvider-bb9dc6e1ac5e7ae0f12a8bb0aeb2a3b324328ec5.tar.bz2 android_packages_providers_DownloadProvider-bb9dc6e1ac5e7ae0f12a8bb0aeb2a3b324328ec5.zip |
merge from eclair
Diffstat (limited to 'src/com/android')
5 files changed, 48 insertions, 5 deletions
diff --git a/src/com/android/providers/downloads/Constants.java b/src/com/android/providers/downloads/Constants.java index 993ed781..5cf13531 100644 --- a/src/com/android/providers/downloads/Constants.java +++ b/src/com/android/providers/downloads/Constants.java @@ -140,12 +140,15 @@ public class Constants { */ public static final int RETRY_FIRST_DELAY = 30; + /** Enable separate connectivity logging */ + static final boolean LOGX = false; + /** Enable verbose logging - use with "setprop log.tag.DownloadManager VERBOSE" */ - private static final boolean LOCAL_LOGV = true; + private static final boolean LOCAL_LOGV = false; public static final boolean LOGV = Config.LOGV || (Config.LOGD && LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE)); /** Enable super-verbose logging */ - private static final boolean LOCAL_LOGVV = true; + private static final boolean LOCAL_LOGVV = false; public static final boolean LOGVV = LOCAL_LOGVV && LOGV; } 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)); } /** diff --git a/src/com/android/providers/downloads/DownloadReceiver.java b/src/com/android/providers/downloads/DownloadReceiver.java index c0ccad3a..2065c649 100644 --- a/src/com/android/providers/downloads/DownloadReceiver.java +++ b/src/com/android/providers/downloads/DownloadReceiver.java @@ -51,7 +51,22 @@ public class DownloadReceiver extends BroadcastReceiver { NetworkInfo info = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); if (info != null && info.isConnected()) { + if (Constants.LOGX) { + if (Helpers.isNetworkAvailable(context)) { + Log.i(Constants.TAG, "Broadcast: Network Up"); + } else { + Log.i(Constants.TAG, "Broadcast: Network Up, Actually Down"); + } + } context.startService(new Intent(context, DownloadService.class)); + } else { + if (Constants.LOGX) { + if (Helpers.isNetworkAvailable(context)) { + Log.i(Constants.TAG, "Broadcast: Network Down, Actually Up"); + } else { + Log.i(Constants.TAG, "Broadcast: Network Down"); + } + } } } else if (intent.getAction().equals(Constants.ACTION_RETRY)) { if (Constants.LOGVV) { diff --git a/src/com/android/providers/downloads/DownloadService.java b/src/com/android/providers/downloads/DownloadService.java index 07ab9416..a246d29f 100644 --- a/src/com/android/providers/downloads/DownloadService.java +++ b/src/com/android/providers/downloads/DownloadService.java @@ -311,6 +311,7 @@ public class DownloadService extends Service { null, null, null, Downloads._ID); if (cursor == null) { + // TODO: this doesn't look right, it'd leave the loop in an inconsistent state return; } @@ -362,7 +363,7 @@ public class DownloadService extends Service { if (arrayPos == mDownloads.size()) { insertDownload(cursor, arrayPos, networkAvailable, networkRoaming, now); if (Constants.LOGVV) { - Log.v(Constants.TAG, "Array update: inserting " + + Log.v(Constants.TAG, "Array update: appending " + id + " @ " + arrayPos); } if (shouldScanFile(arrayPos) @@ -421,7 +422,7 @@ public class DownloadService extends Service { } else { // This cursor entry didn't exist in the stored array if (Constants.LOGVV) { - Log.v(Constants.TAG, "Array update: appending " + + Log.v(Constants.TAG, "Array update: inserting " + id + " @ " + arrayPos); } insertDownload( diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 7703d14d..d899314b 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -214,6 +214,13 @@ http_request_loop: request.abort(); break http_request_loop; } catch (IOException ex) { + if (Constants.LOGX) { + if (Helpers.isNetworkAvailable(mContext)) { + Log.i(Constants.TAG, "Execute Failed " + mInfo.mId + ", Net Up"); + } else { + Log.i(Constants.TAG, "Execute Failed " + mInfo.mId + ", Net Down"); + } + } if (!Helpers.isNetworkAvailable(mContext)) { finalStatus = Downloads.STATUS_RUNNING_PAUSED; } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) { @@ -442,6 +449,13 @@ http_request_loop: try { entityStream = response.getEntity().getContent(); } catch (IOException ex) { + if (Constants.LOGX) { + if (Helpers.isNetworkAvailable(mContext)) { + Log.i(Constants.TAG, "Get Failed " + mInfo.mId + ", Net Up"); + } else { + Log.i(Constants.TAG, "Get Failed " + mInfo.mId + ", Net Down"); + } + } if (!Helpers.isNetworkAvailable(mContext)) { finalStatus = Downloads.STATUS_RUNNING_PAUSED; } else if (mInfo.mNumFailed < Constants.MAX_RETRIES) { @@ -468,6 +482,13 @@ http_request_loop: try { bytesRead = entityStream.read(data); } catch (IOException ex) { + if (Constants.LOGX) { + if (Helpers.isNetworkAvailable(mContext)) { + Log.i(Constants.TAG, "Read Failed " + mInfo.mId + ", Net Up"); + } else { + Log.i(Constants.TAG, "Read Failed " + mInfo.mId + ", Net Down"); + } + } ContentValues values = new ContentValues(); values.put(Downloads.COLUMN_CURRENT_BYTES, bytesSoFar); mContext.getContentResolver().update(contentUri, values, null, null); |