diff options
author | Axesh R. Ajmera <aajmera@codeaurora.org> | 2014-12-09 15:25:40 -0800 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2014-12-10 14:05:15 -0800 |
commit | cdbedf12be2947e533a0e9a81f29fc407519e16d (patch) | |
tree | 75527cefc2466477d6d1802cd3cfc57a5dfb022c /src/com/android/browser/UploadHandler.java | |
parent | 4bdb5257fa56ebfda99f5fca1d9dbfafbdd59339 (diff) | |
download | android_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.java | 16 |
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 |