diff options
| author | 2023-03-28 15:56:18 +0000 | |
|---|---|---|
| committer | 2023-03-28 15:56:18 +0000 | |
| commit | a703bf08aa2212ca0dbefd535e9df92075d20cf4 (patch) | |
| tree | 5b0a6d3e1e29b3bf9d8d9b9a378549a77c8e9d26 /java/src | |
| parent | fba85ef26628028bb6bf1a7b82167f211cecdc4a (diff) | |
| parent | 9c1f13565a33f4846aa9255ba74b0ef1c49b972a (diff) | |
Merge "Fallback to ShortcutManager if AppPredictor has crashed" into udc-dev am: 9c1f13565a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/22285708
Change-Id: I583aebcc842c3c814cfa4273c96088a4ea6e04f7
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.kt | 11 |
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 |