|
|
|
@ -85,20 +85,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
|
|
onReturnFromSettings = context.activityResultRegistry.register(
|
|
|
|
|
"SettingsResult",
|
|
|
|
|
ActivityResultContracts.StartActivityForResult()
|
|
|
|
|
) {
|
|
|
|
|
binding.surfaceEmulation.setAspectRatio(
|
|
|
|
|
when (IntSetting.RENDERER_ASPECT_RATIO.int) {
|
|
|
|
|
0 -> Rational(16, 9)
|
|
|
|
|
1 -> Rational(4, 3)
|
|
|
|
|
2 -> Rational(21, 9)
|
|
|
|
|
3 -> Rational(16, 10)
|
|
|
|
|
4 -> null // Stretch
|
|
|
|
|
else -> Rational(16, 9)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
emulationActivity?.buildPictureInPictureParams()
|
|
|
|
|
updateScreenLayout()
|
|
|
|
|
}
|
|
|
|
|
) { updateScreenLayout() }
|
|
|
|
|
} else {
|
|
|
|
|
throw IllegalStateException("EmulationFragment must have EmulationActivity parent")
|
|
|
|
|
}
|
|
|
|
@ -242,17 +229,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
|
|
DirectoryInitialization.start(requireContext())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
binding.surfaceEmulation.setAspectRatio(
|
|
|
|
|
when (IntSetting.RENDERER_ASPECT_RATIO.int) {
|
|
|
|
|
0 -> Rational(16, 9)
|
|
|
|
|
1 -> Rational(4, 3)
|
|
|
|
|
2 -> Rational(21, 9)
|
|
|
|
|
3 -> Rational(16, 10)
|
|
|
|
|
4 -> null // Stretch
|
|
|
|
|
else -> Rational(16, 9)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
updateScreenLayout()
|
|
|
|
|
|
|
|
|
|
emulationState.run(emulationActivity!!.isActivityRecreated)
|
|
|
|
@ -315,7 +291,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressLint("SourceLockedOrientationActivity")
|
|
|
|
|
private fun updateScreenLayout() {
|
|
|
|
|
private fun updateOrientation() {
|
|
|
|
|
emulationActivity?.let {
|
|
|
|
|
it.requestedOrientation = when (IntSetting.RENDERER_SCREEN_LAYOUT.int) {
|
|
|
|
|
Settings.LayoutOption_MobileLandscape ->
|
|
|
|
@ -326,7 +302,21 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
|
|
else -> ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
onConfigurationChanged(resources.configuration)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun updateScreenLayout() {
|
|
|
|
|
binding.surfaceEmulation.setAspectRatio(
|
|
|
|
|
when (IntSetting.RENDERER_ASPECT_RATIO.int) {
|
|
|
|
|
0 -> Rational(16, 9)
|
|
|
|
|
1 -> Rational(4, 3)
|
|
|
|
|
2 -> Rational(21, 9)
|
|
|
|
|
3 -> Rational(16, 10)
|
|
|
|
|
4 -> null // Stretch
|
|
|
|
|
else -> Rational(16, 9)
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
emulationActivity?.buildPictureInPictureParams()
|
|
|
|
|
updateOrientation()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun updateFoldableLayout(
|
|
|
|
@ -359,7 +349,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|
|
|
|
binding.overlayContainer.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
|
|
|
|
|
binding.inGameMenu.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
|
|
|
|
|
isInFoldableLayout = false
|
|
|
|
|
updateScreenLayout()
|
|
|
|
|
updateOrientation()
|
|
|
|
|
onConfigurationChanged(resources.configuration)
|
|
|
|
|
}
|
|
|
|
|
binding.emulationContainer.requestLayout()
|
|
|
|
|
binding.inputContainer.requestLayout()
|
|
|
|
|