mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-29 14:10:53 +00:00
* chore: todo.txt * chore: comments * fix: no fast refresh on VME290 Reverts a line of code which was accidentally committed * refactor: god class Divide the behavior from the old WindowManager class into several subclasses which each have a clear role. * refactor: cppcheck medium warnings Enough to pass github CI for now * refactor: updateType selection * refactor: don't use a setter for the shared AppletFonts * fix: update prioritization forceUpdate calls weren't being prioritized * refactor: remove unhelpful logging getTimeString is used for parsing our own time, but also the timestamps of messages. The "one time only" log printing will likely fire in unhelpful situations. * fix: " " * refactor: get rid of types.h file for enums * Keep that sneaky todo file out of commits
53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
#ifdef MESHTASTIC_INCLUDE_INKHUD
|
|
|
|
/*
|
|
|
|
Pop-up notification bar, on screen top edge
|
|
Displays information we feel is important, but which is not shown on currently focused applet(s)
|
|
E.g.: messages, while viewing map, etc
|
|
|
|
Feature should be optional; enable disable via on-screen menu
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "configuration.h"
|
|
|
|
#include "concurrency/OSThread.h"
|
|
|
|
#include "graphics/niche/InkHUD/SystemApplet.h"
|
|
|
|
namespace NicheGraphics::InkHUD
|
|
{
|
|
|
|
class NotificationApplet : public SystemApplet
|
|
{
|
|
public:
|
|
NotificationApplet();
|
|
|
|
void onRender() override;
|
|
void onForeground() override;
|
|
void onBackground() override;
|
|
void onButtonShortPress() override;
|
|
void onButtonLongPress() override;
|
|
|
|
int onReceiveTextMessage(const meshtastic_MeshPacket *p);
|
|
|
|
bool isApproved(); // Does a foreground applet make notification redundant?
|
|
void dismiss(); // Close the Notification Popup
|
|
|
|
protected:
|
|
// Get notified when a new text message arrives
|
|
CallbackObserver<NotificationApplet, const meshtastic_MeshPacket *> textMessageObserver =
|
|
CallbackObserver<NotificationApplet, const meshtastic_MeshPacket *>(this, &NotificationApplet::onReceiveTextMessage);
|
|
|
|
std::string getNotificationText(uint16_t widthAvailable); // Get text for notification, to suit screen width
|
|
|
|
bool hasNotification = false; // Only used for assert. Todo: remove?
|
|
Notification currentNotification = Notification(); // Set when something notification-worthy happens. Used by render()
|
|
};
|
|
|
|
} // namespace NicheGraphics::InkHUD
|
|
|
|
#endif |