Skip to content
Mike Art edited this page Oct 28, 2016 · 14 revisions

В основе Decoro лежат два понятия: слот и маска. Слот определяет как будет отформатирован один символ. Маска же содержит список слотов и отвечает за форматирование последовательности символов.

Другие сущности, используемые библиотекой:

  • Иногда нам хочется создавать маску на основе какого-нибудь DSL (вроде +1 (___) ___-__-__). SlotsParser как раз призван помогать нам это делать. Обычный String он приводит к массиву слотов, которым умеет оперировать наша маска. Подробнее об этом в разделе о способах создания маски.
  • PredefinedSlots содержит предустановленные наборы слотов (для номера телефона, паспорта и т.д.)
  • FormatWatcher или форматтер - это абстрактная реализация TextWatcher’а. Он держит внутри себя маску и синхронизирует ее содержимое с содержимым TextView. Именно этот класс используется для форматирования текста "на лету", пока пользователь его вводит. В коробке имеются реализации MaskFormatWatcher и DescriptorFormatWatcher. О различиях между ними в разделе о FormatWatcher'ах.
  • MaskDescriptor`` - это "заготовка" с параметрами будущей маски, которую DescriptorFormatWatcher``` использует для (пере)создания своей внутренней маски.