Moved some functions from ChatMessage to it's private part

This commit is contained in:
Sylvain Berfini 2017-09-28 09:56:22 +02:00
parent 41233811c4
commit 0e387676be
4 changed files with 40 additions and 42 deletions

View file

@ -126,11 +126,11 @@ LinphoneChatMessageDir linphone_chat_message_get_direction(const LinphoneChatMes
}
void linphone_chat_message_set_incoming(LinphoneChatMessage *msg) {
L_GET_CPP_PTR_FROM_C_OBJECT(msg)->setDirection(LinphonePrivate::ChatMessage::Direction::Incoming);
L_GET_PRIVATE_FROM_C_OBJECT(msg)->setDirection(LinphonePrivate::ChatMessage::Direction::Incoming);
}
void linphone_chat_message_set_outgoing(LinphoneChatMessage *msg) {
L_GET_CPP_PTR_FROM_C_OBJECT(msg)->setDirection(LinphonePrivate::ChatMessage::Direction::Outgoing);
L_GET_PRIVATE_FROM_C_OBJECT(msg)->setDirection(LinphonePrivate::ChatMessage::Direction::Outgoing);
}
unsigned int linphone_chat_message_get_storage_id(LinphoneChatMessage *msg) {
@ -142,7 +142,7 @@ LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessa
}
void linphone_chat_message_set_state(LinphoneChatMessage *msg, LinphoneChatMessageState state) {
L_GET_CPP_PTR_FROM_C_OBJECT(msg)->setState((LinphonePrivate::ChatMessage::State)state);
L_GET_PRIVATE_FROM_C_OBJECT(msg)->setState((LinphonePrivate::ChatMessage::State)state);
}
const char* linphone_chat_message_get_message_id(const LinphoneChatMessage *msg) {

View file

@ -38,6 +38,10 @@ public:
void setChatRoom (std::shared_ptr<ChatRoom> chatRoom);
// -----------------------------------------------------------------------------
void setDirection (ChatMessage::Direction dir);
void setState(ChatMessage::State state);
void setTime(time_t time);

View file

@ -52,10 +52,38 @@ void ChatMessagePrivate::setChatRoom (shared_ptr<ChatRoom> cr) {
chatRoom = cr;
}
void ChatMessagePrivate::setDirection (ChatMessage::Direction dir) {
direction = dir;
}
void ChatMessagePrivate::setTime(time_t t) {
time = t;
}
void ChatMessagePrivate::setState(ChatMessage::State s) {
L_Q();
if (s != state && chatRoom) {
if (((state == ChatMessage::State::Displayed) || (state == ChatMessage::State::DeliveredToUser))
&& ((s == ChatMessage::State::DeliveredToUser) || (s == ChatMessage::State::Delivered) || (s == ChatMessage::State::NotDelivered))) {
return;
}
/* TODO
ms_message("Chat message %p: moving from state %s to %s", msg, linphone_chat_message_state_to_string(msg->state), linphone_chat_message_state_to_string(state));
*/
state = s;
LinphoneChatMessage *msg = L_GET_C_BACK_PTR(q);
if (linphone_chat_message_get_message_state_changed_cb(msg)) {
linphone_chat_message_get_message_state_changed_cb(msg)(msg, (LinphoneChatMessageState)state, linphone_chat_message_get_message_state_changed_cb_user_data(msg));
}
LinphoneChatMessageCbs *cbs = linphone_chat_message_get_callbacks(msg);
if (linphone_chat_message_cbs_get_msg_state_changed(cbs)) {
linphone_chat_message_cbs_get_msg_state_changed(cbs)(msg, linphone_chat_message_get_state(msg));
}
}
}
unsigned int ChatMessagePrivate::getStorageId() const {
return storageId;
}
@ -287,11 +315,6 @@ ChatMessage::Direction ChatMessage::getDirection () const {
return d->direction;
}
void ChatMessage::setDirection (ChatMessage::Direction dir) {
L_D();
d->direction = dir;
}
bool ChatMessage::isOutgoing () const {
L_D();
return d->direction == Outgoing;
@ -307,29 +330,6 @@ ChatMessage::State ChatMessage::getState() const {
return d->state;
}
void ChatMessage::setState(State state) {
L_D();
if (state != d->state && d->chatRoom) {
if (((d->state == Displayed) || (d->state == DeliveredToUser))
&& ((state == DeliveredToUser) || (state == Delivered) || (state == NotDelivered))) {
return;
}
/* TODO
ms_message("Chat message %p: moving from state %s to %s", msg, linphone_chat_message_state_to_string(msg->state), linphone_chat_message_state_to_string(state));
*/
d->state = state;
LinphoneChatMessage *msg = L_GET_C_BACK_PTR(this);
if (linphone_chat_message_get_message_state_changed_cb(msg)) {
linphone_chat_message_get_message_state_changed_cb(msg)(msg, (LinphoneChatMessageState)state, linphone_chat_message_get_message_state_changed_cb_user_data(msg));
}
LinphoneChatMessageCbs *cbs = linphone_chat_message_get_callbacks(msg);
if (linphone_chat_message_cbs_get_msg_state_changed(cbs)) {
linphone_chat_message_cbs_get_msg_state_changed(cbs)(msg, linphone_chat_message_get_state(msg));
}
}
}
string ChatMessage::getId () const {
L_D();
return d->id;
@ -556,19 +556,15 @@ void ChatMessage::sendDeliveryNotification(LinphoneReason reason) {
if (linphone_im_notif_policy_get_send_imdn_delivered(policy)) {
d->sendImdn(ImdnTypeDelivery, reason);
}
/*LinphoneChatRoom *cr = linphone_chat_message_get_chat_room(cm);
LinphoneCore *lc = linphone_chat_room_get_core(cr);
*/
}
void ChatMessage::sendDisplayNotification() {
//TODO
/*LinphoneChatRoom *cr = linphone_chat_message_get_chat_room(cm);
LinphoneCore *lc = linphone_chat_room_get_core(cr);
L_D();
LinphoneCore *lc = d->chatRoom->getCore();
LinphoneImNotifPolicy *policy = linphone_core_get_im_notif_policy(lc);
if (linphone_im_notif_policy_get_send_imdn_displayed(policy) == TRUE) {
linphone_chat_message_send_imdn(cm, ImdnTypeDisplay, LinphoneReasonNone);
}*/
if (linphone_im_notif_policy_get_send_imdn_displayed(policy)) {
d->sendImdn(ImdnTypeDisplay, LinphoneReasonNone);
}
}
/*

View file

@ -84,7 +84,6 @@ public:
// -----------------------------------------------------------------------------
Direction getDirection () const;
void setDirection (Direction dir);
bool isOutgoing () const;
bool isIncoming () const;
@ -97,7 +96,6 @@ public:
void setIsSecured(bool isSecured);
State getState() const;
void setState(State state);
std::string getId () const;
void setId (std::string);