--- a/src/screensavershareddatai.cpp Mon Jan 18 20:19:52 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,918 +0,0 @@
-/*
-* Copyright (c) 2003-2006 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 for screensaver shared data connections.
-*
-*/
-
-
-
-#include <msvids.h>
-#include <MProfileName.h> // Profile API, not yet included in .h
-#include <MProfileTones.h>
-#include <TProfileToneSettings.h>
-#include <centralrepository.h>
-#include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsUipInd, KLightsVTForcedLightsOn
-#include <activeidle2domainpskeys.h> // KPSUidAiInformation
-#include <settingsinternalcrkeys.h> // KSettingsScreenSaverPeriod
-#include <LogsDomainCRKeys.h> // KLogsNewMissedCalls
-#include <ScreensaverInternalCRKeys.h>
-#include <AvkonInternalCRKeys.h> // KAknNewContactsNoteActive
-#include <avkondomainpskeys.h> // KAknKeyguardStatus
-#include <ctsydomaincrkeys.h> // Message (voice) waiting status
-#include <startupdomainpskeys.h> // KPSGlobalSystemState
-#include <AknSkinsInternalCRKeys.h>
-#include <MProfileEngine.h> // Profile engine API
-#include <MProfile.h>
-#include <NcnListDomainCRKeys.h>
-
-#include "screensaverappui.h"
-#include "screensaverctrlmovingtext.h"
-#include "screensaverengine.h"
-#include "screensavershareddatai.h"
-#include "ScreensaverInternalPSKeys.h"
-#include "screensaverutility.h"
-#include "screensaverrepositorywatcher.h"
-#include "screensaversubscriber.h"
-
-const TInt KTimeoutDefault = 15; // seconds (also in GS)
-const TInt KTimeoutMin = 5; // minimum timeout in seconds (also in GS)
-
-// Screensaver "On/Off" status values
-const TInt KScreensaverOff = 0;
-const TInt KScreensaverOn = 1;
-
-// Screensaver activated from idle status values
-const TInt KScreensaverNotFromIdle = 0;
-const TInt KScreensaverStartedFromIdle = 1;
-
-// Screen saver text type.
-_LIT( KScreenSaverTypeText, "Text" );
-//Screensaver "None" (Sleep mode)
-_LIT( KScreenSaverTypeNone, "None" );
-
-// Define security policies for Screensavers property keys
-_LIT_SECURITY_POLICY_PASS(KSSPolicyPass);
-_LIT_SECURITY_POLICY_C1(KSSPolicyWriteUserData, ECapabilityWriteUserData);
-_LIT_SECURITY_POLICY_S0(KSSPolicyWriteSSOnly, 0x100056cf);
-
-//
-// CScreensaverSharedDataI
-//
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::NewL
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI* CScreensaverSharedDataI::NewL()
- {
- CScreensaverSharedDataI* self = new (ELeave) CScreensaverSharedDataI();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(); //self
- return self;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::~CScreensaverSharedDataI
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI::~CScreensaverSharedDataI()
- {
- // Release the active profile resources
- InvalidateActiveProfile();
-
- // Release the profile engine
- if (iProfileEngine)
- {
- // No need to delete pointer, just release resources
- iProfileEngine->Release();
- }
-
- delete iScreensaverRepositoryWatcher;
- delete iScreensaverRepository;
- delete iSettingsRepositoryWatcher;
- delete iSettingsRepository;
- delete iCTsyRepository;
- delete iInboxFolder;
- delete iMsvSession;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DisplayObjectType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverSharedDataI::DisplayObjectType() const
- {
- TInt type = 0;
-
- if (iScreensaverRepository)
- {
- iScreensaverRepository->Get( KScreenSaverObject, type );
- }
-
- return ( TDisplayObjectType )type;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetDisplayObjectType
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetDisplayObjectType( const TDisplayObjectType aType )
- {
- if( iScreensaverRepository )
- {
- iScreensaverRepository->Set(KScreenSaverObject, aType);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDisplayObjectText
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetDisplayObjectText( TDes& aDes ) const
- {
- CEikonEnv::Static()->ReadResource(aDes, R_SCREEN_SAVER_TEXT);
-
- if ( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverText, aDes );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::PluginName
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetPluginName( TFileName& aFileName ) const
- {
- if ( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverPluginName, aFileName );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ColorInversionUsed
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsInvertedColors() const
- {
- TInt colorInversionUsed(0);
-
- if( iScreensaverRepository )
- {
- iScreensaverRepository->Get( KScreenSaverInvertedColors, colorInversionUsed );
- }
-
- return ( colorInversionUsed != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverTimeout
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::ScreensaverTimeout() const
- {
- TInt timeout = KTimeoutDefault;
-
- if (iSettingsRepository)
- {
- iSettingsRepository->Get(KSettingsScreenSaverPeriod, timeout);
- }
- // No less than minimum timeout
- // Old backed up minutes 1-4 will cause default timeout after
- // being restored to new sw using seconds
- if (timeout < KTimeoutMin)
- {
- return KTimeoutDefault;
- }
-
- return timeout;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsNCNActive
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsNCNActive() const
- {
- // Setting the flag here is also needed, because Screensaver should not
- // display new calls when Ncn note has been cancelled (even if the missed
- // calls count is still nonzero).
- // Also, when the phone is (re)started, and there are missed calls,
- // Ncn will pop a note, This is the only way Screensaver knows about that.
-
- CRepository* avkonRepository = NULL;
-
- TRAP_IGNORE( avkonRepository = CRepository::NewL( KCRUidAvkon ) );
-
- TInt value = 0;
-
- if ( avkonRepository )
- {
- avkonRepository->Get( KAknNewContactsNoteActive, value );
- }
-
- delete avkonRepository;
-
- return ( value != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::NewMissedCalls
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::NewMissedCalls() const
- {
- CRepository* logsRepository = NULL;
-
- TRAP_IGNORE( logsRepository = CRepository::NewL( KCRUidLogs ) );
-
- TInt value = 0;
-
- if ( logsRepository )
- {
- logsRepository->Get( KLogsNewMissedCalls, value );
- }
-
- delete logsRepository;
-
- return value;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetSSForcedLightsOn
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetSSForcedLightsOn(TInt aSecs)
- {
- SCRLOGGER_WRITEF(_L("SCR: RequestLights(%d)"), aSecs);
-
- RProperty::Set( KPSUidCoreApplicationUIs, KLightsSSForcedLightsOn, aSecs );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverStatus
-// Indicate whether Screensaver is active or not
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverStatus( TBool aOn /* = ETrue */ )
- {
- //Check if the value is already updated. If so, setting the value again
- //will cause unnecessary call backs to any subscribers of this property
- if ( aOn )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOn );
- //else - no need to re-apply the same value
- }
- else //aOn is false
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverOff );
- //else - no need to re-apply the same value
-
- //if stop from idle, change the status
- RProperty::Set( KPSUidScreenSaver, KScreenSaverOn, KScreensaverNotFromIdle);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetSSStartedFromIdleStatus
-// Set "Screensaver started from Idle" status
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetSSStartedFromIdleStatus()
- {
- TInt idleState = EPSAiBackground;
- RProperty::Get(KPSUidAiInformation, KActiveIdleState, idleState);
-
- if (idleState == EPSAiBackground)
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverNotFromIdle );
- }
- else
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverActivatedFromIdle, KScreensaverStartedFromIdle );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsScreenSaverAllowed
-// Set "Screensaver started from Idle" status
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::IsScreenSaverAllowed() const
- {
- TInt value = 0;
-
- RProperty::Get( KPSUidScreenSaver, KScreenSaverAllowScreenSaver, value );
-
- return value;
- }
-
-TInt CScreensaverSharedDataI::ScreensaverPreviewMode() const
- {
- TInt value = 0;
-
- RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewMode, value );
-
- return value;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverPreviewMode
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverPreviewMode( const TInt aMode )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewMode, aMode );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverPreviewState
-// Get preview state
-// -----------------------------------------------------------------------------
-//
-TScreenSaverPreviewState CScreensaverSharedDataI::ScreensaverPreviewState() const
- {
- TInt state = EScreenSaverPreviewNone;
- RProperty::Get( KPSUidScreenSaver, KScreenSaverPreviewState, state );
-
- return ( TScreenSaverPreviewState ) state;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SetScreensaverPreviewState
-// Report preview state
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::SetScreensaverPreviewState(
- const TScreenSaverPreviewState aState )
- {
- RProperty::Set( KPSUidScreenSaver, KScreenSaverPreviewState, aState );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsKeyguardOn
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsKeyguardOn() const
- {
- // Report preview state
- TInt state = 0;
-
- RProperty::Get( KPSUidAvkonDomain, KAknKeyguardStatus, state );
-
- return ( state != 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsUsePowerSaveMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsUsePowerSaveMode() const
- {
- TInt state = 0;
-
- // Check if power save mode has been denied
- RProperty::Get( KPSUidScreenSaver, KScreenSaverNoPowerSaveMode, state );
-
- return ( state != 1 );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::SystemStartupComplete
-// Returns whether system startup has been completed
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::IsSystemStartupComplete()
- {
- if ( iStartupComplete == EFalse )
- {
- TInt startupState = -1;
- RProperty::Get( KPSUidStartup, KPSGlobalSystemState, startupState );
-
- switch (startupState)
- {
- case ESwStateNormalRfOn:
- case ESwStateNormalRfOff:
- case ESwStateNormalBTSap:
- iStartupComplete = ETrue;
- break;
- default:
- break;
- }
- }
- return iStartupComplete;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DefaultScreensaverType
-// -----------------------------------------------------------------------------
-//
-TDisplayObjectType CScreensaverSharedDataI::DefaultScreensaverType() const
- {
- return iDefaultType;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::UnreadMessagesNumber
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::UnreadMessagesNumber()
- {
- TInt numberOfUnreadMessages = 0;
- // Check how many unread messages there are in the In-box.
- if( !iInboxFolder )
- {
- TRAPD( err, ConnectToInboxL() );
- if (err != KErrNone)
- {
- return numberOfUnreadMessages;
- }
- }
-
- const TInt itemCount = iInboxFolder->Count();
- for ( TInt index = 0; index < itemCount; index++ )
- {
- const TMsvEntry entry = ( *iInboxFolder )[index];
- if ( entry.iType.iUid == KUidMsvMessageEntryValue && entry.Unread())
- {
- if( entry.Visible() )
- {
- numberOfUnreadMessages++;
- }
- }
- }
- return numberOfUnreadMessages;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ProfileName
-// -----------------------------------------------------------------------------
-const TDesC& CScreensaverSharedDataI::ProfileName()
- {
- // Get the active profile name from profile engine, not from
- // shareddata ( may not be up-to-date after phone restart )
-
- if ( ConnectToActiveProfile() )
- {
- // Ectract profile name
- const MProfileName& profileName = iActiveProfile->ProfileName();
-
- return ( profileName.Name() );
- }
-
- return KNullDesC;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ActiveProfile
-// -----------------------------------------------------------------------------
-TInt CScreensaverSharedDataI::ActiveProfile()
- {
- // Return the current profile Id
- TInt profileId = 0;
-
- // Connect to profile engine
- if ( ConnectToProfileEngine() )
- {
- profileId = iProfileEngine->ActiveProfileId();
- }
-
- return profileId;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewEmail
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewEmail() const
- {
- TInt state = 0;
- // Check the new email state from PubSub
- TInt error = RProperty::Get(
- KPSUidCoreApplicationUIs, KCoreAppUIsNewEmailStatus, state);
-
- SCRLOGGER_WRITEF(_L("SCR: QueryNewEmail state=%d error=%d"), state, error);
-
- if ( ( error == KErrNone ) && ( state == ECoreAppUIsNewEmail ) )
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewVoicemail
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewVoicemail() const
- {
- // Show the indicator, if either line has messages waiting
- if ( ( VoiceMailCount( KNcnVoiceMailCountInLine1 ) > 0 )
- || ( VoiceMailCount( KNcnVoiceMailCountInLine2 ) > 0 ) )
- {
- return ETrue;
- }
- else
- {
- return EFalse;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsHaveNewInstantMessages
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsHaveNewInstantMessages() const
- {
- TInt showValue = 0;
- TInt error = RProperty::Get(
- KPSUidCoreApplicationUIs, KCoreAppUIsUipInd, showValue);
-
- SCRLOGGER_WRITEF(_L("SCR: QueryNewInstantMessages state=%d error=%d"),
- showValue, error);
-
- return ( ( error == KErrNone ) && ( showValue == ECoreAppUIsShow ) );
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsSilentMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsSilentMode()
- {
- // Connect to active profile, and return silent mode status
- if (ConnectToActiveProfile())
- {
- return iActiveProfile->IsSilent();
- }
-
- return EFalse;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::IsVibraMode
-// -----------------------------------------------------------------------------
-TBool CScreensaverSharedDataI::IsVibraMode()
- {
- // Get the active profile name from profile engine, not from
- // shareddata (may not be up-to-date after phone restart)
- if (ConnectToActiveProfile())
- {
- // Extract profile vibra setting
- return iActiveProfile->ProfileTones().ToneSettings().iVibratingAlert;
- }
-
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleSessionEventL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::HandleSessionEventL(TMsvSessionEvent aEvent, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
- {
- switch (aEvent)
- {
- case EMsvCloseSession:
- case EMsvServerTerminated:
- delete iInboxFolder;
- iInboxFolder = NULL;
- delete iMsvSession;
- iMsvSession = NULL;
- break;
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleEntryEventL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::HandleEntryEventL(TMsvEntryEvent /*aEvent */, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
- {
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ScreensaverRepository
-// -----------------------------------------------------------------------------
-//
-CRepository* CScreensaverSharedDataI::ScreensaverRepository() const
- {
- return iScreensaverRepository;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::CScreensaverSharedDataI
-// -----------------------------------------------------------------------------
-//
-CScreensaverSharedDataI::CScreensaverSharedDataI()
- {
- iStartupComplete = EFalse;
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConstructL()
- {
- GetDefaultType();
- ConnectToSSCRL();
- ConnectToPslnSettingCRL();
- ConnectToCommonTsyCRL();
-
- // Define and publish "Screensaver is on" property
- // Read: pass, Write: Screensaver only
- DefineScreensaverProperties( KScreenSaverOn, KSSPolicyWriteSSOnly );
-
- // Define and publish "Screensaver activated from idle" property
- // Read: pass, Write: Screensaver only
- DefineScreensaverProperties( KScreenSaverActivatedFromIdle, KSSPolicyWriteSSOnly );
-
- // Define and attach "allow screensaver property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverAllowScreenSaver, KSSPolicyWriteUserData );
-
- // Define and attach "screensaver preview property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverPreviewMode, KSSPolicyWriteUserData );
-
- // Define and attach "screensaver preview state property"
- // Read: Readuserdata, Write: writeuserdata
- DefineScreensaverProperties( KScreenSaverPreviewState, KSSPolicyWriteUserData );
-
- // Define and initialize "current plugin settings changed" property
- // Read: pass, Write: pass
- DefineScreensaverProperties( KScreenSaverPluginSettingsChanged, KSSPolicyPass );
-
- // Define and initialize "no power save mode" property
- // Read: pass, Write: pass
- DefineScreensaverProperties( KScreenSaverNoPowerSaveMode, KSSPolicyPass );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToSSCR
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToSSCRL()
- {
- iScreensaverRepository = CRepository::NewL( KCRUidScreenSaver );
-
- if( iScreensaverRepository )
- iScreensaverRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidScreenSaver,
- TCallBack( HandleDisplayObjChanged, this ),
- iScreensaverRepository );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToPslnSettingCRL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToPslnSettingCRL()
- {
- TRAPD(ret, iSettingsRepository = CRepository::NewL(KCRUidPersonalizationSettings));
-
- if( ret == KErrNone )
- {
- iSettingsRepositoryWatcher = CScreensaverRepositoryWatcher::NewL(
- KCRUidPersonalizationSettings,
- KSettingsScreenSaverPeriod,
- CCenRepNotifyHandler::EIntKey,
- TCallBack(HandleTimeoutChanged, this),
- iSettingsRepository);
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToCommonTsyCRL
-// Connects to common tsy central repository
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToCommonTsyCRL()
- {
- iCTsyRepository = CRepository::NewL( KCRUidCtsyMessageWaitingIndicator );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToInboxL
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ConnectToInboxL()
- {
- if (!iMsvSession)
- {
- iMsvSession = CMsvSession::OpenSyncL( *this );
- }
- iInboxFolder = iMsvSession->GetEntryL( KMsvGlobalInBoxIndexEntryId );
-
- TMsvSelectionOrdering ordering = iInboxFolder->SortType();
- ordering.SetShowInvisibleEntries( EFalse );
- iInboxFolder->SetSortTypeL( ordering );
-
- iInboxFolder->AddObserverL( *this );
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ConnectToProfileEngine
-// Connect to Profile engine. Returns ETrue if successfully connected
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::ConnectToProfileEngine()
- {
- // Check if already connected
- if ( iProfileEngine )
- {
- // Done
- return ETrue;
- }
- // The member variable is also used to indicate successful
- // connection, hence a pointer instead of just RSystemAgent
- TRAPD( err, ( iProfileEngine = CreateProfileEngineL() ) );
-
- if ( err != KErrNone )
- {
- // Something went wrong on allocation
- iProfileEngine = NULL;
- return EFalse;
- }
-
- // Successfully connected
- return ETrue;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ClearPreviewFlag
-// Connect to current active Profile. Returns ETrue if successfully connected
-// -----------------------------------------------------------------------------
-//
-TBool CScreensaverSharedDataI::ConnectToActiveProfile()
- {
- InvalidateActiveProfile();
-
- if ( ConnectToProfileEngine() )
- {
- TRAPD( err, ( iActiveProfile = iProfileEngine->ActiveProfileL() ) );
- if ( ( err == KErrNone ) && ( iActiveProfile ) )
- {
- return ETrue;
- }
- }
- return EFalse;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::DefineScreensaverProperties
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::DefineScreensaverProperties(
- TUint32 aKey, const TSecurityPolicy& aWritePolicy )
- {
- RProperty::Define(
- KPSUidScreenSaver,
- aKey,
- RProperty::EInt,
- KSSPolicyPass,
- aWritePolicy );
-
- RProperty::Set( KPSUidScreenSaver, aKey, 0);
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleTimeoutChanged
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::HandleTimeoutChanged(TAny* aPtr)
- {
- STATIC_CAST(CScreensaverSharedDataI*, aPtr)->ResetInactivityTimeout();
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::ResetInactivityTimeout
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::ResetInactivityTimeout()
- {
- AppUi()->Model().ResetInactivityTimeout();
- }
-
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::HandleDisplayObjChanged
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::HandleDisplayObjChanged(TAny* aPtr)
- {
- CScreensaverSharedDataI* self = STATIC_CAST(CScreensaverSharedDataI*, aPtr);
-
- self->AppUi()->ScreensaverView()->SetDisplayObject( self->DisplayObjectType() );
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDefaultType
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::GetDefaultType()
- {
- //Store the default screensaver for this device
- TBuf<16> screensaverName;
-
- TInt error = GetDefaultTypeString( screensaverName );
-
- if ( KErrNone == error )
- {
- if ( screensaverName.CompareF( KScreenSaverTypeNone ) == 0 )
- {
- iDefaultType = EDisplayNone;
- }
- else if ( screensaverName.CompareF( KScreenSaverTypeText ) == 0 )
- {
- iDefaultType = EDisplayText;
- }
- else //go back to the "old" option, ie - Date type
- {
- iDefaultType = EDisplayTime;
- }
- }
-
- iDefaultType = EDisplayTime;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::GetDefaultTypeString
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::GetDefaultTypeString( TDes& DefaultScreenSaver )
- {
- CRepository* skinsRepository = NULL;
- TRAP_IGNORE( skinsRepository = CRepository::NewL( KCRUidPersonalisation ) );
-
- TInt error = skinsRepository->Get( KPslnSystemDefaultScreenSaver,
- DefaultScreenSaver );
-
- delete skinsRepository;
-
- return error;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::VoiceMailCount
-// -----------------------------------------------------------------------------
-//
-TInt CScreensaverSharedDataI::VoiceMailCount( const TUint32 aKey ) const
- {
- TInt line(0);
- TInt error = KErrNone;
-
- error = iCTsyRepository->Get( aKey, line );
-
- if( error != KErrNone )
- {
- line = 0;
- }
-
- return line;
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::InvalidateActiveProfile
-// Invalidate the cached active profile, so that next call to ConnectToActiveProfile
-// will use the newest profile data (in case it has changed)
-// -----------------------------------------------------------------------------
-//
-void CScreensaverSharedDataI::InvalidateActiveProfile()
- {
- if (iActiveProfile)
- {
- iActiveProfile->Release();
- iActiveProfile = NULL;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CScreensaverSharedDataI::AppUi
-// -----------------------------------------------------------------------------
-//
-CScreensaverAppUi *CScreensaverSharedDataI::AppUi() const
- {
- return STATIC_CAST( CScreensaverAppUi*, CCoeEnv::Static()->AppUi() );
- }
-// End of file.