customization/ScreenSaverAdapter/src/ScreenSaverList.cpp
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/customization/ScreenSaverAdapter/src/ScreenSaverList.cpp	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,943 +0,0 @@
-/*
-* Copyright (c) 2002 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:  DM ScreenSaver List
-*
-*/
-
-
-#include "ScreenSaverList.h"
-
-#include <implementationproxy.h> // For TImplementationProxy definition
-#include <e32def.h>
-#include <centralrepository.h>
-#include <ScreensaverpluginIntDef.h>
-#include <mmfcontrollerpluginresolver.h> // For CleanupResetAndDestroyPushL
-#include "aminstalloptions.h"
-#include <ScreensaverInternalCRKeys.h>
-#include <ScreensaverInternalPSKeys.h>
-#include "debug.h"
-#include "ScreenSaverClient.h"
-#include <e32property.h>
-_LIT8( KSlash, "/" );
-#include <e32cmn.h>
-_LIT( KPslnScreenSaverTypeDateTime, "DateTime" );
-_LIT( KPslnScreenSaverTypeText, "Text" );
-
-const TInt KPslnMaxNumberOfScreenSaverText  = 15;
-const TInt KPostTimeOut = 10000000; // 10 seconds
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverList* CScreenSaverList::NewL( )
-// ------------------------------------------------------------------------------------------------
-CScreenSaverList* CScreenSaverList::NewL( )
-	{
-	RDEBUG("CScreenSaverList::NewL(): begin");
-
-	CScreenSaverList* self = NewLC( );
-	CleanupStack::Pop();
-	return self;
-	}
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverList* CScreenSaverList::NewLC( )
-// ------------------------------------------------------------------------------------------------
-CScreenSaverList* CScreenSaverList::NewLC( )
-	{
-	CScreenSaverList* self = new( ELeave ) CScreenSaverList( );
-	CleanupStack::PushL( self );
-	self->ConstructL( );
-	return self;
-	}
-
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverList::CScreenSaverList()
-// ------------------------------------------------------------------------------------------------
-CScreenSaverList::CScreenSaverList(  )
-	: iDirty( ETrue )
-    , iScreenSavers( 0 )
-	, iInstallOptions()
-	{
-	GetDefaultInstallOptions( iInstallOptions );
-	}
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverList::ConstructL()
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverList::ConstructL(  )
-	{
-	}
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverList::~CScreenSaverList()
-// ------------------------------------------------------------------------------------------------
-CScreenSaverList::~CScreenSaverList()
-	{
-	if (iScreenSavers)
-		{
-		iScreenSavers->ResetAndDestroy();
-		delete iScreenSavers;
-		}
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetScreenSaverListL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetScreenSaverListL( const CArrayFix<TSmlDmMappingInfo>& aPreviousList, CBufBase& aList )
-	{
-	CheckUpdatesL();
-
-	CDesC8ArrayFlat* names = new (ELeave) CDesC8ArrayFlat( 32 );
-	CleanupStack::PushL( names );
-
-	CDesC8ArrayFlat* luids = new (ELeave) CDesC8ArrayFlat( 32 );
-	CleanupStack::PushL( luids );
-
-	TInt i = 0;
-
-	// Create list of previous screen savers
-	for (i = 0 ; i < aPreviousList.Count() ; i++)
-		{
-		TPtrC8 screenSaverId = ScreenSaverIdFromLUID( aPreviousList[i].iURISegLUID );
-
-		names->AppendL( aPreviousList[i].iURISeg );
-		luids->AppendL( screenSaverId );
-		}
-
-	// Find and add missing screen savers
-	for (i = 0 ; i < iScreenSavers->Count() ; i++)
-		{
-		TInt idx = 0;
-		TPtrC8 name = (*iScreenSavers)[i]->Id();
-		if (luids->Find( name, idx ) != 0)
-			{
-			// not found
-			// Check that current "name" is not in use
-			if (names->Find( name, idx ) != 0)
-				{
-				// not found, add it
-				names->AppendL( name );
-				}
-			}
-		}
-
-
-	// Fill result
-	for (i = 0 ; i < names->Count() ; i++)
-		{
-		if (i > 0)
-			{
-			aList.InsertL( aList.Size(), KSlash );
-			}
-		aList.InsertL( aList.Size(), (*names)[i] );
-		}
-
-	// Cleanup
-	CleanupStack::PopAndDestroy( luids );
-	CleanupStack::PopAndDestroy( names );
-
-	return MSmlDmAdapter::EOk;
-
-//sf-	TInt i = 0;
-//sf-	for (i = 0 ; i < iScreenSavers->Count() ; i++)
-//sf-		{
-//sf-		if (i > 0)
-//sf-			{
-//sf-			aList.InsertL( aList.Size(), KSlash );
-//sf-			}
-//sf-
-//sf-	    CScreenSaverInfo *info = (*iScreenSavers)[i];
-//sf-		aList.InsertL( aList.Size(), info->Id() );
-//sf-		}
-//sf-
-//sf-
-//sf-	return MSmlDmAdapter::EOk;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetIdL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetIdL( const TDesC8& aId, CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		aResult.InsertL( aResult.Size(), screenSaverInfo->Id() );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetNameL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetNameL( const TDesC8& aId, CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		aResult.InsertL( aResult.Size(), screenSaverInfo->Name() );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetNameL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetNameL( const TDesC8& aId, const TDesC8& aData )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		screenSaverInfo->SetNameL( aData );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetDescriptionL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetDescriptionL( const TDesC8& aId, CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		aResult.InsertL( aResult.Size(), screenSaverInfo->Description() );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetDescriptionL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetDescriptionL( const TDesC8& aId, const TDesC8& aData )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		screenSaverInfo->SetDescriptionL( aData );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetCustomPropertyL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetCustomPropertyL( const TDesC8& aId, CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		aResult.InsertL( aResult.Size(), screenSaverInfo->CustomProperty() );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetCustomPropertyL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetCustomPropertyL( const TDesC8& aId, const TDesC8& aData )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		screenSaverInfo->SetCustomPropertyL( aData );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetVersionL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetVersionL( const TDesC8& aId, CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		aResult.InsertL( aResult.Size(), screenSaverInfo->Version() );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetVersionL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetVersionL( const TDesC8& aId, const TDesC8& aVersion )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::ENotFound;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		screenSaverInfo->SetVersionL( aVersion );
-		ret = MSmlDmAdapter::EOk;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetActiveL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::GetActiveL( CBufBase& aResult )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::EOk;
-
-    TInt screenSaverTypeId = 0; // Text
-    TFileName screenSaverFileName;
-
-    CRepository* repository = CRepository::NewLC( KCRUidScreenSaver );
-    TInt error = repository->Get( KScreenSaverObject, screenSaverTypeId );
-
-    if( error == KErrNone )
-    	{
-		if( screenSaverTypeId == 0 ) // Text
-	        {
-			screenSaverFileName = KPslnScreenSaverTypeText;
-	        }
-	    else if( screenSaverTypeId == 1 ) // Date&time
-	        {
-			screenSaverFileName = KPslnScreenSaverTypeDateTime;
-	        }
-		else if( screenSaverTypeId == 3 )// Object
-			{
-			error = repository->Get( KScreenSaverPluginName, screenSaverFileName );
-			}
-		else
-			{
-			error = KErrUnknown;
-			}
-    	}
-
-    CleanupStack::PopAndDestroy( repository );
-
-    if( error == KErrNone )
-    	{
-		TBuf8<KMaxFileName> screenSaverFileName8;
-		screenSaverFileName8.Copy( screenSaverFileName );
-
-		aResult.InsertL( aResult.Size(), screenSaverFileName8 );
-    	}
-    else
-    	{
-    	ret = MSmlDmAdapter::EError;
-    	}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetActiveL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetActiveL( const TDesC8& aId )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::EOk;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aId );
-	if (screenSaverInfo != 0)
-		{
-		screenSaverInfo->ActivateL();
-		}
-	else
-		{
-		ret = MSmlDmAdapter::EError;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::SetInstallOptionsL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::SetInstallOptionsL( const TDesC8& aOptions )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::EOk;
-	TInt errCode = KErrNone;
-
-	GetDefaultInstallOptions( iInstallOptions );
-
-	if (aOptions.Length() > 0)
-		{
-		TRAP( errCode, InstallOptionsParser::ParseOptionsL( aOptions, iInstallOptions ) );
-		}
-	if (errCode != KErrNone)
-		{
-		ret = MSmlDmAdapter::EError;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::InstallL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::InstallL( const TDesC& aFileName )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::EOk;
-	TInt errCode = KErrNone;
-
-	iDirty = ETrue;
-
-	// Install using options if given and otherwise with default options
-	SwiUI::RSWInstLauncher installer;
-	User::LeaveIfError( installer.Connect() );
-	CleanupClosePushL( installer );
-
-	SwiUI::TInstallOptionsPckg optPckg( iInstallOptions );
-	errCode = installer.SilentInstall( aFileName, optPckg );
-	CleanupStack::PopAndDestroy( &installer );
-
-	if (errCode != KErrNone)
-		{
-		ret = MSmlDmAdapter::EError;
-		}
-
-	return ret;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::DeleteL()
-// ------------------------------------------------------------------------------------------------
-MSmlDmAdapter::TError CScreenSaverList::DeleteL( const TDesC8& aLUID )
-	{
-	MSmlDmAdapter::TError ret = MSmlDmAdapter::EOk;
-	TInt errCode = KErrNone;
-
-	CScreenSaverInfo* screenSaverInfo = FindByIdL( aLUID );
-	if( screenSaverInfo != NULL )
-		{
-	    CRepository* repository = CRepository::NewLC( KCRUidScreenSaver );
-
-	    if( screenSaverInfo->TypeId() == CScreenSaverInfo::EObject )
-	        {
-		    TFileName screenSaverFileName;
-		    screenSaverFileName.Copy( screenSaverInfo->FileName() );
-		    
-		    TFileName repFileName;
-			repository->Get( KScreenSaverPluginName, repFileName );
-			if( repFileName == screenSaverFileName )
-				{
-				TBuf<KPslnMaxNumberOfScreenSaverText> screenText;
-				screenText.Copy( screenSaverInfo->CustomProperty() );
-		        errCode = repository->Set( KScreenSaverText, screenText );
-				errCode = repository->Set( KScreenSaverObject, CScreenSaverInfo::EText );  
-				
-				TRequestStatus timeoutStatus /*= KRequestPending*/;
-				RTimer timeout;
-				User::LeaveIfError( timeout.CreateLocal() );
-				CleanupClosePushL( timeout );
-				timeout.After( timeoutStatus, KPostTimeOut );
-
-				User::WaitForRequest( timeoutStatus );
-
-				if( timeoutStatus.Int() == KRequestPending)
-					{
-					timeout.Cancel();
-					User::WaitForRequest( timeoutStatus );
-					}
-				CleanupStack::PopAndDestroy( &timeout );
-				     
-				}
-	        }
-	    CleanupStack::PopAndDestroy( repository );
-		
-		}
-	else
-		{
-		errCode = KErrNotFound;
-		}
-
-	if( errCode == KErrNone )
-		{
-		iDirty = ETrue;
-
-		TUint pkgUid = 0;
-		TLex8 parser( aLUID );
-		if ((parser.Get() == '[') &&
-			(parser.Val( pkgUid, EHex ) == KErrNone) &&
-			(parser.Get() == ']'))
-			{
-			// Uninstall silent
-			SwiUI::RSWInstLauncher installer;
-			User::LeaveIfError( installer.Connect() );
-			CleanupClosePushL( installer );
-
-			SwiUI::TUninstallOptions uninstallOptions;
-			SwiUI::TUninstallOptionsPckg optPckg( uninstallOptions );
-
-			errCode = installer.SilentUninstall( TUid::Uid( pkgUid ), optPckg, SwiUI::KSisxMimeType() );
-
-			CleanupStack::PopAndDestroy( &installer );
-			}
-		}
-		
-	if (errCode == KErrNotFound)
-		{
-		ret = MSmlDmAdapter::ENotFound;
-		}
-	else if (errCode != KErrNone)
-		{
-		ret = MSmlDmAdapter::EError;
-		}
-
-	return ret;
-	}
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-//
-// Internal methods
-//
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::CheckUpdatesL()
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverList::CheckUpdatesL()
-	{
-	if (iDirty)
-		{
-		LoadL();
-		iDirty = EFalse;
-		}
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::LoadL()
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverList::LoadL()
-	{
-	CScreenSaverInfo* entry = 0;
-    // Add descriptors for system screensavers
-    delete iScreenSavers;
-    iScreenSavers = 0;
-    iScreenSavers = new (ELeave) CArrayPtrFlat< CScreenSaverInfo >( 8 );
-
-	entry = CScreenSaverInfo::NewLC( KPslnScreenSaverTypeDateTime );
-    iScreenSavers->AppendL( entry );
-    CleanupStack::Pop( entry );
-
-	entry = CScreenSaverInfo::NewLC( KPslnScreenSaverTypeText );
-    iScreenSavers->AppendL( entry );
-    CleanupStack::Pop( entry );
-
-    // The path variable is not used
-    // The signature of this function could be changed in later releases
-    LoadPluginsL( KNullDesC );
-//sf-    LoadPluginsL( KPslnScreensaverPathROM );
-//sf-    LoadPluginsL( KPslnScreensaverPathLFFS );
-//sf-    LoadPluginsL( KPslnScreensaverPathMMC );
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::LoadPluginsL()
-// ------------------------------------------------------------------------------------------------
-TBool CScreenSaverList::LoadPluginsL( const TDesC& /*aPath*/ )
-	{
-	RDEBUG(" CScreenSaverList: LoadPluginsL ... <");
-    TBool found = EFalse;
-    
-    RScreenSaverClient ssClient;
-    
-    User::LeaveIfError( ssClient.Connect() );
-	CleanupClosePushL( ssClient );
-	
-	RSSListInfoPtrArray sslistinfo;
-	CleanupResetAndDestroyPushL( sslistinfo );
-	
-	ssClient.GetScreenSaverListInfoL(sslistinfo );
-	const TInt count = sslistinfo.Count();
-	RDEBUG_2(" CScreenSaverList: LoadPluginsL : SScount is :%d",count);
-	
-	for( TInt i = 0 ; i < count ; i++ )
-        {
-        CScreenSaverListInfo* implInfo = sslistinfo[i];
-        
-		CScreenSaverInfo* entry = CScreenSaverInfo::NewLC(
-		implInfo->ImplementationUid().Name() );
-		entry->SetNameL( implInfo->DisplayName() );
-
-		TBuf8<20> version;
-		version.Num( implInfo->Version() );
-		entry->SetVersionL( version );
-		entry->SetCustomPropertyL( implInfo->OpaqueData() );
-
-		iScreenSavers->AppendL( entry );
-		CleanupStack::Pop( entry );
-
-        found = ETrue;
-        }
-	
-	CleanupStack::PopAndDestroy( &sslistinfo );
-	CleanupStack::PopAndDestroy( &ssClient );
-	RDEBUG(" CScreenSaverList: LoadPluginsL ... >");
-	return found;
-    }
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo* CScreenSaverList::FindByIdL( const TDesC8& aId )
-	{
-	CheckUpdatesL();
-
-	CScreenSaverInfo* entry = 0;
-	TInt i = 0;
-	TPtrC8 id = ScreenSaverIdFromLUID( aId );
-	if (id.Length() == 0)
-		{
-		id.Set( aId );
-		}
-
-	for (i = 0 ; i < iScreenSavers->Count() ; i++)
-		{
-		if (id == (*iScreenSavers)[i]->Id())
-			{
-			entry = (*iScreenSavers)[i];
-			break;
-			}
-		}
-
-	return entry;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::ScreenSaverIdFromLUID()
-// ------------------------------------------------------------------------------------------------
-TPtrC8 CScreenSaverList::ScreenSaverIdFromLUID( const TDesC8& aLUID )
-	{
-	TInt pos = aLUID.Locate( KPkgId_ScrId_Separator );
-	if (pos == KErrNotFound)
-		{
-		pos = aLUID.Length() - 1;
-		}
-	return aLUID.Mid( pos + 1 );
-	}
-
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::GetDefaultInstallOptions()
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverList::GetDefaultInstallOptions( SwiUI::TInstallOptions &aOptions )
-	{
-	SwiUI::TInstallOptions defaultOptions;
-
-	// Return options
-	aOptions = defaultOptions;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverList::
-// ------------------------------------------------------------------------------------------------
-
-//=================================================================================================
-//=================================================================================================
-//====
-//==== CScreenSaverInfo
-//====
-//=================================================================================================
-//=================================================================================================
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::NewL()
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo* CScreenSaverInfo::NewL( const TDesC& aId )
-	{
-	RDEBUG("CScreenSaverInfo::NewL(): begin");
-
-	CScreenSaverInfo* self = NewLC( aId );
-	CleanupStack::Pop();
-	return self;
-	}
-
-// ------------------------------------------------------------------------------------------------
-// CScreenSaverInfo* CScreenSaverInfo::NewLC()
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo* CScreenSaverInfo::NewLC( const TDesC& aId )
-	{
-	CScreenSaverInfo* self = new( ELeave ) CScreenSaverInfo( );
-	CleanupStack::PushL( self );
-	self->ConstructL( aId );
-	return self;
-	}
-
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo::CScreenSaverInfo()
-	: iId( 0 )
-	, iName( 0 )
-	, iDescription( 0 )
-	, iCustomProperty( 0 )
-	, iVersion( 0 )
-	{
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::ConstructL( const TDesC& aId )
-	{
-	iId = HBufC8::NewL( aId.Length() );
-	iId->Des().Copy( aId );
-	iName = KNullDesC8().AllocL();
-	iDescription = KNullDesC8().AllocL();
-	iCustomProperty = KNullDesC8().AllocL();
-	iVersion = KNullDesC8().AllocL();
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo::~CScreenSaverInfo()
-	{
-	delete iId;
-	delete iName;
-	delete iDescription;
-	delete iCustomProperty;
-	delete iVersion;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::Id()
-	{
-	return *iId;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::Name()
-	{
-	return *iName;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::SetNameL( const TDesC8& aName )
-	{
-	delete iName;
-	iName = 0;
-	iName = aName.AllocL();
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::SetNameL( const TDesC& aName )
-	{
-	delete iName;
-	iName = 0;
-	iName = HBufC8::NewL( aName.Length() );
-	iName->Des().Copy( aName );
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::Description()
-	{
-	return *iDescription;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::SetDescriptionL( const TDesC8& aDescription )
-	{
-	delete iDescription;
-	iDescription = 0;
-	iDescription = aDescription.AllocL();
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::CustomProperty()
-	{
-	return *iCustomProperty;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::SetCustomPropertyL( const TDesC8& aCustomProperty )
-	{
-	delete iCustomProperty;
-	iCustomProperty = 0;
-	iCustomProperty = aCustomProperty.AllocL();
-	// Update settings if needed
-	if (IsActivatedL() && TypeId() == EText)
-		{
-		ActivateL();
-		}
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::Version()
-	{
-	return *iVersion;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::SetVersionL( const TDesC8& aVersion )
-	{
-	delete iVersion;
-	iVersion = 0;
-	iVersion = aVersion.AllocL();
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-CScreenSaverInfo::TScreenSaverType CScreenSaverInfo::TypeId()
-	{
-	TScreenSaverType screenSaverTypeId = EText;
-	TFileName fileName;
-	fileName.Copy( FileName() );
-
-    if( fileName.CompareF( KPslnScreenSaverTypeText ) == 0 )
-        {
-        screenSaverTypeId = EText; // 0=Text
-        }
-    else if( fileName.CompareF( KPslnScreenSaverTypeDateTime ) == 0 )
-        {
-        screenSaverTypeId = EDateTime; // 1=Date&time
-        }
-	else
-		{
-		screenSaverTypeId = EObject; // 3=Object
-		}
-
-	return screenSaverTypeId;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-TBool CScreenSaverInfo::IsActivatedL()
-	{
-	TBool activated = EFalse;
-
-    TInt screenSaverTypeId = 0; // Text
-    TFileName screenSaverFileName;
-
-    CRepository* repository = CRepository::NewLC( KCRUidScreenSaver );
-
-    TInt error = repository->Get( KScreenSaverObject, screenSaverTypeId );
-    if( screenSaverTypeId == 3 )
-        {
-		repository->Get( KScreenSaverPluginName, screenSaverFileName );
-        }
-    CleanupStack::PopAndDestroy( repository );
-
-    if( screenSaverTypeId == 0 && TypeId() == EText ) // Text
-        {
-		activated = ETrue;
-        }
-    else if( screenSaverTypeId == 1 && TypeId() == EDateTime ) // Date&time
-        {
-		activated = ETrue;
-        }
-	else if( screenSaverTypeId == 3 && TypeId() == EObject )// Object
-		{
-		TFileName fileName;
-		fileName.Copy( FileName() );
-		activated = ( fileName.CompareF( screenSaverFileName ) == 0 );
-		}
-
-	return activated;
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-void CScreenSaverInfo::ActivateL()
-	{
-    CRepository* repository = CRepository::NewLC( KCRUidScreenSaver );
-
-
-	if( TypeId() == EText )
-        {
-		TBuf<KPslnMaxNumberOfScreenSaverText> screenText;
-		screenText.Copy( CustomProperty() );
-        repository->Set( KScreenSaverText, screenText );
-        }
-	else if( TypeId() == EDateTime )
-        {
-//sf-		TBuf<KPslnMaxNumberOfScreenSaverText> screenText;
-//sf-		screenText.Copy( CustomProperty() );
-//sf-        error = repository->Set( KScreenSaverText, screenText );
-        }
-    else if( TypeId() == EObject )
-        {
-	    TFileName screenSaverFileName;
-	    screenSaverFileName.Copy( FileName() );
-		repository->Set( KScreenSaverPluginName, screenSaverFileName );
-        }
-    repository->Set( KScreenSaverObject, TypeId() );
-    CleanupStack::PopAndDestroy( repository );
-	}
-
-// ------------------------------------------------------------------------------------------------
-//  CScreenSaverInfo::
-// ------------------------------------------------------------------------------------------------
-const TDesC8& CScreenSaverInfo::FileName()
-	{
-	return *iId;
-	}
-
-// ------------------------------------------------------------------------------------------------
-// EOF
-// ------------------------------------------------------------------------------------------------