android - ensure controller respects users controller visibility settings at launch

This commit is contained in:
Emmanuel Hansen 2023-12-19 10:41:19 +00:00
parent 497101773c
commit ec654e7a02
3 changed files with 3 additions and 11 deletions

View File

@ -11,8 +11,6 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.swordfish.radialgamepad.library.RadialGamePad import com.swordfish.radialgamepad.library.RadialGamePad
import com.swordfish.radialgamepad.library.config.ButtonConfig import com.swordfish.radialgamepad.library.config.ButtonConfig
@ -29,6 +27,7 @@ import kotlinx.coroutines.flow.merge
import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.ryujinx.android.viewmodels.MainViewModel import org.ryujinx.android.viewmodels.MainViewModel
import org.ryujinx.android.viewmodels.QuickSettings
typealias GamePad = RadialGamePad typealias GamePad = RadialGamePad
typealias GamePadConfig = RadialGamePadConfig typealias GamePadConfig = RadialGamePadConfig
@ -65,6 +64,7 @@ class GameController(var activity: Activity) {
} }
controller.controllerView = c controller.controllerView = c
viewModel.setGameController(controller) viewModel.setGameController(controller)
controller.setVisible(QuickSettings(viewModel.activity).useVirtualController)
c c
}) })
} }

View File

@ -8,7 +8,6 @@ import android.view.SurfaceView
import androidx.compose.runtime.MutableState import androidx.compose.runtime.MutableState
import org.ryujinx.android.viewmodels.GameModel import org.ryujinx.android.viewmodels.GameModel
import org.ryujinx.android.viewmodels.MainViewModel import org.ryujinx.android.viewmodels.MainViewModel
import org.ryujinx.android.viewmodels.QuickSettings
import kotlin.concurrent.thread import kotlin.concurrent.thread
@SuppressLint("ViewConstructor") @SuppressLint("ViewConstructor")
@ -88,14 +87,6 @@ class GameHost(context: Context?, private val mainViewModel: MainViewModel) : Su
_nativeRyujinx.inputInitialize(width, height) _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() val id = mainViewModel.physicalControllerManager?.connect()
mainViewModel.motionSensorManager?.setControllerId(id ?: -1) mainViewModel.motionSensorManager?.setControllerId(id ?: -1)

View File

@ -173,6 +173,7 @@ class GameViews {
IconButton(modifier = Modifier.padding(4.dp), onClick = { IconButton(modifier = Modifier.padding(4.dp), onClick = {
showMore.value = false showMore.value = false
showController.value = !showController.value showController.value = !showController.value
ryujinxNative.inputReleaseTouchPoint()
mainViewModel.controller?.setVisible(showController.value) mainViewModel.controller?.setVisible(showController.value)
}) { }) {
Icon( Icon(