summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxesh R. Ajmera <aajmera@codeaurora.org>2014-09-04 11:18:47 -0700
committerWebTech Code Review <code-review@localhost>2014-09-29 08:48:16 -0700
commit025fed39721c4b5a19104807c7d2e46b11be2afe (patch)
tree0f1ffc5b448370de9ac586522abb4748928e499a
parent0c73c7cf9093604173f08a16fc3d7bca2713b950 (diff)
downloadandroid_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.java24
-rw-r--r--src/com/android/browser/UploadHandler.java35
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);
}