--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstcmdprocess/src/cvimpstprocessarrayitem.cpp Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,764 @@
+/*
+* Copyright (c) 2008 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: CVIMPSTProcessContactItem, CVIMPSTProcessContactListItem, CVIMPSTProcessOwnDataItem,
+ CVIMPSTProcessConversationItem: Method implementation
+*
+*/
+
+
+#include "cvimpstprocessarrayitem.h"
+#include "tvimpstconsts.h"
+#include "vimpstutils.h"
+#include <vimpstuires.rsg>
+#include <StringLoader.h>
+
+
+const TInt KAvtarLength = 3;
+ _LIT( KAvatarString , "%d\t" );
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactItem::NewL
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactItem* CVIMPSTProcessContactItem::NewL(CVIMPSTProcessArray& aParent,const TDesC& aContactName,
+ const TDesC& aContactId ,
+ MVPbkContactLink* aContactLink,
+ const TDesC& aStatusText,
+ TVIMPSTEnums::TOnlineStatus aOnlineStatus)
+ {
+ CVIMPSTProcessContactItem* self = new( ELeave ) CVIMPSTProcessContactItem
+ ( aParent, aContactLink);
+ CleanupStack::PushL( self );
+ self->ConstructL(aContactId,aContactName,aStatusText,aOnlineStatus );
+ CleanupStack::Pop(); //Codescanner warning ignored
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactItem::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactItem::ConstructL(const TDesC& aContactId,
+ const TDesC& aContactName,
+ const TDesC& aStatusText,
+ TVIMPSTEnums::TOnlineStatus aOnlineStatus )
+ {
+ iContactUserId = aContactId.AllocL();
+ iItemNameTextContact = aContactName.AllocL();
+ iSMsgPending = EFalse;
+ iStatusText = aStatusText.AllocL();
+ iOnlineStatus = aOnlineStatus;
+
+ TInt maxLengthOfIcons = KDefaultAvatar().Length()+ // longest A-Column icon
+ (KTab().Length() * 2)+ // length of tabs between items
+ KContactOnlineIconA().Length(); // longest D-Column icon
+
+ iFormattedString = HBufC::NewL( KFriendsListMaxIdentificationLength +
+ KStatusMsgMaxLength +
+ maxLengthOfIcons );
+
+
+ DoFormatStringL();
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactItem::CVIMPSTProcessContactItem
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactItem::CVIMPSTProcessContactItem(CVIMPSTProcessArray& aParent, MVPbkContactLink* aContactLink)
+: iParent(aParent),
+ iContactLink(aContactLink)
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactItem::~CVIMPSTProcessContactItem
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactItem::~CVIMPSTProcessContactItem()
+ {
+ delete iContactUserId;
+ delete iItemNameTextContact;
+ if(iStatusText)
+ {
+ delete iStatusText;
+ }
+ if(iFormattedString)
+ delete iFormattedString;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: Type
+// -----------------------------------------------------------------------------
+//
+TVIMPSTEnums::TItem CVIMPSTProcessContactItem::Type()
+ {
+ return TVIMPSTEnums::EContactItem;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: GetItemNameText
+// -----------------------------------------------------------------------------
+//
+TPtrC CVIMPSTProcessContactItem::GetItemNameText()
+ {
+ if( iItemNameTextContact )
+ {
+ return *iItemNameTextContact;
+ }
+ return KNullDesC();
+ }
+
+ // -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: GetItemUserId
+// -----------------------------------------------------------------------------
+//
+TPtrC CVIMPSTProcessContactItem::GetItemUserId()
+ {
+ if( iContactUserId )
+ {
+ return *iContactUserId;
+ }
+ return KNullDesC();
+ }
+
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem::StatusText
+// -----------------------------------------------------------------------------
+//
+const TDesC& CVIMPSTProcessContactItem::StatusText()
+ {
+ if( iStatusText )
+ {
+ return *iStatusText;
+ }
+ return KNullDesC;
+ }
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem::OnlineStatus
+// -----------------------------------------------------------------------------
+//
+TVIMPSTEnums::TOnlineStatus CVIMPSTProcessContactItem::OnlineStatus()
+ {
+ return iOnlineStatus;
+ }
+
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: SetMsgPending
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactItem::SetMsgPending(TBool aPendingMessageStatus)
+ {
+ iSMsgPending = aPendingMessageStatus;
+
+ TRAP_IGNORE(DoFormatStringL());
+ }
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: GetMsgPending
+// -----------------------------------------------------------------------------
+//
+TBool CVIMPSTProcessContactItem::IsMsgPending()
+ {
+ return iSMsgPending;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: SetConversationOpen
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactItem::SetConversationOpen(TBool aConversationOpen)
+ {
+ iIsConversationOpen = aConversationOpen;
+
+ TRAP_IGNORE(DoFormatStringL());
+ }
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactItem: IsConversationOpen
+// -----------------------------------------------------------------------------
+//
+TBool CVIMPSTProcessContactItem::IsConversationOpen()
+ {
+ return iIsConversationOpen;
+ }
+
+void CVIMPSTProcessContactItem::DoFormatStringL()
+ {
+ TPtr dataPtr( iFormattedString->Des() );
+ dataPtr.Zero();
+
+ TVIMPSTEnums::TVIMPSTRegistrationState loginstate = iParent.GetLoginState();
+
+ TInt avtarIndex = AvatarIndex();
+
+ TVIMPSTEnums::TOnlineStatus status = OnlineStatus();
+
+ if( avtarIndex && (status != TVIMPSTEnums::EBlocked))
+ {
+ // if there is any avatar index then append that icon
+ TBuf<KAvtarLength> buf;
+ buf.Format( KAvatarString, avtarIndex);
+ dataPtr.Append( buf);
+ }
+ else if( status == TVIMPSTEnums::EPending && TVIMPSTEnums::ESVCERegistered == loginstate)//if contact is remote pending
+ {
+ // append friend request icon online for column A
+ dataPtr.Append( KRemotePendingRequest );
+ }
+ else if( status == TVIMPSTEnums::EBlocked && TVIMPSTEnums::ESVCERegistered == loginstate)//if contact is remote pending
+ {
+ // append blocked icon for column A
+ dataPtr.Append( KFrndBlockedIcon );
+ }
+ else
+ {
+ // append default avatar for column A
+ dataPtr.Append( KDefaultAvatar );
+ }
+
+ // B-column append dispplay id
+ TPtrC identification(GetItemNameText());
+ // append only max length of the user id allowed : extra check
+ dataPtr.Append( identification.Left( KFriendsListMaxIdentificationLength ) );
+
+ // append \t before second line text
+ dataPtr.Append( KTab );
+
+ // append status text for second line and Icon for column D based on conditions
+ if ( ( TVIMPSTEnums::ESVCERegistered == loginstate ) && ( iParent.IsPresenceSupported() ) )
+ {
+
+ TPtrC statusText = StatusText();
+ if( statusText.Length() > 0) // if status text show it
+ {
+ // append only KStatusMsgMaxLenght of status masg
+ dataPtr.Append( statusText.Left( KStatusMsgMaxLength ) );
+ }
+ else
+ { // show default if no status text based on status
+ switch(status)
+ {
+ case TVIMPSTEnums::EOnline:
+ {
+
+ HBufC* onlineText = StringLoader::LoadLC( R_QTN_SERVTAB_DEFAULT_STATUSTEXT_ONLINE );
+ dataPtr.Append( onlineText->Des());
+ CleanupStack::PopAndDestroy(); //onlineText
+ break;
+ }
+ case TVIMPSTEnums::EBusy:
+ {
+ HBufC* busyText = StringLoader::LoadLC( R_SERVDETAIL_STATUSTEXT_BUSY ) ;
+ dataPtr.Append( busyText->Des());
+ CleanupStack::PopAndDestroy(); //busyText
+ break;
+ }
+ case TVIMPSTEnums::EAway:
+ {
+ HBufC* awayText = StringLoader::LoadLC( R_QTN_SERVTAB_DEFAULT_STATUSTEXT_AWAY );
+ dataPtr.Append( awayText->Des());
+ CleanupStack::PopAndDestroy(); //Away text
+ break;
+ }
+ case TVIMPSTEnums::EOnPhone:
+ {
+ HBufC* onphoneText = StringLoader::LoadLC( R_SERVDETAIL_STATUSTEXT_ONTHEPHONE );
+ dataPtr.Append( onphoneText->Des());
+ CleanupStack::PopAndDestroy(); // on phone text
+ break;
+ }
+ case TVIMPSTEnums::EDoNotDisturb:
+ {
+ HBufC* dndText = StringLoader::LoadLC( R_SERVDETAIL_STATUSTEXT_DND );
+ dataPtr.Append( dndText->Des());
+ CleanupStack::PopAndDestroy(); //dnd Text
+ break;
+ }
+ case TVIMPSTEnums::EPending:
+ {
+ HBufC* pndText = StringLoader::LoadLC( R_REMOTEPENDING_STATUSTEXT );
+ dataPtr.Append( pndText->Des());
+ CleanupStack::PopAndDestroy(); //pnd Text
+ break;
+ }
+ case TVIMPSTEnums::EBlocked:
+ {
+ HBufC* blockedText = StringLoader::LoadLC( R_QTN_SERVTAB_DEFAULT_STATUSTEXT_BLOCKED );
+ dataPtr.Append( blockedText->Des());
+ CleanupStack::PopAndDestroy(); //blockedText
+ break;
+ }
+ case TVIMPSTEnums::EOffline: //Flowthrough
+ {
+ HBufC* offlineText = StringLoader::LoadLC( R_QTN_SERVTAB_DEFAULT_STATUSTEXT_OFFLINE );
+ dataPtr.Append( offlineText->Des());
+ CleanupStack::PopAndDestroy(); //offlineText
+ break;
+ }
+ case TVIMPSTEnums::ECallForward: //Flowthrough
+ {
+ HBufC* callforwardText = StringLoader::LoadLC( R_QTN_SERVTAB_DEFAULT_STATUSTEXT_CALLFORWARD );
+ dataPtr.Append( callforwardText->Des());
+ CleanupStack::PopAndDestroy(); //callforwardText
+ break;
+ }
+ case TVIMPSTEnums::EServiceOut:
+ default:
+ {
+ break;
+ }
+ }// end of switch
+ }// end of else
+
+ // append tab before appending icon
+ dataPtr.Append( KTab );
+
+ switch(status)
+ {
+ case TVIMPSTEnums::EOnline:
+ {
+ dataPtr.Append( KContactOnlineIconA );
+ break;
+ }
+ case TVIMPSTEnums::EInvisible:
+ {
+ dataPtr.Append( KListInvisibleIcon );
+ break;
+ }
+ case TVIMPSTEnums::EBusy:
+ case TVIMPSTEnums::EDoNotDisturb:
+ {
+ dataPtr.Append( KListBusyIcon );
+ break;
+ }
+ case TVIMPSTEnums::EAway:
+ {
+ dataPtr.Append( KListAwayIcon );
+ break;
+ }
+ case TVIMPSTEnums::EOnPhone:
+ {
+ dataPtr.Append( KFrndOnMobileIcon );
+ break;
+ }
+ case TVIMPSTEnums::EOffline: //Flowthrough
+ {
+ dataPtr.Append( KContactOfflineIconA );
+ break;
+ }
+ case TVIMPSTEnums::ECallForward: //Flowthrough
+ {
+ dataPtr.Append( KCallForward );
+ break;
+ }
+ case TVIMPSTEnums::EBlocked:
+ case TVIMPSTEnums::EPending:
+ case TVIMPSTEnums::EServiceOut:
+ default:
+ {
+ dataPtr.Append( KEmptyIconA );
+ break;
+ }
+ }//end switch
+
+ if( iParent.IsIMSupported() )
+ {
+
+ if( IsMsgPending() )
+ {
+ // unread message
+ dataPtr.Append( KContactNewMsgIcon );
+ }
+ else if( IsConversationOpen() )
+ {
+ // open conversation
+ dataPtr.Append( KContactOpenConvIcon );
+ }
+ else
+ {
+ //empty
+ dataPtr.Append( KEmptyIconC );
+ }
+ }
+ }
+
+ }
+
+
+TPtrC16 CVIMPSTProcessContactItem::FormattedItemString()
+ {
+ if(iFormattedString)
+ return iFormattedString->Des();
+ else
+ return KNullDesC();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactListItem::NewL
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactListItem* CVIMPSTProcessContactListItem::NewL(CVIMPSTProcessArray& aParent)
+ {
+ CVIMPSTProcessContactListItem* self = new( ELeave ) CVIMPSTProcessContactListItem(aParent);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();//Codescanner warning ignored
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactListItem::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactListItem::ConstructL()
+ {
+ iItemNameTextList = HBufC::NewL(KFriendsListMaxIdentificationLength);
+ }
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactListItem::c++ default constructor
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactListItem::CVIMPSTProcessContactListItem(CVIMPSTProcessArray& aParent)
+: iParent(aParent)
+ {
+
+ }
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessContactListItemPC::~CVIMPSTProcessContactListItemPC destructor
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessContactListItem::~CVIMPSTProcessContactListItem()
+ {
+ delete iItemNameTextList;
+ iItemNameTextList = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactListItem: Type
+// -----------------------------------------------------------------------------
+//
+TVIMPSTEnums::TItem CVIMPSTProcessContactListItem::Type()
+ {
+ return TVIMPSTEnums::EContactListItem;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactListItem: IsCollapsed
+// -----------------------------------------------------------------------------
+//
+TBool CVIMPSTProcessContactListItem::IsCollapsed()
+ {
+ return iCollapsedStatus;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactListItem: SetCollapsed
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactListItem::SetCollapsed(TBool aCollapsedStatus)
+ {
+ iCollapsedStatus = aCollapsedStatus;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactListItem: GetItemNameText
+// -----------------------------------------------------------------------------
+//
+TPtrC CVIMPSTProcessContactListItem::GetItemNameText()
+ {
+ return *iItemNameTextList;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessContactListItem: SetItemNameText
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessContactListItem::SetItemNameText(const TDesC& aItemName)
+ {
+ *iItemNameTextList = aItemName;
+ }
+
+
+void CVIMPSTProcessContactListItem::DoFormatStringL()
+ {
+ //not implemented
+ }
+
+TPtrC16 CVIMPSTProcessContactListItem::FormattedItemString()
+ {
+ //Not Implemented
+ return KNullDesC();
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessOwnDataItem::NewL
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessOwnDataItem* CVIMPSTProcessOwnDataItem::NewL(CVIMPSTProcessArray& aParent, TDesC& aOwnId)
+ {
+ CVIMPSTProcessOwnDataItem* self = new( ELeave ) CVIMPSTProcessOwnDataItem(aParent, aOwnId);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(); //Codescanner warning ignored
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessOwnDataItem::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessOwnDataItem::ConstructL()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessOwnDataItem::CVIMPSTProcessOwnDataItem
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessOwnDataItem::CVIMPSTProcessOwnDataItem(CVIMPSTProcessArray& aParent, TDesC& aOwnId)
+:iParent(aParent),
+ iOwnDataId(aOwnId)
+ {
+
+ }
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessOwnDataItem::~CVIMPSTProcessOwnDataItem
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessOwnDataItem::~CVIMPSTProcessOwnDataItem()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessOwnDataItem: Type
+// -----------------------------------------------------------------------------
+//
+TVIMPSTEnums::TItem CVIMPSTProcessOwnDataItem::Type()
+ {
+ return TVIMPSTEnums::EOwnStatusItem;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessOwnDataItemPC: GetItemUserId
+// -----------------------------------------------------------------------------
+//
+TPtrC CVIMPSTProcessOwnDataItem::GetItemUserId()
+ {
+ return iOwnDataId;
+ }
+
+void CVIMPSTProcessOwnDataItem::DoFormatStringL()
+ {
+ //not implemented
+ }
+
+TPtrC16 CVIMPSTProcessOwnDataItem::FormattedItemString()
+ {
+ //Not Implemented
+ return KNullDesC();
+ }
+
+/////////////////////////////////////////////////////////////////////////
+///////////////////////////////// Unknowncontact item ////////////////////
+
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::default constructor
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessUnknownContactItem::CVIMPSTProcessUnknownContactItem(CVIMPSTProcessArray& aParent)
+: iParent(aParent)
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::NewL
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessUnknownContactItem* CVIMPSTProcessUnknownContactItem::NewL(CVIMPSTProcessArray& aParent, const TDesC& aBuddyId )
+ {
+ CVIMPSTProcessUnknownContactItem* self = new (ELeave) CVIMPSTProcessUnknownContactItem(aParent);
+ CleanupStack::PushL(self);
+ self->ConstructL(aBuddyId);
+ CleanupStack::Pop();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessUnknownContactItem::ConstructL(const TDesC& aBuddyId)
+ {
+ iUesrId = aBuddyId.AllocL();
+ //load formatted string from resource.
+ iItemNameText = VIMPSTUtils::LoadResourceL(R_SERVTAB_UNKNOWN_BUDDY);
+ iIndex = -1;//default index if no index is set.
+
+ TInt maxLengthOfIcons = KDefaultAvatar().Length()+ // longest A-Column icon
+ (KTab().Length() * 2)+ // length of tabs between items
+ KContactOnlineIconA().Length(); // longest D-Column icon
+
+ iFormattedString = HBufC::NewL( KFriendsListMaxIdentificationLength +
+ KStatusMsgMaxLength +
+ maxLengthOfIcons );
+
+ DoFormatStringL();
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::destructor
+// -----------------------------------------------------------------------------
+//
+CVIMPSTProcessUnknownContactItem::~CVIMPSTProcessUnknownContactItem()
+ {
+ delete iItemNameText;
+ delete iUesrId;
+
+ if(iFormattedString)
+ delete iFormattedString;
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::GetItemNameText
+// -----------------------------------------------------------------------------
+//
+TPtrC CVIMPSTProcessUnknownContactItem::GetItemNameText()
+ {
+ return iItemNameText->Des();
+ }
+
+// -----------------------------------------------------------------------------
+// CVIMPSTProcessUnknownContactItem::Type
+// -----------------------------------------------------------------------------
+//
+TVIMPSTEnums::TItem CVIMPSTProcessUnknownContactItem::Type()
+ {
+ return TVIMPSTEnums::EUnknonContactItem;
+ }
+/**
+* Returns the user id of the listbox item
+* @return TPtrC: user id of the listbox item.
+*/
+TPtrC CVIMPSTProcessUnknownContactItem::GetItemUserId()
+ {
+ return iUesrId->Des();
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessUnknownContactItem: SetMsgPending
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessUnknownContactItem::SetMsgPending(TBool aPendingMessageStatus)
+ {
+ iSMsgPending = aPendingMessageStatus;
+
+ TRAP_IGNORE(DoFormatStringL());
+ }
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessUnknownContactItem: GetMsgPending
+// -----------------------------------------------------------------------------
+//
+TBool CVIMPSTProcessUnknownContactItem::IsMsgPending()
+ {
+ return iSMsgPending;
+ }
+
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessUnknownContactItem: SetConversationOpen
+// -----------------------------------------------------------------------------
+//
+void CVIMPSTProcessUnknownContactItem::SetConversationOpen(TBool aConversationOpen)
+ {
+ iIsConversationOpen = aConversationOpen;
+
+ TRAP_IGNORE(DoFormatStringL());
+ }
+// -----------------------------------------------------------------------------
+//CVIMPSTProcessUnknownContactItem: IsConversationOpen
+// -----------------------------------------------------------------------------
+//
+TBool CVIMPSTProcessUnknownContactItem::IsConversationOpen()
+ {
+ return iIsConversationOpen;
+ }
+
+void CVIMPSTProcessUnknownContactItem::DoFormatStringL()
+ {
+ TPtr dataPtr( iFormattedString->Des() );
+ dataPtr.Zero();
+
+ if ( TVIMPSTEnums::ESVCERegistered == iParent.GetLoginState())
+ {
+ // append friend request icon online for column A
+ dataPtr.Append( KDefaultAvatar );
+ }
+ else
+ {// append friend request icon offline for column A
+ dataPtr.Append( KLocalPendingRequestOffline );
+ }
+
+ // B-column append friend request text
+ dataPtr.Append(GetItemUserId().Left( KFriendsListMaxIdentificationLength ));
+
+ // append \t before second line text
+ dataPtr.Append( KTab );
+
+ TPtrC identification(GetItemNameText() );
+
+ dataPtr.Append( identification );
+
+
+
+
+ // append tab before appending icon
+ dataPtr.Append( KTab );
+
+ dataPtr.Append( KEmptyIconA );
+
+ if( iParent.IsIMSupported() )
+ {
+ if( this->IsMsgPending() )
+ {
+ // unread message
+ dataPtr.Append( KContactNewMsgIcon );
+ }
+ else if( this->IsConversationOpen())
+ {
+ // open conversation
+ dataPtr.Append( KContactOpenConvIcon );
+ }
+ else
+ {
+ //empty
+ dataPtr.Append( KEmptyIconC );
+ }
+ }
+
+ }
+
+
+TPtrC16 CVIMPSTProcessUnknownContactItem::FormattedItemString()
+ {
+ if(iFormattedString)
+ return iFormattedString->Des();
+ else
+ return KNullDesC();
+ }
+