From 80d1ac212e1f3fb459f54f218db0cd64c4b63c6d Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Tue, 19 Dec 2023 10:41:19 +0000 Subject: [PATCH] android - ensure controller respects users controller visibility settings at launch --- .../src/main/java/org/ryujinx/android/GameController.kt | 4 ++-- .../app/src/main/java/org/ryujinx/android/GameHost.kt | 9 --------- .../src/main/java/org/ryujinx/android/views/GameViews.kt | 1 + 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameController.kt b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameController.kt index 2e77ad21b..204a58e6b 100644 --- a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameController.kt +++ b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameController.kt @@ -11,8 +11,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidView import androidx.core.view.isVisible -import androidx.lifecycle.Lifecycle -import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.lifecycleScope import com.swordfish.radialgamepad.library.RadialGamePad import com.swordfish.radialgamepad.library.config.ButtonConfig @@ -29,6 +27,7 @@ import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.launch import org.ryujinx.android.viewmodels.MainViewModel +import org.ryujinx.android.viewmodels.QuickSettings typealias GamePad = RadialGamePad typealias GamePadConfig = RadialGamePadConfig @@ -65,6 +64,7 @@ class GameController(var activity: Activity) { } controller.controllerView = c viewModel.setGameController(controller) + controller.setVisible(QuickSettings(viewModel.activity).useVirtualController) c }) } diff --git a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameHost.kt b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameHost.kt index 81fef9c7b..27329285a 100644 --- a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameHost.kt +++ b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/GameHost.kt @@ -8,7 +8,6 @@ import android.view.SurfaceView import androidx.compose.runtime.MutableState import org.ryujinx.android.viewmodels.GameModel import org.ryujinx.android.viewmodels.MainViewModel -import org.ryujinx.android.viewmodels.QuickSettings import kotlin.concurrent.thread @SuppressLint("ViewConstructor") @@ -88,14 +87,6 @@ class GameHost(context: Context?, private val mainViewModel: MainViewModel) : Su _nativeRyujinx.inputInitialize(width, height) - val settings = QuickSettings(mainViewModel.activity) - - if (!settings.useVirtualController) { - mainViewModel.controller?.setVisible(false) - } else { - mainViewModel.controller?.connect() - } - val id = mainViewModel.physicalControllerManager?.connect() mainViewModel.motionSensorManager?.setControllerId(id ?: -1) diff --git a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/views/GameViews.kt b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/views/GameViews.kt index 63bd49209..e3b153530 100644 --- a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/views/GameViews.kt +++ b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/views/GameViews.kt @@ -173,6 +173,7 @@ class GameViews { IconButton(modifier = Modifier.padding(4.dp), onClick = { showMore.value = false showController.value = !showController.value + ryujinxNative.inputReleaseTouchPoint() mainViewModel.controller?.setVisible(showController.value) }) { Icon(