--- a/messagingapp/msgui/appengine/src/conversationsengine_p.cpp Mon May 03 12:29:07 2010 +0300
+++ b/messagingapp/msgui/appengine/src/conversationsengine_p.cpp Fri Jun 25 15:47:40 2010 +0530
@@ -26,6 +26,7 @@
#include "conversationsmodel.h"
#include "conversationchangehandler.h"
#include "conversationlistchangehandler.h"
+#include "debugtraces.h"
//---------------------------------------------------------------
// ConversationsEnginePrivate::ConversationsEnginePrivate
@@ -50,28 +51,31 @@
//---------------------------------------------------------------
ConversationsEnginePrivate::~ConversationsEnginePrivate()
{
+
+ if( mClientConv )
+ {
+ if(mServer && mConvChangeHandler)
+ {
+ TRAP_IGNORE(mServer->RemoveConversationChangeEventL(
+ mConvChangeHandler,mClientConv));
+ }
+ delete mClientConv;
+ mClientConv = NULL;
+ }
+ if(mServer && mConvListChangeHandler)
+ {
+ TRAP_IGNORE(mServer->RemoveConversationListChangeEventL(
+ mConvListChangeHandler));
+ TRAP_IGNORE(mServer->RemoveResultsEventL ( this ));
+ mServer->Cancel();
+ delete mServer;
+ mServer = NULL;
+ }
+
delete mConvChangeHandler;
delete mConvListChangeHandler;
- if( mClientConv )
- {
- if(mServer)
- {
- mServer->RemoveConversationChangeEventL (mConvChangeHandler,
- mClientConv);
- }
- delete mClientConv;
- mClientConv = NULL;
- }
- if(mServer)
- {
- mServer->RemoveConversationListChangeEventL (mConvListChangeHandler);
- mServer->RemoveResultsEventL ( this );
- mServer->Cancel();
- delete mServer;
- mServer = NULL;
- }
}
//---------------------------------------------------------------
@@ -113,6 +117,7 @@
{
if(!mClientConv)
{
+ QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL start.");
//Clear the model before issueing fetch
mConversationsModel->clear();
//create a client conversation
@@ -120,12 +125,15 @@
mClientConv->SetConversationEntryId(aConversationId);
//set dummy entry
CCsConversationEntry *entry = CCsConversationEntry::NewL();
- CleanupStack::PushL(entry);
+ CleanupStack::PushL(entry);
mClientConv->SetConversationEntryL(entry);
- CleanupStack::PopAndDestroy(entry);
+ CleanupStack::PopAndDestroy(entry);
//Get the conversations for new conversationId
- mServer->GetConversationsL( mClientConv );
- }
+ mServer->GetConversationsL(mClientConv);
+
+ QCRITICAL_WRITE("ConversationsEnginePrivate::getConversationsL end.");
+ }
+
}
//---------------------------------------------------------------
@@ -213,6 +221,14 @@
return convId;
}
+//---------------------------------------------------------------
+// ConversationsEnginePrivate::getConversationFromConversationId
+// @see header
+//---------------------------------------------------------------
+CCsClientConversation* ConversationsEnginePrivate::getConversationFromConversationIdL(TInt aConversationId)
+{
+ return mServer->GetConversationFromConversationIdL(aConversationId);
+}
//---------------------------------------------------------------
// ConversationsEnginePrivate::clearConversationsL
@@ -220,18 +236,24 @@
//---------------------------------------------------------------
void ConversationsEnginePrivate::clearConversationsL()
{
+ QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL start.");
+
mConvChangeHandler->Cancel();
//Clear conversations model before populating with new data
- mConversationsModel->clear();
+ mConversationsModel->clearModel();
// Delete old CCsClientConversation object
// Remove the old Conversation change observer
if(mClientConv)
- {
- mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
+ {
+ int error = KErrNone;
+ TRAP(error, mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv));
delete mClientConv;
mClientConv = NULL;
+ User::LeaveIfError(error);
}
+
+ QCRITICAL_WRITE("ConversationsEnginePrivate::clearConversationsL end.");
}
//---------------------------------------------------------------
@@ -248,6 +270,30 @@
}
//---------------------------------------------------------------
+// ConversationsEnginePrivate::deRegisterCVUpdatesTemporary
+// @see header
+//---------------------------------------------------------------
+void ConversationsEnginePrivate::deRegisterCVUpdatesTemporary()
+{
+ mServer->RemoveConversationChangeEventL (mConvChangeHandler ,mClientConv);
+}
+
+//---------------------------------------------------------------
+// ConversationsEnginePrivate::registerAgainForConversationUpdatesL
+// @see header
+//---------------------------------------------------------------
+void ConversationsEnginePrivate::registerAgainForConversationUpdatesL(
+ int newConversationId)
+{
+ //Add the Conversation Change for new conversationId
+ if(mClientConv)
+ {
+ mClientConv->SetConversationEntryId(newConversationId);
+ mServer->RequestConversationChangeEventL (mConvChangeHandler ,mClientConv);
+ }
+}
+
+//---------------------------------------------------------------
// ConversationsEnginePrivate::ConversationList
// @see header
//---------------------------------------------------------------
@@ -267,10 +313,14 @@
RPointerArray<CCsConversationEntry>& aConversationEntryList)
{
int error;
- if(mClientConv)
- {
+ if (mClientConv)
+ {
+ QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations start.");
+
TRAP(error,mConvChangeHandler->ConversationsL(aConversationEntryList));
- }
+
+ QCRITICAL_WRITE("ConversationsEnginePrivate::Conversations end.");
+ }
}
@@ -280,9 +330,9 @@
//---------------------------------------------------------------
void ConversationsEnginePrivate::fetchMoreConversations()
{
- if(mClientConv)
- {
- mConvChangeHandler->restartHandleConversations();
+ if (mClientConv)
+ {
+ mConvChangeHandler->restartHandleConversations();
}
}