From 685d9d0bf9890f49c2e66bfaf36ed3304a2eb840 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Thu, 14 May 2026 14:12:05 -0400 Subject: [PATCH] Revert "[android] Fix crash on start any games for many handhelds (Ayaneo, Retroid etc) (#3647)" --- .../yuzu_emu/activities/EmulationActivity.kt | 46 +++---------------- 1 file changed, 7 insertions(+), 39 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index a7dfc5398b..716bdfeb7e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt @@ -15,7 +15,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter -import android.content.pm.PackageManager import android.content.res.Configuration import android.graphics.Rect import android.graphics.drawable.Icon @@ -101,7 +100,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener, InputManager private var romSwapGeneration = 0 private var hasEmulationSession = processHasEmulationSession private val romSwapStopTimeoutRunnable = Runnable { onRomSwapStopTimeout() } - private val pictureInPictureFailureActions: MutableSet = mutableSetOf() private fun onRomSwapStopTimeout() { if (!isWaitingForRomSwapStop) { @@ -270,18 +268,12 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener, InputManager } override fun onUserLeaveHint() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S || - !isPictureInPictureSupported() || - !BooleanSetting.PICTURE_IN_PICTURE.getBoolean() || - isInPictureInPictureMode - ) { - return - } - - val pictureInPictureParamsBuilder = PictureInPictureParams.Builder() - .getPictureInPictureActionsBuilder().getPictureInPictureAspectBuilder() - runPictureInPictureAction("enter picture-in-picture mode") { - enterPictureInPictureMode(pictureInPictureParamsBuilder.build()) + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { + if (BooleanSetting.PICTURE_IN_PICTURE.getBoolean() && !isInPictureInPictureMode) { + val pictureInPictureParamsBuilder = PictureInPictureParams.Builder() + .getPictureInPictureActionsBuilder().getPictureInPictureAspectBuilder() + enterPictureInPictureMode(pictureInPictureParamsBuilder.build()) + } } } @@ -661,29 +653,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener, InputManager return this.apply { setActions(pictureInPictureActions) } } - private fun isPictureInPictureSupported() = - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && - packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) - - private fun runPictureInPictureAction(actionName: String, action: () -> Unit) { - try { - action() - } catch (e: IllegalStateException) { - if (pictureInPictureFailureActions.add(actionName)) { - Log.warning("[PiP] Failed to $actionName: ${e.message}") - } - } catch (e: UnsupportedOperationException) { - if (pictureInPictureFailureActions.add(actionName)) { - Log.warning("[PiP] Failed to $actionName: ${e.message}") - } - } - } - fun buildPictureInPictureParams() { - if (!isPictureInPictureSupported()) { - return - } - val pictureInPictureParamsBuilder = PictureInPictureParams.Builder() .getPictureInPictureActionsBuilder().getPictureInPictureAspectBuilder() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { @@ -693,9 +663,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener, InputManager BooleanSetting.PICTURE_IN_PICTURE.getBoolean() && isEmulationActive ) } - runPictureInPictureAction("set picture-in-picture params") { - setPictureInPictureParams(pictureInPictureParamsBuilder.build()) - } + setPictureInPictureParams(pictureInPictureParamsBuilder.build()) } fun displayMultiplayerDialog() {