fix: Multiplayer network fixes and airplane mode

- Auto-select network interface for direct connect/host room
- Always recreate ENet client on join for fresh bindings
- Add airplane mode toggle (Desktop & Android)
- Fix JWT verification with empty verify_uid
- Improve content-type handling for JWT endpoints

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-11-10 17:16:45 +10:00
parent 2943eebc9c
commit be5c2f772c
16 changed files with 129 additions and 15 deletions

View File

@@ -31,7 +31,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
SHOW_RAM_METER("show_ram_meter"),
SHOW_SHADER_BUILDING_OVERLAY("show_shader_building_overlay"),
SHOW_PERFORMANCE_GRAPH("show_performance_graph"),
USE_CONDITIONAL_RENDERING("use_conditional_rendering");
USE_CONDITIONAL_RENDERING("use_conditional_rendering"),
AIRPLANE_MODE("airplane_mode");
override fun getBoolean(needsGlobal: Boolean): Boolean =
NativeConfig.getBoolean(key, needsGlobal)

View File

@@ -24,6 +24,7 @@ object Settings {
SECTION_INPUT_PLAYER_EIGHT,
SECTION_THEME(R.string.preferences_theme),
SECTION_DEBUG(R.string.preferences_debug),
SECTION_NETWORK(R.string.preferences_network),
SECTION_ZEP_ZONE(R.string.preferences_zep_zone),
SECTION_APPLETS_ANDROID(R.string.preferences_applets_android);
}

View File

@@ -99,6 +99,7 @@ class SettingsFragmentPresenter(
MenuTag.SECTION_INPUT_PLAYER_EIGHT -> addInputPlayer(sl, 7)
MenuTag.SECTION_THEME -> addThemeSettings(sl)
MenuTag.SECTION_DEBUG -> addDebugSettings(sl)
MenuTag.SECTION_NETWORK -> addNetworkSettings(sl)
MenuTag.SECTION_ZEP_ZONE -> addZepZoneSettings(sl)
MenuTag.SECTION_APPLETS_ANDROID -> addAppletsAndroidSettings(sl)
}
@@ -144,6 +145,14 @@ class SettingsFragmentPresenter(
menuKey = MenuTag.SECTION_DEBUG
)
)
add(
SubmenuSetting(
titleId = R.string.preferences_network,
descriptionId = R.string.preferences_network_description,
iconId = R.drawable.ic_settings,
menuKey = MenuTag.SECTION_NETWORK
)
)
add(
SubmenuSetting(
titleId = R.string.preferences_zep_zone,
@@ -1002,6 +1011,13 @@ class SettingsFragmentPresenter(
}
}
private fun addNetworkSettings(sl: ArrayList<SettingsItem>) {
sl.apply {
add(HeaderSetting(R.string.network_settings_header))
add(BooleanSetting.AIRPLANE_MODE.key)
}
}
private fun addZepZoneSettings(sl: ArrayList<SettingsItem>) {
sl.apply {
add(HeaderSetting(R.string.memory_layout_header))

View File

@@ -421,11 +421,16 @@
<string name="preferences_theme">Theme and color</string>
<string name="preferences_debug">Debug</string>
<string name="preferences_debug_description">CPU/GPU debugging, graphics API, fastmem</string>
<string name="preferences_network">Network</string>
<string name="preferences_network_description">Network interface and airplane mode settings</string>
<string name="preferences_zep_zone">Zep Zone</string>
<string name="preferences_zep_zone_description">Advanced emulation settings</string>
<string name="preferences_applets_android">Applets on Android</string>
<string name="preferences_applets_android_description">System applet configuration settings</string>
<!-- Network Settings Headers -->
<string name="network_settings_header">Network Settings</string>
<!-- Zep Zone Headers -->
<string name="memory_layout_header">Memory Layout</string>
<string name="astc_settings_header">ASTC Settings</string>