tinkoff-mobile-tech / decoro

Android library designed for automatic formatting of text input by custom rules
Apache License 2.0
391 stars 31 forks source link

Удаление символа в слоте #58

Open MATPOCKIH opened 3 years ago

MATPOCKIH commented 3 years ago

Здравствуйте, можно ли как-то добиться результата, чтобы определенный символ в слоте просто удалялся? Это нужно для того, чтобы телефонной маске +7 (###) ###-##-## в слоте 4 удалять введенные пользователем цифры 7 и 8.

Сейчас настройка поля следующая:

    val slots = Slot.copySlotArray(RUS_PHONE_NUMBER)
    slots[1].setValueInterpreter(ValueInterpreter { character ->
        if (character == null) {
            return@ValueInterpreter null
        }
        if (character == '8') '7' else character
    })
    slots[3].flags = slots[3].flags or Slot.RULE_FORBID_CURSOR_MOVE_LEFT
    val newMask = MaskImpl(slots, true)
    newMask.isShowingEmptySlots = true
    newMask.isHideHardcodedHead = true
    val watcher = MaskFormatWatcher(newMask)

    watcher.installOnAndFill(editText)