diff -r 2eacb6118286 -r ba76fc04e6c2 phoneengine/engineinfo/src/cperemoteinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneengine/engineinfo/src/cperemoteinfo.cpp Fri Jun 04 10:19:18 2010 +0100 @@ -0,0 +1,401 @@ +/* +* Copyright (c) 2006-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: This file contains the implementation of the CPERemoteInfo object +* +*/ + +#include +#include "cperemoteinfo.h" +#include "talogger.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CPERemoteInfo::NewL +// Two-phased constructor. +// --------------------------------------------------------------------------- +// +CPERemoteInfo* CPERemoteInfo::NewL() + { + TEFLOGSTRING( KTAOBJECT, "CPERemoteInfo::NewL" ); + CPERemoteInfo* remoteInfo = new ( ELeave ) CPERemoteInfo(); + return remoteInfo; + } + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +CPERemoteInfo::CPERemoteInfo() + { + TEFLOGSTRING( KTAOBJECT, "CPERemoteInfo::CPERemoteInfo" ); + ResetRemoteInfo(); + } + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CPERemoteInfo::~CPERemoteInfo() + { + TEFLOGSTRING( KTAOBJECT, "CPERemoteInfo::~CPERemoteInfo" ); + delete iTextToSpeechText; + delete iCallerText; + delete iCallerImage; + delete iContactLink; + if ( iContactId ) + { + if ( iContactId->IsValid() ) + { + iContactId->Invalidate(); + delete iContactId; + } + } + iGroupId.Reset(); + delete iCallerThumbnail; + delete iPredefinedDtmfStrings; + } + +TInt CPERemoteInfo::CallId() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::CallId, id: %d", iCallId ); + return iCallId; + } + +const CPhCntContactId& CPERemoteInfo::ContactId() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::ContactId, ptr: %x", iContactId ); + return *iContactId; + } + +const TDesC8& CPERemoteInfo::ContactLink() const + { + if( iContactLink ) + { + return *iContactLink; + } + else + { + return KNullDesC8; + } + } + +const TPEPhoneNumber& CPERemoteInfo::PhoneNumber() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::PhoneNumber, number: '%S'", &iPhoneNumber ); + return iPhoneNumber; + } + +const TPEPhoneNumber& CPERemoteInfo::ColpNumber() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::ColpNumber, number: '%S'", &iColpNumber ); + return iColpNumber; + } + +const TPEContactName& CPERemoteInfo::Name() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::Name, name: '%S'", &iName ); + return iName; + } + +const TPEContactCompany& CPERemoteInfo::CompanyName() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::CompanyName, name: '%S'", &iCompanyName ); + return iCompanyName; + } + +const TPEContactFileName& CPERemoteInfo::PersonalRingingTone() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::PersonalRingingTone, path: '%S'", &iPersonalRingingTone ); + return iPersonalRingingTone; + } + +const TPEPhoneNumberIdType& CPERemoteInfo::PhoneNumberType() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::PhoneNumberType, type: %d", iPhoneNumberType ); + return iPhoneNumberType; + } + +const TPtrC CPERemoteInfo::TextToSpeechText() const + { + if( iTextToSpeechText ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::TextToSpeechText, path: '%S'", iTextToSpeechText ); + return *iTextToSpeechText; + } + else + { + return KNullDesC(); + } + } + +const TArray< TContactItemId > CPERemoteInfo::ContactGroups() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::ContactGroups, entries: %d", iGroupId.Count() ); + return iGroupId.Array(); + } + +const TPtrC CPERemoteInfo::CallerText() const + { + if( iCallerText ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::CallerText, path: '%S'", iCallerText ); + return *iCallerText; + } + else + { + return KNullDesC(); + } + } + +const TPtrC CPERemoteInfo::CallerImage() const + { + if( iCallerImage ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::CallerImage, path: %S", iCallerImage ); + return *iCallerImage; + } + else + { + return KNullDesC(); + } + } + +CFbsBitmap* CPERemoteInfo::CallerThumbnail() const + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::CallerThumbnail, ptr: %x", iCallerThumbnail ); + return iCallerThumbnail; + } + +TBool CPERemoteInfo::HasCallerThumbnail() const + { + return iHasCallerThumbnail; + } + +void CPERemoteInfo::SetCallId( const TInt aCallId ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetCallId, id: %d", iCallId ); + iCallId = aCallId; + } + +void CPERemoteInfo::SetContactId( CPhCntContactId* aContactId ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetContactId, ptr: %x", iContactId ); + iContactId = aContactId; + + delete iContactLink; + iContactLink = NULL; + TRAP_IGNORE( iContactLink = iContactId->PackLC(); + CleanupStack::Pop( iContactLink ); ); + + } + +void CPERemoteInfo::SetPhoneNumber( const TPEPhoneNumber& aPhoneNumber ) + { + iPhoneNumber = aPhoneNumber; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetPhoneNumber, number: '%S'", &iPhoneNumber ); + } + +void CPERemoteInfo::SetColpNumber( const TPEPhoneNumber& aColpNumber ) + { + iColpNumber = aColpNumber; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetColpNumber, number: '%S'", &iColpNumber ); + } + +void CPERemoteInfo::SetName( const TPEContactName& aContactName ) + { + iName = aContactName; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetName, name: '%S'", &iName ); + } + +void CPERemoteInfo::SetCompanyName( const TPEContactName& aCompanyName ) + { + iCompanyName = aCompanyName; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetCompanyName, company name: '%S'", &iCompanyName ); + } + +void CPERemoteInfo::SetPersonalRingingTone( + const TPEContactFileName& aPersonalRingingTone ) + { + iPersonalRingingTone = aPersonalRingingTone; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetPersonalRingingTone, path: '%S'", &iPersonalRingingTone ); + } + +void CPERemoteInfo::SetPhoneNumberType( const TPEPhoneNumberIdType aPhoneNumberType ) + { + iPhoneNumberType = aPhoneNumberType; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetPhoneNumberType, type: %d", iPhoneNumberType ); + } + +void CPERemoteInfo::SetTextToSpeechText( HBufC* aText ) + { + iTextToSpeechText = aText; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetTextToSpeechText, path: '%S'", &iTextToSpeechText ); + } + +void CPERemoteInfo::SetContactGroups( + const TArray< TContactItemId >& aGroupIdArray ) + { + TEFLOGSTRING( KTAINT, "CPERemoteInfo::SetContactGroups" ); + TInt errorCode( KErrNone ); + + iGroupId.Reset(); + for ( TInt i = 0; i < aGroupIdArray.Count(); i++ ) + { + errorCode = iGroupId.Append( aGroupIdArray[ i ] ); + TEFLOGSTRING3( + KTAINT, + "PE CPERemoteInfo::SetContactGroups, index: %d, group id: %d", + i, + aGroupIdArray[ i ] ); + } + if ( errorCode != KErrNone ) + { + TEFLOGSTRING2( KTAERROR, + "CPERemoteInfo::SetContactGroups ! RARRAY::APPEND FAILED WITH EXIT CODE: &d", + errorCode ); + iGroupId.Reset(); + } + TEFLOGSTRING2( KTAINT, "PE CPERemoteInfo::SetContactGroups, entries: %d", iGroupId.Count() ); + } + +void CPERemoteInfo::SetCallerText( const TPtrC aCallerText ) + { + delete iCallerText; + if ( aCallerText.Length() > 0 ) + { + iCallerText = aCallerText.Alloc(); + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetCallerText, text: '%S'", &iCallerText ); + } + else + { + TEFLOGSTRING( KTAERROR, "CPEREMOTEINFO::SETCALLERTEXT ! NO CALLER TEXT" ); + } + } + +void CPERemoteInfo::SetCallerImage( const TPtrC aCallerImage ) + { + delete iCallerImage; + if ( aCallerImage.Length() > 0 ) + { + iCallerImage = aCallerImage.Alloc(); + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetCallerImage, path: '%S'", &iCallerImage ); + } + else + { + TEFLOGSTRING( KTAERROR, "CPEREMOTEINFO::SETCALLERIMAGE ! NO CALLER IMAGE PATH" ); + } + } + +void CPERemoteInfo::SetCallerThumbnail( CFbsBitmap* aCallerThumbnail ) + { + delete iCallerThumbnail; + iCallerThumbnail = aCallerThumbnail; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetCallerThumbnail, ptr: %x", iCallerThumbnail ); + } + + +void CPERemoteInfo::SetHasCallerThumbnail( TBool aStatus ) + { + iHasCallerThumbnail = aStatus; + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetHasCallerThumbnail, %d", aStatus ); + } + +// ----------------------------------------------------------------------------- +// CPERemoteInfo::SetPredefinedDtmfStrings() +// +// +// ----------------------------------------------------------------------------- +// +void CPERemoteInfo::SetPredefinedDtmfStrings( + const CDesCArray& aArray ) + { + if ( iPredefinedDtmfStrings ) + { + delete iPredefinedDtmfStrings; + iPredefinedDtmfStrings = NULL; + } + + TInt count = aArray.Count(); + + if ( count ) + { + TRAPD( err, iPredefinedDtmfStrings = new ( ELeave ) CDesCArrayFlat( count ) ); + + if( err != KErrNone ) + { + TEFLOGSTRING2( KTAINT, "CPERemoteInfo::SetPredefinedDtmfStrings, err: %d", err ); + return; + } + + for ( TInt i = 0; i < count; i++ ) + { + TRAP_IGNORE( iPredefinedDtmfStrings->AppendL( aArray.MdcaPoint(i) ) ); + } + } + } + + +// ----------------------------------------------------------------------------- +// CPERemoteInfo::PredefinedDtmfStrings() +// +// +// ----------------------------------------------------------------------------- +// +CDesCArray& CPERemoteInfo::PredefinedDtmfStrings() + { + if ( !iPredefinedDtmfStrings ) + { + // Create dymmy array to help post handling + TRAP_IGNORE( iPredefinedDtmfStrings = new ( ELeave ) CDesCArrayFlat( 1 ) ); + } + return *iPredefinedDtmfStrings; + } + + +void CPERemoteInfo::ResetRemoteInfo() + { + TEFLOGSTRING( KTAINT, "CPERemoteInfo::ResetRemoteInfo" ); + iPhoneNumber = KNullDesC; + iColpNumber = KNullDesC; + iName = KNullDesC; + iCompanyName = KNullDesC; + iPersonalRingingTone = KNullDesC; + iPhoneNumberType = EPEUnknownNumber; + delete iTextToSpeechText; + iTextToSpeechText = NULL; + delete iCallerText; + iCallerText = NULL; + delete iCallerImage; + iCallerImage = NULL; + if ( iContactId ) + { + if ( iContactId->IsValid() ) + { + iContactId->Invalidate(); + delete iContactId; + iContactId = NULL; + } + } + + delete iContactLink; + iContactLink = NULL; + + iGroupId.Reset(); + delete iCallerThumbnail; + iCallerThumbnail = NULL; + delete iPredefinedDtmfStrings; + iPredefinedDtmfStrings = NULL; + iHasCallerThumbnail = EFalse; + }