private void sentOfflineMessage(ChannelHandlerContext ctx, Session session, DashBoard dashBoard, Device device) {
boolean isHardwareConnected = session.isHardwareConnected(dashBoard.id, device.id);
if (!isHardwareConnected) {
log.trace("Changing device status. DeviceId {}, dashId {}", device.id, dashBoard.id);
device.disconnected();
}
if (!dashBoard.isActive) {
return;
}
Notification notification = dashBoard.getNotificationWidget();
if (notification != null && notification.notifyWhenOffline) {
sendPushNotification(ctx, notification, dashBoard.id, device);
} else if (!dashBoard.isNotificationsOff) {
session.sendOfflineMessageToApps(dashBoard.id, device.id);
}
}