
Комментарии 9
единственный способ гарантировать, что экран не мелькнёт до проверки
Нет, можно и нужно использовать androidx.core:core-splashscreen с проверкой в setKeepOnScreenCondition или через ViewTreeObserver.OnPreDrawListener, как в документации.
Прошу прощения, я немного покритикую.
PIN сохраняется в DataStore
Держать "чувствительную" информацию в DataStore - не самая лучшая идея. Хотя бы шифруйте как-нибудь (если что, для этого есть библиотеки). Делайте лучше биометрию, там ничего сложного, и доверьте заботу о безопасности устройству.
Сервис в таком виде, что сейчас - не самый лучший вариант. Если бы Вы публиковались в Google Play, то с большой вероятностью приложение завернули бы на модерации.
Обновление уведомления каждую секунду - нагрузка на систему, лишний расход батареи.
Использование delay(1000) для измерения времени - плохая практика. Вызов delay(1000) не даст ровно одну секунду, со временем накопится дрифт. Используйте System.currentTimeMillis() при измерении отрезков времени.
Из контекста не ясно, откуда берется scope. У Service() нет своего лайфцикла (речь про lifecycleScope). Не знаю, что там за кадром, но в теории, если быть неаккуратным со scope, можно получить утечку памяти.
Если сервис нужен только для таймера, а я не вижу больше ничего, обратите внимание на методы setUsesChronometer и setChronometerCountdown у уведомлений.
Было бы гораздо понятнее и интереснее, если бы вы код и описание иллюстрировали скринами вашего приложения.

Интересное обращение с отступами
стало только хуже в плане кол-ва багов, я так и не увидел уведомление от таймера, и не увидел запрос на его отображение, MIUI android 13 , мало того это какой то общий счётчик, если таймер запусить то можно переключать варианты , фокус, и оба перерыва, и он просто начинается заного, при повороте экрана он останавливается, при переключении вариантов он сам запускается, но больше всего мне понравилась математика аналитики с максимумом в 99% ,ну и хотелоь бы всё таки видеть статус бар телефона

Как я добавил 10 фич в Android-приложение за один заход: Todo Budget v4.0