From 177098ba419fef533f08a1788351d70cc53c1387 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Wed, 12 Jun 2019 16:35:06 -0400 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/3388: Set max length for device name (https://github.com/mozilla-mobile/fenix/pull/3397) --- .../mozilla/fenix/settings/AccountSettingsFragment.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 + } }