diff options
| author | Tom Pratt <tom.pratt@outlook.com> | 2026-04-19 20:07:37 +0200 |
|---|---|---|
| committer | Tom Pratt <tompratt@squareup.com> | 2026-05-19 12:02:56 +0200 |
| commit | 86956b21bea7f6450f180fddf2ffcb2e1077a3b6 (patch) | |
| tree | 60fae45d79d557304200b105921e72bbf2a84527 /Source/Android/app/src/main | |
| parent | 65e4c6015860c650d6afa844e86ca6f1ecd2c15a (diff) | |
Settings refactor
Remove the big saveSetup function and set individual settings immediately after being changed in the UI. Group them all under Netplay.Settings
Diffstat (limited to 'Source/Android/app/src/main')
3 files changed, 39 insertions, 95 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt index 319929e71e..94de9bd98c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/Netplay.kt @@ -202,99 +202,46 @@ object Netplay { } // Settings + object Settings { + @JvmStatic + external fun getNickname(): String - @JvmStatic - external fun getNickname(): String - - fun getConnectionType(): ConnectionType = ConnectionType.all - .find { it.configValue == getTraversalChoice() } ?: throw IllegalStateException() - - @JvmStatic - external fun getTraversalChoice(): String + @JvmStatic + external fun setNickname(nickname: String) - @JvmStatic - external fun getAddress(): String + fun getConnectionType(): ConnectionType = ConnectionType.all + .find { it.configValue == getTraversalChoice() } ?: throw IllegalStateException() - @JvmStatic - external fun getHostCode(): String + @JvmStatic + external fun getTraversalChoice(): String - @JvmStatic - external fun getConnectPort(): Int - - @JvmStatic - external fun getHostPort(): Int - - @JvmStatic - external fun getUseUpnp(): Boolean + @JvmStatic + external fun setTraversalChoice(traversalChoice: String) - @JvmStatic - external fun getEnableChunkedUploadLimit(): Boolean + @JvmStatic + external fun getAddress(): String - @JvmStatic - external fun getChunkedUploadLimit(): Int + @JvmStatic + external fun setAddress(address: String) - @JvmStatic - external fun getUseIndex(): Boolean + @JvmStatic + external fun getHostCode(): String - @JvmStatic - external fun getIndexRegion(): String + @JvmStatic + external fun setHostCode(hostCode: String) - @JvmStatic - external fun getIndexName(): String + @JvmStatic + external fun getConnectPort(): Int - @JvmStatic - external fun getIndexPassword(): String + @JvmStatic + external fun setConnectPort(port: Int) - @JvmStatic - external fun getClientBufferSize(): Int + @JvmStatic + external fun getClientBufferSize(): Int - @JvmStatic - external fun setClientBufferSize(buffer: Int) - - suspend fun saveSetup( - nickname: String, - connectionType: ConnectionType, - address: String, - hostCode: String, - connectPort: Int, - ) = withContext(Dispatchers.IO) { - SaveSetup( - nickname = nickname, - traversalChoice = connectionType.configValue, - address = address, - hostCode = hostCode, - connectPort = connectPort, - hostPort = 2626, - useUpnp = false, - useListenPort = false, - listenPort = 2626, - enableChunkedUploadLimit = false, - chunkedUploadLimit = 3000, - useIndex = false, - indexRegion = "", - indexName = "", - indexPassword = "", - ) + @JvmStatic + external fun setClientBufferSize(buffer: Int) } - - @JvmStatic - external fun SaveSetup( - nickname: String, - traversalChoice: String, - address: String, - hostCode: String, - connectPort: Int, - hostPort: Int, - useUpnp: Boolean, - useListenPort: Boolean, - listenPort: Int, - enableChunkedUploadLimit: Boolean, - chunkedUploadLimit: Int, - useIndex: Boolean, - indexRegion: String, - indexName: String, - indexPassword: String, - ) } private fun Channel<String>.flush() { diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplaySetupViewModel.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplaySetupViewModel.kt index 19175e4df8..d1bd202c2f 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplaySetupViewModel.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplaySetupViewModel.kt @@ -19,19 +19,19 @@ class NetplaySetupViewModel : ViewModel() { private val _connectionRole = MutableStateFlow<ConnectionRole>(ConnectionRole.Connect) val connectionRole = _connectionRole.asStateFlow() - private val _nickname = MutableStateFlow(Netplay.getNickname()) + private val _nickname = MutableStateFlow(Netplay.Settings.getNickname()) val nickname = _nickname.asStateFlow() - private val _connectionType = MutableStateFlow(Netplay.getConnectionType()) + private val _connectionType = MutableStateFlow(Netplay.Settings.getConnectionType()) val connectionType = _connectionType.asStateFlow() - private val _ipAddress = MutableStateFlow(Netplay.getAddress()) + private val _ipAddress = MutableStateFlow(Netplay.Settings.getAddress()) val ipAddress = _ipAddress.asStateFlow() - private val _hostCode = MutableStateFlow(Netplay.getHostCode()) + private val _hostCode = MutableStateFlow(Netplay.Settings.getHostCode()) val hostCode = _hostCode.asStateFlow() - private val _connectPort = MutableStateFlow(Netplay.getConnectPort().toString()) + private val _connectPort = MutableStateFlow(Netplay.Settings.getConnectPort().toString()) val connectPort = _connectPort.asStateFlow() private val _showNetplayScreen = Channel<Unit>(CONFLATED) @@ -52,25 +52,30 @@ class NetplaySetupViewModel : ViewModel() { fun setNickname(nickname: String) { _nickname.value = nickname + Netplay.Settings.setNickname(nickname) } fun setConnectionType(connectionType: ConnectionType) { _connectionType.value = connectionType + Netplay.Settings.setTraversalChoice(connectionType.configValue) } fun setIpAddress(ipAddress: String) { if (ipAddress.all { it.isDigit() || it == '.' }) { _ipAddress.value = ipAddress + Netplay.Settings.setAddress(ipAddress) } } fun setHostCode(hostCode: String) { _hostCode.value = hostCode + Netplay.Settings.setHostCode(hostCode) } fun setConnectPort(port: String) { if (port.all { it.isDigit() }) { _connectPort.value = port + port.toIntOrNull()?.let { Netplay.Settings.setConnectPort(it) } } } @@ -80,14 +85,6 @@ class NetplaySetupViewModel : ViewModel() { viewModelScope.launch { GameFileCacheManager.isLoading().asFlow().first { it == false } - Netplay.saveSetup( - nickname = nickname.value, - connectionType = connectionType.value, - address = ipAddress.value, - hostCode = hostCode.value, - connectPort = connectPort.value.toInt(), - ) - if (Netplay.join()) { _showNetplayScreen.trySend(Unit) } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplayViewModel.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplayViewModel.kt index 9da56d0c48..217991f40c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplayViewModel.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/model/NetplayViewModel.kt @@ -37,7 +37,7 @@ class NetplayViewModel : ViewModel() { val hostInputAuthority = Netplay.hostInputAuthorityEnabled .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), false) - private val _maxBuffer = MutableStateFlow(Netplay.getClientBufferSize()) + private val _maxBuffer = MutableStateFlow(Netplay.Settings.getClientBufferSize()) val maxBuffer = _maxBuffer.asStateFlow() init { @@ -57,7 +57,7 @@ class NetplayViewModel : ViewModel() { fun setMaxBuffer(buffer: Int) { _maxBuffer.value = buffer - Netplay.setClientBufferSize(buffer) + Netplay.Settings.setClientBufferSize(buffer) Netplay.adjustPadBufferSize(buffer) } |
