diff -r d0529222e3f0 -r bd874ee5e5e2 idlefw/plugins/profileplugin/src/caiprofileengine.cpp --- a/idlefw/plugins/profileplugin/src/caiprofileengine.cpp Fri Feb 19 23:07:29 2010 +0200 +++ b/idlefw/plugins/profileplugin/src/caiprofileengine.cpp Fri Mar 12 15:43:54 2010 +0200 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -124,7 +125,9 @@ iProfileNotifier->RequestActiveProfileNotificationsL( *this ); iProfileNotifier->RequestProfileNameArrayNotificationsL( *this ); - iProfileNotifier->RequestProfileActivationNotificationsL( *this ); + iProfileNotifier->RequestProfileActivationNotificationsL( *this ); + + DetermineTimedAndSilentStatesL(); } // ---------------------------------------------------------------------------- @@ -156,7 +159,30 @@ iResourceLoader.Close(); } + +// ---------------------------------------------------------------------------- +// CAiProfileEngine::DetermineTimedAndSilentStatesL() +// +// ---------------------------------------------------------------------------- +// +void CAiProfileEngine::DetermineTimedAndSilentStatesL() + { + iTimed = EFalse; + iSilent = EFalse; + MProfileEngine* engine = CreateProfileEngineL(); + + iTimed = engine->IsActiveProfileTimedL(); + + MProfile* profile = engine->ActiveProfileLC(); + + iSilent = profile->IsSilent(); + + CleanupStack::PopAndDestroy(); // profile + + engine->Release(); + } + // ---------------------------------------------------------------------------- // CAiProfileEngine::UpdateProfileNamesL() // @@ -371,13 +397,7 @@ // TBool CAiProfileEngine::IsActiveProfileSilentL() const { - MProEngProfile* profile( iProfileEngine->ActiveProfileLC() ); - - TBool silent( profile->IsSilent() ); - - CleanupStack::PopAndDestroy(); - - return silent; + return iSilent; } // ---------------------------------------------------------------------------- @@ -387,15 +407,7 @@ // TBool CAiProfileEngine::IsActiveProfileTimedL() const { - MProfileEngine* engine = CreateProfileEngineL(); - - TBool retval( EFalse ); - - TRAP_IGNORE( retval = engine->IsActiveProfileTimedL() ); - - engine->Release(); - - return retval; + return iTimed; } // ---------------------------------------------------------------------------- @@ -622,6 +634,8 @@ // void CAiProfileEngine::HandleActiveProfileModifiedL() { + DetermineTimedAndSilentStatesL(); + NotifyContentUpdate(); } @@ -642,6 +656,8 @@ // void CAiProfileEngine::HandleProfileActivatedL( TInt /*aProfileId*/ ) { + DetermineTimedAndSilentStatesL(); + NotifyContentUpdate(); }