profilesapplication/Profiles/ProfilesGSTonesPlugin/src/CProfilesGSTonesPluginSettingsHandler.cpp
branchRCL_3
changeset 18 b7fa36b488f8
parent 17 861562a14a53
child 19 cd54903d48da
--- a/profilesapplication/Profiles/ProfilesGSTonesPlugin/src/CProfilesGSTonesPluginSettingsHandler.cpp	Thu Aug 19 09:55:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +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:  Settings handler for the settings outside of Profiles.
-*
-*/
-
-
-
-// CLASS HEADER
-#include "CProfilesGSTonesPluginSettingsHandler.h"
-
-// INTERNAL INCLUDES
-#include "CProfilesGSTonesPluginFileListSettingItem.h"
-#include "ProfilesGSTonesPlugin.hrh"
-#include "ProfilesDebug.h"
-
-// INCLUDES FROM PROFILES SETTINGS VIEW
-#include <ProfilePanics.h>
-#include <ProfileSettingsView.hrh>
-#include <MProfileExternalSettingsObserver.h>
-
-// SYSTEM INCLUDES
-#include <centralrepository.h>
-#include <CalendarInternalCRKeys.h>
-#include <ClockDomainCRKeys.h>
-#include <ProfileEngineDomainCRKeys.h>
-#include <CoeHelp.h>
-#include <csxhelp/mode.hlp.hrh>
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::CProfilesGSTonesPluginSettingsHandler
-// C++ constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CProfilesGSTonesPluginSettingsHandler::CProfilesGSTonesPluginSettingsHandler(
-        CCoeEnv* aCoeEnv )
-    : iCoeEnv( aCoeEnv )
-    {
-    }
-
-// Destructor
-CProfilesGSTonesPluginSettingsHandler::~CProfilesGSTonesPluginSettingsHandler()
-    {
-    DrmDelete();
-	if( iClockNotifyHandler )
-		{
-		iClockNotifyHandler->StopListening();
-		}
-	if( iCalendarNotifyHandler )
-		{
-		iCalendarNotifyHandler->StopListening();
-		}
-
-    delete iClockNotifyHandler;
-    delete iCalendarNotifyHandler;
-
-    delete iClockSession;
-    delete iCalendarSession;
-    delete iCalendarInterface;
-    delete iClockInterface;
-
-    delete iTonesViewSettings;
-    delete iFeatures;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::ConstructL()
-    {
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::ConstructL begin" );
-    iFeatures = CProfilesGSTonesViewFeatures::NewL();
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::ConstructL after features" );
-    iTonesViewSettings = CProfilesGSTonesViewSettings::NewL( *iFeatures );
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::ConstructL after settings" );
-
-    iClockSession = CRepository::NewL( KCRUidClockApp );
-    iCalendarSession = CRepository::NewL( KCRUidCalendar );
-
-	iClockNotifyHandler = CCenRepNotifyHandler::NewL( *this,
-            *iClockSession,
-            CCenRepNotifyHandler::EStringKey,
-            KClockAppSoundFile );
-
-    iClockNotifyHandler->StartListeningL();
-
-	iCalendarNotifyHandler = CCenRepNotifyHandler::NewL( *this,
-            *iCalendarSession,
-            CCenRepNotifyHandler::EStringKey,
-            KCalendarSoundFile );
-
-    iCalendarNotifyHandler->StartListeningL();
-
-    User::LeaveIfError( iClockSession->Get( KClockAppSoundFile, iClockTone ) );
-    User::LeaveIfError( iCalendarSession->Get( KCalendarSoundFile,
-                                               iCalendarTone ) );
-    DrmConstructL();
-
-    iCalendarInterface =
-        new ( ELeave ) CProfilesGSTonesPluginCalendarDataInterface( *this );
-    iClockInterface =
-        new ( ELeave ) CProfilesGSTonesPluginClockDataInterface( *this );
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::ConstructL end" );
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::NewL
-// -----------------------------------------------------------------------------
-//
-CProfilesGSTonesPluginSettingsHandler*
-        CProfilesGSTonesPluginSettingsHandler::NewL( CCoeEnv* aCoeEnv )
-    {
-    CProfilesGSTonesPluginSettingsHandler* self = new ( ELeave )
-        CProfilesGSTonesPluginSettingsHandler( aCoeEnv );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::CreateSettingItemL
-// -----------------------------------------------------------------------------
-//
-CAknSettingItem* CProfilesGSTonesPluginSettingsHandler::CreateSettingItemL(
-        TInt aIdentifier )
-    {
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::CreateSettingItemL(%d) begin",aIdentifier );
-    TFileName defaultToneFile;
-    CAknSettingItem* item = NULL;
-
-    switch( aIdentifier )
-        {
-        case EProfileGSTonesPluginSettingCalendarToneId:
-            {
-            User::LeaveIfError( iCalendarSession->Get( KCalendarDefaultSoundFile,
-                                                       defaultToneFile ) );
-            item = new ( ELeave ) CProfilesGSTonesPluginFileListSettingItem(
-                   aIdentifier, defaultToneFile, iCoeEnv, *iCalendarInterface );
-            break;
-            }
-        case EProfileGSTonesPluginSettingClockToneId:
-            {
-            User::LeaveIfError( iClockSession->Get( KClockAppDefaultSoundFile,
-                                                    defaultToneFile ) );
-            item = new ( ELeave ) CProfilesGSTonesPluginFileListSettingItem(
-                   aIdentifier, defaultToneFile, iCoeEnv, *iClockInterface );
-                   
-            break;
-            }
-        case EProfileGSTonesPluginSettingHacModeId:
-            {
-            item = new( ELeave ) CAknBinaryPopupSettingItem(
-                aIdentifier, iTonesViewSettings->iHac );
-            break;
-            }
-        default:
-            {
-            User::Panic( KProfilePanicText, EProfilePanicInvalidSettingItemId );
-            break;
-            }
-        }
-
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::CreateSettingItemL(%d) end",aIdentifier );
-    return item;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::SetObserver
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::SetObserver(
-        MProfileExternalSettingsObserver& aObserver )
-    {
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::SetObserver" );
-    iObserver = &aObserver;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::AllowedToChange
-// -----------------------------------------------------------------------------
-//
-TBool CProfilesGSTonesPluginSettingsHandler::AllowedToChange(
-        TInt aSettingItemId ) const
-    {
-    switch( aSettingItemId )
-        {
-        case EProfileGSTonesPluginSettingCalendarToneId: // Fall through
-        case EProfileGSTonesPluginSettingClockToneId:
-            {
-            return ETrue;
-            }
-        case EProfileGSTonesPluginSettingHacModeId:
-            {
-            return ( iFeatures->IsLocalFeatureSupported(
-                     KTonesViewFeatureIdHac ) );
-            }
-        default:
-            {
-            return EFalse;
-            }
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::GetHelpContext
-// -----------------------------------------------------------------------------
-//
-TBool CProfilesGSTonesPluginSettingsHandler::GetHelpContext(
-        TCoeHelpContext& aContext ) const
-    {
-    aContext.iContext = KSET_HLP_PERSONAL_TONES;
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::SetHiddenItems
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::SetHiddenItems(
-        CAknSettingItemArray& aSettingItemArray ) const
-    {
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::SetHiddenItems" );
-    TInt count( aSettingItemArray.Count() );
-    for( TInt index( 0 ); index < count; index++ )
-        {
-        CAknSettingItem* item = aSettingItemArray.At( index );
-        if( ( item->Identifier() == EProfileGSTonesPluginSettingHacModeId ) )
-            {
-            PRODEBUG( "CProfilesGSTonesPluginSettingHandler::SetHiddenItems hac" );
-            item->SetHidden(
-                !iFeatures->IsLocalFeatureSupported( KTonesViewFeatureIdHac ) );
-            }
-        }
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::SetHiddenItems end" );
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::StoreIfChangedL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::StoreIfChangedL( TInt aSettingId )
-    {
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::StoreIfChanged" );
-    iTonesViewSettings->StoreIfChangedL( aSettingId );
-    PRODEBUG( "CProfilesGSTonesPluginSettingHandler::StoreIfChanged end" );
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::HandleNotifyString
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::HandleNotifyString( TUint32 aId,
-        const TDesC16& /* aNewValue */ )
-    {
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::HandleNotifyString(%d) begin",aId );
-    if( aId == KCalendarSoundFile )
-        { // cannot leave - ignore return value:
-        iCalendarSession->Get( KCalendarSoundFile, iCalendarTone );
-        }
-    else // Clock sound file
-        { // cannot leave - ignore return value:
-        iClockSession->Get( KClockAppSoundFile, iClockTone );
-        }
-    TRAP_IGNORE( iObserver->HandleExternalSettingsChangedL() );
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::HandleNotifyString(%d) end",aId );
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::StoreCalendarToneL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::StoreCalendarToneL(
-        const TDesC& aTone )
-    {
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::StoreCalendarTone(%S)",&aTone );
-    if( iCalendarTone.CompareF( aTone ) != 0 )
-        {
-        User::LeaveIfError(
-                iCalendarSession->Set( KCalendarSoundFile, aTone ) );
-        RemoveAutomatedContent( iCalendarTone );
-        iCalendarTone.Copy( aTone );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginSettingsHandler::StoreClockToneL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginSettingsHandler::StoreClockToneL(
-        const TDesC& aTone )
-    {
-    PRODEBUG1( "CProfilesGSTonesPluginSettingHandler::StoreClockTone(%S)",&aTone );
-    if( iClockTone.CompareF( aTone ) != 0 )
-        {
-        User::LeaveIfError(
-                iClockSession->Set( KClockAppSoundFile, aTone ) );
-        RemoveAutomatedContent( iClockTone );
-        iClockTone.Copy( aTone );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginCalendarDataInterface::
-// CProfilesGSTonesPluginCalendarDataInterface
-// -----------------------------------------------------------------------------
-//
-CProfilesGSTonesPluginCalendarDataInterface::
-CProfilesGSTonesPluginCalendarDataInterface(
-        CProfilesGSTonesPluginSettingsHandler& aSettingsHandler )
-    : iSettingsHandler( aSettingsHandler )
-    {}
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginCalendarDataInterface::ItemData
-// -----------------------------------------------------------------------------
-//
-const TDesC& CProfilesGSTonesPluginCalendarDataInterface::ItemData()
-    {
-    return iSettingsHandler.iCalendarTone;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginCalendarDataInterface::SetItemDataL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginCalendarDataInterface::SetItemDataL(
-        const TDesC& aDataBuf )
-    {
-    PRODEBUG( "CProfilesGSTonesPluginCalendarDataInterface::SetItemDataL" );
-    iSettingsHandler.StoreCalendarToneL( aDataBuf );
-    PRODEBUG( "CProfilesGSTonesPluginCalendarDataInterface::SetItemDataL end" );
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginClockDataInterface::
-// CProfilesGSTonesPluginClockDataInterface
-// -----------------------------------------------------------------------------
-//
-CProfilesGSTonesPluginClockDataInterface::
-CProfilesGSTonesPluginClockDataInterface(
-        CProfilesGSTonesPluginSettingsHandler& aSettingsHandler )
-    : iSettingsHandler( aSettingsHandler )
-    {}
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginClockDataInterface::ItemData
-// -----------------------------------------------------------------------------
-//
-const TDesC& CProfilesGSTonesPluginClockDataInterface::ItemData()
-    {
-    return iSettingsHandler.iClockTone;
-    }
-
-// -----------------------------------------------------------------------------
-// CProfilesGSTonesPluginClockDataInterface::SetItemDataL
-// -----------------------------------------------------------------------------
-//
-void CProfilesGSTonesPluginClockDataInterface::SetItemDataL(
-        const TDesC& aDataBuf )
-    {
-    PRODEBUG( "CProfilesGSTonesPluginClockDataInterface::SetItemDataL" );
-    iSettingsHandler.StoreClockToneL( aDataBuf );
-    PRODEBUG( "CProfilesGSTonesPluginClockDataInterface::SetItemDataL end" );
-    }
-
-// End Of File
-