summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/app/ChooserActivity.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 744503afc958..a4ad46819b65 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -225,6 +225,7 @@ public class ChooserActivity extends ResolverActivity {
public static final int LIST_VIEW_UPDATE_INTERVAL_IN_MILLIS = 250;
private static final int MAX_EXTRA_INITIAL_INTENTS = 2;
+ private static final int MAX_EXTRA_CHOOSER_TARGETS = 2;
private boolean mListViewDataChanged = false;
@@ -413,8 +414,9 @@ public class ChooserActivity extends ResolverActivity {
pa = intent.getParcelableArrayExtra(Intent.EXTRA_CHOOSER_TARGETS);
if (pa != null) {
- ChooserTarget[] targets = new ChooserTarget[pa.length];
- for (int i = 0; i < pa.length; i++) {
+ int count = Math.min(pa.length, MAX_EXTRA_CHOOSER_TARGETS);
+ ChooserTarget[] targets = new ChooserTarget[count];
+ for (int i = 0; i < count; i++) {
if (!(pa[i] instanceof ChooserTarget)) {
Log.w(TAG, "Chooser target #" + i + " not a ChooserTarget: " + pa[i]);
targets = null;
@@ -1026,7 +1028,6 @@ public class ChooserActivity extends ResolverActivity {
break;
case ChooserListAdapter.TARGET_SERVICE:
cat = MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET;
- value -= mChooserListAdapter.getCallerTargetCount();
// Log the package name + target name to answer the question if most users
// share to mostly the same person or to a bunch of different people.
ChooserTarget target =
@@ -1038,6 +1039,10 @@ public class ChooserActivity extends ResolverActivity {
+ target.getTitle().toString(),
mMaxHashSaltDays);
directTargetAlsoRanked = getRankedPosition((SelectableTargetInfo) targetInfo);
+
+ if (mCallerChooserTargets != null) {
+ value -= mCallerChooserTargets.length;
+ }
break;
case ChooserListAdapter.TARGET_STANDARD:
cat = MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET;