diff -r 000000000000 -r f979ecb2b13e calendarui/controller/inc/calenalarmmanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/controller/inc/calenalarmmanager.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,285 @@ +/* +* 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: Calendar alarm manager +* +*/ + + + +#ifndef CALENALARMMANAGER_H +#define CALENALARMMANAGER_H + +// INCLUDES +#include +#include // MCoeViewActivationObserver +#include +#include // MCenRepNotifyHandlerCallback +#include +#include // MCalenNotificationHandler +#include + +// FORWARD DECLARATIONS +class CCalenController; +class CMissedAlarmStore; +class CCalenContextFWListener; +class CCalenViewManager; + +// CLASS DEFINITIONS + +class CCalenAlarmManager : public CBase, + public MCalenNotificationHandler, + public MCalenCommandHandler, + public MCenRepNotifyHandlerCallback + { + public: + /** + * Symbian 1st phase constructor + * @param aViewManager Reference to the CCalenViewManager + * @return Pointer to CCalenViewManager + */ + static CCalenAlarmManager* NewL( CCalenController& aController ); + + /** + * Destructor + */ + virtual ~CCalenAlarmManager(); + + private: + /** + * C++ constructor + * @param aViewManager Reference to CCalenViewManager + */ + CCalenAlarmManager( CCalenController& aController ); + + /** + * Symbian 2nd phase constructor + */ + void ConstructL(); + + public: + + /** + * From MCalenCommandHandler. + * Handles key presses. + * + * @param aCommand The command Id of the key. + */ + TBool HandleCommandL( const TCalenCommand& aCommand ); + + /** + * From MCalenCommandHandler. + * Allows extending this API without breaking BC. + * + * @param aExtensionUid specifies + * @return extension of the requested type + */ + TAny* CalenCommandHandlerExtensionL( TUid aExtensionUid ); + + /** + * Handles notifications (Leaving) + */ + void HandleNotificationL( TCalenNotification aNotification ); + + /** + * From MCenRepNotifyHandlerCallback. + * Notification of any change to the Missed Alarm Store central + * repository + * @param aId Id of the cenrep key that changed + */ + void HandleNotifyGeneric( TUint32 aId ); + + public: + + /** + * Get Missed alarm store + * @return reference to Missed alarm store + */ + CMissedAlarmStore* MissedAlarmStore(); + + /** + * Get Missed alarms list with viewed info + * @return array of missed alarms + */ + void GetMissedAlarmsList(RArray& aMissedAlarmList); + + /** + * Destroys CCalenContextFWListener object for Alarm + * @param aCloseEventView + */ + void StopAlarmContextListener(TBool aCloseEventView=EFalse); + + /** + * Destroys CCalenContextFWListener object for Auto snooze case. + */ + void StopContextListenerForAutoSnooze(); + + /** + * Creates CCalenContextFWListener object for Alarm + */ + void StartAlarmContextListenerL(); + + private: + + /** + * from MCalenNotificationHandler + */ + void HandleNotification( const TCalenNotification aNotification ); + + /** + * Creates missed alarms list + */ + void CreateMissedAlarmsListL(); + + /** + * Handles the command ECalenMissedAlarmsView + * for launching missed alarms view + */ + void OnCmdMissedAlarmViewL(); + + /** + * Handles the command ECalenMissedEventView + * for launching missed event view + */ + void OnCmdMissedEventViewL(); + + /** + * Handles the command ECalenCmdClear + * for clearing a missed alarm + */ + void OnCmdClearMissedAlarmL(); + + /** + * Handles the command ECalenCmdClearAll + * for clearing all missed alarms + */ + void OnCmdClearAllMissedAlarmsL(); + + /** + * Handles the command ECalenCmdGotoCalendar + * for going back to native view from missed alarms view + */ + void OnCmdGoToCalendarL(); + + /** + * Handles the command ECalenMissedEventViewFromIdle + * for intialising the data before launching the + * missed event view from Idle(soft notification/indicator) + */ + void OnCmdLaunchFromIdleL(); + + /** + * For taking action whenever an entry is deleted + */ + void HandleEntryDeleteNotificationL(); + + /** + * For updating the missed alarms list when an entry is deleted + */ + void UpdateMissedAlarmsListOnDeleteL(); + + /** + * For handling notification ECalenNotifyLostAlarms + * which updates missed alarms list and missed alarms count + */ + void HandleNotifyLostAlarmsL(); + + /** + * For handling notification ECalenNotifyMissedAlarmsViewClosed + * which activates the previous view or exits the application + * if launched from Idle + */ + void HandleMissedAlarmViewClosedL(); + + /** + * For handling notification ECalenNotifyMissedEventViewClosed + * which activates the previous view or exits the application + * if launched from Idle + */ + void HandleMissedEventViewClosedL(); + + /** + * For handling notification ECalenNotifySystemTimeChanged + * Listen for the system time change notification. + * Clear all the future alarms which are missed due to + * time change + */ + void HandleSystemTimeChangedL(); + + /** + * Sets the context based on the missed alarm + */ + void SetContextForMissedEventViewL(); + + /** + * Mark missed alarm event as viewed + */ + void SetMissedAlarmEventAsViewed(); + + /** + * Remove all viewed events + */ + void RemoveAllViewedEventsL(); + + /** + * Clear one missed alarm + */ + TBool ClearOneMissedAlarmL(TInt aEntryLocalUid, TCalCollectionId aColId ); + + /** + * Update missed alarms list + */ + void UpdateMissedAlarmsListL(); + + /** + * Get the alarm time for the entry + */ + void GetAlarmDateTimeL(const CCalEntry& aEntry, TTime& aAlarmDateTime); + + /** + * Launch the event viewer after pressing MSK. + */ + void LaunchEventViewerL(); + + /** + * Handles Back and Delete event in event viewer in MSK case. + */ + void HandleBackEventL(); + + private: // Data + + CCalenController& iController; + CCalenViewManager& iViewManager; + CMissedAlarmStore* iMissedAlarmStore; + + CRepository* iMissedAlarmStoreRepository; + CCenRepNotifyHandler* iCenRepChangeNotifier; + + RArray iMissedAlarmList; + + TVwsViewId iPreviousToMissedAlarmView; + TVwsViewId iPreviousToMissedEventView; + + TUint32 iMissedAlarmsCount; + TBool iLaunchedFromIdle; + TBool iViewerLaunchedFromIdle; // For opening alarm through MSK. + + TInt iOrigWGPos; // original window group position + TInt iOrigWGPrio; // original window group priority + CCalenContextFWListener* iContextFWListener; //Context Framework handler + TUid iPreviousToEventViewUid; // getting the view id previous to event view. + }; + +#endif // CALENALARMMANAGER_H + +// End of file