Fix for upload handler

Change-Id: I04689ba507719f3cb55683acf1e8427b1e2c6e07
diff --git a/src/com/android/browser/UploadHandler.java b/src/com/android/browser/UploadHandler.java
index 655d642..34de006 100644
--- a/src/com/android/browser/UploadHandler.java
+++ b/src/com/android/browser/UploadHandler.java
@@ -40,7 +40,6 @@
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Vector;
 
 /**
  * Handle the file upload callbacks from WebView here
@@ -494,22 +493,34 @@
             intentList.add(createSoundRecorderIntent());
         }
 
-        // get all openable apps list and create corresponading intents
         PackageManager pm = mController.getActivity().getPackageManager();
-        List<ResolveInfo> openableAppsList = pm.queryIntentActivities(openable, 0);
-        for (int j = 0, n = openableAppsList.size(); j < n; j++ ) {
-                Intent i = new Intent(Intent.ACTION_GET_CONTENT);
-                i.setType(openableMimeType);
-                ActivityInfo activityInfo = openableAppsList.get(j).activityInfo;
-                ComponentName name = new ComponentName(activityInfo.applicationInfo.packageName,
-                                            activityInfo.name);
-                i.setComponent(name);
-                intentList.add(i);
+        ArrayList<ResolveInfo> uploadApps = new ArrayList<ResolveInfo>();
+
+        //Step 1:- resolve all apps for IntentList passed
+        for (Intent i: intentList) {
+            List<ResolveInfo> intentAppsList = pm.queryIntentActivities(i,
+                                                    PackageManager.MATCH_DEFAULT_ONLY);
+            // limit only to first activity
+            uploadApps.add(intentAppsList.get(0));
         }
 
+        // Step 2:- get all openable apps list and create corresponding intents
+        List<ResolveInfo> openableAppsList = pm.queryIntentActivities(openable,
+                                                PackageManager.MATCH_DEFAULT_ONLY);
+        // limit only to first activity
+        ResolveInfo topOpenableApp = openableAppsList.get(0);
+        uploadApps.add(topOpenableApp);
+        ActivityInfo activityInfo = topOpenableApp.activityInfo;
+        ComponentName name = new ComponentName(activityInfo.applicationInfo.packageName,
+                                    activityInfo.name);
+        Intent i = new Intent(Intent.ACTION_GET_CONTENT);
+        i.setType(openableMimeType);
+        i.setComponent(name);
+        intentList.add(i);
 
+        // Step 3: Pass all the apps and their corresponding intents to uploaddialog
         UploadDialog upDialog = new UploadDialog(mController.getActivity());
-        upDialog.getUploadableApps(intentList);
+        upDialog.getUploadableApps(uploadApps, intentList);
         upDialog.loadView(this);
     }