-
Notifications
You must be signed in to change notification settings - Fork 2
/
ancsnotification.cpp
110 lines (87 loc) · 2.39 KB
/
ancsnotification.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <QDataStream>
#include "ancsnotification.h"
ANCSNotification::ANCSNotification()
{
}
void ANCSNotification::UpdateData(const QByteArray & data)
{
QDataStream stream(data);
stream.setByteOrder(QDataStream::LittleEndian);
uint8_t command;
stream >> command;
stream >> Uid;
while (!stream.atEnd())
{
uint8_t attrID;
uint16_t attrLength;
stream >> attrID;
stream >> attrLength;
char* attr = new char[attrLength + 1];
attr[attrLength] = '\0';
stream.readRawData(attr, attrLength);
switch (attrID)
{
case ANCSNotification::NotificationAttributeID::AppIdentifier:
AppIdentifier = attr;
break;
case ANCSNotification::NotificationAttributeID::Title:
Title = attr;
break;
case ANCSNotification::NotificationAttributeID::Subtitle:
Subtitle = attr;
break;
case ANCSNotification::NotificationAttributeID::Message:
Message = attr;
break;
case ANCSNotification::NotificationAttributeID::MessageSize:
// Don't care
break;
case ANCSNotification::NotificationAttributeID::Date:
Date = QDateTime::fromString(attr, "yyyyMMddTHHmmSS");
break;
case ANCSNotification::NotificationAttributeID::PositiveActionLabel:
PostiveActionLabel = attr;
break;
case ANCSNotification::NotificationAttributeID::NegativeActionLabel:
NegativeActionLabel = attr;
break;
}
delete attr;
}
}
uint32_t ANCSNotification::getUid() const
{
return Uid;
}
uint8_t ANCSNotification::getCategoryID() const
{
return CategoryID;
}
std::string ANCSNotification::getAppIdentifier() const
{
return AppIdentifier;
}
std::string ANCSNotification::getTitle() const
{
return Title;
}
std::string ANCSNotification::getSubtitle() const
{
return Subtitle;
}
std::string ANCSNotification::getMessage() const
{
return Message;
}
QDateTime ANCSNotification::getDate() const
{
return Date;
}
std::string ANCSNotification::getPostiveActionLabel() const
{
return PostiveActionLabel;
}
std::string ANCSNotification::getNegativeActionLabel() const
{
return NegativeActionLabel;
}