diff -r 000000000000 -r f0cf47e981f9 mmsharing/mmshavailability/src/musavanetworkmodestatus.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/src/musavanetworkmodestatus.cpp Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,158 @@ +/* +* Copyright (c) 2005-2007 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: Provide interface for the client requestin availability class. +* +*/ + + + +#include "musavanetworkmodestatus.h" +#include "musavatelephonystatusobserver.h" +#include "musavaavailability.h" +#include "musunittesting.h" +#include "mussettingskeys.h" +#include "mussettings.h" +#include "muslogger.h" + +#include +#include + +// ------------------------------------------------------------------------- +// Two-phased constructor. +// ------------------------------------------------------------------------- +// +CMusAvaNetworkModeStatus* CMusAvaNetworkModeStatus::NewL() + { + CMusAvaNetworkModeStatus* self = + new( ELeave ) CMusAvaNetworkModeStatus(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + + +// ------------------------------------------------------------------------- +// Destructor. +// ------------------------------------------------------------------------- +// +CMusAvaNetworkModeStatus::~CMusAvaNetworkModeStatus() + { + Cancel(); + iObserver.Reset(); + iObserver.Close(); + iPhone.Close(); + iTelServer.UnloadPhoneModule( KMmTsyModuleName ); + iTelServer.Close(); + } + + +// ------------------------------------------------------------------------- +// Test Current Phone Network Mode +// ------------------------------------------------------------------------- +// +RMobilePhone::TMobilePhoneNetworkMode CMusAvaNetworkModeStatus::PhoneNetworkMode() + { + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::PhoneNetworkMode()" ) + RMobilePhone::TMobilePhoneNetworkMode networkMode; + TInt retval = iPhone.GetCurrentMode( networkMode ); + MUS_LOG1( "mus: [MUSAVA] <- CMusAvaNetworkModeStatus::PhoneNetworkMode()=%d",networkMode ) + return networkMode; + } + + +// ------------------------------------------------------------------------- +// Reads the telephony status. +// ------------------------------------------------------------------------- +// +void CMusAvaNetworkModeStatus::TelephonyStatus() + { + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::TelephonyStatus()" ) + MUS_LOG( "mus: [MUSAVA] NotifyModeChange" ) + iPhone.NotifyModeChange( iStatus, iNetworkMode ); + SetActive(); + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::TelephonyStatus()" ) + } + +// ------------------------------------------------------------------------- +// +// ------------------------------------------------------------------------- +// +void CMusAvaNetworkModeStatus::PhoneNetworkModeStatus( + RMobilePhone::TMobilePhoneNetworkMode aStatus ) + { + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::\ + PhoneNetworkModeStatus()" ) + MUS_LOG1( "TMobilePhoneNetworkMode = ", aStatus ) + + for( TInt i=0; iPhoneNetworkModeStatus( aStatus ); + } + MUS_LOG( "mus: [MUSAVA] <- CMusAvaNetworkModeStatus::\ + PhoneNetworkModeStatus()" ) + } + +// ------------------------------------------------------------------------- +// Reads the call status property value and subscribes again. +// ------------------------------------------------------------------------- +// +void CMusAvaNetworkModeStatus::RunL() + { + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::RunL()" ) + if( iStatus == KErrNone ) + { + PhoneNetworkModeStatus( iNetworkMode ); + } + //Subscribes registration status again. + MUS_LOG( "mus: [MUSAVA] Subscribes registration status again" ) + TelephonyStatus(); + MUS_LOG( "mus: [MUSAVA] -> CMusAvaNetworkModeStatus::RunL()" ) + } + + +// ------------------------------------------------------------------------- +// Cancel pendig request +// ------------------------------------------------------------------------- +// +void CMusAvaNetworkModeStatus::DoCancel() + { + iPhone.CancelAsyncRequest( EMobilePhoneNotifyModeChange ); + } + + +// ------------------------------------------------------------------------- +// Constructor function. +// ------------------------------------------------------------------------- +// +CMusAvaNetworkModeStatus::CMusAvaNetworkModeStatus( ) + { + + } + +// ------------------------------------------------------------------------- +// Second phase constructor. +// ------------------------------------------------------------------------- +// +void CMusAvaNetworkModeStatus::ConstructL() + { + RTelServer::TPhoneInfo phoneInfo; + User::LeaveIfError( iTelServer.Connect() ); + User::LeaveIfError( iTelServer.LoadPhoneModule( KMmTsyModuleName ) ); + User::LeaveIfError( iTelServer.GetPhoneInfo( 0, phoneInfo ) ); + User::LeaveIfError( iPhone.Open( iTelServer, phoneInfo.iName ) ); + User::LeaveIfError( iPhone.Initialise() ); + TelephonyStatus(); + }