scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginHelper.cpp
branchRCL_3
changeset 22 aaeeca1f15af
parent 21 724d4ec22f0d
child 23 e8d784ac1a4b
--- a/scrsaver/scrsaverplugins/ScreenSaverAnimPlugin/src/ScreenSaverAnimPluginHelper.cpp	Thu Aug 19 09:55:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,361 +0,0 @@
-/*
-* Copyright (c) 2005 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:   This file implements all helper classes 
-*                for ScreenSaverAnimPlugin
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include    <DRMHelper.h>
-#include    <coemain.h>
-#include    <apgcli.h>
-#include    <barsread.h>
-#include    <aknnotewrappers.h>
-#include    <centralrepository.h>
-
-#include    <screensaveranimplugin.rsg>
-
-#include    "ScreenSaverAnimPluginHelper.h"
-#include    "ScreenSaverAnimPlugin.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier::CScreenSaverAnimPluginVerifier(
-             CScreenSaverAnimPlugin* aFileVerify ) :
-             iFileVerify( aFileVerify )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginVerifier::ConstructL()
-    {
-    iCoeEnv = CCoeEnv::Static();
-    iDRMHelper = CDRMHelper::NewL( *iCoeEnv );
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier* CScreenSaverAnimPluginVerifier::NewL(
-                                CScreenSaverAnimPlugin* aFileVerify )
-    {
-    CScreenSaverAnimPluginVerifier* self = new( ELeave ) 
-                            CScreenSaverAnimPluginVerifier( aFileVerify );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-    
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CScreenSaverAnimPluginVerifier::~CScreenSaverAnimPluginVerifier()
-    {
-    delete iDRMHelper;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::IsFileValidL
-// Empty implementation.
-// -----------------------------------------------------------------------------
-//
-TBool CScreenSaverAnimPluginVerifier::VerifySelectionL( const MDesCArray* 
-                                                        aSelectedFiles )
-    {    
-
-    TBool canbeautomated( EFalse );
-
-    if( aSelectedFiles->MdcaCount()<1 )
-        {
-        // Download item
-        return ETrue;
-        }
-
-    // 1. Check whether the drm rights are ok
-    TInt res = 0;
-    iDRMHelper->SetAutomatedType( 
-                   CDRMHelper::EAutomatedTypeScreenSaver );
-    res = iDRMHelper->CanSetAutomated( aSelectedFiles->MdcaPoint( 0 ), canbeautomated );
-    if ( KErrUnderflow == res )
-        {
-        TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
-        // Show information note
-        ShowErrorNoteL( resourceId );    
-        return EFalse;        
-        }
-    if ( res )
-        {
-        iDRMHelper->HandleErrorL( res, aSelectedFiles->MdcaPoint( 0 ) );        
-        return canbeautomated;
-        }   
-    else if ( !canbeautomated )
-        {
-        ShowErrorNoteL( R_DRM_PREV_RIGHTS_SET );
-        return canbeautomated;
-        }
-
-    // 2. Check whether the file is supported
-    RApaLsSession ls;
-    CleanupClosePushL( ls );
-    TUid dummyUid( KNullUid );
-    TDataType dataType;
-    User::LeaveIfError( ls.Connect() );
-    // find the mimetype
-    User::LeaveIfError( ls.AppForDocument( aSelectedFiles->MdcaPoint( 0 ), 
-                dummyUid, dataType ) );               
-                    
-    CleanupStack::PopAndDestroy( &ls );
-
-    TResourceReader reader;
-    TBool valid( EFalse );
-    iCoeEnv->CreateResourceReaderLC( reader, 
-                             R_MIMETYPE_SPECIFIC_PLUGIN_ARRAY );
-    TInt countResource = reader.ReadInt16();
-
-    for ( TInt i = 0; i < countResource; i++ )
-        {
-        HBufC* newMimeTypeEntry = reader.ReadHBufCL();        
-        TPtr mimePtr( newMimeTypeEntry->Des() );
-        reader.ReadInt32();
-        if ( newMimeTypeEntry->Compare( dataType.Des() ) == 0 )
-            {            
-            valid =  ETrue;
-            }
-        delete newMimeTypeEntry;        
-        }
-    CleanupStack::PopAndDestroy(); // reader  
-
-    if ( !valid )
-        {
-        // Pop a not supported error message             
-        ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );    
-        return EFalse;
-        }
-
-    //3. Check file for Validity
-    
-    //Display the confirmation query when setting 
-    //a DRM protected image as screensaver in General settings.
-    TInt isCancel;
-    isCancel = iDRMHelper->ShowAutomatedNote( aSelectedFiles->MdcaPoint( 0 ) ); 
-    if ( KErrCancel == isCancel )
-        {
-        return EFalse;
-        }
-
-    
-    TInt validity = KErrNone;
-    TRAPD( err, 
-       validity = iFileVerify->CheckFileValidityL( aSelectedFiles->MdcaPoint( 0 ) ));     
-
-    if ( err )
-        {
-        // Dll may not be present
-        ShowErrorNoteL( R_SANIM_NOT_SUPPORTED );
-        return EFalse;
-        }           
-
-    if ( validity == KErrNoMemory )
-        {
-        // Pop up a Corrupted File message
-        CEikonEnv::Static()->HandleError( validity );
-        return EFalse;        
-        }   
-    else  if ( validity != KErrNone )
-        {
-        TInt resourceId = R_SANIM_ERROR_WRONG_FORMAT;
-        // Show information note
-        ShowErrorNoteL( resourceId );    
-        return EFalse;        
-        }
-
-    return valid;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CScreenSaverAnimPluginVerifier::ShowErrorNoteL
-// Displays the error note
-// -----------------------------------------------------------------------------
-//
-void CScreenSaverAnimPluginVerifier::ShowErrorNoteL( TInt  aResourceId  ) const
-    {
-    HBufC* errorText = 
-        iCoeEnv->AllocReadResourceLC( aResourceId );
-    CAknInformationNote* note = new( ELeave ) CAknInformationNote( EFalse );
-    note->ExecuteLD( *errorText );
-    CleanupStack::PopAndDestroy( errorText ); // errorText
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
-    const TUid aUid,
-    const TUint32 aKey,
-    CCenRepNotifyHandler::TCenRepKeyType aKeyType,
-    TCallBack aCallBack,
-    CRepository* aRepository )
-    {
-    CScreensaverRepositoryWatcher* self = new( ELeave ) 
-          CScreensaverRepositoryWatcher( aUid, aKey, aCallBack, aRepository );
-
-    CleanupStack::PushL( self );
-    self->ConstructL( aKeyType );
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher* CScreensaverRepositoryWatcher::NewL(
-    const TUid aUid,
-    TCallBack aCallBack,
-    CRepository* aRepository )
-    {
-    CScreensaverRepositoryWatcher* self = new( ELeave ) CScreensaverRepositoryWatcher(
-        aUid, NCentralRepositoryConstants::KInvalidNotificationId, aCallBack, aRepository );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::~CScreensaverRepositoryWatcher()
-    {
-    if ( iNotifyHandler )
-        {
-        iNotifyHandler->StopListening();
-        delete iNotifyHandler;      
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher
-// -----------------------------------------------------------------------------
-//
-CScreensaverRepositoryWatcher::CScreensaverRepositoryWatcher(
-    const TUid aUid,
-    const TUint32 aKey,
-    TCallBack aCallBack,
-    CRepository* aRepository )
-    :
-    iUid( aUid ), iKey( aKey ), iCallBack( aCallBack ), iRepository( aRepository )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
-    {
-    iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository, aKeyType, iKey );
-    iNotifyHandler->StartListeningL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::ConstructL()
-    {
-    iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository );
-    iNotifyHandler->StartListeningL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::ChangedKey
-// -----------------------------------------------------------------------------
-//
-TUint32 CScreensaverRepositoryWatcher::ChangedKey()
-    {
-    return iChangedKey;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyInt
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyInt( 
-                                    TUint32 aKey, TInt /*aNewValue*/ )
-    {
-    iChangedKey = aKey;
-    iCallBack.CallBack();
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyString
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyString( TUint32 aKey, 
-                                                     const TDesC16& /*aNewValue*/ )
-    {  
-    iChangedKey = aKey;
-    iCallBack.CallBack();
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyGeneric
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyGeneric(TUint32 aKey)
-    {
-    iChangedKey = aKey;
-    iCallBack.CallBack();
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CScreensaverRepositoryWatcher::HandleNotifyError
-// -----------------------------------------------------------------------------
-//
-void CScreensaverRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
-    {
-    }     
-
-// End of File