fix(android): catch errors from activity.packageManager

This commit is contained in:
arnav-cashify
2025-08-26 17:04:48 +05:30
committed by GitHub
parent b11d59ba26
commit 5b59b06d1e

View File

@@ -180,10 +180,14 @@ object PictureInPictureUtil {
private fun checkIsSystemSupportPIP(context: ThemedReactContext): Boolean {
val activity = context.findActivity() ?: return false
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
val isActivitySupportPip = activityInfo.flags and FLAG_SUPPORTS_PICTURE_IN_PICTURE != 0
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)