mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-04 20:08:32 -05:00
* Added notification showing on the main screen if the battery has reached too high temperature to continue charging. * Code cleanups.
104 lines
3.4 KiB
C++
104 lines
3.4 KiB
C++
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#include "NotificationData.hpp"
|
|
#include <gsl/assert>
|
|
|
|
namespace notifications
|
|
{
|
|
std::uint32_t Notification::priorityPool = 0;
|
|
|
|
Notification::Notification(NotificationType type, NotificationPriority priorityType) : type{type}
|
|
{
|
|
switch (priorityType) {
|
|
case NotificationPriority::Next:
|
|
if (priorityPool == highestPriority) {
|
|
priorityPool = 0;
|
|
}
|
|
priority = ++priorityPool;
|
|
break;
|
|
case NotificationPriority::Highest:
|
|
priority = highestPriority;
|
|
break;
|
|
case NotificationPriority::Lowest:
|
|
priority = lowestPriority;
|
|
break;
|
|
}
|
|
}
|
|
|
|
auto Notification::getType() const noexcept -> NotificationType
|
|
{
|
|
return type;
|
|
}
|
|
|
|
auto Notification::getPriority() const noexcept -> std::uint32_t
|
|
{
|
|
return priority;
|
|
}
|
|
|
|
NotificationWithContact::NotificationWithContact(NotificationType type,
|
|
unsigned value,
|
|
std::optional<ContactRecord> record)
|
|
: Notification(type), value{value}, record{std::move(record)}
|
|
{}
|
|
|
|
auto NotificationWithContact::hasRecord() const noexcept -> bool
|
|
{
|
|
return record.has_value();
|
|
}
|
|
|
|
auto NotificationWithContact::getRecord() const noexcept -> const ContactRecord &
|
|
{
|
|
Expects(hasRecord());
|
|
return record.value();
|
|
}
|
|
|
|
auto NotificationWithContact::getValue() const noexcept -> unsigned
|
|
{
|
|
return value;
|
|
}
|
|
|
|
NotificationWithCounter::NotificationWithCounter(NotificationType type, unsigned value)
|
|
: Notification(type), value{value}
|
|
{}
|
|
|
|
auto NotificationWithCounter::getValue() const noexcept -> unsigned
|
|
{
|
|
return value;
|
|
}
|
|
|
|
NotificationWithTime::NotificationWithTime(NotificationType type,
|
|
NotificationPriority priorityType,
|
|
std::string formattedTime)
|
|
: Notification(type, priorityType), formattedTime(std::move(formattedTime))
|
|
{}
|
|
|
|
auto NotificationWithTime::getTime() const noexcept -> const std::string &
|
|
{
|
|
return formattedTime;
|
|
}
|
|
|
|
NotSeenSMSNotification::NotSeenSMSNotification(unsigned value, std::optional<ContactRecord> record)
|
|
: NotificationWithContact(NotificationType::NotSeenSms, value, std::move(record))
|
|
{}
|
|
|
|
NotSeenCallNotification::NotSeenCallNotification(unsigned value, std::optional<ContactRecord> record)
|
|
: NotificationWithContact(NotificationType::NotSeenCall, value, std::move(record))
|
|
{}
|
|
|
|
TetheringNotification::TetheringNotification() : Notification(NotificationType::Tethering)
|
|
{}
|
|
|
|
AlarmSnoozeNotification::AlarmSnoozeNotification(unsigned value)
|
|
: NotificationWithCounter(NotificationType::AlarmSnooze, value)
|
|
{}
|
|
|
|
PhoneLockNotification::PhoneLockNotification(std::string formattedTime)
|
|
: NotificationWithTime(NotificationType::PhoneLock, NotificationPriority::Highest, std::move(formattedTime))
|
|
{}
|
|
|
|
BatteryTooHotNotification::BatteryTooHotNotification()
|
|
: Notification(NotificationType::BatteryTooHot, NotificationPriority::Highest)
|
|
{}
|
|
} // namespace notifications
|