--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/clock2/clockui/uilayer/clkdatetimeview/src/clkdatetimeviewextension.cpp Wed Sep 01 12:32:31 2010 +0100
@@ -0,0 +1,758 @@
+/*
+* Copyright (c) 2008 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 is the source file for the CClkDateTimeViewExtension class.
+*
+*/
+
+// System Includes
+#include <StringLoader.h>
+#include <pathinfo.h>
+#include <ConeResLoader.h>
+#include <clockdomaincrkeys.h>
+#include <centralrepository.h>
+#include <ProfileEngineDomainConstants.h>
+#include <e32math.h>
+#include <clock.rsg>
+#include <aknpopupsettingpage.h>
+#include <AknQueryValueText.h>
+
+// User Includes
+#include "clkdatetimeview.hrh"
+#include "clkdatetimeviewextension.h"
+#include "clockecomlistener.h"
+#include "clkdatetimeview.h"
+#include "clkcommon.h"
+
+// Constants
+const TInt KSnoozeTimeDigits( 2 );
+const TInt KBaseTwo( 2 );
+const TInt KOneMinute( 1 );
+const TInt KGmtStringLength( 32 );
+const TInt KWorkDaysBufferLength( 10 );
+const TInt KOneCharacter( 1 );
+
+// Literals
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::NewL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CClkDateTimeViewExtension* CClkDateTimeViewExtension::NewL( CClkDateTimeView* aParent, CCoeEnv* aEnv )
+ {
+ CClkDateTimeViewExtension* self = new ( ELeave ) CClkDateTimeViewExtension( aParent, aEnv );
+ CleanupStack::PushL( self );
+
+ self->ConstructL();
+
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::~CClkDateTimeViewExtension
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CClkDateTimeViewExtension::~CClkDateTimeViewExtension()
+ {
+ DeleteResourceBuf();
+
+ if( iWorkDaysStr )
+ {
+ delete iWorkDaysStr;
+ iWorkDaysStr = NULL;
+ }
+ if( iWorkDaysList )
+ {
+ delete iWorkDaysList;
+ iWorkDaysList = NULL;
+ }
+ if( iWorkDaysShortList )
+ {
+ delete iWorkDaysShortList;
+ iWorkDaysShortList = NULL;
+ }
+ if( iAlarmToneNotifier )
+ {
+ iAlarmToneNotifier->StopListening();
+ delete iAlarmToneNotifier;
+ iAlarmToneNotifier = NULL;
+ }
+ if( iSnoozeValueNotifier )
+ {
+ iSnoozeValueNotifier->StopListening();
+ delete iSnoozeValueNotifier;
+ iSnoozeValueNotifier = NULL;
+ }
+ if( iSnoozeValueNotifier )
+ {
+ delete iSnoozeValueNotifier;
+ iSnoozeValueNotifier = NULL;
+ }
+ if( iRepository )
+ {
+ delete iRepository;
+ iRepository = NULL;
+ }
+ if( iSilentTone )
+ {
+ delete iSilentTone;
+ iSilentTone = NULL;
+ }
+ if( iClockEComListener )
+ {
+ delete iClockEComListener;
+ iClockEComListener = NULL;
+ }
+ if( iAutomaticTimeUpdateString )
+ {
+ delete iAutomaticTimeUpdateString;
+ iAutomaticTimeUpdateString = NULL;
+ }
+
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::NotifyPluginInstallUninstallL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::NotifyPluginInstallUninstallL( const CImplementationInformation& /*aImplInfo*/, TBool /*aInstalled*/ )
+ {
+ // Check if the auto time update page is being shown.
+ if( iAutoTimeUpdatePageOpen )
+ {
+ // TODO : We need to update the page dynamically.
+ // Due to some issues with the way the framework handles dynamic updation, we dont do it as of now.
+ // RefreshAutoTimeUpdatePageL();
+ }
+ else
+ {
+ // Update the time update and timezone fields.
+ iParent->HandleSettingsChangeL( 0 );
+ }
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::HandleNotifyStringL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::HandleNotifyStringL( TUint32 aId, const TDesC16& aNewValue )
+ {
+ // Let the datetime view update itself.
+ iParent->UpdateDTViewL( aId, aNewValue );
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetAlarmSnoozeTimeStr
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+HBufC* CClkDateTimeViewExtension::GetAlarmSnoozeTimeStr()
+ {
+ return iAlarmSnoozeTime;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::DeleteResourceBuf
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::DeleteResourceBuf()
+ {
+ if( iAlarmSnoozeTime )
+ {
+ delete iAlarmSnoozeTime;
+ iAlarmSnoozeTime = NULL;
+ }
+ if( iSnoozeTime )
+ {
+ delete iSnoozeTime;
+ iSnoozeTime = NULL;
+ }
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::MakeSnoozeTimeItemL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::MakeSnoozeTimeItemL()
+ {
+ TBuf< KSnoozeTimeDigits > snoozeTimeBuf;
+ // Convert the number to string.
+ snoozeTimeBuf.Num( iSnoozeTimeValue );
+
+ if( iSnoozeTime )
+ {
+ delete iSnoozeTime;
+ iSnoozeTime = NULL;
+ }
+ AknTextUtils::DisplayTextLanguageSpecificNumberConversion( snoozeTimeBuf );
+
+ if( iSnoozeTimeValue == KOneMinute )
+ {
+ // If snooze time is 1, load 'Minute'( singular ) string.
+ iSnoozeTime = StringLoader::LoadL( R_QTN_SANIM_TIME_OUT_SLIDER_YKCUR, iEnv );
+ }
+ else
+ {
+ // If snooze time is more than 1, load 'Minutes'(plural) string.
+ iSnoozeTime = StringLoader::LoadL( R_QTN_SANIM_TIME_OUT_SLIDER_CUR, snoozeTimeBuf, iEnv );
+ }
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetSnoozeTimeStr
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+HBufC* CClkDateTimeViewExtension::GetSnoozeTimeStr()
+ {
+ return iSnoozeTime;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetWorkDays
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TUint CClkDateTimeViewExtension::GetWorkDays()
+ {
+ return iWorkDays;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetWorkDays
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetWorkDays( TUint aWorkDays )
+ {
+ iWorkDays = aWorkDays;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::ConstructWorkDaysStrL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::ConstructWorkDaysStrL()
+ {
+ // Changes to prevent the overflowing size of final str is going 30 when hindi fonts are in use.
+ TBuf< KGmtStringLength > finalStr;
+ HBufC* workDaySeparator = StringLoader::LoadLC( R_QTN_WORD_LIST_SEPARATOR, iEnv );
+
+ // Get the days that are currently chosen as workdays.
+ for( TInt index( FALSE ); index < iWorkDaysShortList->MdcaCount(); index++ )
+ {
+ TReal powExponent;
+ Math::Pow( powExponent, KBaseTwo, index );
+
+ if( iWorkDays & ( TInt )powExponent )
+ {
+ TBuf< KWorkDaysBufferLength > tempBuf = ( *iWorkDaysShortList )[ index ];
+ finalStr.Append( tempBuf );
+ finalStr.Append( workDaySeparator->Des() );
+ }
+ }
+
+ // Remove the last character.
+ if( FALSE < finalStr.Length() )
+ {
+ finalStr.Delete( finalStr.Length() - KOneCharacter, KOneCharacter );
+ }
+
+ if( iWorkDaysStr )
+ {
+ delete iWorkDaysStr;
+ iWorkDaysStr = NULL;
+ }
+
+ // The final workdays' string.
+ iWorkDaysStr = finalStr.Alloc();
+
+ // Cleanup.
+ CleanupStack::PopAndDestroy( workDaySeparator );
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetWorkDaysStr
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+HBufC* CClkDateTimeViewExtension::GetWorkDaysStr()
+ {
+ return iWorkDaysStr;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetWorkDaysList
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CDesCArrayFlat* CClkDateTimeViewExtension::GetWorkDaysList()
+ {
+ return iWorkDaysList;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::StartListeningL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::StartListeningL()
+ {
+ if( iAlarmToneNotifier )
+ {
+ iAlarmToneNotifier->StartListeningL();
+ }
+
+ if( iSnoozeValueNotifier )
+ {
+ iSnoozeValueNotifier->StartListeningL();
+ }
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::StopListening
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::StopListening()
+ {
+ if( iAlarmToneNotifier )
+ {
+ iAlarmToneNotifier->StopListening();
+ }
+
+ if( iSnoozeValueNotifier )
+ {
+ iSnoozeValueNotifier->StopListening();
+ }
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetSnoozeTimeValue
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TInt CClkDateTimeViewExtension::GetSnoozeTimeValue()
+ {
+ return iSnoozeTimeValue ;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetSnoozeTimeValue
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetSnoozeTimeValue( TInt aSnoozeTimeValue )
+ {
+ iSnoozeTimeValue = aSnoozeTimeValue;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetSilentToneStr
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+HBufC* CClkDateTimeViewExtension::GetSilentToneStr()
+ {
+ return iSilentTone;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetUsedByGS
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetUsedByGS()
+ {
+ iUsedByGS = ETrue;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::UsedByGS
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TBool CClkDateTimeViewExtension::UsedByGS()
+ {
+ return iUsedByGS;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::AlarmToneListInUse
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TBool CClkDateTimeViewExtension::AlarmToneListInUse()
+ {
+ return iAlarmToneListInUse;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::AlarmToneListInUse
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetAlarmToneListInUse( TBool aAlarmToneListInUse )
+ {
+ iAlarmToneListInUse = aAlarmToneListInUse;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::IsUnLocalisedCity
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TBool CClkDateTimeViewExtension::IsUnLocalisedCity()
+ {
+ return iUnlocalisedCity;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::UnLocalisedCity
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::UnLocalisedCity( TBool aUnlocalisedCity )
+ {
+ iUnlocalisedCity = aUnlocalisedCity;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::IsAutoTimeUpdatePageOpen
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TBool CClkDateTimeViewExtension::IsAutoTimeUpdatePageOpen()
+ {
+ return iAutoTimeUpdatePageOpen;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetAutoTimeUpdatePageOpen
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetAutoTimeUpdatePageOpen( TBool aOpen )
+ {
+ iAutoTimeUpdatePageOpen = aOpen;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetQueryTextArray
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CAknQueryValueTextArray* CClkDateTimeViewExtension::GetQueryTextArray()
+ {
+ return iTextArray;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetQueryTextArray
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetQueryTextArray( CAknQueryValueTextArray* aTextArray )
+ {
+ iTextArray = aTextArray;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetQueryValueText
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CAknQueryValueText* CClkDateTimeViewExtension::GetQueryValueText()
+ {
+ return iQueryValue;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetQueryValueText
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetQueryValueText( CAknQueryValueText* aQueryValueText )
+ {
+ iQueryValue = aQueryValueText;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetPopupSettingPage
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetPopupSettingPage( CAknPopupSettingPage* aPopupSettingPage )
+ {
+ iSettingPage = aPopupSettingPage;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetPluginList
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CDesCArrayFlat* CClkDateTimeViewExtension::GetPluginList()
+ {
+ return iPluginList;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetPluginList
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetPluginList( CDesCArrayFlat* aPluginList )
+ {
+ iPluginList = aPluginList;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::GetActiveProtocol
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TInt CClkDateTimeViewExtension::GetActiveProtocol()
+ {
+ return iActiveProtocol;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::SetActiveProtocol
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::SetActiveProtocol( TInt aProtocolsState )
+ {
+ iActiveProtocol = aProtocolsState;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::QueryPopupSettingPageL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+TInt CClkDateTimeViewExtension::QueryPopupSettingPageL()
+ {
+ // Construct the list of plugins that we support.
+ iPluginList = new( ELeave ) CDesCArrayFlat( KBaseTwo );
+
+ // Append Off text.
+ iPluginList->AppendL( iParent->GetAutoTimeUpdateStr( EFalse ) );
+
+ // Append On text.
+ iPluginList->AppendL( iParent->GetAutoTimeUpdateStr( ETrue ) );
+
+ // Get the currently active plugin.
+ TInt activeProtocol( GetActiveProtocol() );
+
+ TInt highlightIndex( KZerothIndex );
+
+ if( activeProtocol )
+ {
+ highlightIndex =highlightIndex+1;
+ }
+
+ TInt returnVal( KZerothIndex );
+ // Construct the text array for the page.
+ iTextArray = CAknQueryValueTextArray::NewL();
+ iTextArray->SetArray( *iPluginList );
+
+ // Construct the text value.
+ iQueryValue = CAknQueryValueText::NewL();
+ iQueryValue->SetArrayL( iTextArray );
+ iQueryValue->SetCurrentValueIndex( highlightIndex );
+
+ iSettingPage = new( ELeave ) CAknPopupSettingPage( R_DATE_TIME_POPUP_PAGE_MSK, *iQueryValue );
+ // Set the header text.
+ iSettingPage->SetSettingTextL( *iAutomaticTimeUpdateString );
+
+ // Set the flag to indicate the page is open.
+ SetAutoTimeUpdatePageOpen( ETrue );
+
+ if( iSettingPage->ExecuteLD( CAknSettingPage::EUpdateWhenAccepted ) )
+ {
+ returnVal = iQueryValue->CurrentValueIndex();
+ }
+ else
+ {
+ returnVal = KErrCancel;
+ }
+
+ // The page has been closed.
+ SetAutoTimeUpdatePageOpen( EFalse );
+
+ // Cleanup.
+ if( iQueryValue )
+ {
+ delete iQueryValue;
+ iQueryValue = NULL;
+ }
+ if( iTextArray )
+ {
+ delete iTextArray;
+ iTextArray = NULL;
+ }
+ if( iPluginList )
+ {
+ delete iPluginList;
+ iPluginList = NULL;
+ }
+
+ // Return.
+ return returnVal;
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::RefreshAutoTimeUpdatePageL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::RefreshAutoTimeUpdatePageL()
+ {
+ // Array to return all implementations in an interface.
+ RImplInfoPtrArray plugInArray;
+ // Get the list of all implementations.
+ REComSession::ListImplementationsL( KTimeSourceInterfaceUID, plugInArray );
+
+ if( !plugInArray.Count() )
+ {
+ // There are no plugins to list. Simply return.
+ plugInArray.ResetAndDestroy();
+ plugInArray.Close();
+ return;
+ }
+
+ if( plugInArray.Count() )
+ {
+ if( iPluginList )
+ {
+ delete iPluginList;
+ iPluginList = NULL;
+ }
+ // Construct the list of plugins that we support.
+ iPluginList = new( ELeave ) CDesCArrayFlat( plugInArray.Count() + 1 );
+ // Append Off text.
+ iPluginList->AppendL( iParent->GetAutoTimeUpdateStr( EFalse ) );
+
+ // Update the currently active protocol because some protocol which was active
+ // might have got uninstalled.
+ TInt highlightIndex( KZerothIndex );
+ for( TInt index( KZerothIndex ); index < plugInArray.Count(); index++ )
+ {
+ iPluginList->AppendL( plugInArray[ index ]->DisplayName() );
+ if( iActiveProtocol == plugInArray[ index ]->ImplementationUid().iUid )
+ {
+ // We need to highlight this item by default.
+ highlightIndex = index + 1;
+ }
+ }
+
+ // Delete the previous values if present.
+ /*if( iPrevTextArray )
+ {
+ delete iPrevTextArray;
+ iPrevTextArray = NULL;
+ }
+ if( iPrevQueryValue )
+ {
+ delete iPrevQueryValue;
+ iPrevQueryValue = NULL;
+ }
+ // Store the previous array references.
+ CAknQueryValueTextArray* iPrevTextArray( iTextArray );
+ CAknQueryValueText* iPrevQueryValue( iQueryValue );*/
+
+ // Construct the new array.
+ iTextArray = CAknQueryValueTextArray::NewL();
+ iTextArray->SetArray( *iPluginList );
+
+ iQueryValue = CAknQueryValueText::NewL();
+ iQueryValue->SetArrayL( iTextArray );
+ iQueryValue->SetCurrentValueIndex( highlightIndex );
+
+ // Update the settings page with the new value.
+ iSettingPage->UpdateQueryValueL( iQueryValue );
+
+ // Cleanup.
+ // delete prevTextArray;
+ // delete prevQueryValue;
+ }
+ // Cleanup.
+ plugInArray.ResetAndDestroy();
+ plugInArray.Close();
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::CClkDateTimeViewExtension
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+CClkDateTimeViewExtension::CClkDateTimeViewExtension( CClkDateTimeView* aParent,
+ CCoeEnv* aEnv )
+ : iParent( aParent ),
+ iEnv( aEnv )
+ {
+ // No implementation yet.
+ }
+
+// ---------------------------------------------------------
+// CClkDateTimeViewExtension::ConstructL
+// rest of the details are commented in the header
+// ---------------------------------------------------------
+//
+void CClkDateTimeViewExtension::ConstructL()
+ {
+ // Open the repository for the clock application.
+ iRepository = CRepository::NewL( KCRUidClockApp );
+
+ // The resources strings.
+ iAlarmSnoozeTime = StringLoader::LoadL( R_QTN_CLK_SETT_SNOOZE_TIME, iEnv );
+
+ // The item arrays.
+ iWorkDaysList = iEnv->ReadDesCArrayResourceL( R_CLOCK_WEEK_DAYS_ARRAY );
+ iWorkDaysShortList = iEnv->ReadDesCArrayResourceL( R_CLOCK_WEEK_DAYS_SHORT_ARRAY );
+
+ // Cenrep change notifiers.
+ iAlarmToneNotifier = CCenRepNotifyHandler::NewL( *this, *iRepository, CCenRepNotifyHandler::EStringKey, KClockAppSoundFile );
+ iSnoozeValueNotifier = CCenRepNotifyHandler::NewL( *this, *iRepository, CCenRepNotifyHandler::EStringKey, KClockAppSnoozeTime );
+
+ // Get the silent ringtone.
+ TFileName* fileName = new ( ELeave ) TFileName( TParsePtrC( PathInfo::RomRootPath() ).Drive() );
+ CleanupStack::PushL( fileName );
+ fileName->Append( KProfileNoSoundPath );
+ iSilentTone = fileName->AllocL();
+
+ // Cleanup.
+ CleanupStack::PopAndDestroy( fileName );
+
+ // Create and subscribe for ecom registry changes.
+ iClockEComListener = CClockEComListener::NewL( *this );
+
+ iUsedByGS = EFalse;
+ iAlarmToneListInUse = EFalse;
+ iAutoTimeUpdatePageOpen = EFalse;
+
+ // Get the string for auto time update page title.
+ iAutomaticTimeUpdateString = StringLoader::LoadL( R_QTN_CLK_SETT_NETWORK_TIME, iEnv );
+ }
+
+// End of File