[network/kdeconnect-android] /: Linter pass

Albert Vaca Cintora <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit ec0248e6f0ce339dd3f7aed4e6f69c50f8ead285 by Albert Vaca Cintora.
Committed on 09/08/2026 at 16:05.
Pushed by albertvaka into branch 'master'.

Linter pass

M  +2    -2    StaticMessages.sh
M  +0    -1    build.gradle.kts
M  +1    -1    fastlane/StaticMessages.sh
M  +0    -2    src/main/java/org/kde/kdeconnect/BackgroundService.kt
M  +1    -1    src/main/java/org/kde/kdeconnect/PairingHandler.kt
M  +6    -6    src/main/java/org/kde/kdeconnect/backends/bluetooth/BluetoothLinkProvider.kt
M  +2    -4    src/main/java/org/kde/kdeconnect/backends/bluetooth/ConnectionMultiplexer.kt
M  +2    -2    src/main/java/org/kde/kdeconnect/backends/lan/LanLink.java
M  +1    -1    src/main/java/org/kde/kdeconnect/backends/lan/LanLinkProvider.java
M  +0    -1    src/main/java/org/kde/kdeconnect/backends/lan/MdnsDiscovery.kt
M  +3    -1    src/main/java/org/kde/kdeconnect/backends/lan/NsdResolveQueue.kt
M  +3    -3    src/main/java/org/kde/kdeconnect/extensions/Intent.kt
M  +1    -4    src/main/java/org/kde/kdeconnect/helpers/BoundedLineReader.kt
M  +1    -3    src/main/java/org/kde/kdeconnect/helpers/ContactsHelper.java
M  +4    -4    src/main/java/org/kde/kdeconnect/helpers/IntentHelper.kt
M  +1    -1    src/main/java/org/kde/kdeconnect/helpers/SMSHelper.kt
M  +1    -3    src/main/java/org/kde/kdeconnect/helpers/TelephonyHelper.java
M  +1    -1    src/main/java/org/kde/kdeconnect/helpers/TrustedDevices.kt
M  +1    -3    src/main/java/org/kde/kdeconnect/plugins/clipboard/ClipboardListener.kt
M  +2    -2    src/main/java/org/kde/kdeconnect/plugins/connectivityreport/ConnectivityListener.kt
M  +0    -2    src/main/java/org/kde/kdeconnect/plugins/digitizer/DigitizerActivity.kt
M  +2    -2    src/main/java/org/kde/kdeconnect/plugins/findmyphone/FindMyPhoneReceiver.kt
M  +1    -4    src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadActivity.java
M  +1    -1    src/main/java/org/kde/kdeconnect/plugins/mousepad/SendKeystrokesToHostActivity.java
M  +3    -3    src/main/java/org/kde/kdeconnect/plugins/mousereceiver/MouseReceiverPlugin.kt
M  +4    -7    src/main/java/org/kde/kdeconnect/plugins/mpris/MprisMediaNotificationReceiver.kt
M  +0    -5    src/main/java/org/kde/kdeconnect/plugins/mprisreceiver/MprisReceiverPlugin.java
M  +2    -1    src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
M  +2    -2    src/main/java/org/kde/kdeconnect/plugins/sftp/saf/SafFileSystemProvider.kt
M  +0    -1    src/main/java/org/kde/kdeconnect/plugins/share/CompositeReceiveFileJob.java
M  +1    -1    src/main/java/org/kde/kdeconnect/plugins/share/SharePlugin.kt
M  +1    -1    src/main/java/org/kde/kdeconnect/plugins/sms/SMSPlugin.kt
M  +0    -1    src/main/java/org/kde/kdeconnect/plugins/systemvolume/SystemVolumePlugin.kt
M  +5    -6    src/main/java/org/kde/kdeconnect/ui/MainActivity.kt
M  +0    -4    src/main/java/org/kde/kdeconnect/ui/PluginSettingsActivity.kt
M  +0    -4    src/main/java/org/kde/kdeconnect/ui/compose/extensions/device/DeviceExtensions.kt
M  +6    -17   src/main/res/drawable/mouse_pointer_clicked.xml
M  +0    -1    src/main/res/layout/activity_plugin_settings.xml
D  +0    -16   src/main/res/values-v23/styles.xml
M  +4    -1    src/main/res/values/styles.xml
D  +0    -7    src/test/java/android/text/TextUtils.java
M  +1    -1    src/test/java/org/kde/kdeconnect/plugins/ConnectivityReportPluginTest.kt
M  +1    -1    src/test/java/org/kde/kdeconnect/plugins/RunCommandPluginTest.kt

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

diff --git a/StaticMessages.sh b/StaticMessages.sh
index d0e3e3242..0f2284ea7 100644
--- a/StaticMessages.sh
+++ b/StaticMessages.sh
@@ -8,7 +8,7 @@ function export_pot_file # First parameter will be the path of the pot file we h
 	potfile=$1
 	mkdir outdir
 	ANSI_COLORS_DISABLED=1 a2po export --android src/main/res/ --gettext outdir
-	mv outdir/template.pot $potfile
+	mv outdir/template.pot "$potfile"
 	rm -rf outdir
 }
 
@@ -21,6 +21,6 @@ function import_po_files # First parameter will be a path that will contain seve
 	# https://github.com/python-babel/babel/issues/206
 	# https://github.com/python-babel/babel/issues/566
 	find "$podir" -name '*.po' -exec msgattrib --no-obsolete -o {} {} \;
-	ANSI_COLORS_DISABLED=1 a2po import --ignore-fuzzy --android src/main/res/ --gettext $podir
+	ANSI_COLORS_DISABLED=1 a2po import --ignore-fuzzy --android src/main/res/ --gettext "$podir"
 }
 
diff --git a/build.gradle.kts b/build.gradle.kts
index 0b46e8da3..cd0c28c95 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -263,7 +263,6 @@ dependencies {
 
     implementation(libs.androidx.compose.material3)
     implementation(libs.androidx.compose.material.icons)
-    implementation(libs.androidx.compose.ui.tooling.preview)
     implementation(libs.androidx.activity.compose)
     implementation(libs.androidx.constraintlayout.compose)
 
diff --git a/fastlane/StaticMessages.sh b/fastlane/StaticMessages.sh
index 6fa1bf60f..da3bedb78 100644
--- a/fastlane/StaticMessages.sh
+++ b/fastlane/StaticMessages.sh
@@ -29,7 +29,7 @@ function import_po_dirs # First parameter will be a path that will be a director
         fi
     done
     for lang in $(ls $podir); do
-        if [ -f $podir/$lang/kdeconnect-android-store-short.po -a -f $podir/$lang/kdeconnect-android-store-full.po ]; then
+        if [ -f $podir/$lang/kdeconnect-android-store-short.po ] && [ $podir/$lang/kdeconnect-android-store-full.po ]; then
             mkdir -p ./metadata/android/$lang/
             cp ./metadata/android/en-US/title.txt ./metadata/android/$lang/title.txt # we do not translate the app name
             po2txt --fuzzy --progress=names -i $podir/$lang/kdeconnect-android-store-short.po -o ./metadata/android/$lang/short_description.txt
diff --git a/src/main/java/org/kde/kdeconnect/BackgroundService.kt b/src/main/java/org/kde/kdeconnect/BackgroundService.kt
index ea8881c76..498776f1d 100644
--- a/src/main/java/org/kde/kdeconnect/BackgroundService.kt
+++ b/src/main/java/org/kde/kdeconnect/BackgroundService.kt
@@ -5,7 +5,6 @@
 */
 package org.kde.kdeconnect
 
-import android.Manifest
 import android.app.Notification
 import android.app.NotificationManager
 import android.app.PendingIntent
@@ -13,7 +12,6 @@ import android.app.Service
 import android.content.Context
 import android.content.Intent
 import android.content.IntentFilter
-import android.content.pm.PackageManager
 import android.content.pm.ServiceInfo
 import android.net.ConnectivityManager
 import android.net.ConnectivityManager.NetworkCallback
diff --git a/src/main/java/org/kde/kdeconnect/PairingHandler.kt b/src/main/java/org/kde/kdeconnect/PairingHandler.kt
index 8db21cf1f..80c0ff837 100644
--- a/src/main/java/org/kde/kdeconnect/PairingHandler.kt
+++ b/src/main/java/org/kde/kdeconnect/PairingHandler.kt
@@ -116,7 +116,7 @@ class PairingHandler(private val device: Device, private val callback: PairingCa
     fun verificationKey(): String? {
         return if (device.protocolVersion >= 8) {
             if (state != PairState.Requested && state != PairState.RequestedByPeer) {
-                return null
+                null
             } else {
                 getVerificationKey(SslHelper.certificate, device.certificate, pairingTimestamp)
             }
diff --git a/src/main/java/org/kde/kdeconnect/backends/bluetooth/BluetoothLinkProvider.kt b/src/main/java/org/kde/kdeconnect/backends/bluetooth/BluetoothLinkProvider.kt
index 280b3fd9d..000640fc8 100644
--- a/src/main/java/org/kde/kdeconnect/backends/bluetooth/BluetoothLinkProvider.kt
+++ b/src/main/java/org/kde/kdeconnect/backends/bluetooth/BluetoothLinkProvider.kt
@@ -31,8 +31,8 @@ import org.kde.kdeconnect.helpers.security.SslHelper
 import org.kde.kdeconnect.helpers.ThreadHelper.execute
 import org.kde.kdeconnect.NetworkPacket
 import org.kde.kdeconnect.ui.SettingsFragment
-import org.kde.kdeconnect.extensions.getParcelableArrayCompat
-import org.kde.kdeconnect.extensions.getParcelableCompat
+import org.kde.kdeconnect.extensions.getParcelableArrayExtraCompat
+import org.kde.kdeconnect.extensions.getParcelableExtraCompat
 import java.io.IOException
 import java.io.InputStreamReader
 import java.io.Reader
@@ -186,7 +186,7 @@ class BluetoothLinkProvider(private val context: Context) : BaseLinkProvider() {
                     val myDeviceInfo = DeviceHelper.getDeviceInfo(context)
                     val np = myDeviceInfo.toIdentityPacket()
                     val myCertificate = Base64.encodeToString(SslHelper.certificate.encoded, 0)
-                    val pemEncodedCertificate = "-----BEGIN CERTIFICATE-----\n" + myCertificate + "\n-----END CERTIFICATE-----\n";
+                    val pemEncodedCertificate = "-----BEGIN CERTIFICATE-----\n$myCertificate\n-----END CERTIFICATE-----\n"
 
                     np["certificate"] = pemEncodedCertificate
 
@@ -305,8 +305,8 @@ class BluetoothLinkProvider(private val context: Context) : BaseLinkProvider() {
             val action = intent.action
             if (BluetoothDevice.ACTION_UUID == action) {
                 Log.i("BluetoothLinkProvider", "Action matches")
-                val device = intent.getParcelableCompat<BluetoothDevice>(BluetoothDevice.EXTRA_DEVICE)
-                val activeUuids = intent.getParcelableArrayCompat<Parcelable>(BluetoothDevice.EXTRA_UUID)
+                val device = intent.getParcelableExtraCompat<BluetoothDevice>(BluetoothDevice.EXTRA_DEVICE)
+                val activeUuids = intent.getParcelableArrayExtraCompat<Parcelable>(BluetoothDevice.EXTRA_UUID)
                 if (sockets.containsKey(device)) {
                     Log.i("BluetoothLinkProvider", "sockets contains device")
                     return
@@ -408,7 +408,7 @@ class BluetoothLinkProvider(private val context: Context) : BaseLinkProvider() {
                 val myDeviceInfo = DeviceHelper.getDeviceInfo(context)
                 val np2 = myDeviceInfo.toIdentityPacket()
                 val myCertificate = Base64.encodeToString(SslHelper.certificate.encoded, 0)
-                val pemEncodedCertificate = "-----BEGIN CERTIFICATE-----\n" + myCertificate + "\n-----END CERTIFICATE-----\n";
+                val pemEncodedCertificate = "-----BEGIN CERTIFICATE-----\n$myCertificate\n-----END CERTIFICATE-----\n"
 
                 np2["certificate"] = pemEncodedCertificate
                 Log.i("BTLinkProvider/Client", "about to send packet np2")
diff --git a/src/main/java/org/kde/kdeconnect/backends/bluetooth/ConnectionMultiplexer.kt b/src/main/java/org/kde/kdeconnect/backends/bluetooth/ConnectionMultiplexer.kt
index 3ca1cf249..904e487f5 100644
--- a/src/main/java/org/kde/kdeconnect/backends/bluetooth/ConnectionMultiplexer.kt
+++ b/src/main/java/org/kde/kdeconnect/backends/bluetooth/ConnectionMultiplexer.kt
@@ -20,7 +20,7 @@ import java.util.concurrent.locks.Condition
 import java.util.concurrent.locks.ReentrantLock
 import kotlin.concurrent.withLock
 
-class ConnectionMultiplexer(socket: BluetoothSocket) : Closeable {
+class ConnectionMultiplexer(private val socket: BluetoothSocket) : Closeable {
     private class ChannelInputStream(val channel: Channel) : InputStream(), Closeable {
         override fun available(): Int {
             return channel.available()
@@ -178,14 +178,12 @@ class ConnectionMultiplexer(socket: BluetoothSocket) : Closeable {
         }
     }
 
-    private val socket: BluetoothSocket
     private val channels: MutableMap<UUID, Channel> = HashMap()
     private val channelsLock = ReentrantLock()
     private var open = true
     private var receivedProtocolVersion = false
 
     init {
-        this.socket = socket
         channels[DEFAULT_CHANNEL] = Channel(this, DEFAULT_CHANNEL)
         sendProtocolVersion()
         execute(ListenRunnable(socket))
@@ -409,7 +407,7 @@ class ConnectionMultiplexer(socket: BluetoothSocket) : Closeable {
             if (!receivedProtocolVersion && type != MESSAGE_PROTOCOL_VERSION) {
                 Log.w("ConnectionMultiplexer", "Received invalid message '$message'")
                 Log.w("ConnectionMultiplexer", "'data_buffer:(" + byteArrayToHexString(data) + ") ")
-                Log.w("ConnectionMultiplexer", "as string: '$data' ")
+                Log.w("ConnectionMultiplexer", "as string: '${data.contentToString()}' ")
 
                 throw IOException("Did not receive protocol version message!")
             }
diff --git a/src/main/java/org/kde/kdeconnect/backends/lan/LanLink.java b/src/main/java/org/kde/kdeconnect/backends/lan/LanLink.java
index 8c10a485a..a7aad2be4 100644
--- a/src/main/java/org/kde/kdeconnect/backends/lan/LanLink.java
+++ b/src/main/java/org/kde/kdeconnect/backends/lan/LanLink.java
@@ -6,7 +6,7 @@
 
 package org.kde.kdeconnect.backends.lan;
 
-import static main.java.org.kde.kdeconnect.helpers.BoundedLineReaderKt.readLineBounded;
+import static org.kde.kdeconnect.helpers.BoundedLineReaderKt.readLineBounded;
 
 import android.content.Context;
 import android.util.Log;
@@ -39,7 +39,7 @@ import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.SSLSocket;
 
 import kotlin.text.Charsets;
-import main.java.org.kde.kdeconnect.helpers.LineTooLongException;
+import org.kde.kdeconnect.helpers.LineTooLongException;
 
 public class LanLink extends BaseLink {
 
diff --git a/src/main/java/org/kde/kdeconnect/backends/lan/LanLinkProvider.java b/src/main/java/org/kde/kdeconnect/backends/lan/LanLinkProvider.java
index 5fbfe366a..f70dba381 100644
--- a/src/main/java/org/kde/kdeconnect/backends/lan/LanLinkProvider.java
+++ b/src/main/java/org/kde/kdeconnect/backends/lan/LanLinkProvider.java
@@ -8,7 +8,7 @@ package org.kde.kdeconnect.backends.lan;
 
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static org.kde.kdeconnect.helpers.NetworkHelperKt.isPrivateAddress;
-import static main.java.org.kde.kdeconnect.helpers.BoundedLineReaderKt.readLineBounded;
+import static org.kde.kdeconnect.helpers.BoundedLineReaderKt.readLineBounded;
 
 import android.Manifest;
 import android.content.Context;
diff --git a/src/main/java/org/kde/kdeconnect/backends/lan/MdnsDiscovery.kt b/src/main/java/org/kde/kdeconnect/backends/lan/MdnsDiscovery.kt
index 817b7bfbb..2a70a8559 100644
--- a/src/main/java/org/kde/kdeconnect/backends/lan/MdnsDiscovery.kt
+++ b/src/main/java/org/kde/kdeconnect/backends/lan/MdnsDiscovery.kt
@@ -7,7 +7,6 @@ package org.kde.kdeconnect.backends.lan
 
 import android.Manifest
 import android.content.Context
-import android.content.pm.PackageManager
 import android.content.pm.PackageManager.PERMISSION_GRANTED
 import android.net.nsd.NsdManager
 import android.net.nsd.NsdManager.DiscoveryListener
diff --git a/src/main/java/org/kde/kdeconnect/backends/lan/NsdResolveQueue.kt b/src/main/java/org/kde/kdeconnect/backends/lan/NsdResolveQueue.kt
index 5ad701502..d2d5bf029 100644
--- a/src/main/java/org/kde/kdeconnect/backends/lan/NsdResolveQueue.kt
+++ b/src/main/java/org/kde/kdeconnect/backends/lan/NsdResolveQueue.kt
@@ -11,7 +11,9 @@ import android.util.Log
 import java.util.LinkedList
 
 class NsdResolveQueue {
-    val LOG_TAG: String = "NsdResolveQueue"
+    companion object {
+        const val LOG_TAG: String = "NsdResolveQueue"
+    }
 
     private val nsdManager: NsdManager
     private val lock: Any
diff --git a/src/main/java/org/kde/kdeconnect/extensions/Intent.kt b/src/main/java/org/kde/kdeconnect/extensions/Intent.kt
index b8894ad6c..673bc1704 100644
--- a/src/main/java/org/kde/kdeconnect/extensions/Intent.kt
+++ b/src/main/java/org/kde/kdeconnect/extensions/Intent.kt
@@ -10,14 +10,14 @@ import android.os.Parcelable
 import androidx.core.content.IntentCompat
 
 
-inline fun <reified T> Intent.getParcelableCompat(key: String): T? {
+inline fun <reified T> Intent.getParcelableExtraCompat(key: String): T? {
     return IntentCompat.getParcelableExtra(this, key, T::class.java)
 }
 
-inline fun <reified T> Intent.getParcelableArrayListCompat(key: String): ArrayList<T>? {
+inline fun <reified T> Intent.getParcelableArrayListExtraCompat(key: String): ArrayList<T>? {
     return IntentCompat.getParcelableArrayListExtra(this, key, T::class.java)
 }
 
-inline fun <reified T: Parcelable> Intent.getParcelableArrayCompat(key: String): Array<Parcelable>? {
+inline fun <reified T: Parcelable> Intent.getParcelableArrayExtraCompat(key: String): Array<Parcelable>? {
     return IntentCompat.getParcelableArrayExtra(this, key, T::class.java)
 }
\ No newline at end of file
diff --git a/src/main/java/org/kde/kdeconnect/helpers/BoundedLineReader.kt b/src/main/java/org/kde/kdeconnect/helpers/BoundedLineReader.kt
index 401911732..35fef3f42 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/BoundedLineReader.kt
+++ b/src/main/java/org/kde/kdeconnect/helpers/BoundedLineReader.kt
@@ -1,11 +1,8 @@
-package main.java.org.kde.kdeconnect.helpers
+package org.kde.kdeconnect.helpers
 
-import java.io.BufferedReader
 import java.io.ByteArrayOutputStream
 import java.io.IOException
 import java.io.InputStream
-import java.io.Reader
-import java.net.Socket
 
 class LineTooLongException : IOException("Line too long")
 
diff --git a/src/main/java/org/kde/kdeconnect/helpers/ContactsHelper.java b/src/main/java/org/kde/kdeconnect/helpers/ContactsHelper.java
index 9d3837f1e..754c876d4 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/ContactsHelper.java
+++ b/src/main/java/org/kde/kdeconnect/helpers/ContactsHelper.java
@@ -220,9 +220,7 @@ public class ContactsHelper {
             Log.w(LOG_TAG, "Received an improper number of return values from the database in getContactTimestamp: " + databaseValue.size());
         }
 
-        Long timestamp = Long.parseLong(databaseValue.get(contactID).get(ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP));
-
-        return timestamp;
+        return Long.parseLong(databaseValue.get(contactID).get(ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP));
     }
 
     /**
diff --git a/src/main/java/org/kde/kdeconnect/helpers/IntentHelper.kt b/src/main/java/org/kde/kdeconnect/helpers/IntentHelper.kt
index c9b55548a..8cc4d6740 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/IntentHelper.kt
+++ b/src/main/java/org/kde/kdeconnect/helpers/IntentHelper.kt
@@ -15,8 +15,8 @@ import android.os.Build
 import android.webkit.URLUtil
 import androidx.core.app.NotificationCompat
 import androidx.core.app.NotificationManagerCompat
-import androidx.core.content.IntentCompat
-import androidx.core.os.BundleCompat
+import org.kde.kdeconnect.extensions.getParcelableArrayListCompat
+import org.kde.kdeconnect.extensions.getParcelableCompat
 import org.kde.kdeconnect.helpers.LifecycleHelper.isInForeground
 import org.kde.kdeconnect_tp.R
 import kotlin.text.endsWith
@@ -55,11 +55,11 @@ object IntentHelper {
             return emptyList()
         }
         val uriList = if (Intent.ACTION_SEND_MULTIPLE == intent.action) {
-            IntentCompat.getParcelableArrayListExtra(intent, Intent.EXTRA_STREAM, Uri::class.java)
+            extras.getParcelableArrayListCompat<Uri?>(Intent.EXTRA_STREAM)
                 ?.filterNotNull()
                 ?: emptyList()
         } else {
-            listOfNotNull(BundleCompat.getParcelable(extras, Intent.EXTRA_STREAM, Uri::class.java))
+            listOfNotNull(extras.getParcelableCompat<Uri?>(Intent.EXTRA_STREAM))
         }
         return uriList
     }
diff --git a/src/main/java/org/kde/kdeconnect/helpers/SMSHelper.kt b/src/main/java/org/kde/kdeconnect/helpers/SMSHelper.kt
index 3de84345f..d3afe6903 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/SMSHelper.kt
+++ b/src/main/java/org/kde/kdeconnect/helpers/SMSHelper.kt
@@ -880,7 +880,7 @@ object SMSHelper {
         internal constructor(uri: Uri, cause: Throwable?) : super("Error getting messages from $uri", cause)
 
         internal constructor(availableColumns: Array<String?>, uri: Uri, cause: Throwable?) :
-            super("Error getting messages from $uri. Available columns were: $availableColumns", cause)
+            super("Error getting messages from $uri. Available columns were: ${availableColumns.contentToString()}", cause)
     }
 
     /**
diff --git a/src/main/java/org/kde/kdeconnect/helpers/TelephonyHelper.java b/src/main/java/org/kde/kdeconnect/helpers/TelephonyHelper.java
index d7919c1d6..6a8fc0591 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/TelephonyHelper.java
+++ b/src/main/java/org/kde/kdeconnect/helpers/TelephonyHelper.java
@@ -330,9 +330,7 @@ public class TelephonyHelper {
                 return false;
             }
 
-            boolean matchingPhoneNumber = longerNumber.endsWith(shorterNumber);
-
-            return matchingPhoneNumber;
+            return longerNumber.endsWith(shorterNumber);
         }
     }
 }
diff --git a/src/main/java/org/kde/kdeconnect/helpers/TrustedDevices.kt b/src/main/java/org/kde/kdeconnect/helpers/TrustedDevices.kt
index b6fde7120..598087179 100644
--- a/src/main/java/org/kde/kdeconnect/helpers/TrustedDevices.kt
+++ b/src/main/java/org/kde/kdeconnect/helpers/TrustedDevices.kt
@@ -25,7 +25,7 @@ object TrustedDevices {
     fun removeTrustedDevice(context: Context, deviceId: String) {
         val preferences = context.getSharedPreferences("trusted_devices", MODE_PRIVATE)
         preferences.edit { remove(deviceId) }
-        val deviceSettings = context.getSharedPreferences(deviceId, Context.MODE_PRIVATE)
+        val deviceSettings = context.getSharedPreferences(deviceId, MODE_PRIVATE)
         deviceSettings.edit { clear() }
 
     }
diff --git a/src/main/java/org/kde/kdeconnect/plugins/clipboard/ClipboardListener.kt b/src/main/java/org/kde/kdeconnect/plugins/clipboard/ClipboardListener.kt
index 6ddead8e0..f5f3a83d6 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/clipboard/ClipboardListener.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/clipboard/ClipboardListener.kt
@@ -6,12 +6,10 @@
 */
 package org.kde.kdeconnect.plugins.clipboard
 
-import android.Manifest
 import android.content.ClipData
 import android.content.ClipDescription
 import android.content.ClipboardManager
 import android.content.Context
-import android.content.pm.PackageManager
 import android.os.Build
 import android.os.Handler
 import android.os.Looper
@@ -49,7 +47,7 @@ class ClipboardListener {
     private constructor(ctx: Context) {
         context = ctx.applicationContext
         Handler(Looper.getMainLooper()).post {
-            cm = ContextCompat.getSystemService<ClipboardManager>(context, ClipboardManager::class.java)!!
+            cm = ContextCompat.getSystemService(context, ClipboardManager::class.java)!!
             cm.addPrimaryClipChangedListener { this.onClipboardChanged() }
         }
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && ClipboardPlugin.canSyncAutomatically(context)) {
diff --git a/src/main/java/org/kde/kdeconnect/plugins/connectivityreport/ConnectivityListener.kt b/src/main/java/org/kde/kdeconnect/plugins/connectivityreport/ConnectivityListener.kt
index 41c859900..26fdcf370 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/connectivityreport/ConnectivityListener.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/connectivityreport/ConnectivityListener.kt
@@ -144,8 +144,8 @@ class ConnectivityListener(context: Context) {
                 }
             } else {
                 // Fallback to single SIM
-                connectivityListeners.put(0, createListenerForSubscription(0))
-                states.put(0, SubscriptionState())
+                connectivityListeners[0] = createListenerForSubscription(0)
+                states[0] = SubscriptionState()
             }
         }
     }
diff --git a/src/main/java/org/kde/kdeconnect/plugins/digitizer/DigitizerActivity.kt b/src/main/java/org/kde/kdeconnect/plugins/digitizer/DigitizerActivity.kt
index b5c40c827..47a8c41a9 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/digitizer/DigitizerActivity.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/digitizer/DigitizerActivity.kt
@@ -180,8 +180,6 @@ class DigitizerActivity : BaseActivity<ActivityDigitizerBinding>(), DrawingPadVi
     }
 
     companion object {
-        private const val TAG = "DigitizerActivity"
-
         private const val INCHES_TO_MM = 0.0393701
     }
 }
diff --git a/src/main/java/org/kde/kdeconnect/plugins/findmyphone/FindMyPhoneReceiver.kt b/src/main/java/org/kde/kdeconnect/plugins/findmyphone/FindMyPhoneReceiver.kt
index 70fb0ce57..aeb7f9f2f 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/findmyphone/FindMyPhoneReceiver.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/findmyphone/FindMyPhoneReceiver.kt
@@ -19,12 +19,12 @@ class FindMyPhoneReceiver : BroadcastReceiver() {
 
     override fun onReceive(context: Context, intent: Intent) {
         when (intent.action) {
-            ACTION_FOUND_IT -> foundIt(context, intent)
+            ACTION_FOUND_IT -> foundIt(intent)
             else -> Log.d("ShareBroadcastReceiver", "Unhandled Action received: ${intent.action}")
         }
     }
 
-    private fun foundIt(context: Context, intent: Intent) {
+    private fun foundIt(intent: Intent) {
         if (!intent.hasExtra(EXTRA_DEVICE_ID)) {
             Log.e("FindMyPhoneReceiver", "foundIt() - deviceId extra is not present, ignoring")
             return
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadActivity.java b/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadActivity.java
index c4fe20e65..65be26ef4 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadActivity.java
+++ b/src/main/java/org/kde/kdeconnect/plugins/mousepad/MousePadActivity.java
@@ -251,10 +251,7 @@ public class MousePadActivity
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.menu_mousepad, menu);
 
-        boolean mouseButtonsEnabled = prefs
-                .getBoolean(getString(R.string.mousepad_mouse_buttons_enabled_pref), true);
-        boolean digitizerEnabled =
-                KdeConnect.getInstance().getDevicePlugin(deviceId, DigitizerPlugin.class) != null;
+        boolean mouseButtonsEnabled = prefs.getBoolean(getString(R.string.mousepad_mouse_buttons_enabled_pref), true);
 
         menu.findItem(R.id.menu_right_click).setVisible(!mouseButtonsEnabled);
         menu.findItem(R.id.menu_middle_click).setVisible(!mouseButtonsEnabled);
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mousepad/SendKeystrokesToHostActivity.java b/src/main/java/org/kde/kdeconnect/plugins/mousepad/SendKeystrokesToHostActivity.java
index e88ba5e4d..e10c51a1b 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mousepad/SendKeystrokesToHostActivity.java
+++ b/src/main/java/org/kde/kdeconnect/plugins/mousepad/SendKeystrokesToHostActivity.java
@@ -134,7 +134,7 @@ public class SendKeystrokesToHostActivity extends BaseActivity<ActivitySendkeyst
 
     private void sendKeys(Device deviceId) {
         String toSend;
-        if (getBinding().textToSend.getText() != null && (toSend = getBinding().textToSend.getText().toString().trim()).length() > 0) {
+        if (getBinding().textToSend.getText() != null && !(toSend = getBinding().textToSend.getText().toString().trim()).isEmpty()) {
             MousePadPlugin plugin = KdeConnect.getInstance().getDevicePlugin(deviceId.getDeviceId(), MousePadPlugin.class);
             if (plugin == null) {
                 finish();
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mousereceiver/MouseReceiverPlugin.kt b/src/main/java/org/kde/kdeconnect/plugins/mousereceiver/MouseReceiverPlugin.kt
index 22c64ce6f..0ecdf7b9f 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mousereceiver/MouseReceiverPlugin.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/mousereceiver/MouseReceiverPlugin.kt
@@ -92,10 +92,10 @@ class MouseReceiverPlugin : Plugin() {
                 isSingleHold -> {
                     // For drag'n drop
                     // Log.i("MouseReceiverPlugin", "singleHold")
-                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-                        return MouseReceiverService.longClickSwipe()
+                    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+                        MouseReceiverService.longClickSwipe()
                     } else {
-                        return MouseReceiverService.longClick()
+                        MouseReceiverService.longClick()
                     }
                 }
                 isSingleRelease -> {
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mpris/MprisMediaNotificationReceiver.kt b/src/main/java/org/kde/kdeconnect/plugins/mpris/MprisMediaNotificationReceiver.kt
index 8e4a024a8..120dfbd94 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mpris/MprisMediaNotificationReceiver.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/mpris/MprisMediaNotificationReceiver.kt
@@ -10,7 +10,7 @@ import android.content.Context
 import android.content.Intent
 import android.util.Log
 import org.kde.kdeconnect.KdeConnect
-import org.kde.kdeconnect.extensions.getParcelableCompat
+import org.kde.kdeconnect.extensions.getParcelableExtraCompat
 
 /**
  * Called when the mpris media notification's buttons are pressed
@@ -21,7 +21,7 @@ class MprisMediaNotificationReceiver : BroadcastReceiver() {
         if (Intent.ACTION_MEDIA_BUTTON == intent.action) {
             // Route these buttons to the media session, which will handle them
             val mediaSession = MprisMediaSession.getMediaSession() ?: return
-            mediaSession.controller.dispatchMediaButtonEvent(intent.getParcelableCompat(Intent.EXTRA_KEY_EVENT))
+            mediaSession.controller.dispatchMediaButtonEvent(intent.getParcelableExtraCompat(Intent.EXTRA_KEY_EVENT))
         } else {
             // Second case: buttons on the notification, which we created ourselves
             // Get the correct device, the mpris plugin and the mpris player
@@ -36,11 +36,8 @@ class MprisMediaNotificationReceiver : BroadcastReceiver() {
                 ACTION_PAUSE -> player.sendPause()
                 ACTION_PREVIOUS -> player.sendPrevious()
                 ACTION_NEXT -> player.sendNext()
-                ACTION_CLOSE_NOTIFICATION ->                     //The user dismissed the notification: actually handle its removal correctly
-                    MprisMediaSession.instance.closeMediaNotification()
-                else -> {
-                    Log.w(TAG, "Unknown action: ${intent.action}, ignore.")
-                }
+                ACTION_CLOSE_NOTIFICATION -> MprisMediaSession.instance.closeMediaNotification() // User dismissed the notification
+                else -> Log.w(TAG, "Unknown action: ${intent.action}, ignore.")
             }
         }
     }
diff --git a/src/main/java/org/kde/kdeconnect/plugins/mprisreceiver/MprisReceiverPlugin.java b/src/main/java/org/kde/kdeconnect/plugins/mprisreceiver/MprisReceiverPlugin.java
index dec52d93d..a5b1c16da 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/mprisreceiver/MprisReceiverPlugin.java
+++ b/src/main/java/org/kde/kdeconnect/plugins/mprisreceiver/MprisReceiverPlugin.java
@@ -11,7 +11,6 @@ import android.media.session.MediaController;
 import android.media.session.MediaSessionManager;
 import android.os.Handler;
 import android.os.Looper;
-import android.provider.Settings;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -50,10 +49,6 @@ public class MprisReceiverPlugin extends Plugin {
 
     private MediaSessionChangeListener mediaSessionChangeListener;
 
-    public @NonNull String getDeviceId() {
-        return device.getDeviceId();
-    }
-
     @Override
     public boolean onCreate() {
         if (!NotificationReceiver.hasReadNotificationsPermission(context)) {
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 c24a0a8a5..b725d54aa 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/runcommand/RunCommandScreen.kt
@@ -64,6 +64,7 @@ import org.kde.kdeconnect.Device
 import org.kde.kdeconnect.ui.compose.KdeTheme
 import org.kde.kdeconnect.ui.compose.KdeTopAppBar
 import org.kde.kdeconnect_tp.R
+import kotlin.time.Duration.Companion.seconds
 
 @Composable
 fun RunCommandScreen(
@@ -256,7 +257,7 @@ private fun OutputCard(
 
     LaunchedEffect(commandRunning) {
         if (commandRunning) {
-            delay(1000)
+            delay(1.seconds)
             showStopButton = true
         } else {
             showStopButton = false
diff --git a/src/main/java/org/kde/kdeconnect/plugins/sftp/saf/SafFileSystemProvider.kt b/src/main/java/org/kde/kdeconnect/plugins/sftp/saf/SafFileSystemProvider.kt
index 52abc19e9..72afca68a 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/sftp/saf/SafFileSystemProvider.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/sftp/saf/SafFileSystemProvider.kt
@@ -155,8 +155,8 @@ class SafFileSystemProvider(
             }
 
             else -> {
-                Log.w(TAG, "newFileChannel($path, $options, $attrs) not implemented")
-                throw IOException("newFileChannel($path, $options, $attrs) not implemented")
+                Log.w(TAG, "newFileChannel($path, $options, ${attrs.contentToString()}) not implemented")
+                throw IOException("newFileChannel($path, $options, ${attrs.contentToString()}) not implemented")
             }
         }
     }
diff --git a/src/main/java/org/kde/kdeconnect/plugins/share/CompositeReceiveFileJob.java b/src/main/java/org/kde/kdeconnect/plugins/share/CompositeReceiveFileJob.java
index 13e5175ad..e3097c8d3 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/share/CompositeReceiveFileJob.java
+++ b/src/main/java/org/kde/kdeconnect/plugins/share/CompositeReceiveFileJob.java
@@ -18,7 +18,6 @@ import androidx.core.content.ContextCompat;
 import androidx.core.content.FileProvider;
 import androidx.documentfile.provider.DocumentFile;
 
-import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.kde.kdeconnect.Device;
 import org.kde.kdeconnect.helpers.FilesHelper;
diff --git a/src/main/java/org/kde/kdeconnect/plugins/share/SharePlugin.kt b/src/main/java/org/kde/kdeconnect/plugins/share/SharePlugin.kt
index 17544a172..33d855b4d 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/share/SharePlugin.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/share/SharePlugin.kt
@@ -147,7 +147,7 @@ class SharePlugin : Plugin() {
         get() = context.resources
             .getString(R.string.pref_plugin_sharereceiver_desc)
 
-    override fun getUiButtons(): kotlin.collections.List<PluginUiButton> {
+    override fun getUiButtons(): List<PluginUiButton> {
         return listOf(
             PluginUiButton(
                 context.getString(R.string.send_files),
diff --git a/src/main/java/org/kde/kdeconnect/plugins/sms/SMSPlugin.kt b/src/main/java/org/kde/kdeconnect/plugins/sms/SMSPlugin.kt
index 996d94b0d..2fdb10991 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/sms/SMSPlugin.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/sms/SMSPlugin.kt
@@ -358,7 +358,7 @@ class SMSPlugin : Plugin() {
 
     override fun hasSettings(): Boolean = true
 
-    override fun getSettingsFragment(activity: Activity): PluginSettingsFragment? = PluginSettingsFragment.newInstance(pluginKey, R.xml.smsplugin_preferences)
+    override fun getSettingsFragment(activity: Activity): PluginSettingsFragment = PluginSettingsFragment.newInstance(pluginKey, R.xml.smsplugin_preferences)
 
     override val supportedPacketTypes: Array<String> = arrayOf(
             PACKET_TYPE_SMS_REQUEST,
diff --git a/src/main/java/org/kde/kdeconnect/plugins/systemvolume/SystemVolumePlugin.kt b/src/main/java/org/kde/kdeconnect/plugins/systemvolume/SystemVolumePlugin.kt
index b8b20e3f3..759d2cfc8 100644
--- a/src/main/java/org/kde/kdeconnect/plugins/systemvolume/SystemVolumePlugin.kt
+++ b/src/main/java/org/kde/kdeconnect/plugins/systemvolume/SystemVolumePlugin.kt
@@ -6,7 +6,6 @@
 package org.kde.kdeconnect.plugins.systemvolume
 
 import android.util.Log
-import androidx.annotation.VisibleForTesting
 import org.json.JSONException
 import org.kde.kdeconnect.NetworkPacket
 import org.kde.kdeconnect.plugins.Plugin
diff --git a/src/main/java/org/kde/kdeconnect/ui/MainActivity.kt b/src/main/java/org/kde/kdeconnect/ui/MainActivity.kt
index f7014ef75..3398b0f95 100644
--- a/src/main/java/org/kde/kdeconnect/ui/MainActivity.kt
+++ b/src/main/java/org/kde/kdeconnect/ui/MainActivity.kt
@@ -10,7 +10,6 @@ import android.Manifest
 import android.content.Intent
 import android.content.SharedPreferences
 import android.content.SharedPreferences.OnSharedPreferenceChangeListener
-import android.content.pm.PackageManager
 import android.content.pm.PackageManager.PERMISSION_GRANTED
 import android.os.Build
 import android.os.Bundle
@@ -360,13 +359,13 @@ class MainActivity : AppCompatActivity(), OnSharedPreferenceChangeListener {
 
     @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
-        when {
-            requestCode == RESULT_NEEDS_RELOAD -> {
+        when (requestCode) {
+            RESULT_NEEDS_RELOAD -> {
                 CoroutineScope(Dispatchers.IO).launch {
                     KdeConnect.getInstance().devices.values.forEach(Device::reloadPluginsFromSettings)
                 }
             }
-            requestCode == STORAGE_LOCATION_CONFIGURED && resultCode == RESULT_OK && data != null -> {
+            STORAGE_LOCATION_CONFIGURED if resultCode == RESULT_OK && data != null -> {
                 val uri = data.data
                 ShareSettingsFragment.saveStorageLocationPreference(this, uri)
             }
@@ -376,12 +375,12 @@ class MainActivity : AppCompatActivity(), OnSharedPreferenceChangeListener {
 
     fun isPermissionGranted(permissions: Array<String>, grantResults: IntArray, permission : String) : Boolean {
         val index = ArrayUtils.indexOf(permissions, permission)
-        return index != ArrayUtils.INDEX_NOT_FOUND && grantResults[index] == PackageManager.PERMISSION_GRANTED
+        return index != ArrayUtils.INDEX_NOT_FOUND && grantResults[index] == PERMISSION_GRANTED
     }
 
     override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
         super.onRequestPermissionsResult(requestCode, permissions, grantResults)
-        val permissionsGranted = ArrayUtils.contains(grantResults, PackageManager.PERMISSION_GRANTED)
+        val permissionsGranted = ArrayUtils.contains(grantResults, PERMISSION_GRANTED)
         if (permissionsGranted) {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && isPermissionGranted(permissions, grantResults, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                 // To get a writeable path manually on Android 10 and later for Share and Receive Plugin.
diff --git a/src/main/java/org/kde/kdeconnect/ui/PluginSettingsActivity.kt b/src/main/java/org/kde/kdeconnect/ui/PluginSettingsActivity.kt
index df4e0fdc3..657d200b4 100644
--- a/src/main/java/org/kde/kdeconnect/ui/PluginSettingsActivity.kt
+++ b/src/main/java/org/kde/kdeconnect/ui/PluginSettingsActivity.kt
@@ -5,7 +5,6 @@
  */
 package org.kde.kdeconnect.ui
 
-import android.content.DialogInterface
 import android.os.Build
 import android.os.Bundle
 import android.view.Menu
@@ -13,8 +12,6 @@ import android.view.MenuItem
 import android.view.View
 import android.widget.TextView
 import androidx.activity.enableEdgeToEdge
-import androidx.appcompat.app.ActionBar
-import androidx.appcompat.widget.Toolbar
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
 import org.kde.kdeconnect.DeviceStats
 import org.kde.kdeconnect.KdeConnect.Companion.getInstance
@@ -23,7 +20,6 @@ import org.kde.kdeconnect.plugins.Plugin
 import org.kde.kdeconnect.ui.PluginPreference.PluginPreferenceCallback
 import org.kde.kdeconnect_tp.R
 import org.kde.kdeconnect_tp.databinding.ActivityPluginSettingsBinding
-import java.util.Objects
 
 class PluginSettingsActivity : BaseActivity<ActivityPluginSettingsBinding>(), PluginPreferenceCallback {
 
diff --git a/src/main/java/org/kde/kdeconnect/ui/compose/extensions/device/DeviceExtensions.kt b/src/main/java/org/kde/kdeconnect/ui/compose/extensions/device/DeviceExtensions.kt
index 7f049adfd..9c805a599 100644
--- a/src/main/java/org/kde/kdeconnect/ui/compose/extensions/device/DeviceExtensions.kt
+++ b/src/main/java/org/kde/kdeconnect/ui/compose/extensions/device/DeviceExtensions.kt
@@ -7,10 +7,6 @@
 package org.kde.kdeconnect.ui.compose.extensions.device
 
 import org.kde.kdeconnect.Device
-import org.kde.kdeconnect.DeviceType.LAPTOP
-import org.kde.kdeconnect.DeviceType.PHONE
-import org.kde.kdeconnect.DeviceType.TABLET
-import org.kde.kdeconnect.DeviceType.TV
 import org.kde.kdeconnect.ui.compose.model.device.DeviceUiModel
 import org.kde.kdeconnect_tp.R
 
diff --git a/src/main/res/drawable/mouse_pointer_clicked.xml b/src/main/res/drawable/mouse_pointer_clicked.xml
index 013aedc87..d8add3245 100644
--- a/src/main/res/drawable/mouse_pointer_clicked.xml
+++ b/src/main/res/drawable/mouse_pointer_clicked.xml
@@ -2,18 +2,10 @@
 
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item>
-    <shape
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:shape="oval">
-        <solid
-            android:color="#000000"/>
-
-        <size
-            android:width="12dp"
-            android:height="12dp"/>
-        <stroke
-            android:width="1dp"
-            android:color="#ffffff"/>
+    <shape android:shape="oval">
+        <solid android:color="#000000"/>
+        <size android:width="12dp" android:height="12dp"/>
+        <stroke android:width="1dp" android:color="#ffffff"/>
     </shape>
 </item>
 <item
@@ -21,11 +13,8 @@
     android:right="4dp"
     android:bottom="4dp"
     android:left="4dp">
-    <shape
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:shape="oval">
-        <solid
-            android:color="#ffffff"/>
+    <shape android:shape="oval">
+        <solid android:color="#ffffff"/>
     </shape>
 </item>
 </layer-list>
\ No newline at end of file
diff --git a/src/main/res/layout/activity_plugin_settings.xml b/src/main/res/layout/activity_plugin_settings.xml
index 321045a0b..0ffd3ef98 100644
--- a/src/main/res/layout/activity_plugin_settings.xml
+++ b/src/main/res/layout/activity_plugin_settings.xml
@@ -17,7 +17,6 @@ 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" />
 
     <FrameLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/fragmentPlaceHolder"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
diff --git a/src/main/res/values-v23/styles.xml b/src/main/res/values-v23/styles.xml
deleted file mode 100644
index 7f0df7502..000000000
--- a/src/main/res/values-v23/styles.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-SPDX-FileCopyrightText: 2021 Maxim Leshchenko <[email protected]>
-
-SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
--->
-
-<resources>
-
-    <style name="KdeConnectTheme.NoActionBar" parent="KdeConnectThemeBase.NoActionBar">
-        <item name="android:statusBarColor">@android:color/transparent</item>
-        <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
-    </style>
-
-</resources>
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index 3c85727d0..2a906974d 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -23,7 +23,10 @@ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted
         <item name="windowNoTitle">true</item>
     </style>
 
-    <style name="KdeConnectTheme.NoActionBar" parent="KdeConnectThemeBase.NoActionBar" />
+    <style name="KdeConnectTheme.NoActionBar" parent="KdeConnectThemeBase.NoActionBar">
+        <item name="android:statusBarColor">@android:color/transparent</item>
+        <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
+    </style>
 
     <style name="KdeConnectTheme.Toolbar" parent="Widget.AppCompat.Toolbar">
     </style>
diff --git a/src/test/java/android/text/TextUtils.java b/src/test/java/android/text/TextUtils.java
deleted file mode 100644
index 3eb03c8fa..000000000
--- a/src/test/java/android/text/TextUtils.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package android.text;
-
-public class TextUtils {
-    public static boolean isEmpty(CharSequence str) {
-        return str == null || str.length() == 0;
-    }
-}
diff --git a/src/test/java/org/kde/kdeconnect/plugins/ConnectivityReportPluginTest.kt b/src/test/java/org/kde/kdeconnect/plugins/ConnectivityReportPluginTest.kt
index fb154b942..ce7bdb8ec 100644
--- a/src/test/java/org/kde/kdeconnect/plugins/ConnectivityReportPluginTest.kt
+++ b/src/test/java/org/kde/kdeconnect/plugins/ConnectivityReportPluginTest.kt
@@ -1,4 +1,4 @@
-package org.kde.kdeconnect.plugins.connectivityreport
+package org.kde.kdeconnect.plugins
 
 import android.app.Application
 import android.content.Context
diff --git a/src/test/java/org/kde/kdeconnect/plugins/RunCommandPluginTest.kt b/src/test/java/org/kde/kdeconnect/plugins/RunCommandPluginTest.kt
index 370bcf9d6..90b6bd70c 100644
--- a/src/test/java/org/kde/kdeconnect/plugins/RunCommandPluginTest.kt
+++ b/src/test/java/org/kde/kdeconnect/plugins/RunCommandPluginTest.kt
@@ -1,4 +1,4 @@
-package org.kde.kdeconnect.plugins.runcommand
+package org.kde.kdeconnect.plugins
 
 import android.app.Application
 import android.content.Context
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.