Этот джентльмен был известен своей изысканной вежливостью и непревзойденной учтивостью. Его запросы о разрешениях всегда сопровождались глубоким уважением и тактом, он не просто спрашивал, но и проявлял искренний интерес к мнению других. Его выразительные иконки и стили текста, сопровождающие любое обращение, создавали приятную атмосферу, будь то отправка уведомлений или доступ к геолокации.
- Простой и элегантный dsl синтаксис
- Запрос одного или нескольких разрешений
- Получение результата в виде коллбэка
- Полная кастомизация интерфейса
- Различные стратегии использования
Подключение зависимости
project build.gradle.kts
repositories {
maven("https://jitpack.io")
}module build.gradle.kts
implementation("com.github.FabitMobile.gentleman:$latestVersion")В удобном месте описываем необходимые разрешения и обработчик результата. Context подойдет любой
Gentleman in Tuxedo {
with(context)
ask(Manifest.permission.ACCESS_COARSE_LOCATION)
await { result ->
println("granted=${result.granted}; denied=${result.denied}")
}
}Для запроса нескольких разрешений сразу, указываем их через запятую или в виде списка
Не забываем, что после Adnroid 11 разрешения не запрашиваются, если были отклонены дважды
ask(Manifest.permission.ACCESS_COARSE_LOCATION) retry once- Всегда показывать перед запросом
gentle manner ask(Manifest.permission.ACCESS_COARSE_LOCATION)- Показывать при необходимости (поведение по-умолчанию)
usual manner ask(Manifest.permission.ACCESS_COARSE_LOCATION)- Никогда не показывать
rude manner ask(Manifest.permission.ACCESS_COARSE_LOCATION)- Открывает дополнительную разметку, предлагающую перейти в настройки
suggest goTo innerChamberДля кастомизации интерфейса необходимо переопределить класс GentlemanAppearance -
подготовительный этап, который далее передается в Appearance
class Tuxedo(
override val rationaleLayoutResId: Int = R.layout.tuxedo,
override val settingLayoutResId: Int = R.layout.inner_chamber,
override val appearanceClass: Class<out Appearance> = Appearance::class.java,
reparation: Preparation,
) : GentlemanAppearance(reparation)Appearance - это полноценная activity в которой вы вольны делать что угодно. Необходимо только
использовать специальные id (button_positive и button_negative) для view для обработки
нажатий соответствующих кнопок
Иногда достаточно будет переопределить только саму разметку R.layout.tuxedo
