summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Joshua Trask <joshtrask@google.com> 2024-01-19 14:46:17 +0000
committer Joshua Trask <joshtrask@google.com> 2024-01-19 14:46:17 +0000
commit5e087748cca8efa1f9d93818607c81191ed5ddb3 (patch)
treee8d930a713d7988a74118f02ecffe7114840b0c9 /java/src
parent99c9828d732ff25c87e8b41e386131dae70b4652 (diff)
Don't crash using a destroyed AppPredictor client
Bug: 318294957 Test: Build/presubmits Change-Id: Ic0a99e61cf6e1e687b75034c392f08eb098f7544
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java32
1 files changed, 20 insertions, 12 deletions
diff --git a/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java b/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
index 0651d26c..c6de3260 100644
--- a/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
+++ b/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
@@ -107,16 +107,20 @@ public class AppPredictionServiceResolverComparator extends AbstractResolverComp
.setClassName(target.name.getClassName())
.build());
}
- mAppPredictor.sortTargets(
- appTargets,
- Executors.newSingleThreadExecutor(),
- new ScopedAppTargetListCallback(
- mContext,
- sortedAppTargets -> {
- onAppTargetsSorted(targets, sortedAppTargets);
- return kotlin.Unit.INSTANCE;
- }).toConsumer()
- );
+ try {
+ mAppPredictor.sortTargets(
+ appTargets,
+ Executors.newSingleThreadExecutor(),
+ new ScopedAppTargetListCallback(
+ mContext,
+ sortedAppTargets -> {
+ onAppTargetsSorted(targets, sortedAppTargets);
+ return kotlin.Unit.INSTANCE;
+ }).toConsumer()
+ );
+ } catch (IllegalStateException e) {
+ Log.w(TAG, "Couldn't sort targets with AppPredictionService", e);
+ }
}
private void onAppTargetsSorted(
@@ -292,8 +296,12 @@ public class AppPredictionServiceResolverComparator extends AbstractResolverComp
new AppTarget.Builder(targetId, targetComponent.getPackageName(), mUser)
.setClassName(targetComponent.getClassName())
.build();
- mAppPredictor.notifyAppTargetEvent(
- new AppTargetEvent.Builder(appTarget, ACTION_LAUNCH).build());
+ try {
+ mAppPredictor.notifyAppTargetEvent(
+ new AppTargetEvent.Builder(appTarget, ACTION_LAUNCH).build());
+ } catch (IllegalStateException e) {
+ Log.w(TAG, "Couldn't send feedback to AppPredictionService", e);
+ }
}
}
}