/ decoro

  • Копировать строки
  • Скопировать постоянную ссылку
  • Просмотреть git blame
  • Ссылка в новом выпуске
/*
* Copyright © 2016 Тинькофф Банк
*
* Под лицензией Apache, версия 2.0 («Лицензия»);
* вы не можете использовать этот файл, кроме как в соответствии с Лицензией.
* Вы может получить копию лицензии по адресу
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Программное обеспечение, если это не требуется действующим законодательством или не согласовано в письменной форме,
* распространяется по Лицензии распространяется на ОСНОВЕ «КАК ЕСТЬ»
* БЕЗ ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
* См. лицензию для конкретного языка. разрешения и
* ограничения по Лицензии.
*/
пакет ru.tinkoff.decoro;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import androidx .annotation.Nullable;
import ru.tinkoff.decoro.slots.Slot;
/**
* Интерфейс, представляющий маску, которая содержит слоты с пользовательским вводом и жестко закодированными данными.
* Маска выполняет фактическое форматирование ввода и возможность возврата отформатированной и неформатированной
* строки.
*
* См .: {@link MaskImpl} — основная реализация этого интерфейса.
*
* @author Михаил Артемьев
*/
Маска общедоступного интерфейса расширяет Iterable , Parcelable {
/**
* @ вернуть содержимое маски без символов украшения .
* Символы украшения указываются с помощью тега {@link Slot # TAG_DECORATION} в соответствующем
* {@link Slot}
*/
@NonNull
String toUnformattedString ();
/**
* Ищет начальную позицию для курсора, поскольку буфер может быть предопределен с помощью начальных
* символов
*/
int getInitialInputPosition ();
/**
* Проверяет, есть ли заполненные слот, кроме ‘жестко запрограммированные’.
* Это может произойти, только если какой-то текст был вставлен в маску (например, путем ввода пользователем ). d>
*
* @return true, если в маске есть что-либо, кроме жестко закодированных данных
*/
логическое hasUserInput ();
/**
* Проверяет, заполнена ли вся маска.
*
* @return true, если пустых слотов больше нет
*/
логический заполненный () ;
/**
* Удаляет ввод данных пользователем из этой маски.
*/
void clear ();
/**
* Вставка метода {@co de input} в буфер. Будут вставлены только проверенные символы.
* Жестко заданные слоты опускаются. Метод возвращает новую позицию курсора, на которую влияет ввод
* и флаг {@code cursorAfterTrailingHardcoded}. В большинстве случаев, если за входной строкой следует
* последовательность жестко закодированных символов, мы должны поместить курсор после них. Но это поведение можно
* изменить с помощью флага {@code cursorAfterTrailingHardcoded}..
*
* @param позиция, с которой начинать ввод
* @param входная строка для вставки
* @param cursorAfterTrailingHardcoded, когда за вводом следуют жестко закодированные символы
*, то этот флаг определяет, будет ли новый курсор
* позиция должна быть после или перед ними
* @ вернуть позицию курсора после вставки
*/
int insertAt (int position, @Nullable CharSequence input, логическое значение cursorAfterTrailingHardcoded);
/**
* Удобство метод для {@link MaskImpl # insertAt (int, CharSequence, boolean)}, который всегда
* помещает курсор после завершающей жестко запрограммированной последовательности.
*
* @param позиция, с которой начинать ввод
* @param строка ввода для вставки
* @ вернуть позицию курсора после вставки
*/
int insertAt (int position, @Nullable CharSequence input);
/**
* Удобный метод для {@link MaskImpl # insertAt (int, CharSequence, boolean)}, который вставляет
* текст в первую позицию маски и всегда помещает курсор после завершающей жестко запрограммированной
* последовательности.
*
* строка ввода @param для вставки
* @ вернуть позицию курсора назад вставьте
*/
int insertFront (вход @Nullable CharSequence);
/**
* Удаляет доступные символы из буфера. Этот метод должен вызываться при удалении
* пользовательского ввода. Символы удаляются в обратном направлении (как и клавиша возврата). Жестко запрограммированные символы
* не будут удалены, только курсор будет перемещен по ним.
*
* Метод также обновляет флаг {@code showHardcodedTail}, который определяет, будет ли хвост жестко закодированных
* символов (в конце ввода пользователя) должны отображаться. В большинстве случаев не следует. Единственный
* случай, когда они видны — буфер начинается с них и удаление происходило внутри них.
*
* @param позиция, с которой начинать удаление
* @param подсчитывает количество символов для удаления.
* @ вернуть новую позицию курсора после удаления
*/
int removeBackwards (int position, int count);
int removeBackwardsWithoutHardcoded (int position, int count);
/**
* Возвращает текущий размер маски в пазах.
* ВАЖНО: подсчитываются также пустые места.
*
* @return возвращает текущий размер маски в слотах
*/
int getSize ();
/**
* @return true, если маска позволяет отображать слоты без значения, помещая placeholder
* на этих позициях.
*
* См .: {@link #setPlaceholder (Character)}
*/
логическое isShowingEmptySlots ();
/**
* Определяет, позволяет ли маска отображать слоты без значения, помещая p кружево
* на этих позициях.
*
* См .: {@link #setPlaceholder (Character)}
*
* @param showsEmptySlots true, если маска позволяет отображать пустые слоты
*/
void setShowingEmptySlots (логическое значение showEmptySlots);
/**
* символ @return, который будет помещен в пустую позицию при вызове {@link #toString ()} или
* {@link #toUnformattedString ()}.
*
* См .: {@link #setShowingEmptySlots (boolean)}
*/
@NonNull
Символ getPlaceholder ();
/**
* Задает символ, который будет помещен на пустую позицию при вызове {@link #toString ()} или
* {@ ссылка #toUnformattedString ()}. Заполнитель не должен быть нулевым!
*
* См .: {@link #setShowingEmptySlots (boolean)}
*
* символ-заполнитель @param, представляющий пустые слоты
*/
void setPlaceholder (заполнитель символа);
/**
* @return true, если маска будет скрывать ведущая жестко запрограммированная последовательность его содержимого.
*
* См .: {@link #setHideHardcodedHead (boolean)}
*/
логическое isHideHardcodedHead ();
/**
* Определяет, должна ли маска h ведущая жестко запрограммированная последовательность ide при вызове {@link #toString ()}
* или {@link #toUnformattedString () }.
*
* Пример «жестко запрограммированного заголовка»: +7 ( в маске номера мобильного телефона в России, определенной в
* {@link
* ru.tinkoff.decoro.slots.PredefinedSlots # RUS_PHONE_NUMBER}.
*
* @param shouldHideHardcodedHead значение «скрыть заголовок жесткого кода»
*/
void setHideHardcodedHead (логическое shouldHideHardcodedHead);
/**
* @return true, если маска не позволяет выполнять дальнейший ввод, если все слоты уже заполнены
* out.
*
* См .: {@link #setForbidInputWhenFilled (boolean)}
*/
логическое isForbidInputWhenFilled ();
/**
* Определяет, не разрешает ли маска выполнять дальнейший ввод, если все слоты уже заняты
* заполнено. Если передано false — маска сместит существующий ввод при попытке вставить
* текст внутри заполненная маска ({@link #filled ()} возвращает true).
*
* ВНИМАНИЕ: этот флаг имеет смысл только для завершенных масок.
*
* @paramribidInputWhenFilled флаг, запрещающий перезапись завершенных заполненных масок.
*/
void setForbidInputWhenFilled (booleanhibitedInputWhenFilled);
/**
* Находит позицию курсора в неформатированной строке, которая соответствует переданной позиции курсора
* в отформатированной строка.
* @param cursorPosition
* @re повернуть соответствующую позицию курсора в неформатированной строке
* @throws IndexOutOfBoundsException, если cursorPosition size
*/
int findCursorPositionInUnformattedString (int cursorPosition);
}
Оцените статью
Botgadget.ru
Добавить комментарий