mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-04-20 15:07:17 -04:00
This commit provides the implementation of functionality that blocks sms/calls notifications on home screen when tethering is active. Previously, the notifications could be visible if the notifications were visible prior to tethering activation. By the design, the functionality should not clear the notifications, just temporary hide them. That is achieved by implementation ot the functionality in NotificationModel which is an UI presenter.
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
|
|
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
|
|
|
|
#pragma once
|
|
|
|
#include "NotificationListItem.hpp"
|
|
#include "NotificationData.hpp"
|
|
#include "ListItemProvider.hpp"
|
|
|
|
#include "Application.hpp"
|
|
#include "InternalModel.hpp"
|
|
#include <service-appmgr/data/NotificationsChangedActionsParams.hpp>
|
|
|
|
namespace gui
|
|
{
|
|
|
|
class NotificationsModel : public app::InternalModel<gui::NotificationListItem *>, public gui::ListItemProvider
|
|
{
|
|
[[nodiscard]] unsigned int requestRecordsCount() final;
|
|
[[nodiscard]] unsigned int getMinimalItemHeight() const final;
|
|
ListItem *getItem(Order order) final;
|
|
void requestRecords(uint32_t offset, uint32_t limit) final;
|
|
|
|
protected:
|
|
bool tetheringOn = false;
|
|
[[nodiscard]] virtual auto create(const notifications::NotSeenSMSNotification *notification)
|
|
-> NotificationListItem *;
|
|
[[nodiscard]] virtual auto create(const notifications::NotSeenCallNotification *notification)
|
|
-> NotificationListItem *;
|
|
[[nodiscard]] virtual auto create(const notifications::TetheringNotification *notification)
|
|
-> NotificationListItem *;
|
|
|
|
public:
|
|
[[nodiscard]] bool isEmpty() const noexcept;
|
|
[[nodiscard]] bool hasDismissibleNotification() const noexcept;
|
|
[[nodiscard]] bool isTetheringOn() const noexcept;
|
|
|
|
void updateData(app::manager::actions::NotificationsChangedParams *params);
|
|
void dismissAll(const InputEvent &event);
|
|
void clearAll();
|
|
};
|
|
|
|
} // namespace gui
|