From 5b59b06d1e19f138a98648d06a931ab4c634cb75 Mon Sep 17 00:00:00 2001 From: arnav-cashify Date: Tue, 26 Aug 2025 17:04:48 +0530 Subject: [PATCH] fix(android): catch errors from `activity.packageManager` --- .../com/brentvatne/exoplayer/PictureInPictureUtil.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/brentvatne/exoplayer/PictureInPictureUtil.kt b/android/src/main/java/com/brentvatne/exoplayer/PictureInPictureUtil.kt index 3e3088a2..5e36ef25 100644 --- a/android/src/main/java/com/brentvatne/exoplayer/PictureInPictureUtil.kt +++ b/android/src/main/java/com/brentvatne/exoplayer/PictureInPictureUtil.kt @@ -180,10 +180,14 @@ object PictureInPictureUtil { private fun checkIsSystemSupportPIP(context: ThemedReactContext): Boolean { val activity = context.findActivity() ?: return false - val activityInfo = activity.packageManager.getActivityInfo(activity.componentName, PackageManager.GET_META_DATA) - // detect current activity's android:supportsPictureInPicture value defined within AndroidManifest.xml - // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/ActivityInfo.java;l=1090-1093;drc=7651f0a4c059a98f32b0ba30cd64500bf135385f - val isActivitySupportPip = activityInfo.flags and FLAG_SUPPORTS_PICTURE_IN_PICTURE != 0 + val isActivitySupportPip = try { + val activityInfo = activity.packageManager.getActivityInfo(activity.componentName, PackageManager.GET_META_DATA) + // detect current activity's android:supportsPictureInPicture value defined within AndroidManifest.xml + // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/ActivityInfo.java;l=1090-1093;drc=7651f0a4c059a98f32b0ba30cd64500bf135385f + activityInfo.flags and FLAG_SUPPORTS_PICTURE_IN_PICTURE != 0 + } catch (e: kotlin.Exception) { + false + } // PIP might be disabled on devices that have low RAM. val isPipAvailable = activity.packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)