2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-08-22 01:51:47 +00:00

Fix not being able to input spaces when renaming the device

This commit is contained in:
Albert Vaca Cintora 2025-06-04 14:11:45 +02:00
parent b463adda73
commit 388b6f5a20
No known key found for this signature in database
3 changed files with 12 additions and 6 deletions

View File

@ -94,7 +94,7 @@ class DeviceInfo(
with(identityPacket) { with(identityPacket) {
DeviceInfo( DeviceInfo(
id = getString("deviceId"), // Redundant: We could read this from the certificate instead id = getString("deviceId"), // Redundant: We could read this from the certificate instead
name = DeviceHelper.filterName(getString("deviceName", "unknown")), name = DeviceHelper.filterInvalidCharactersFromDeviceNameAndLimitLength(getString("deviceName", "unknown")),
type = DeviceType.fromString(getString("deviceType", "desktop")), type = DeviceType.fromString(getString("deviceType", "desktop")),
certificate = certificate, certificate = certificate,
protocolVersion = getInt("protocolVersion"), protocolVersion = getInt("protocolVersion"),
@ -106,7 +106,7 @@ class DeviceInfo(
@JvmStatic @JvmStatic
fun isValidIdentityPacket(identityPacket: NetworkPacket): Boolean = with(identityPacket) { fun isValidIdentityPacket(identityPacket: NetworkPacket): Boolean = with(identityPacket) {
type == NetworkPacket.PACKET_TYPE_IDENTITY && type == NetworkPacket.PACKET_TYPE_IDENTITY &&
DeviceHelper.filterName(getString("deviceName", "")).isNotBlank() && DeviceHelper.filterInvalidCharactersFromDeviceNameAndLimitLength(getString("deviceName", "")).isNotBlank() &&
isValidDeviceId(getString("deviceId", "")) isValidDeviceId(getString("deviceId", ""))
} }

View File

@ -122,7 +122,7 @@ object DeviceHelper {
} }
fun setDeviceName(context: Context, name: String) { fun setDeviceName(context: Context, name: String) {
val filteredName = filterName(name) val filteredName = filterInvalidCharactersFromDeviceNameAndLimitLength(name)
val preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
preferences.edit { putString(KEY_DEVICE_NAME_PREFERENCE, filteredName) } preferences.edit { putString(KEY_DEVICE_NAME_PREFERENCE, filteredName) }
} }
@ -157,5 +157,9 @@ object DeviceHelper {
} }
@JvmStatic @JvmStatic
fun filterName(input: String): String = input.replace(NAME_INVALID_CHARACTERS_REGEX, "").trim().take(MAX_DEVICE_NAME_LENGTH) fun filterInvalidCharactersFromDeviceNameAndLimitLength(input: String): String = filterInvalidCharactersFromDeviceName(input).trim().take(MAX_DEVICE_NAME_LENGTH)
@JvmStatic
fun filterInvalidCharactersFromDeviceName(input: String): String = input.replace(NAME_INVALID_CHARACTERS_REGEX, "")
} }

View File

@ -37,7 +37,7 @@ import org.kde.kdeconnect.BackgroundService
import org.kde.kdeconnect.Helpers.CreateFileParams import org.kde.kdeconnect.Helpers.CreateFileParams
import org.kde.kdeconnect.Helpers.CreateFileResultContract import org.kde.kdeconnect.Helpers.CreateFileResultContract
import org.kde.kdeconnect.Helpers.DeviceHelper import org.kde.kdeconnect.Helpers.DeviceHelper
import org.kde.kdeconnect.Helpers.DeviceHelper.filterName import org.kde.kdeconnect.Helpers.DeviceHelper.filterInvalidCharactersFromDeviceName
import org.kde.kdeconnect.Helpers.DeviceHelper.getDeviceName import org.kde.kdeconnect.Helpers.DeviceHelper.getDeviceName
import org.kde.kdeconnect.Helpers.NotificationHelper import org.kde.kdeconnect.Helpers.NotificationHelper
import org.kde.kdeconnect.UserInterface.ThemeUtil.applyTheme import org.kde.kdeconnect.UserInterface.ThemeUtil.applyTheme
@ -83,7 +83,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
setOnBindEditTextListener(EditText::setSingleLine) setOnBindEditTextListener(EditText::setSingleLine)
setOnBindEditTextListener { editText: EditText -> setOnBindEditTextListener { editText: EditText ->
editText.filters = arrayOf( editText.filters = arrayOf(
InputFilter { source: CharSequence, start: Int, end: Int, _: Spanned?, _: Int, _: Int -> filterName(source.subSequence(start, end).toString()) }, InputFilter { source: CharSequence, start: Int, end: Int, _: Spanned?, _: Int, _: Int ->
filterInvalidCharactersFromDeviceName(source.subSequence(start, end).toString())
},
LengthFilter(DeviceHelper.MAX_DEVICE_NAME_LENGTH), LengthFilter(DeviceHelper.MAX_DEVICE_NAME_LENGTH),
) )
} }