diff -r 8e7494275d3a -r 4f0867e42d62 omads/omadsappui/AspSyncUtil/inc/AspScheduleDialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omads/omadsappui/AspSyncUtil/inc/AspScheduleDialog.h Wed Sep 01 12:30:02 2010 +0100 @@ -0,0 +1,686 @@ +/* +* Copyright (c) 2005 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: Scheduled sync UI +* +*/ + + + +#ifndef ASPSCHEDULEDIALOG_H +#define ASPSCHEDULEDIALOG_H + + +// INCLUDES + +#include "AspDialogUtil.h" + +#include +#include +#include + + +// FORWARD DECLARATIONS + +class CAspSchedule; +class CAspProfileWizard; + + +// CLASS DECLARATION +/** +* MAuotSyncEditorPageObserver +* +* Observer interface function. +*/ + +NONSHARABLE_CLASS (MAutoSyncEditorPageObserver) + { + + public: + /** + * Editor page call this when editor is about to close. + * @param aText Editor text. + * @return ETrue if input is ok, EFalse otherwise. + */ + virtual TBool CheckValidityL() = 0; + + /** + *Return the index of email item in provider list + */ + virtual TInt EmailIndex() = 0; + + }; + + +/** +* TAutoSyncSettingPageParam +* +* This class is used as general parameter type. +*/ +NONSHARABLE_CLASS (TAutoSyncSettingPageParam) + { + public: + TInt iCommandId; + TBuf iPageText; + MAutoSyncEditorPageObserver* iObserver; + TInt iSettingType; + }; + + +/** +* CAspAutoCheckBoxSettingPage +* +* Setting page that returns command button id. +*/ +NONSHARABLE_CLASS (CAutoSyncCheckBoxSettingPage) : public CAknCheckBoxSettingPage,public MEikListBoxObserver + { + public: + CAutoSyncCheckBoxSettingPage(TInt aResourceID, CSelectionItemList* aItemArray, TAutoSyncSettingPageParam& aParam); + + ~CAutoSyncCheckBoxSettingPage(); + + public: + + void UpdateCbaL(TInt aResourceId); + void DynamicInitL(); + + protected: // From CCoeControl + void ProcessCommandL(TInt aCommandId); + + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType); + //from MEikListBoxObserver for touch event handling + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + private: + TAutoSyncSettingPageParam& iParam; + TInt iSelectionCount; + CSelectionItemList* iSelectionItemList; + + }; + + + +/** +* CAspScheduleDialog +* +* CAspScheduleDialog is used for editing sync connection data. +*/ +NONSHARABLE_CLASS (CAspScheduleDialog) : public CAknDialog, public MEikListBoxObserver, + public MAutoSyncEditorPageObserver + { + private: + + enum TRepositoryKey + { + EKeySyncFrequency = 2, + EKeyPeakSyncInterval, + EKeyOffPeakSyncInterval + }; + + + public: + /** + * Launches dialog. + * @param aParam Class that contains dialog parameters. + * @return Completion code. + */ + static TBool ShowDialogL(const TAspParam& aParam); + + public:// Constructors and destructor + + /** + * Two-phased constructor. + */ + static CAspScheduleDialog* NewL(const TAspParam& aParam); + + /** + * Destructor. + */ + virtual ~CAspScheduleDialog(); + + private: + + /** + * C++ default constructor. + */ + CAspScheduleDialog(const TAspParam& aParam); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + private: + /** + * From MEikListBoxObserver, called by framework. + * @param aListBox. + * @param aEventType. + * @return None + */ + void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + + /** + * From the base class. + * Called by framework before the dialog is shown. + * @param None + * @return None + */ + void PreLayoutDynInitL(); + + /** + * From the base class. + * Called by framework before exiting the dialog. + * @param aButtonId Button id. + * @return ETrue to exit\ EFalse to not to exit. + */ + TBool OkToExitL(TInt aButtonId); + + /** + * From the base class. + * Called by framework for key event handling. + * @param aKeyEvent. + * @param aType. + * @return Return code. + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); + + /** + * From the base class. + * Called by framework when dialog is activated. + * @param None. + * @return None. + */ + void ActivateL(); + + /** + * Method to get context sensitive help topic. + * @param aContext Help topic to open. + * @return None. + */ + void GetHelpContext(TCoeHelpContext& aContext) const; + + /** + * From the base class. + * Called by framework before menu is shown. + * @param aResourceId Menu resource id. + * @param aMenuPane Pointer to the menu. + * @return None. + */ + void DynInitMenuPaneL(TInt aResourceID, CEikMenuPane* aMenuPane); + + /** + * From the base class. + * Handles menu events. + * @param aCommandId Command id. + * @return None. + */ + void ProcessCommandL(TInt aCommandId); + + /** + * From base class. + * Called when UI layout changes. + * @param aType. + * @return None. + */ + void HandleResourceChange(TInt aType); + + /** + * From TAutoSyncSettingPageParam + * Checks validity content selected + * @param None + * @return ETrue/EFalse. + */ + + TBool CheckValidityL(); + + TInt EmailIndex(); + + /** + * Checks remote databse settings for the profile + * @param None + * @return None. + */ + + void CheckMandatoryDataL(); + + /** + * Checks remote databse settings for the profile + * @param None + * @return ETrue/EFalse. + */ + TBool CheckBearerType(); + + + + private: + /** + * Handles setting item editing. + * @param None. + * @return None. + */ + void HandleOKL(); + + /** + * Set setting list icons. + * @param None. + * @return None. + */ + void SetIconsL(); + + + public: // common editors + + /** + * Shows editor for text type setting. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemTextL(CAspListItemData& aItem); + + /** + * Shows editor for number type setting. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemNumberL(CAspListItemData& aItem); + + /** + * Shows editor for list type setting. + * @param aItem Setting item data. + * @return Return code. + */ + //TBool EditSettingItemListL(CAspListItemData& aItem); + + private: + + /** + * Handles setting item editing. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemL(CAspListItemData& aItem); + + /** + * Change Yes/No setting in place without showing editor. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemYesNoL(CAspListItemData& aItem); + + /** + * Shows editor for profile setting. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemProfileL(CAspListItemData& aItem); + + /** + * Shows editor for content setting. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemContentL(CAspListItemData& aItem); + + /** + * Shows setting editor. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemWeekdaysL(CAspListItemData& aItem); + + /** + * Shows setting editor. + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemTimeL(CAspListItemData& aItem); + + /** + * Shows editor for peak schedule selection + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemPeakScheduleL(CAspListItemData& aItem); + + /** + * Shows editor for off-peak schedule selection + * @param aItem Setting item data. + * @return Return code. + */ + TBool EditSettingItemOffPeakScheduleL(CAspListItemData& aItem); + + /** + * Shows editor for sync frequency selection + * @param aItem Setting item data. + * @return Return code. + */ + + TBool EditSettingItemSyncFrequencyL(CAspListItemData& aItem); + + + private: + + /** + * Checks that all mandatory data is found. + * @param None. + * @return Return code. + */ + TInt CheckMandatoryFields(); + + /** + * Saves profile. + * @param None. + * @return None. + */ + void SaveSettingsL(); + + private: + /** + * Create one CNSmlDSProfileData for each setting. + * @param None. + * @return None. + */ + void CreateSettingsListL(); + + /** + * Initalizes setting item needed for listbox handling. + * @param aItem. + * @return None. + */ + void InitSettingItemL(CAspListItemData* aItem); + + /** + * Add settings titles into listbox. + * @param aListBox. + * @param aItemList List of setting items. + * @return None. + */ + void UpdateListBoxL(CEikTextListBox* aListBox, CAspSettingList* aItemList); + + /** + * Adds one setting item into item list. + * @param aItemId Item id. + * @param aHeaders Array of item headers. + * @return None. + */ + void AddItemL(TInt aItemId, TInt aResourceId); + + /** + * Set setting item visibility (normal/readonly/hidden). + * @param None. + * @return None. + */ + void SetVisibility(); + + /** + * Set all settings to read-only state. + * @param None. + * @return None. + */ + void SetAllReadOnly(); + + + private: + + /** + * Creates icon. + * @param aId. + * @param aFileName. + * @param aFileIndex. + * @param aFileMaskIndex. + * @return Created icon. + */ + CGulIcon* IconL(TAknsItemID aId, const TDesC& aFileName, TInt aFileIndex, TInt aFileMaskIndex); + + /** + * Returns setting item with listbox position aIndex. + * @param aIndex Listbox index. + * @return Pointer to setting item. + */ + CAspListItemData* GetItemForIndex(TInt aIndex); + + /** + * Returns setting item with id aItemId. + * @param aItemId Item id. + * @return Pointer to setting item. + */ + CAspListItemData* Item(TInt aItemId); + + /** + * Get profile name. + * @param aProfileId. + * @param aText. + * @return None. + */ + void GetProfileName(TInt& aProfileId, TDes& aText); + + /** + * Get content name. + * @param aProfileId. + * @param aText. + * @return None. + */ + //void GetContentName(TDes& aText); + + /** + * Get day name. + * @param aProfileId. + * @param aText. + * @return None. + */ + void GetWeekdayNameL(TDes& aText); + + /** + * Update content list from schedule settings. + * @param None. + * @return None. + */ + //void GetContentSelectionL(); + + /** + * Get content list from sync profile. + * @param aList. + * @return None. + */ + //void GetContentSelection2L(CSelectionItemList* aList); + + /** + * Write selected contents into schedule settings. + * @param None. + * @return None. + */ + //void SetContentSelectionL(); + + /** + * Construct CSelectionItemList. + * @param aList. + * @return None. + */ + void GetWeekdaySelectionL(CSelectionItemList* aList); + + /** + * Construct CSelectionItemList. + * @param aList. + * @return None. + */ + void SetWeekdaySelectionL(CSelectionItemList* aList); + + /** + * Set default day selection + * @param None + * @return None. + */ + void SetDefaultdaySelectionL(); + /** + * Construct time text. + * @param aText. + * @param aTime. + * @return None. + */ + void GetTimeTextL(TDes& aText, TTime aTime); + + + /** + *Get content name + * @param aText. + * @return None. + */ + void GetContentsNameL(TDes& aText); + + /** + *Get content selection + * @param aList + * @return None. + */ + void GetContentSelectionL(CSelectionItemList* aList); + + /** + *Set content selection + * @param aList. + * @return None. + */ + void SetContentSelectionL(CSelectionItemList* aList); + + CDesCArray* GetSyncFrequencyListLC(); + void GetSyncFrequencyValueL(TInt schedule, TDes& aBuf); + TInt SyncFrequencyL(const TDesC& aBuf); + TInt GetSyncFrequencyPositionL(CDesCArray* arr, TInt aInterval); + + /** + *Check if the profile has access point selected + * @param aProfileId + * @return None. + */ + void CheckAccessPointSelectionL(TInt aProfileId); + + /** + *Get list of peak schedule intervals + * @return CDesCArray* + */ + CDesCArray* GetPeakScheduleListLC(); + + /** + *Get list of peak schedule intervals + * @return CDesCArray* + */ + CDesCArray* GetOffPeakScheduleListLC(); + + /** + *Get time interval string corresponding to a schedule no + * @return CDesCArray* + */ + void GetPeakScheduleValueL(TInt schedule, TDes& aBuf); + void GetOffPeakScheduleValueL(TInt schedule, TDes& aBuf); + + /** + *Get time interval value for the string + * @return CDesCArray* + */ + TInt PeakScheduleL(const TDesC& aBuf); + TInt OffPeakScheduleL(const TDesC& aBuf); + + /** + *Position of selected interval in the list + * @return CDesCArray* + */ + TInt GetPeakPositionL(CDesCArray* arr, TInt aInterval); + TInt GetOffPeakPositionL(CDesCArray* arr, TInt aInterval); + + /** + *Show auto sync info + * @return CDesCArray* + */ + void ShowAutoSyncInfoL(); + + /** + *Set default content selection + * + */ + void SetDefaultContentL(); + + /** + *Read cenrep for operator configured sync interval values + * + */ + void ReadRepositoryL(TInt aKey, TInt& aValue); + + /** + *Create content list + * + */ + void CreateContentListL(); + + /** + *Check if time definition is valid. + * + */ + TBool CheckPeakTime(); + + private: + // setting list + CAknSettingStyleListBox* iSettingListBox; + + // list of setting items + CAspSettingList *iSettingList; + + // list that contains all contents (applications) + CAspContentList* iContentList; + + // sync session + RSyncMLSession* iSyncSession; + + // for title and icon handling + CStatusPaneHandler* iStatusPaneHandler; + + // resource handler + CAspResHandler* iResHandler; + + // dialog edit mode + TInt iEditMode; + + // long buffer for string handling + TBuf iBuf; + + // list that contains all profiles + CAspProfileList* iProfileList; + + // for storing auto sync settings + CAspSchedule* iSchedule; + + // profile data + CAspProfile* iProfile; + + // id of the calling application + TInt iApplicationId; + + // weekday names + CDesCArray* iWeekdayList; + + // have settings changed + TBool iSettingChanged; + + // Content names + CDesCArray* iContentsList; + + TBool iDoCleanUp; + + // is setting database in read only state + TBool iSettingEnforcement; + + + }; + + +#endif // ASPSCHEDULEDIALOG_H + +// End of File