Home - tinkoff-mobile-tech/decoro GitHub Wiki
В основе Decoro лежат два понятия: слот и маска. Слот определяет как будет отформатирован один символ. Маска же содержит список слотов и отвечает за форматирование последовательности символов. Жц Маска является сердцем Decoro и может использоваться как самостоятельно для форматирования произво:wльных строк в коде, так и для форматирования текста в TextView (EditText) "на лету" с помощью FormatWatcher.
Другие сущности, используемые библиотекой:
FormatWatcher
или форматтер - это абстрактная реализация TextWatcher’а. Он держит внутри себя маску и синхронизирует ее содержимое с содержимым TextView. Именно этот класс используется для форматирования текста "на лету", пока пользователь его вводит. В коробке имеются реализацииMaskFormatWatcher
иDescriptorFormatWatcher
. О различиях между ними в разделе о FormatWatcher'ах.- Иногда нам хочется создавать маску на основе какого-нибудь DSL (вроде
+1 (___) ___-__-__
).SlotsParser
как раз призван помогать нам это делать. ОбычныйString
он приводит к массиву слотов, которым умеет оперировать наша маска. Подробнее об этом в разделе о способах создания маски. PredefinedSlots
содержит предустановленные наборы слотов (для номера телефона, паспорта и т.д.)MaskDescriptor
- это "заготовка" с параметрами будущей маски, которуюFormatWatcherImpl
использует для (пере)создания своей внутренней маски.