MeshNotificationManagerImpl

class MeshNotificationManagerImpl(context: Context, packetRepository: Lazy<PacketRepository>, nodeRepository: Lazy<NodeRepository>, conversationShortcutPublisher: Lazy<ConversationShortcutPublisher>, radioConfigRepository: Lazy<RadioConfigRepository>, radioOperationLock: RadioOperationLock, firmwareUpdateStatusRepository: FirmwareUpdateStatusRepository, scope: ServiceScope) : MeshNotificationManager(source)

Manages the creation and display of all app notifications.

This class centralizes notification logic, including channel creation, builder configuration, and displaying notifications for various events like new messages, alerts, and service status changes.

Constructors

Link copied to clipboard
constructor(context: Context, packetRepository: Lazy<PacketRepository>, nodeRepository: Lazy<NodeRepository>, conversationShortcutPublisher: Lazy<ConversationShortcutPublisher>, radioConfigRepository: Lazy<RadioConfigRepository>, radioOperationLock: RadioOperationLock, firmwareUpdateStatusRepository: FirmwareUpdateStatusRepository, scope: ServiceScope)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun cancelLowBatteryNotification(node: Node)
Link copied to clipboard
open suspend override fun cancelMessageNotification(contactKey: String)
Link copied to clipboard
open override fun cancelNewNodeNotification(nodeNum: Int)
Link copied to clipboard
open override fun clearClientNotification(clientNotification: ClientNotification)
Link copied to clipboard
open override fun clearNotifications()
Link copied to clipboard

Returns the last-built service state notification, or an immediately available application-label fallback. This method is used by MeshService for android.app.Service.startForeground, so it must not wait for Compose Multiplatform resource loading.

Link copied to clipboard
open override fun initChannels()

Guarantees the foreground-service channel synchronously, because the orchestrator posts the service notification right after this returns, then creates the rest off the calling thread. Every post awaits ensureChannels.

Link copied to clipboard
open suspend override fun refreshConversationAfterReply(contactKey: String)

Re-posts the conversation silently after an inline reply, so the notification updates in place with the sent reply appended (the read context becomes historic, the reply is the visible latest message) instead of disappearing. Re-posting under the same (tag, id) is also what resolves the RemoteInput spinner.

Link copied to clipboard
open suspend override fun showAlertNotification(contactKey: String, name: String, alert: String)
Link copied to clipboard
open suspend override fun showClientNotification(clientNotification: ClientNotification, title: String, severity: Notification.Type)
Link copied to clipboard
open suspend override fun showFirmwareUpdateNotification(notice: FirmwareUpdateNotice): Boolean
Link copied to clipboard
open suspend override fun showLowBatteryNotification(node: Node, isRemote: Boolean)
Link copied to clipboard
open suspend override fun showMeshBeaconNotification(offer: MeshBeaconOffer)
Link copied to clipboard
open suspend override fun showNewNodeSeenNotification(node: Node, title: String)
Link copied to clipboard
open suspend override fun showReconnectBlockedNotification(title: String, message: String): Boolean
Link copied to clipboard
open override fun suppressClientNotificationModal(clientNotification: ClientNotification): Boolean
Link copied to clipboard
open suspend override fun updateLowBatteryNotification(node: Node, isRemote: Boolean)
Link copied to clipboard
open suspend override fun updateMessageNotification(contactKey: String, name: String, message: String, isBroadcast: Boolean, channelName: String?, isSilent: Boolean)
Link copied to clipboard
open suspend override fun updateReactionNotification(contactKey: String, name: String, emoji: String, isBroadcast: Boolean, channelName: String?, isSilent: Boolean)
Link copied to clipboard
open override fun updateServiceStateNotification(state: ConnectionState, telemetry: Telemetry?)
Link copied to clipboard
open suspend override fun updateWaypointNotification(contactKey: String, name: String, message: String, waypointId: Int, isSilent: Boolean)