diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt | 8 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/CellInput.kt | 33 |
2 files changed, 41 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt index 6cc28fd865..fbace21ff7 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt @@ -6,7 +6,12 @@ import android.view.View import android.view.ViewGroup import net.mullvad.mullvadvpn.R +private const val MIN_MTU_VALUE = 1280 +private const val MAX_MTU_VALUE = 1420 + class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { + private lateinit var wireguardMtuInput: CellInput + override fun onSafelyCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -18,6 +23,9 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) { parentActivity.onBackPressed() } + wireguardMtuInput = + CellInput(view.findViewById(R.id.wireguard_mtu_input), MIN_MTU_VALUE, MAX_MTU_VALUE) + return view } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/CellInput.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/CellInput.kt new file mode 100644 index 0000000000..5a582216da --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/CellInput.kt @@ -0,0 +1,33 @@ +package net.mullvad.mullvadvpn.ui + +import android.text.Editable +import android.text.TextWatcher +import android.widget.EditText +import net.mullvad.mullvadvpn.R + +class CellInput(val input: EditText, val minValue: Int, val maxValue: Int) { + private val resources = input.context.resources + + private val validInputColor = resources.getColor(R.color.white) + private val invalidInputColor = resources.getColor(R.color.red) + + init { + input.addTextChangedListener(InputWatcher()) + } + + inner class InputWatcher : TextWatcher { + override fun beforeTextChanged(text: CharSequence, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(text: CharSequence, start: Int, count: Int, after: Int) {} + + override fun afterTextChanged(text: Editable) { + val value = text.toString().trim().toIntOrNull() + + if (value != null && value >= minValue && value <= maxValue) { + input.setTextColor(validInputColor) + } else { + input.setTextColor(invalidInputColor) + } + } + } +} |
