diff -r 1221b68b8a5f -r 1481bf457703 commondrm/drmui/drmuidialogs/src/drmuidialogs.cpp --- a/commondrm/drmui/drmuidialogs/src/drmuidialogs.cpp Tue Aug 31 15:29:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of CDrmUIDialogs class. -* -*/ - -#include "drmuidialogs.h" // CDrmUIDialogs -#include // CHbSymbianVariantMap - -// Identifier of DRM UI device notification dialog plugin -_LIT( KDrmUIDeviceDialogPlugin, "com.nokia.hb.drmuidialog/1.0" ); - -// Keys for the parameters passed to notification dialog plugin -_LIT( KDrmUIDialogId, "dialogId" ); -_LIT( KDrmUIInsertText, "insertText" ); -_LIT( KDrmUIInsertInt, "insertInt" ); - -// Keys name for result sent from notification dialog plugin -_LIT( KDrmUIDialogResult, "result"); - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CDrmUIDialogs* CDrmUIDialogs::NewLC() - { - CDrmUIDialogs* self = new( ELeave ) CDrmUIDialogs(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CDrmUIDialogs* CDrmUIDialogs::NewL() - { - CDrmUIDialogs* self = CDrmUIDialogs::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::~CDrmUIDialogs() -// --------------------------------------------------------------------------- -// -CDrmUIDialogs::~CDrmUIDialogs() - { - Cancel(); - delete iWait; - delete iDeviceDialog; - delete iVariantMap; - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::ShowNoteL() -// --------------------------------------------------------------------------- -EXPORT_C TInt CDrmUIDialogs::ShowNoteL( TInt aDialogId, const TDesC& aString, TInt aValue ) - { - // Add the dialog id to the variant map - AddParamL( KDrmUIDialogId, aDialogId ); - - // Add the string to the variant map if it exists - if ( aString.Compare( KNullDesC ) ) - { - AddParamL( KDrmUIInsertText, aString ); - } - - // Add the int to the variant map - if ( aValue >= 0 ) - { - AddParamL( KDrmUIInsertInt, aValue ); - } - - DisplayDeviceDialogL(); - - TInt error = WaitUntilDeviceDialogClosed(); - User::LeaveIfError( error ); - - return iReturnValue; - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::DoCancel() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::DoCancel() - { - if( iWait && iWait->IsStarted() && iWait->CanStopNow() ) - { - iCompletionCode = KErrCancel; - iWait->AsyncStop(); - } - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::RunL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::RunL() - { - if( iWait ) - { - iWait->AsyncStop(); - } - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::DataReceived() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::DataReceived( CHbSymbianVariantMap& aData ) - { - const CHbSymbianVariant* resultVariant = aData.Get( KDrmUIDialogResult ); - - if( resultVariant ) - { - TInt* result = resultVariant->Value(); - - if( result ) - { - iReturnValue = *result; - } - } - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::DeviceDialogClosed() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::DeviceDialogClosed( TInt aCompletionCode ) - { - iCompletionCode = aCompletionCode; - iIsDisplayingDialog = EFalse; - - TRequestStatus* status( &iStatus ); - User::RequestComplete( status, KErrNone ); - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::CDrmUIDialogs() -// --------------------------------------------------------------------------- -// -CDrmUIDialogs::CDrmUIDialogs() : CActive( CActive::EPriorityStandard ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::ConstructL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::ConstructL() - { - iReturnValue = KErrNone; - iWait = new( ELeave ) CActiveSchedulerWait; - iDeviceDialog = CHbDeviceDialogSymbian::NewL(); - iVariantMap = CHbSymbianVariantMap::NewL(); - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::ClearParamsL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::ClearParamsL() - { - if( iVariantMap ) - { - delete iVariantMap; - iVariantMap = NULL; - } - iVariantMap = CHbSymbianVariantMap::NewL(); - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::ClearParamsAndSetDialogIdL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::ClearParamsAndSetDialogIdL( TInt aDialogId ) - { - ClearParamsL(); - AddParamL( KDrmUIDialogId, aDialogId ); - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::AddParamL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::AddParamL( const TDesC& aKey, TInt aValue ) - { - CHbSymbianVariant* variant = NULL; - variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EInt ); - iVariantMap->Add( aKey, variant ); // Takes ownership of variant - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::AddParamL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::AddParamL( const TDesC& aKey, const TDesC& aValue ) - { - CHbSymbianVariant* variant = NULL; - variant = CHbSymbianVariant::NewL( &aValue, CHbSymbianVariant::EDes ); - iVariantMap->Add( aKey, variant ); // Takes ownership of variant - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::DisplayDeviceDialogL() -// --------------------------------------------------------------------------- -// -void CDrmUIDialogs::DisplayDeviceDialogL() - { - if( iIsDisplayingDialog ) - { - iDeviceDialog->Update( *iVariantMap ); - } - else - { - iDeviceDialog->Show( KDrmUIDeviceDialogPlugin, *iVariantMap, this ); - iIsDisplayingDialog = ETrue; - } - } - -// --------------------------------------------------------------------------- -// CDrmUIDialogs::WaitUntilDeviceDialogClosed() -// --------------------------------------------------------------------------- -// -TInt CDrmUIDialogs::WaitUntilDeviceDialogClosed() - { - iCompletionCode = KErrInUse; - - if( !IsActive() && iWait && !iWait->IsStarted() ) - { - iStatus = KRequestPending; - SetActive(); - iWait->Start(); - } - return iCompletionCode; - }