All streams
Search
Write a publication
Pull to refresh
13
0
Илья Павловский @TranE91

Android Software Engineer

Send message
Грубо как-то так:
private val LAST_CLICK_TIME_KEY = R.id.last_click_time

fun View.setOnBlockedClickListener(
    blockTime: Duration = 500.toDuration(DurationUnit.MILLISECONDS),
    listener: (View) -> Unit
) {
    this.setOnClickListener { view ->
        val lastClickTime = view.getTag(LAST_CLICK_TIME_KEY) as? Duration
        val currentTime = SystemClock.elapsedRealtime().toDuration(DurationUnit.MILLISECONDS)
        view.setTag(LAST_CLICK_TIME_KEY, currentTime)
        if (lastClickTime == null || currentTime - lastClickTime > blockTime) {
            listener(view)
        }
    }
}

А не проще ли написать extension функцию для View в которой фильтровать клики наружу?
Или свой экземпляр расширяющий OnClickListener с тэгированием объекта через View.
Это больше на другую статью тянет. Проблема в том, что знакомые мне GUIни, не поддерживают форму работы с git hook-ами(хотя я и сам слабо представляю как это можно «продать» красиво). Подробно описано здесь.

Именно как настроить формирование commit-message по шаблону?

Подключите pre-commit hook, проанализируйте входящее сообщение и доработайте его. Пример можно найти здесь.

И может ли сформированное сообщение появляться в окошке commit changes перед комитом?

Да, можно все что угодно. На что хватит Вашей фантазии.
На одном проекте, видел хуки, которые вырезали номер задачи из наименования ветки(а на ее формирование стояли свои правила) и подставляли префикс номера задачи в коммит мессадж.
IMHO, порочная практика. Она маскирует реальную картину происходящего

Можете пояснить мысль?

У нас был спор, про обратную сторону. Поясню на грубом примере — Мы долгое время спорили, можно ли рабочий код и его тестирование разделять отдельными коммитами? Лучше так не делать. Когда вы решаете откатить фичу, то прыгая по хистори коммитов, очень легко погрязнуть в фантазии автора и забыть вырезать некоторые части. Те ваша функциональность и ее тестирование должны быть поданы одной неделимой частью.
А в тему реальной картине происходящего — тут скорее про правильную декомпозицию задач стоит вести речь.
Да, Вы абсолютно правы.
Я лишь хотел обратить внимание на то, где хранятся такие настройки и что файл с настройками легко может попасть под юрисдикцию .gitignore
Компромисс — работай 8 часов, пиши код 4.
В корне с Вами несогласен. Писать код/документацию/структурировать процесс и результат — это все есть результат вашей работы. Писать код — это одна часть повседневных будней.
Да, Вы правы, спасибо. Исправил, совсем забыл про смежные продукты.
Такой подход не решает основной проблемы — избавление от бойлерплейта.
За ней же следует пораждающая проблема поддержки.
2

Information

Rating
Does not participate
Location
Warszawa, Mazowieckie, Польша
Date of birth
Registered
Activity