notifications: Dismiss to watchface when empty (#1716)
Some checks failed
CI / build-firmware (push) Successful in 6m40s
CI / build-simulator (push) Failing after 24s
CI / get-base-ref-size (push) Has been skipped
CI / Compare build size (push) Has been skipped

Set `running` to false to flag end of watchface when there are no more
notifications left to display.

I found it slightly annoying that dismissing all notifications leaves me with
a "No notification to display" message. Instead of dismissing to a relatively
useless message, dismiss to watchface.
This commit is contained in:
Eli Tan 2024-09-19 04:31:15 +08:00 committed by GitHub
parent c8236afbef
commit a266202831
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -82,7 +82,6 @@ void Notifications::Refresh() {
} else if (mode == Modes::Preview && dismissingNotification) { } else if (mode == Modes::Preview && dismissingNotification) {
running = false; running = false;
currentItem = std::make_unique<NotificationItem>(alertNotificationService, motorController);
} else if (dismissingNotification) { } else if (dismissingNotification) {
dismissingNotification = false; dismissingNotification = false;
@ -113,11 +112,11 @@ void Notifications::Refresh() {
alertNotificationService, alertNotificationService,
motorController); motorController);
} else { } else {
currentItem = std::make_unique<NotificationItem>(alertNotificationService, motorController); running = false;
} }
} }
running = currentItem->IsRunning() && running; running = running && currentItem->IsRunning();
} }
void Notifications::OnPreviewInteraction() { void Notifications::OnPreviewInteraction() {
@ -173,7 +172,9 @@ bool Notifications::OnTouchEvent(Pinetime::Applications::TouchEvents event) {
} else if (nextMessage.valid) { } else if (nextMessage.valid) {
currentId = nextMessage.id; currentId = nextMessage.id;
} else { } else {
// don't update id, won't be found be refresh and try to load latest message or no message box // don't update id, notification manager will try to fetch
// but not find it. Refresh will try to load latest message
// or dismiss to watchface
} }
DismissToBlack(); DismissToBlack();
return true; return true;