diff -r 5294c000a26d -r 112a725ff2c2 homescreenplugins/videochplugin/src/videonotificationlauncher.cpp --- a/homescreenplugins/videochplugin/src/videonotificationlauncher.cpp Mon Mar 15 12:40:47 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,244 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: -* -*/ - -// Version : %version: 12 % - - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "videochmcategorylistener.h" -#include "videocontentharvesterplugin.h" -#include "videonotificationlauncher.h" -#include "videochpublishabledata.h" -#include "videochpublisher.h" -#include "iptvlastwatchedapi.h" -#include "iptvlastwatcheddata.h" -#include "IptvDebug.h" - -// CONSTANTS -const TInt KMediaExtSize( 8 ); - -_LIT( KResourceFile, "videocontentharvester.rsc"); - - - -// ============================ MEMBER FUNCTIONS ============================== - - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::CVcxNsNotificationLauncher -// C++ default constructor -// ---------------------------------------------------------------------------- -// -CVcxNsNotificationLauncher::CVcxNsNotificationLauncher( CVcxNsChPublishableData* aPublishableData, - CVcxNsChPublisher* aPublisher ) : - iPublishableData( aPublishableData ), - iPublisher( aPublisher ) - { - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::ConstructL -// ---------------------------------------------------------------------------- -// -void CVcxNsNotificationLauncher::ConstructL() - { - iDownloadCompletedBuffer = LoadResourceStringL( R_IPTV_DOWNLOAD_COMPLETE ); - - iDownloadsContinueBuffer = LoadResourceStringL( R_IPTV_UNFINISHED_DNLOADS_CONTINUE ); - - TUid domain = TUid::Uid( KVcxNsMpxMediatorDomain ); - TUid category = TUid::Uid( KVcxNsMpxMediatorCategory ); - TVersion version = TVersion( KVcxNsMpxEventVersion, 0, 0 ); - iCatListener = CVcxNsChMCategoryListener::NewL( this, - domain, - category, - version ); - - iCatListener->RegisterAndSubscribeL( KVcxNsMpxEventDownloadCompleted ); - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::NewL -// ---------------------------------------------------------------------------- -// -CVcxNsNotificationLauncher* CVcxNsNotificationLauncher::NewL( - CVcxNsChPublishableData* aPublishableData, - CVcxNsChPublisher* aPublisher ) - { - CVcxNsNotificationLauncher* self = - new( ELeave ) CVcxNsNotificationLauncher( aPublishableData, aPublisher ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::~CVcxNsNotificationLauncher -// ---------------------------------------------------------------------------- -// -CVcxNsNotificationLauncher::~CVcxNsNotificationLauncher() - { - delete iCatListener; - delete iDownloadCompletedBuffer; - delete iDownloadsContinueBuffer; - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::MediatorEventL -// ---------------------------------------------------------------------------- -// -void CVcxNsNotificationLauncher::MediatorEventL( TUid aDomain, - TUid aCategory, - TInt aEventId, - const TDesC8& aData ) - { - IPTVLOGSTRING_LOW_LEVEL("Cvcxnsnotificationlauncher::MediatorEventL IN"); - - TBool validData( aData.Length() == KMediaExtSize ); - TBool validDomain( aDomain == TUid::Uid( KVcxNsMpxMediatorDomain ) ); - TBool validCategory( aCategory == TUid::Uid( KVcxNsMpxMediatorCategory ) ); - TBool validEvent( aEventId == KVcxNsMpxEventDownloadCompleted ); - - if ( validDomain && validCategory && validEvent && validData ) - { - HBufC8* buffer = HBufC8::NewL( KMediaExtSize ); - CleanupStack::PushL( buffer ); - - TPtr8 des = buffer->Des(); - des.Copy( aData ); - - RDesReadStream stream; - CleanupClosePushL( stream ); - stream.Open( aData ); - - CMPXMedia* media = CMPXMedia::NewL(); - CleanupStack::PushL( media ); - - media->InternalizeL( stream ); - - if ( media->IsSupported( KMPXMediaGeneralTitle ) ) - { - DlCompletedNotificationL( *media ); - } - - CleanupStack::PopAndDestroy( media ); - CleanupStack::PopAndDestroy( &stream ); - CleanupStack::PopAndDestroy( buffer ); - } - - IPTVLOGSTRING_LOW_LEVEL("Cvcxnsnotificationlauncher::MediatorEventL OUT"); - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::LaunchExitingNotificationL -// ---------------------------------------------------------------------------- -// -void CVcxNsNotificationLauncher::LaunchExitingNotificationL() - { - CAknDiscreetPopup::ShowGlobalPopupL( *iDownloadsContinueBuffer ); - } - -// ---------------------------------------------------------------------------- -// CVcxNsNotificationLauncher::DlCompletedNotificationL -// ---------------------------------------------------------------------------- -// -void CVcxNsNotificationLauncher::DlCompletedNotificationL( const CMPXMedia& aMedia ) - { - IPTVLOGSTRING_LOW_LEVEL("CVcxNsNotificationLauncher::DlCompletedNotificationL"); - - TPtrC name = aMedia.ValueText( KMPXMediaGeneralTitle ); - - TUint popupFlags( KAknDiscreetPopupDurationLong ); - - const TInt KMaxDlCompleteTextLength = 300; - - TBuf text; - - TulTextResourceUtils::Format( text, *iDownloadCompletedBuffer, -1, name ); - - CAknDiscreetPopup::ShowGlobalPopupL( - text, - KNullDesC, - KAknsIIDNone, - KNullDesC, - -1, - -1, - popupFlags ); - } -// -// ---------------------------------------------------------- -// LoadResourceString. -// ---------------------------------------------------------- -// -HBufC* CVcxNsNotificationLauncher::LoadResourceStringL( TInt aResourceId ) - { - RFs fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - - TFileName dllName; - Dll::FileName( dllName ); - TParsePtrC parse( dllName ); - - TFileName fileName; - fileName = parse.Drive(); - fileName.Append( KDC_APP_RESOURCE_DIR ); - fileName.Append( KResourceFile() ); - - BaflUtils::NearestLanguageFile( fs, fileName ); - - if( !BaflUtils::FileExists( fs, fileName ) ) - { - User::Leave(KErrNotFound); - } - - RResourceFile resourceFile; - resourceFile.OpenL( fs,fileName ); - CleanupClosePushL( resourceFile ); - resourceFile.ConfirmSignatureL( 0 ); - - HBufC8* dataBuffer = resourceFile.AllocReadLC( aResourceId ); - TResourceReader theReader; - theReader.SetBuffer( dataBuffer ); - HBufC* locstring = theReader.ReadHBufCL(); - - CleanupStack::PopAndDestroy( dataBuffer ); - CleanupStack::PopAndDestroy( &resourceFile ); - CleanupStack::PopAndDestroy( &fs ); - - return locstring; - }