Public Access
Light the screen (dimmed) while a Notification's Toast shows
An Off screen turns on dimmed for the Toast's duration so the user can see what beeped. It isn't user activity: the timeouts aren't restarted, and a key pressed meanwhile reaches the App. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
@@ -31,6 +31,7 @@ void Notifier::update(uint32_t nowMs) {
|
||||
if (shown && shown->id != alertedId_) {
|
||||
alertedId_ = shown->id;
|
||||
alert(shown->level, nowMs);
|
||||
if (onShow) onShow(nowMs, nowMs + kToastMs);
|
||||
}
|
||||
if (ledOn_ && static_cast<int32_t>(nowMs - ledOffAtMs_) >= 0) {
|
||||
rgbLedWrite(kLedPin, 0, 0, 0);
|
||||
|
||||
+7
-1
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include "event_bus.h"
|
||||
#include "settings.h"
|
||||
#include "toast_queue.h"
|
||||
@@ -14,11 +16,15 @@ class Notifier {
|
||||
void update(uint32_t nowMs); // alerts for a newly shown Toast, ends the LED flash
|
||||
ToastQueue& toasts() { return toasts_; }
|
||||
|
||||
// Called when a Toast appears, with the time it will disappear (e.g. to light the screen).
|
||||
std::function<void(uint32_t nowMs, uint32_t untilMs)> onShow;
|
||||
|
||||
private:
|
||||
void alert(NotificationLevel level, uint32_t nowMs);
|
||||
|
||||
const Settings& settings_;
|
||||
ToastQueue toasts_{3000, 8};
|
||||
static constexpr uint32_t kToastMs = 3000;
|
||||
ToastQueue toasts_{kToastMs, 8};
|
||||
uint32_t ledOffAtMs_ = 0;
|
||||
bool ledOn_ = false;
|
||||
uint32_t alertedId_ = 0;
|
||||
|
||||
Reference in New Issue
Block a user