[network/kdeconnect-android/kdeconnect-android-work/close-button] src/main: Add close button
Albert Vaca Cintora <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit db8a81a906232632e1eb722299a14e95dc9c9298 by Albert Vaca Cintora, on behalf of Douglas Carvalho.
Committed on 02/08/2026 at 21:30.
Pushed by albertvaka into branch 'kdeconnect-android-work/close-button'.
Add close button
And change the behavior of Home to typing the ALT + Home key.
M +6 -0 src/main/java/org/kde/kdeconnect/plugins/mousepad/BigscreenActivity.kt
M +8 -1 src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadPlugin.kt
M +52 -42 src/main/res/layout/activity_bigscreen.xml
M +3 -1 src/main/res/values/strings.xml
M +6 -0 src/main/res/xml/mousepadplugin_preferences_tv.xml
https://invent.kde.org/network/kdeconnect-android/-/commit/db8a81a906232632e1eb722299a14e95dc9c9298
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mousepad/BigscreenActivity.kt b/src/main/java/org/kde/kdeconnect/plugins/mousepad/BigscreenActivity.kt
index 043f3ccae..477aaf11e 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mousepad/BigscreenActivity.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/mousepad/BigscreenActivity.kt
@@ -54,6 +54,7 @@ class BigscreenActivity : BaseActivity<ActivityBigscreenBinding>() {
binding.selectButton.setOnClickListener { v: View? -> plugin.sendSelect() }
binding.homeButton.setOnClickListener { v: View? -> plugin.sendHome() }
binding.backButton.setOnClickListener { v: View? -> plugin.sendBack() }
+ binding.closeButton.setOnClickListener { v: View? -> plugin.sendClose() }
binding.micButton.setOnClickListener { v: View? ->
if (plugin.hasMicPermission()) {
activateSTT()
@@ -78,6 +79,11 @@ class BigscreenActivity : BaseActivity<ActivityBigscreenBinding>() {
} else {
binding.homeButton.visibility = View.INVISIBLE
}
+ if (prefs.getBoolean(getString(R.string.pref_bigscreen_show_close), true)) {
+ binding.closeButton.visibility = View.VISIBLE
+ } else {
+ binding.closeButton.visibility = View.INVISIBLE
+ }
}
fun activateSTT() {
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadPlugin.kt b/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadPlugin.kt
index 624100cd9..b298d5774 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadPlugin.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadPlugin.kt
@@ -162,7 +162,7 @@ class MousePadPlugin : Plugin() {
fun sendHome() {
val np = NetworkPacket(PACKET_TYPE_MOUSEPAD_REQUEST)
np["alt"] = true
- np["specialKey"] = KeyListenerView.SpecialKeysMap.get(KeyEvent.KEYCODE_F4)
+ np["specialKey"] = KeyListenerView.SpecialKeysMap.get(KeyEvent.KEYCODE_MOVE_HOME)
device.sendPacket(np)
}
@@ -172,6 +172,13 @@ class MousePadPlugin : Plugin() {
device.sendPacket(np)
}
+ fun sendClose() {
+ val np = NetworkPacket(PACKET_TYPE_MOUSEPAD_REQUEST)
+ np["alt"] = true
+ np["specialKey"] = KeyListenerView.SpecialKeysMap.get(KeyEvent.KEYCODE_F4)
+ device.sendPacket(np)
+ }
+
fun sendText(content: String) {
val np = NetworkPacket(PACKET_TYPE_MOUSEPAD_REQUEST)
np["key"] = content
diff --git a/src/main/res/layout/activity_bigscreen.xml b/src/main/res/layout/activity_bigscreen.xml
index a5a0ee8b8..a9b645e47 100644
--- a/src/main/res/layout/activity_bigscreen.xml
+++ b/src/main/res/layout/activity_bigscreen.xml
@@ -17,99 +17,109 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<include layout="@layout/toolbar" android:id="@+id/toolbar_layout" />
<androidx.gridlayout.widget.GridLayout
- xmlns:grid="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- grid:useDefaultMargins="true"
+ app:useDefaultMargins="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<com.google.android.material.button.MaterialButton
android:id="@+id/home_button"
- grid:layout_column="0"
- grid:layout_row="0"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="0"
+ app:layout_row="0"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_home"
- grid:iconSize="32dp"
+ app:iconSize="32dp"
app:icon="@drawable/ic_home_black_24dp"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/up_button"
- grid:layout_column="1"
- grid:layout_row="0"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="1"
+ app:layout_row="0"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_up"
- grid:iconSize="42dp"
+ app:iconSize="42dp"
app:icon="@drawable/outline_arrow_drop_up_24"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/mic_button"
- grid:layout_column="2"
- grid:layout_columnWeight="1"
- grid:layout_row="0"
- grid:layout_rowWeight="1"
+ app:layout_column="2"
+ app:layout_columnWeight="1"
+ app:layout_row="0"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_mic"
- grid:iconSize="32dp"
+ app:iconSize="32dp"
app:icon="@drawable/ic_mic_black"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/left_button"
- grid:layout_column="0"
- grid:layout_row="1"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="0"
+ app:layout_row="1"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_left"
- grid:iconSize="42dp"
+ app:iconSize="42dp"
app:icon="@drawable/outline_arrow_left_24"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/select_button"
- grid:layout_column="1"
- grid:layout_row="1"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="1"
+ app:layout_row="1"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_select"
- grid:iconSize="32dp"
+ app:iconSize="32dp"
app:icon="@drawable/ic_keyboard_return_black_24dp"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/right_button"
- grid:layout_column="2"
- grid:layout_row="1"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="2"
+ app:layout_row="1"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_right"
- grid:iconSize="42dp"
+ app:iconSize="42dp"
app:icon="@drawable/outline_arrow_right_24"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/down_button"
- grid:layout_column="1"
- grid:layout_row="2"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="1"
+ app:layout_row="2"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_down"
- grid:iconSize="42dp"
+ app:iconSize="42dp"
app:icon="@drawable/outline_arrow_drop_down_24"
style="@style/KdeConnectButton.IconButton" />
<com.google.android.material.button.MaterialButton
android:id="@+id/back_button"
- grid:layout_column="0"
- grid:layout_row="2"
- grid:layout_columnWeight="1"
- grid:layout_rowWeight="1"
+ app:layout_column="0"
+ app:layout_row="2"
+ app:layout_columnWeight="1"
+ app:layout_rowWeight="1"
android:contentDescription="@string/bigscreen_back"
- grid:iconSize="32dp"
+ app:iconSize="32dp"
app:icon="@drawable/ic_arrow_back_black_24dp"
style="@style/KdeConnectButton.IconButton" />
+
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/close_button"
+ style="@style/KdeConnectButton.IconButton"
+ android:contentDescription="@string/bigscreen_close"
+ app:icon="@android:drawable/ic_menu_close_clear_cancel"
+ app:iconSize="32dp"
+ app:layout_column="2"
+ app:layout_columnWeight="1"
+ app:layout_row="2"
+ app:layout_rowWeight="1" />
</androidx.gridlayout.widget.GridLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index d6352641e..6f57838f5 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -101,6 +101,7 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<string name="bigscreen_hide_mouse_input">Hide mouse and keyboard remote input button</string>
<string name="bigscreen_show_home_title">Show Home button</string>
<string name="bigscreen_show_back_title">Show Back button</string>
+ <string name="bigscreen_show_close_title">Show Close button</string>
<string-array name="mousepad_tap_entries">
<item>Left click</item>
<item>Right click</item>
@@ -173,7 +174,7 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<string name="pref_bigscreen_hide_mouse_input" translatable="false">bigscreen_hide_mouse_input</string>
<string name="pref_bigscreen_show_home" translatable="false">bigscreen_show_home</string>
<string name="pref_bigscreen_show_back" translatable="false">bigscreen_show_back</string>
-
+ <string name="pref_bigscreen_show_close" translatable="false">bigscreen_show_close</string>
<string name="mouse_receiver_plugin_description">Receive remote mouse movement</string>
<string name="mouse_receiver_plugin_name">Mouse receiver</string>
@@ -488,6 +489,7 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
<string name="cant_open_url">Can\'t open URL to continue playing</string>
<string name="bigscreen_home">Home</string>
+ <string name="bigscreen_close">Close</string>
<string name="bigscreen_up">Up</string>
<string name="bigscreen_left">Left</string>
<string name="bigscreen_select">Select</string>
diff --git a/src/main/res/xml/mousepadplugin_preferences_tv.xml b/src/main/res/xml/mousepadplugin_preferences_tv.xml
index 75649d27c..946d586da 100644
--- a/src/main/res/xml/mousepadplugin_preferences_tv.xml
+++ b/src/main/res/xml/mousepadplugin_preferences_tv.xml
@@ -27,6 +27,12 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
android:key="@string/pref_bigscreen_show_home"
android:title="@string/bigscreen_show_home_title" />
+ <SwitchPreference
+ android:id="@+id/bigscreen_show_close"
+ android:defaultValue="true"
+ android:key="@string/pref_bigscreen_show_close"
+ android:title="@string/bigscreen_show_close_title" />
+
<SwitchPreference
android:id="@+id/bigscreen_hide_mouse_input"
android:defaultValue="false"