From de5a4aa5f3ffa6c70741a1485b30645a1e046042 Mon Sep 17 00:00:00 2001 From: Kelvin Date: Wed, 4 Sep 2024 21:24:26 +0200 Subject: [PATCH] Duplicate client id dialog and filtering, scrollable code block for dialogs --- .../main/java/com/futo/platformplayer/UIDialogs.kt | 2 ++ .../com/futo/platformplayer/states/StatePlatform.kt | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/futo/platformplayer/UIDialogs.kt b/app/src/main/java/com/futo/platformplayer/UIDialogs.kt index c9cdeaa6..eed5f891 100644 --- a/app/src/main/java/com/futo/platformplayer/UIDialogs.kt +++ b/app/src/main/java/com/futo/platformplayer/UIDialogs.kt @@ -6,6 +6,7 @@ import android.content.Context import android.content.Intent import android.graphics.Color import android.net.Uri +import android.text.method.ScrollingMovementMethod import android.util.TypedValue import android.view.Gravity import android.view.LayoutInflater @@ -223,6 +224,7 @@ class UIDialogs { this.visibility = View.GONE; else { this.text = code; + this.movementMethod = ScrollingMovementMethod.getInstance(); this.visibility = View.VISIBLE; } }; diff --git a/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt b/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt index a92b4354..7fdbe432 100644 --- a/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt +++ b/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt @@ -209,7 +209,17 @@ class StatePlatform { } if(_availableClients.distinctBy { it.id }.count() < _availableClients.size) { - throw IllegalStateException("Attempted to add 2 clients with the same ID"); + val dups = _availableClients.filter { x-> _availableClients.count { it.id == x.id } > 1 }; + val overrideClients = _availableClients.distinctBy { it.id } + _availableClients.clear(); + _availableClients.addAll(overrideClients); + + StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) { + UIDialogs.showDialog(context, R.drawable.ic_error_pred, "Duplicate plugin ids detected", "This can cause unexpected behavior, ideally uninstall duplicate plugins (ids)", + dups.map { it.name }.joinToString("\n"), 0, UIDialogs.Action("Ok", { })); + } + + //throw IllegalStateException("Attempted to add 2 clients with the same ID"); } enabled = _enabledClientsPersistent.getAllValues()