diff -r 000000000000 -r 72b543305e3a messagingappbase/ncnlist/src/CNcnClass0Viewer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/ncnlist/src/CNcnClass0Viewer.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2004 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: Methods for CNcnClass0Viewer class. +* +*/ + + + +// INCLUDE FILES +#include "NcnDebug.h" +#include "CNcnClass0Viewer.h" +#include "CNcnMsvSessionHandler.h" +#include + +// ================= LOCAL CONSTANTS ======================= +namespace + { + const TUid KUidMsgSmsViewer = {0x100058BD}; + const TUid KUidSmsMtmId = {0x1000102c}; + } + +// ================= MEMBER FUNCTIONS ======================= + +// ---------------------------------------------------- +// CNcnClass0Viewer::CNcnClass0Viewer +// ---------------------------------------------------- +// +CNcnClass0Viewer::CNcnClass0Viewer( + CNcnMsvSessionHandler& aMsvSessionHandler ) : + CActive( EPriorityNormal ), + iMsvSessionHandler( aMsvSessionHandler ) + { + // empty + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::NewL +// ---------------------------------------------------- +// +CNcnClass0Viewer* CNcnClass0Viewer::NewL( + CNcnMsvSessionHandler& aMsvSessionHandler ) + { + CNcnClass0Viewer* self = new (ELeave) CNcnClass0Viewer( aMsvSessionHandler ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::ConstructL +// ---------------------------------------------------- +// +void CNcnClass0Viewer::ConstructL() + { + // add AO to scheduler + CActiveScheduler::Add( this ); + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::~CNcnClass0Viewer +// ---------------------------------------------------- +// +CNcnClass0Viewer::~CNcnClass0Viewer() + { + Cancel(); + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::RunL +// ---------------------------------------------------- +// +void CNcnClass0Viewer::RunL() + { + // just release operation instance, if any + if( iMsvOperation ) + { + delete iMsvOperation; + iMsvOperation = 0; + } + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::RunError +// ---------------------------------------------------- +// +TInt CNcnClass0Viewer::RunError( TInt aError ) + { + return aError; + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::DoCancel +// ---------------------------------------------------- +// +void CNcnClass0Viewer::DoCancel() + { + // cancel & release operation instance, if any + if( iMsvOperation ) + { + iMsvOperation->Cancel(); + delete iMsvOperation; + iMsvOperation = 0; + } + } + +// ---------------------------------------------------- +// CNcnClass0Viewer::ShowClass0SmsL +// ---------------------------------------------------- +// +void CNcnClass0Viewer::ShowClass0SmsL( const TMsvEntry& aEntry ) + { + //Cancel outstanding requests + if( IsActive() ) + { + Cancel(); + } + + //Create launch parameters + TEditorParameters launchParams; + launchParams.iId = aEntry.Id(); + launchParams.iFlags |= EMsgReadOnly; + + // get session reference + CMsvSession& msvSession = + iMsvSessionHandler.MsvSessionL(); + + // launch editor + iMsvOperation = + MsgEditorLauncher::LaunchEditorApplicationL( + msvSession, + KUidSmsMtmId, + iStatus, + launchParams, + *(MsvUiEditorUtilities::ResolveAppFileNameL( KUidMsgSmsViewer ) ) ); + + // set status and activate AO + iStatus = KRequestPending; + SetActive(); + } + +// End of File