Merge cherrypicks of [9111140, 9111141, 9111142, 9111143, 9109055] into qt-release

Change-Id: I5ea01972a17067981e4908ea132532e733f3f0bc
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index 550c8fb..eb0313c 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -851,6 +851,8 @@
                             mediaStoreUri.toString());
                     filteredValues.put(COLUMN_MEDIA_SCANNED, MEDIA_SCANNED);
                 }
+                MediaStore.scanFile(getContext(),
+                        new File(filteredValues.getAsString(Downloads.Impl._DATA)));
             } finally {
                 restoreCallingIdentity(token);
             }
@@ -1551,6 +1553,9 @@
                                 qb.update(db, updateValues, Downloads.Impl._ID + "=?",
                                         new String[] { Long.toString(info.mId) });
                             }
+                            if (Downloads.Impl.isStatusSuccess(info.mStatus)) {
+                                MediaStore.scanFile(getContext(), new File(info.mFileName));
+                            }
                         }
                         if (updateSchedule) {
                             Helpers.scheduleJob(context, info);
diff --git a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
index 38bf4d6..6acdfed 100644
--- a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
+++ b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
@@ -33,6 +33,7 @@
 import android.database.MatrixCursor;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.provider.Downloads;
 import android.provider.MediaStore;
@@ -123,6 +124,11 @@
         }
 
         @Override
+        public Bundle call(String method, String request, Bundle args) {
+          return new Bundle();
+        }
+
+        @Override
         public IBinder getIContentProviderBinder() {
             return new Binder();
         }