Increase MediaScannerNotificationTest Timeout

Bug 5728172

Raising the timeout to a ridiculous amount just to see if it passes
in the lab at all. Improve the error message to see the file count.

Change-Id: Ifc23604eee6bfbfe84769ee4a17036941d0df183
diff --git a/tests/tests/media/src/android/media/cts/MediaScannerNotificationTest.java b/tests/tests/media/src/android/media/cts/MediaScannerNotificationTest.java
index c753ff1..f6ceacf 100644
--- a/tests/tests/media/src/android/media/cts/MediaScannerNotificationTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaScannerNotificationTest.java
@@ -24,6 +24,7 @@
 import android.os.Environment;
 import android.test.AndroidTestCase;
 
+import java.io.File;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -52,7 +53,7 @@
 
     static class ScannerNotificationReceiver extends BroadcastReceiver {
 
-        private static final int TIMEOUT_MS = 30 * 1000;
+        private static final int TIMEOUT_MS = 4 * 60 * 1000;
 
         private final String mAction;
         private final CountDownLatch mLatch = new CountDownLatch(1);
@@ -69,8 +70,26 @@
         }
 
         public void waitForBroadcast() throws InterruptedException {
-            assertTrue("Failed to receive broadcast for " + mAction,
-                    mLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            if (!mLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+                int numFiles = countFiles(Environment.getExternalStorageDirectory());
+                fail("Failed to receive broadcast in " + TIMEOUT_MS + "ms for " + mAction
+                        + " while trying to scan " + numFiles + " files!");
+            }
+        }
+
+        private int countFiles(File dir) {
+            int count = 0;
+            File[] files = dir.listFiles();
+            if (files != null) {
+                for (File file : files) {
+                    if (file.isDirectory()) {
+                        count += countFiles(file);
+                    } else {
+                        count++;
+                    }
+                }
+            }
+            return count;
         }
     }
 }