summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Andrey Epin <ayepin@google.com> 2023-03-28 16:22:04 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-03-28 16:22:04 +0000
commitfe666cd55aec4c3d8a7caf71978abe49902d737c (patch)
tree64d0b60810a07045180bd78997ce33cad0858b43 /java/src
parenteabc904f06d9f2014e804ae4a6464abbd68eb814 (diff)
parenta703bf08aa2212ca0dbefd535e9df92075d20cf4 (diff)
Merge "Fallback to ShortcutManager if AppPredictor has crashed" into udc-dev am: 9c1f13565a am: a703bf08aa
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/22285708 Change-Id: I75f41ae1ae7b4be8d8abf6a851b14201e945656f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt11
1 files changed, 9 insertions, 2 deletions
diff --git a/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt b/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
index 6f7542f1..29e706d4 100644
--- a/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
+++ b/java/src/com/android/intentresolver/shortcuts/ShortcutLoader.kt
@@ -77,6 +77,7 @@ open class ShortcutLoader @VisibleForTesting constructor(
private val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager
private val activeRequest = AtomicReference(NO_REQUEST)
private val appPredictorCallback = AppPredictor.Callback { onAppPredictorCallback(it) }
+ @Volatile
private var isDestroyed = false
@MainThread
@@ -134,8 +135,14 @@ open class ShortcutLoader @VisibleForTesting constructor(
@WorkerThread
private fun queryDirectShareTargets(skipAppPredictionService: Boolean) {
if (!skipAppPredictionService && appPredictor != null) {
- appPredictor.requestPredictionUpdate()
- return
+ try {
+ appPredictor.requestPredictionUpdate()
+ return
+ } catch (e: Throwable) {
+ // we might have been destroyed concurrently, nothing left to do
+ if (isDestroyed) return
+ Log.e(TAG, "Failed to query AppPredictor", e)
+ }
}
// Default to just querying ShortcutManager if AppPredictor not present.
if (targetIntentFilter == null) return