diff options
author | Axesh R. Ajmera <aajmera@codeaurora.org> | 2014-09-04 11:18:47 -0700 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2014-09-29 08:48:16 -0700 |
commit | 025fed39721c4b5a19104807c7d2e46b11be2afe (patch) | |
tree | 0f1ffc5b448370de9ac586522abb4748928e499a | |
parent | 0c73c7cf9093604173f08a16fc3d7bca2713b950 (diff) | |
download | android_packages_apps_Gello-025fed39721c4b5a19104807c7d2e46b11be2afe.tar.gz android_packages_apps_Gello-025fed39721c4b5a19104807c7d2e46b11be2afe.tar.bz2 android_packages_apps_Gello-025fed39721c4b5a19104807c7d2e46b11be2afe.zip |
Fix for upload handler
Change-Id: I04689ba507719f3cb55683acf1e8427b1e2c6e07
-rw-r--r-- | src/com/android/browser/UploadDialog.java | 24 | ||||
-rw-r--r-- | src/com/android/browser/UploadHandler.java | 35 |
2 files changed, 26 insertions, 33 deletions
diff --git a/src/com/android/browser/UploadDialog.java b/src/com/android/browser/UploadDialog.java index d96c4864..a91613ed 100644 --- a/src/com/android/browser/UploadDialog.java +++ b/src/com/android/browser/UploadDialog.java @@ -41,7 +41,6 @@ import android.content.pm.ActivityInfo; import android.content.pm.ResolveInfo; import android.content.pm.PackageManager; -import java.util.ArrayList; import java.util.List; public class UploadDialog extends AppItem { @@ -55,21 +54,8 @@ public class UploadDialog extends AppItem { this.apps = null; } - public void getUploadableApps(List<Intent> intents) { - - ArrayList<ResolveInfo> uploadApps = new ArrayList<ResolveInfo>(); - - PackageManager pm = activity.getPackageManager(); - - for (Intent currentIntent: intents) { - List<ResolveInfo> appsList = pm.queryIntentActivities(currentIntent, - PackageManager.MATCH_DEFAULT_ONLY); - for (ResolveInfo res : appsList) { - uploadApps.add(res); - } - } - - this.apps = uploadApps; + public void getUploadableApps(List<ResolveInfo> apps, List<Intent> intents) { + this.apps = apps; this.uploadIntents = intents; } @@ -78,7 +64,6 @@ public class UploadDialog extends AppItem { final AppAdapter adapter = new AppAdapter(activity, activity.getPackageManager(), R.layout.app_row, this.apps); - AlertDialog.Builder builderSingle = new AlertDialog.Builder(activity); builderSingle.setIcon(R.mipmap.ic_launcher_browser_swe); builderSingle.setTitle(activity.getString(R.string.choose_upload)); @@ -87,12 +72,10 @@ public class UploadDialog extends AppItem { @Override public void onClick(DialogInterface dialog, int position) { dialog.dismiss(); - Intent chooserIntent = Intent.createChooser(uploadIntents.get(position), "Upload Via"); - uploadHandler.initiateActivity(chooserIntent); + uploadHandler.initiateActivity(uploadIntents.get(position)); } }); - builderSingle.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override @@ -104,6 +87,5 @@ public class UploadDialog extends AppItem { }); builderSingle.show(); - } }
\ No newline at end of file diff --git a/src/com/android/browser/UploadHandler.java b/src/com/android/browser/UploadHandler.java index 655d642b..34de006d 100644 --- a/src/com/android/browser/UploadHandler.java +++ b/src/com/android/browser/UploadHandler.java @@ -40,7 +40,6 @@ import com.android.browser.reflect.ReflectHelper; 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 @@ public class UploadHandler { 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); } |