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
This commit is contained in:
Joshua Trask
2022-10-12 10:56:16 -04:00
parent 0aeadb78d0
commit a9b92f9c9a

View File

@@ -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 { }