messagingappbase/ncnlist/inc/CNcnNotifier.h
branchRCL_3
changeset 60 7fdbb852d323
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/ncnlist/inc/CNcnNotifier.h	Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,193 @@
+/*
+* Copyright (c) 2004 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:   Defines class CNcnNotifier.
+*
+*/
+
+
+
+#ifndef CNCNNOTIFIER_H
+#define CNCNNOTIFIER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "MNcnNotifier.h"
+
+// FORWARD DECLARATIONS
+class MNcnUI;
+class CNcnModelBase;
+
+// CLASS DECLARATION
+
+/**
+ * Ncn Notifier implementation.
+ */
+class CNcnNotifier : public CBase, public MNcnNotifier
+    {
+    private:    // Constructors and destructor
+    
+        /**
+         * Constructor.
+         * @param aNcnUI Ncn UI reference.
+         */
+        CNcnNotifier(
+            MNcnUI& aNcnUI,
+            CNcnModelBase& iModel );
+        
+        /**
+         * 2nd. phase constructor.
+         */
+        void ConstructL();
+        
+    public:     // Constructors and destructor
+    
+        /**
+         * Destructor.
+         */
+        virtual ~CNcnNotifier();
+        
+        /**
+         * Static factory method.  
+         * @param aNcnUI Ncn UI reference.
+         */
+        static CNcnNotifier* NewL(
+            MNcnUI& aNcnUI,
+            CNcnModelBase& iModel );
+        
+    public:     // From MNcnNotifier
+    
+        void SetNotification(
+                TNcnNotificationType aNotificationType,
+                TUint aAmount,
+				TBool aIcon = ETrue,
+				TBool aTone = ETrue,
+				TBool aNote = ETrue );			
+			
+        TUint NotificationAmount( TNcnNotificationType aNotificationType );
+
+
+    private:    // New method
+    
+        /**
+         * Handles notification change for specific notification type.
+         * @param aNotifcationType The notification type.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+  		 * @param aIcon Notifies with icon
+		 * @param aTone Notifies with tone
+		 * @param aNote Notifies with note
+         */
+        void HandleNotificationChange(
+            TNcnNotificationType aNotificationType,
+            TUint aPreviousAmount,
+            TUint aCurrentAmount,
+			TBool aIcon,
+			TBool aTone,
+			TBool aNote );
+
+        /**
+         * Handles class0 message notification change.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+         */
+        void HandleClass0MessageNotificationChange(
+            TUint aPreviousAmount,
+            TUint aCurrentAmount );
+        
+        /**
+         * Handles message notification change.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+         */
+        void HandleMessageNotificationChange(
+            TUint aPreviousAmount,
+            TUint aCurrentAmount );
+            
+        /**
+         * Handles voice mail notification change.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+         */
+        void HandleVoiceMailNotificationChange(
+            TUint aPreviousAmount,
+            TUint aCurrentAmount );
+            
+        /**
+         * Handles email notification change.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+         */
+        void HandleEMailNotificationChange(
+            TUint aPreviousAmount,
+            TUint aCurrentAmount,
+			TBool aIcon,
+			TBool aTone  );  
+			          
+        /**
+         * Handles audio message notification change.
+         * @param aPreviousAmount Amount in previous notification.
+         * @param aCurrentAmount Current notification amount.
+         */
+        void HandleAudioMessageNotificationChange(
+            TUint aPreviousAmount,
+            TUint aCurrentAmount ); 
+		
+        /**
+         * Updates the email icon based based on amount of
+         * waiting email messages.
+         * @param aAmount Amount of waiting email messages.
+         */
+        void UpdateEmailIcon( TInt aAmount );
+        
+        /**
+         * Updates the message icon based on amount of
+         * new messages.
+         * @param aAmount Amount of new messages.
+         */
+        void UpdateMessageIcon( TInt aAmount );
+
+        /**
+         * Checks if the soft notification should be displayed or not.
+         * @param aNotificationType Type of the notification
+         * @return EFalse if soft notification should not be displayed, 
+         * default value is ETrue
+         */
+        TBool CheckSNStatusL( const TNcnNotificationType& aNotificationType ) const;                        
+                        
+        /**
+        * Checks if the Display Lights should be Set or not.
+        * @param aNotificationType Type of the notification
+        * @return EFalse if soft notification should not be displayed, 
+        * default value is ETrue
+        */
+       TBool CheckDLStatus( const TNcnNotificationType& aNotificationType ) const;                        
+      
+    private:    // Data
+    
+        // ncn UI reference
+        MNcnUI& iNcnUI;
+        
+        // ncn model reference
+        CNcnModelBase& iModel;
+        
+        // notification amounts
+        TUint iNotificationAmounts[ ENcnNoNotification ];
+        //Display Light Configuration
+        TInt iDisplayLightstate;
+    
+    };
+    
+#endif // CNCNNOTIFIER_H
+
+// End of File