У меня есть приложение со скрытым меню отладки. Мне нужно включить это секретное меню, если (Build.DEBUG
и) пользователь нажимает на представление, например, 4 раза за одну секунду. Я хотел бы использовать для этого RxJava.
Я попробовал DebouncedBuffer от Каушика Гопала в weddingpartyapp, но это подсчитывает клики и возвращает значение, если за указанный период времени не было кликов.
Я добился желаемого эффекта, используя простой buffer()
, но он начинает буферизоваться и продолжает выдавать пустые списки, если нет кликов. Я могу добавить filter()
, но я хотел бы добиться того же результата другим способом.
Я хотел бы запустить буфер после первого клика и собрать все клики (bufer()
?) с заданным периодом времени (debounce()
?), а затем остановить буферизацию. Я нашел buffer(bufferOpenings, bufferClosingSelector)
которые делают то, что мне нужно, и я нашел пример использования в Intro-To-RxJava, но это зависит от interval()
. Как изменить это, чтобы первое наблюдаемое было первым значением в группе, а затем функция срабатывала через одну секунду от первого значения?
Кроме того, я нашел этот ответ, который добавляет проверку количества элементов (что тоже было бы полезно, потому что я могу остановить Observable
после получаю 4 клика), но могу ли я добиться того же эффекта, не создавая новый Operator
?