Модуль содержит extension-функции для Activity
, Context
, Delegates
, TextView
, View
и ViewHolder
.
- safeStartActivityForResult - функция для запуска нового активити с
requestCode
, который будет передан в onActivityResult при завершении работы данного активити. Находит наиболее подходящий активити для выполнения действия. Если не будет найден ни один активити для выполнения действия, то функция ничего не сделает и вернетfalse
.
-
safeStartActivity - функция запуска активити, аналогична safeStartActivityForResult, но не позволяет передать
requestCode
. -
openBrowser - функция для открытия ссылки в браузере через safeStartActivity.
-
callToPhoneNumber - функция для открытия программы "Телефон" с переданным номером телефона через safeStartActivity.
- drawableStart, drawableTop, drawableEnd, drawableBottom - функции для установки и получения
Drawable
на соответсвующих позициях.
- setOnRippleClickListener - функция для добавления Ripple-эффекта и действия, которое будет выполняться при нажатии на
View
.
-
ViewHolder.findViewById - функция для поиска
View
, расположеного внутри itemView. -
ViewHolder.getText - функция для получения текста из ресурсов.
-
ViewHolder.getString - функция для получения строк из ресурсов. Может также принимать вторым аргументом и далее - строки, которые будут подставлены вместо специальных символов в строку из ресурсов.
-
ViewHolder.getColor - получить цвет в виде
Int
из ресурсов. -
ViewHolder.getColorStateList - получить
ColorStateList
, который ассоциируется с переданным цветом. -
ViewHolder.getDrawable - получить
Drawable
из ресурсов.
-
observable - подписка на изменения свойства, принимает
initialValue
- начальное значение иonChange
- действие, которое будет выполняться после каждой установки свойства. -
distinctUntilChanged - тоже самое, что и предыдущее расширение, только
onChange
будет выполняться лишь в том случае, когда свойство принимает новое значение не равноеnull
и отличное от предыдущего.
class LinkViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val linkView: TextView = findViewById(R.id.item_link)
private val linkColor = getColor(R.color.global_action)
fun bind(link: String) {
linkView.text = link
linkView.setOnRippleClickListener { context.openBrowser(link) }
}
}