summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/UploadHandler.java
diff options
context:
space:
mode:
authorAxesh R. Ajmera <aajmera@codeaurora.org>2014-12-09 15:25:40 -0800
committerWebTech Code Review <code-review@localhost>2014-12-10 14:05:15 -0800
commitcdbedf12be2947e533a0e9a81f29fc407519e16d (patch)
tree75527cefc2466477d6d1802cd3cfc57a5dfb022c /src/com/android/browser/UploadHandler.java
parent4bdb5257fa56ebfda99f5fca1d9dbfafbdd59339 (diff)
downloadandroid_packages_apps_Gello-cdbedf12be2947e533a0e9a81f29fc407519e16d.tar.gz
android_packages_apps_Gello-cdbedf12be2947e533a0e9a81f29fc407519e16d.tar.bz2
android_packages_apps_Gello-cdbedf12be2947e533a0e9a81f29fc407519e16d.zip
Perform more robust checks for list of apps
queried by upload handler. The upload handler presumed atleast one set of app available, when it queries the package manager for multiple intents such as camera,camcorder, sound recorder and documents. But if the device has no apps, which support any of above intent then package manager would return an empty list. Change-Id: Ia4cd989f33a9f08da3c0bb1eebf310344ce6428e
Diffstat (limited to 'src/com/android/browser/UploadHandler.java')
-rw-r--r--src/com/android/browser/UploadHandler.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/com/android/browser/UploadHandler.java b/src/com/android/browser/UploadHandler.java
index 2041ecf1..6b0a39f9 100644
--- a/src/com/android/browser/UploadHandler.java
+++ b/src/com/android/browser/UploadHandler.java
@@ -39,6 +39,7 @@ import com.android.browser.reflect.ReflectHelper;
import java.io.File;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
/**
@@ -503,11 +504,18 @@ public class UploadHandler {
ArrayList<ResolveInfo> uploadApps = new ArrayList<ResolveInfo>();
//Step 1:- resolve all apps for IntentList passed
- for (Intent i: intentList) {
- List<ResolveInfo> intentAppsList = pm.queryIntentActivities(i,
+ for (Iterator<Intent> iterator = intentList.iterator(); iterator.hasNext();) {
+ List<ResolveInfo> intentAppsList = pm.queryIntentActivities(iterator.next(),
PackageManager.MATCH_DEFAULT_ONLY);
- // limit only to first activity
- uploadApps.add(intentAppsList.get(0));
+
+ // Check whether any apps are available
+ if (intentAppsList!= null && intentAppsList.size() > 0){
+ // limit only to first activity
+ uploadApps.add(intentAppsList.get(0));
+ } else {
+ iterator.remove();
+ }
+
}
// Step 2:- get all openable apps list and create corresponding intents