[automerger skipped] DO NOT MERGE: Consolidate queryChildDocumentsXxx() implementations am: e11e4ca6ee am: 996e0dc472 -s ours am: 1cc97d8336 -s ours am: 6b41e7bbb6 -s ours am: b0a6e17f7b -s ours am: 5828a3dea3 -s ours am: d19149d68e -s ours am: bafcd6fe9f -s ours am: c217095fa3 -s ours am: b56e339e30 -s ours

am skip reason: subject contains skip directive

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/providers/DownloadProvider/+/25150562

Change-Id: I7a285bda40daf0f734dd0904d4ed8cf1802fc827
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/providers/downloads/DownloadJobService.java b/src/com/android/providers/downloads/DownloadJobService.java
index 731e15f..b971a3a 100644
--- a/src/com/android/providers/downloads/DownloadJobService.java
+++ b/src/com/android/providers/downloads/DownloadJobService.java
@@ -88,11 +88,10 @@
             thread = mActiveThreads.removeReturnOld(id);
         }
         if (thread != null) {
-            // If the thread is still running, ask it to gracefully shutdown,
-            // and reschedule ourselves to resume in the future.
+            // If the thread is still running, asynchronously request a
+            // shutdown. The thread is responsible for rescheduling the
+            // job based on its latest progress.
             thread.requestShutdown();
-
-            Helpers.scheduleJob(this, DownloadInfo.queryDownloadInfo(this, id));
         }
         return false;
     }
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index c43280d..8522e26 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -380,6 +380,7 @@
         if (mInfoDelta.mStatus == STATUS_WAITING_TO_RETRY
                 || mInfoDelta.mStatus == STATUS_WAITING_FOR_NETWORK
                 || mInfoDelta.mStatus == STATUS_QUEUED_FOR_WIFI) {
+            logDebug("rescheduling the job id:" + mId);
             needsReschedule = true;
         }