From a9b92f9c9a1d788e59dca4528ff540e24a702bdf Mon Sep 17 00:00:00 2001 From: Joshua Trask Date: Wed, 12 Oct 2022 10:56:16 -0400 Subject: [PATCH] ChooserSelector shouldn't crash w/o IntentResolver If we don't have the new (so-called "unbundled") IntentResolver package installed on a device, we'll just fall back to the system Chooser -- we shouldn't crash trying to control an experiment that wouldn't have any effect on that device in the first place. Test: Build (will also check fixed regressions before merge) Bug: 253190011 Change-Id: I2a6b49c6fb39a730759c182f8b8245b1ccc813c9 --- .../SystemUI/src/com/android/systemui/ChooserSelector.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/ChooserSelector.kt b/packages/SystemUI/src/com/android/systemui/ChooserSelector.kt index 109be40ce10ff..37829f25d1799 100644 --- a/packages/SystemUI/src/com/android/systemui/ChooserSelector.kt +++ b/packages/SystemUI/src/com/android/systemui/ChooserSelector.kt @@ -3,6 +3,7 @@ package com.android.systemui import android.content.ComponentName import android.content.Context import android.content.pm.PackageManager +import android.util.Log import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Background @@ -55,7 +56,11 @@ class ChooserSelector @Inject constructor( } else { PackageManager.COMPONENT_ENABLED_STATE_DISABLED } - packageManager.setComponentEnabledSetting(chooserComponent, newState, /* flags = */ 0) + try { + packageManager.setComponentEnabledSetting(chooserComponent, newState, /* flags = */ 0) + } catch (e: IllegalArgumentException) { + Log.w("ChooserSelector", "Unable to set IntentResolver enabled=" + enabled, e) + } } suspend inline fun awaitCancellation(): Nothing = suspendCancellableCoroutine { }