m_email_conversation_callbacks, id)) {
LoggerD("Email conversation listener with id: %d removed", id);
}
- //else if (removeCallbackIfExists<FoldersChangeCallback>(
- //context, m_email_folder_callbacks,id)) {
- //LoggerD("Email folder listener with id: %d removed", id);
- //}
+ else if (removeCallbackIfExists<FoldersChangeCallback>(
+ m_email_folder_callbacks,id)) {
+ LoggerD("Email folder listener with id: %d removed", id);
+ }
else {
LoggerW("WatchId %d not found", id);
}
return ChangeListenerContainer::getInstance().addFolderChangeListener(callback);
}
-void MessageStorage::removeChangeListener()
+void MessageStorage::removeChangeListener(long watchId)
{
LoggerD("Entered");
+ return ChangeListenerContainer::getInstance().removeChangeListener(watchId);
}
} //messaging
long addMessagesChangeListener(std::shared_ptr<MessagesChangeCallback> callback);
long addConversationsChangeListener(std::shared_ptr<ConversationsChangeCallback> callback);
long addFoldersChangeListener(std::shared_ptr<FoldersChangeCallback> callback);
- void removeChangeListener();
+ void removeChangeListener(long watchId);
protected:
int m_id;
}
});
+ bridge.attach(cid, 'watchId', result);
return result;
};
}
});
+ bridge.attach(cid, 'watchId', result);
return result;
};
}
});
+ bridge.attach(cid, 'watchId', result);
return result;
};
{name: 'watchId', type: types_.LONG}
]);
- bridge.sync({
+ var self = this;
+
+ var result = bridge.sync({
cmd: 'MessageStorage_removeChangeListener',
args: {
- watchId: args.watchId
+ watchId: args.watchId,
+ serviceId: self.service.id
}
});
+
+ bridge.find('watchId', args.watchId).forEach(function (e) {
+ bridge.remove(e.id);
+ });
+ return result;
};
function MessageConversation(data) {
picojson::object& out)
{
LoggerD("Entered");
+ picojson::object data = args.get(JSON_DATA).get<picojson::object>();
+ const long watchId = static_cast<long>(
+ data.at(REMOVE_CHANGE_LISTENER_ARGS_WATCHID).get<double>());
+
+ int serviceId = static_cast<int>(data.at(FUNCTIONS_HIDDEN_ARGS_SERVICE_ID).get<double>());
+ auto service = MessagingManager::getInstance().getMessageServiceEmail(serviceId);
+
+ service->getMsgStorage()->removeChangeListener(watchId);
+ ReportSuccess(out);
}
} // namespace messaging