summaryrefslogtreecommitdiff
path: root/java/src/com
diff options
context:
space:
mode:
author Andrey Epin <ayepin@google.com> 2022-10-25 16:10:59 -0700
committer Andrey Epin <ayepin@google.com> 2022-10-25 16:17:16 -0700
commit1c886d0a4769207b2febeb2fa3199a88fd5b9bb9 (patch)
tree9d87f407d9c3672150c5e2f0fdcbf495501f4798 /java/src/com
parent2a432f1aa08612593bacb3a3fcf254d39189c06b (diff)
Fix NPE
Fix NPE when launching chooser with a caller-specified target. Enforce non-nullability of the ChooserListAdapter#addServiceResult map arguments. Attempt to invoke interface method 'java.lang.Object java.util.Map.get(java.lang.Object)' on a null object reference at com.android.intentresolver.ShortcutSelectionLogic.addServiceResults(ShortcutSelectionLogic.java:111) Test: manual testing with a caller-specified target Change-Id: I3ff85351d84545cb8a7537f703dc7cbc6214b272
Diffstat (limited to 'java/src/com')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index 193956f9..c88b2eb9 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -138,6 +138,7 @@ import java.net.URISyntaxException;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
@@ -498,9 +499,10 @@ public class ChooserActivity extends ResolverActivity implements
if (adapterForUserHandle != null) {
adapterForUserHandle.addServiceResults(
resultInfo.originalTarget,
- resultInfo.resultTargets, msg.arg1,
- mDirectShareShortcutInfoCache,
- mDirectShareAppTargetCache);
+ resultInfo.resultTargets,
+ msg.arg1,
+ emptyIfNull(mDirectShareShortcutInfoCache),
+ emptyIfNull(mDirectShareAppTargetCache));
}
}
}
@@ -1689,8 +1691,8 @@ public class ChooserActivity extends ResolverActivity implements
/* origTarget */ null,
Lists.newArrayList(mCallerChooserTargets),
TARGET_TYPE_DEFAULT,
- /* directShareShortcutInfoCache */ null,
- /* directShareAppTargetCache */ null);
+ /* directShareShortcutInfoCache */ Collections.emptyMap(),
+ /* directShareAppTargetCache */ Collections.emptyMap());
}
}
@@ -4022,4 +4024,8 @@ public class ChooserActivity extends ResolverActivity implements
private boolean shouldNearbyShareBeIncludedAsActionButton() {
return !shouldNearbyShareBeFirstInRankedRow();
}
+
+ private static <K, V> Map<K, V> emptyIfNull(@Nullable Map<K, V> map) {
+ return map == null ? Collections.emptyMap() : map;
+ }
}