From 595904b48b0213812fb9a45a5fd223df92a77eb2 Mon Sep 17 00:00:00 2001 From: Marcus Hanestad Date: Wed, 27 Aug 2025 09:55:10 +0200 Subject: [PATCH] casting: show only valid device types when manually adding device in experimental mode --- .../platformplayer/dialogs/CastingAddDialog.kt | 15 +++++++++++++-- app/src/main/res/values/strings.xml | 4 ++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/dialogs/CastingAddDialog.kt b/app/src/main/java/com/futo/platformplayer/dialogs/CastingAddDialog.kt index 1c975547..c8cdc6c4 100644 --- a/app/src/main/java/com/futo/platformplayer/dialogs/CastingAddDialog.kt +++ b/app/src/main/java/com/futo/platformplayer/dialogs/CastingAddDialog.kt @@ -15,6 +15,7 @@ import com.futo.platformplayer.casting.StateCasting import com.futo.platformplayer.experimental_casting.ExpStateCasting import com.futo.platformplayer.models.CastingDeviceInfo import com.futo.platformplayer.toInetAddress +import com.futo.platformplayer.logging.Logger class CastingAddDialog(context: Context?) : AlertDialog(context) { @@ -40,7 +41,13 @@ class CastingAddDialog(context: Context?) : AlertDialog(context) { _buttonConfirm = findViewById(R.id.button_confirm); _buttonTutorial = findViewById(R.id.button_tutorial) - ArrayAdapter.createFromResource(context, R.array.casting_device_type_array, R.layout.spinner_item_simple).also { adapter -> + val deviceTypeArray = if (Settings.instance.casting.experimentalCasting) { + R.array.exp_casting_device_type_array + } else { + R.array.casting_device_type_array + } + + ArrayAdapter.createFromResource(context, deviceTypeArray, R.layout.spinner_item_simple).also { adapter -> adapter.setDropDownViewResource(R.layout.spinner_dropdownitem_simple); _spinnerType.adapter = adapter; }; @@ -104,7 +111,11 @@ class CastingAddDialog(context: Context?) : AlertDialog(context) { _textError.visibility = View.GONE; val castingDeviceInfo = CastingDeviceInfo(name, castProtocolType, arrayOf(ip), port.toInt()); if (Settings.instance.casting.experimentalCasting) { - ExpStateCasting.instance.addRememberedDevice(castingDeviceInfo) + try { + ExpStateCasting.instance.addRememberedDevice(castingDeviceInfo) + } catch (e: Throwable) { + Logger.e(TAG, "Failed to add remembered device: $e") + } } else { StateCasting.instance.addRememberedDevice(castingDeviceInfo) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f4a7050c..92c52cf4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1106,6 +1106,10 @@ ChromeCast AirPlay + + FCast + ChromeCast + None Error