--- /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 <cphcntcontactid.h>
+#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;
+ }