--- a/phoneengine/phonemodel/src/tperemotepartyinfomediatorupdater.cpp Fri May 14 15:51:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
-* 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: Updates remote party information via mediator.
-*
-*/
-
-#include "tperemotepartyinfomediatorupdater.h"
-#include "mpemediator.h"
-#include "mpedatastore.h"
-
-#include <talogger.h>
-#include <MediatorDomainUIDs.h>
-
-// ---------------------------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-TPERemotePartyInfoMediatorUpdater::TPERemotePartyInfoMediatorUpdater(
- MPEMediator& aMediator,
- MPEDataStore& aDataStore )
- : iMediator( aMediator ),
- iDataStore( aDataStore )
- {
- }
-
-// ---------------------------------------------------------------------------
-// Sends mediator event with remote info.
-// ---------------------------------------------------------------------------
-//
-void TPERemotePartyInfoMediatorUpdater::Update()
- {
- HBufC8* data = NULL;
- TRAPD( err, data = TakeSnapshotOfRemotePartyInfosL() );
- if ( !err )
- {
- iMediator.RaiseEvent(
- KCatCallRemotePartyInformation,
- EChangesInRemotePartyInformation,
- *data );
- }
- delete data;
-
- }
-
-// ---------------------------------------------------------------------------
-// From base class MMediatorCommandObserver
-// ---------------------------------------------------------------------------
-//
-void TPERemotePartyInfoMediatorUpdater::MediatorCommandL(
- TUid aDomain,
- TUid aCategory,
- TInt aCommandId,
- TVersion /*aVersion*/,
- const TDesC8& /*aData*/ )
- {
- if ( aDomain == KMediatorTelephonyDomain &&
- aCategory == KCatCallRemotePartyInformation &&
- aCommandId == EGetCallRemotePartyInformation )
- {
- HBufC8* data = TakeSnapshotOfRemotePartyInfosL();
-
- iMediator.SendResponse(
- KCatCallRemotePartyInformation,
- EGetCallRemotePartyInformation,
- *data );
-
- delete data;
- }
- }
-
-// ---------------------------------------------------------------------------
-// From base class MMediatorCommandObserver
-// ---------------------------------------------------------------------------
-//
-void TPERemotePartyInfoMediatorUpdater::CancelMediatorCommand(
- TUid /*aDomain*/,
- TUid /*aCategory*/,
- TInt /*aCommandId*/ )
- {
- }
-
-// ---------------------------------------------------------------------------
-// Takes remote party information from all calls and packs them to
-// descriptor.
-// ---------------------------------------------------------------------------
-//
-HBufC8* TPERemotePartyInfoMediatorUpdater::TakeSnapshotOfRemotePartyInfosL()
- {
- CCallRemotePartyInfos* infos = CCallRemotePartyInfos::NewLC();
- for ( TInt callId = 0; callId < KPEMaximumNumberOfCalls; callId++ )
- {
- const TInt callIndex = iDataStore.CallIndex( callId );
- if ( callIndex != KPEInvalidCallIndex )
- {
- CCallRemotePartyInfo* info = CCallRemotePartyInfo::NewLC();
- info->SetCallIndex( callIndex );
-
- if ( iDataStore.RemoteColpNumber( callId ).Length() )
- {
- info->SetAddressL( iDataStore.RemoteColpNumber( callId ) );
- }
- else
- {
- info->SetAddressL( iDataStore.RemotePhoneNumber( callId ) );
- }
-
- info->SetMatchedNameL( iDataStore.RemoteName( callId ) );
- info->SetCompanyNameL( iDataStore.RemoteCompanyName( callId ) );
- info->SetNameFromNetworkL( iDataStore.RemotePartyName( callId ) );
-
- if ( iDataStore.CallOrigin( callId ) == EPECallOriginSAT )
- {
- info->SetSATCall( ETrue );
- }
-
- info->SetRemoteIdentity( ResolveRemoteIdentity( callId ) );
-
- infos->AddL( info );
- CleanupStack::Pop( info );
- }
- }
- HBufC8* data = infos->ExternalizeL();
- CleanupStack::PopAndDestroy( infos );
- return data;
- }
-
-// ---------------------------------------------------------------------------
-// Sets remote party identity.
-// ---------------------------------------------------------------------------
-//
-MCallRemotePartyInfo::TRemoteIdentityStatus
- TPERemotePartyInfoMediatorUpdater::ResolveRemoteIdentity( const TInt aCallId )
- {
- MCallRemotePartyInfo::TRemoteIdentityStatus remoteIdentity;
- if ( iDataStore.CallDirection( aCallId ) == RMobileCall::EMobileOriginated )
- {
- // In MO case Remote party address is always available
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityAvailable;
- }
- else
- {
- remoteIdentity = ConvertRemoteIdentity( aCallId );
- }
-
- return remoteIdentity;
- }
-
-// ---------------------------------------------------------------------------
-// Converts remote party identity.
-// ---------------------------------------------------------------------------
-//
-MCallRemotePartyInfo::TRemoteIdentityStatus
- TPERemotePartyInfoMediatorUpdater::ConvertRemoteIdentity( const TInt aCallId )
- {
- RMobileCall::TMobileCallRemoteIdentityStatus etelRemoteIdentity = iDataStore.RemoteIdentity( aCallId );
- MCallRemotePartyInfo::TRemoteIdentityStatus remoteIdentity;
-
- switch ( etelRemoteIdentity )
- {
- case RMobileCall::ERemoteIdentityUnknown:
- case RMobileCall::ERemoteIdentityAvailableNoCliUnavailable:
- {
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityUnknown;
- }
- break;
- case RMobileCall::ERemoteIdentityAvailable:
- {
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityAvailable;
- }
- break;
- case RMobileCall::ERemoteIdentitySuppressed:
- case RMobileCall::ERemoteIdentityAvailableNoCliRejectedByUser:
- {
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityRejectedByUser;
- }
- break;
- case RMobileCall::ERemoteIdentityAvailableNoCliInteractionWithOtherService:
- case RMobileCall::ERemoteIdentityUnavailableNoCliInteractionWithOtherService:
- {
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityNoCliInteractionWithOtherService;
- }
- break;
- case RMobileCall::ERemoteIdentityAvailableNoCliCoinOrPayphone:
- case RMobileCall::ERemoteIdentityUnavailableNoCliCoinOrPayphone:
- {
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityNoCliCoinOrPayphone;
- }
- break;
- default:
- {
- TEFLOGSTRING( KTAERROR, "TPERemotePartyInfoMediatorUpdater::ConvertRemoteIdentity, UNKNOWN REMOTE IDENTITY!" );
- remoteIdentity = MCallRemotePartyInfo::ERemoteIdentityUnknown;
- break;
- }
- }
- return remoteIdentity;
- }
-