diff --git a/app/src/main/java/org/mozilla/fenix/settings/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/AccountSettingsFragment.kt index 02356f02a7..3c1be0daf4 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/AccountSettingsFragment.kt @@ -6,10 +6,12 @@ package org.mozilla.fenix.settings import android.content.Context import android.os.Bundle +import android.text.InputFilter import android.text.format.DateUtils import androidx.appcompat.app.AppCompatActivity import androidx.navigation.Navigation import androidx.preference.CheckBoxPreference +import androidx.preference.EditTextPreference import androidx.preference.Preference import androidx.preference.PreferenceCategory import androidx.preference.PreferenceFragmentCompat @@ -111,11 +113,14 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope { // Device Name val deviceConstellation = accountManager.authenticatedAccount()?.deviceConstellation() val deviceNameKey = context!!.getPreferenceKey(R.string.pref_key_sync_device_name) - findPreference(deviceNameKey)?.apply { + findPreference(deviceNameKey)?.apply { onPreferenceChangeListener = getChangeListenerForDeviceName() deviceConstellation?.state()?.currentDevice?.let { device -> summary = device.displayName } + setOnBindEditTextListener { editText -> + editText.filters = arrayOf(InputFilter.LengthFilter(DEVICE_NAME_MAX_LENGTH)) + } } deviceConstellation?.registerDeviceObserver(deviceConstellationObserver, owner = this, autoPause = true) @@ -257,4 +262,8 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope { ) } } + + companion object { + private const val DEVICE_NAME_MAX_LENGTH = 128 + } }