[network/kdeconnect-android] src/main/java/org/kde/kdeconnect/ui: Fix PluginsScreen mixing plugins with needed and optional permissions

Albert Vaca Cintora <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 69fa1ecceeba7fa29f634800d0f76555a137f62d by Albert Vaca Cintora.
Committed on 25/07/2026 at 12:56.
Pushed by albertvaka into branch 'master'.

Fix PluginsScreen mixing plugins with needed and optional permissions

M  +7    -1    src/main/java/org/kde/kdeconnect/ui/DeviceFragment.kt
M  +10   -6    src/main/java/org/kde/kdeconnect/ui/compose/screen/device/PluginsScreen.kt

https://invent.kde.org/network/kdeconnect-android/-/commit/69fa1ecceeba7fa29f634800d0f76555a137f62d

diff --git a/src/main/java/org/kde/kdeconnect/ui/DeviceFragment.kt b/src/main/java/org/kde/kdeconnect/ui/DeviceFragment.kt
index 1268116ca..e93bae70e 100644
--- a/src/main/java/org/kde/kdeconnect/ui/DeviceFragment.kt
+++ b/src/main/java/org/kde/kdeconnect/ui/DeviceFragment.kt
@@ -302,7 +302,13 @@ class DeviceFragment : BaseFragment<ActivityDeviceBinding>() {
                                     pluginsNeedPermissions = pluginsNeedPermissions,
                                     pluginsNeedOptionalPermissions = pluginsNeedOptionalPermissions,
                                     onButtonClick = { button -> button.onClick(mActivity!!) },
-                                    action = { plugin ->
+                                    actionNeedPermissions = { plugin ->
+                                        plugin.permissionExplanationDialog.show(
+                                            childFragmentManager,
+                                            null
+                                        )
+                                    },
+                                    actionNeedOptionalPermissions = { plugin ->
                                         plugin.optionalPermissionExplanationDialog.show(
                                             childFragmentManager,
                                             null
diff --git a/src/main/java/org/kde/kdeconnect/ui/compose/screen/device/PluginsScreen.kt b/src/main/java/org/kde/kdeconnect/ui/compose/screen/device/PluginsScreen.kt
index bc4674a78..9a3456862 100644
--- a/src/main/java/org/kde/kdeconnect/ui/compose/screen/device/PluginsScreen.kt
+++ b/src/main/java/org/kde/kdeconnect/ui/compose/screen/device/PluginsScreen.kt
@@ -46,14 +46,16 @@ fun PluginsScreen(
     pluginsNeedPermissions: List<Plugin>,
     pluginsNeedOptionalPermissions: List<Plugin>,
     onButtonClick: (Plugin.PluginUiButton) -> Unit,
-    action: (plugin: Plugin) -> Unit
+    actionNeedPermissions: (plugin: Plugin) -> Unit,
+    actionNeedOptionalPermissions: (plugin: Plugin) -> Unit,
 ) {
     PluginsScreenContent(
         pluginsWithButtons = pluginsWithButtons,
         pluginsNeedPermissions = pluginsNeedPermissions,
         pluginsNeedOptionalPermissions = pluginsNeedOptionalPermissions,
         onButtonClick = onButtonClick,
-        action = action
+        actionNeedPermissions = actionNeedPermissions,
+        actionNeedOptionalPermissions = actionNeedOptionalPermissions,
     )
 }
 
@@ -63,7 +65,8 @@ private fun PluginsScreenContent(
     pluginsNeedPermissions: List<Plugin>,
     pluginsNeedOptionalPermissions: List<Plugin>,
     onButtonClick: (Plugin.PluginUiButton) -> Unit,
-    action: (plugin: Plugin) -> Unit
+    actionNeedPermissions: (plugin: Plugin) -> Unit,
+    actionNeedOptionalPermissions: (plugin: Plugin) -> Unit,
 ) {
     Surface {
         Column(modifier = Modifier.padding(top = 16.dp)) {
@@ -79,7 +82,7 @@ private fun PluginsScreenContent(
                 PluginsWithoutPermissions(
                     title = stringResource(id = R.string.plugins_need_permission),
                     plugins = pluginsNeedPermissions,
-                    action = action
+                    action = actionNeedPermissions,
                 )
                 Spacer(modifier = Modifier.padding(vertical = 2.dp))
             }
@@ -87,7 +90,7 @@ private fun PluginsScreenContent(
                 PluginsWithoutPermissions(
                     title = stringResource(id = R.string.plugins_need_optional_permission),
                     plugins = pluginsNeedOptionalPermissions,
-                    action = action
+                    action = actionNeedOptionalPermissions
                 )
             }
         }
@@ -205,7 +208,8 @@ private fun PluginsScreenPreview() {
             pluginsNeedPermissions = emptyList(),
             pluginsNeedOptionalPermissions = emptyList(),
             onButtonClick = { /* Do nothing */ },
-            action = { /* Do nothing */ }
+            actionNeedPermissions = { /* Do nothing */ },
+            actionNeedOptionalPermissions = { /* Do nothing */ },
         )
     }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.