diff -r fa1df4b99609 -r ebe688cedc25 messagingapp/msgnotifications/msgnotifier/inc/msgnotifier_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgnotifications/msgnotifier/inc/msgnotifier_p.h Tue Aug 31 15:11:31 2010 +0300 @@ -0,0 +1,234 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Listen to conversation server events and parse the + * events. These parsed information passed to notifications and indications. + * + */ + +#ifndef MSGNOTIFIER_PRIVATE_H +#define MSGNOTIFIER_PRIVATE_H + +#include +#include + +// CLASS DECLARATION +class MsgNotifier; +class CCSRequestHandler; +class MsgStoreHandler; +class XQSettingsManager; +class XQPublishAndSubscribeUtils; +class XQSystemToneService; + +/** + * Structure to hold the details of a class 0 SMS + */ +struct Class0Info +{ + QString body; + QString address; + QString alias; + QString time; + int messageId; +}; + +/** + * @class MsgNotifierPrivate + */ + +class MsgNotifierPrivate : public CBase, public MCsConversationListChangeObserver + { + +public: + /** + * Constructor + */ + MsgNotifierPrivate(MsgNotifier* msgNotifier); + + /** + * Destructor + */ + ~MsgNotifierPrivate(); + +public: + /** + * AddConversationList + * This is for handling new conversation event + * asynchronously from the server + * @param aClientConversation CCsClientConversation The conversation object + */ + void + AddConversationList( + const CCsClientConversation& aClientConversation); + + /** + * DeleteConversationList + * This is for handling delete conversation event + * asynchronously from the server + * @param aClientConversation CCsClientConversation The conversation object + */ + void DeleteConversationList( + const CCsClientConversation& aClientConversation); + + /** + * PartialDeleteConversationList + * This is for handling partial delete of conversation event + * Asynchronous + * @param aClientConversation CCsClientConversation - The conversation object + */ + void PartialDeleteConversationList( + const CCsClientConversation& aClientConversation); + + + /** + * ModifyConversationList + * This is for handling modify conversation asynchronously + * from the server + * @param aClientConversation CCsClientConversation The conversation object + * + */ + void ModifyConversationList( + const CCsClientConversation& aClientConversation); + + /** + * RefreshConversationList + * This is for handling bulk changes. Message store change etc. + */ + void RefreshConversationList(); + +public: + + /** + * updateFailedIndications + * Activate/Deactivate message indications based on pending message count + */ + void updateOutboxIndications(); + + /** + * displayOutboxIndications + * Display the outbox indications based on the data in MsgInfo + */ + void displayOutboxIndications(MsgInfo data); + + /** + * displayFailedNote + * Popup a message box when a message is not successfully sent. + * @param msgInfo MsgInfo The message information object + */ + void displayFailedNote(MsgInfo msgInfo); + + /** + * ShowClass0Message + * Popups a Dialog with Class 0 SMS message... + * @param msgInfo MsgInfo The message information object + */ + void ShowClass0Message(Class0Info& aClass0Info); + +private: + /** + * Does all the initializations. + */ + void initL(); + + /** + * Initializes the conversation store handler + */ + void initConvStoreHandler(); + + /** + * Process conversation entry for showing the notification. + * @param aClientConversation conversation entry + */ + void processListEntry(const CCsClientConversation& aClientConversation); + + /** + * updateIndications + * Activate/Deactivate message indications based on unread message count + * @param bootup, true, if called on bootup else false + */ + void updateUnreadIndications(bool bootup = false); + + /** + * Show notification or not + * @param receivedMsgConvId received message conversation id. + * @return true if the received conversation id is not same as + * published conversation id ( opened conversation id) else false + */ + bool showNotification(int receivedMsgConvId); +private: + + /** + * Pointer to msgnotifier + */ + MsgNotifier* q_ptr; + + /** + * Conversation server client + */ + CCSRequestHandler* mCvServer; + + /** + * Pointer to Conversation Msg Store Handler. + */ + MsgStoreHandler* iMsgStoreHandler; + + /** + * Settings manager + * Owned. + */ + XQSettingsManager* mSettingsManager; + + /** + * Publish and subscribe utils. + * Owned. + */ + XQPublishAndSubscribeUtils* mPSUtils; + + /** + * Object to handle audio alert when new message is received + */ + XQSystemToneService* mSts; + }; + + +/** + * Class for launching the Class0 SMS dialog in a separate thread.. + */ +class Class0SmsServiceTask : public QRunnable +{ +public: + /** + * Constructor + */ + Class0SmsServiceTask(Class0Info& class0info); + + /** + * Destructor + */ + ~Class0SmsServiceTask(); + + /** + * create and send service request + */ + void run(); + +private: + Class0Info mClass0info; +}; + + + + + +#endif // MSGNOTIFIER_PRIVATE_H +//EOF