[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 */ },
)
}
}