--- /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 <vwsdef.h>
+#include <coeview.h> // MCoeViewActivationObserver
+#include <missedalarmstore.h>
+#include <cenrepnotifyhandler.h> // MCenRepNotifyHandlerCallback
+#include <calencommandhandler.h>
+#include <calennotificationhandler.h> // MCalenNotificationHandler
+#include <calentoolbar.h>
+
+// 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<TCalenInstanceId>& 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<TCalenInstanceId> 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