[network/kdeconnect-android] src/main: [RunCommand] Add menu entry to "Clear output"
Albert Vaca Cintora <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 9c2e8a14f26ca994c552c5651e70d6decbc2655c by Albert Vaca Cintora.
Committed on 09/08/2026 at 14:22.
Pushed by albertvaka into branch 'master'.
[RunCommand] Add menu entry to "Clear output"
BUG: 523918
M +5 -0 src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandPlugin.java
M +40 -3 src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
M +1 -0 src/main/res/values/strings.xml
https://invent.kde.org/network/kdeconnect-android/-/commit/9c2e8a14f26ca994c552c5651e70d6decbc2655c
diff --git a/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandPlugin.java b/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandPlugin.java
index 593015cbf..0fcabec6f 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandPlugin.java
+++ b/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandPlugin.java
@@ -85,6 +85,11 @@ public class RunCommandPlugin extends Plugin {
return output;
}
+ public void clearOutput() {
+ output.clear();
+ commandLineIndexById.clear();
+ }
+
public ArrayList<JSONObject> getCommandList() {
return commandList;
}
diff --git a/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt b/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
index 8c9e0f1f2..53e494579 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
@@ -18,6 +18,8 @@ import androidx.compose.foundation.layout.safeDrawingPadding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Card
import androidx.compose.material3.CircularProgressIndicator
@@ -90,10 +92,20 @@ fun RunCommandScreen(
}
}
+ val showOutputCard = commandList.isNotEmpty() &&
+ device.canSendPacketType(RunCommandPlugin.PACKET_TYPE_RUNCOMMAND_OUTPUT)
+
KdeTheme(context) {
Scaffold(
modifier = Modifier.safeDrawingPadding(),
- topBar = { RunCommandAppBar(device.name, onBackPressedDispatcher) },
+ topBar = {
+ RunCommandAppBar(
+ name = device.name,
+ onBackPressedDispatcher = onBackPressedDispatcher,
+ showClearOutput = showOutputCard,
+ onClearOutput = { plugin.clearOutput() },
+ )
+ },
floatingActionButton = {
if (plugin.canAddCommand()) {
FloatingActionButton(onClick = {
@@ -141,7 +153,7 @@ fun RunCommandScreen(
.padding(it)
.fillMaxSize()
) {
- if (device.canSendPacketType(RunCommandPlugin.PACKET_TYPE_RUNCOMMAND_OUTPUT)) {
+ if (showOutputCard) {
item {
OutputCard(outputList, plugin)
}
@@ -318,11 +330,36 @@ private fun OutputCard(
}
@Composable
-fun RunCommandAppBar(name: String, onBackPressedDispatcher: OnBackPressedDispatcher) {
+fun RunCommandAppBar(
+ name: String,
+ onBackPressedDispatcher: OnBackPressedDispatcher,
+ showClearOutput: Boolean,
+ onClearOutput: () -> Unit,
+) {
KdeTopAppBar(
title = stringResource(R.string.pref_plugin_runcommand),
subTitle = name,
navIconOnClick = { onBackPressedDispatcher.onBackPressed() },
navIconDescription = stringResource(androidx.appcompat.R.string.abc_action_bar_up_description),
+ actions = {
+ if (showClearOutput) {
+ var menuExpanded by remember { mutableStateOf(false) }
+ IconButton(onClick = { menuExpanded = true }) {
+ Icon(Icons.Default.MoreVert, stringResource(R.string.extra_options))
+ }
+ DropdownMenu(
+ expanded = menuExpanded,
+ onDismissRequest = { menuExpanded = false },
+ ) {
+ DropdownMenuItem(
+ text = { Text(stringResource(R.string.runcommand_clear_output)) },
+ onClick = {
+ menuExpanded = false
+ onClearOutput()
+ },
+ )
+ }
+ }
+ },
)
}
\ No newline at end of file
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 6f57838f5..2dd035cb0 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -662,6 +662,7 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<string name="runcommand_output_no_output_desc">The output from the commands will appear here.</string>
<string name="runcommand_output_no_output">No commands executed</string>
<string name="runcommand_stop">Stop the current command</string>
+ <string name="runcommand_clear_output">Clear output</string>
<string name="pref_mpris_volume_control_key" translatable="false">mpris_volume_control_enabled</string>
<string name="pref_mpris_volume_control_title">Hardware volume keys</string>