iaupdate/IAD/backgroundchecker/inc/iaupdatebgsoftnotification.h
changeset 0 ba25891c3a9e
child 29 26b6f0522fd8
child 65 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iaupdate/IAD/backgroundchecker/inc/iaupdatebgsoftnotification.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,181 @@
+/*
+* 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:    
+*
+*/
+
+
+
+#ifndef IAUPDATEBGSOFTNOTIFICATION_H
+#define IAUPDATEBGSOFTNOTIFICATION_H
+
+// INCLUDES
+#include <e32base.h>
+#include <AknDynamicSoftNotifier.h>
+#include "iaupdatebgcheckermode.h"
+
+// FORWARD DECLARATION
+class TAknDynamicSoftNotificationParams;
+class CIAUpdateBGInternalFileHandler;
+
+class MIAUpdateBGSoftNotificationCallBack
+    {
+    public:
+        virtual void SoftNotificationCallBack( TBool aIsAccepted ) = 0;
+        virtual TIAUpdateBGMode CurrentMode() = 0;
+    };
+
+
+// CLASS DECLARATION
+/**
+ *  Controls the native soft notifications.
+ *  This class delegates method calls to AvKon soft notification.
+ *
+ *  @since 3.2
+ */
+class CIAUpdateBGSoftNotification : public CBase, public MAknDynamicSoftNoteObserver
+    {
+    public:  // Constructors and destructor
+
+        /**
+         * Static constructor
+         */
+        static CIAUpdateBGSoftNotification* NewL( MIAUpdateBGSoftNotificationCallBack* aCallback, CIAUpdateBGInternalFileHandler* aInternalFile );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CIAUpdateBGSoftNotification();
+
+    public: // From MAknDynamicSoftNotifierObserver
+
+        /**
+         * Dynamic soft notification was accepted by user.
+         *
+         * @param aNoteId Identification of notification.
+         */
+        void NotificationAccepted( TInt aIdentifier );
+
+        /**
+         * Dynamic soft notification was canceled by user.
+         *
+         * @param aNoteId Identification of notification.
+         */
+        void NotificationCanceled( TInt aIdentifier );
+
+    public: // New functions
+        
+        void StartObservingIfNeededL();
+        
+        
+        /**
+         * Add a custom soft notification. If a custom soft notification with
+         * exactly the same parameters already exists,
+         * its count is increased by aCount.
+         *
+         * @param aNotificationId identifier for this notification
+         * @param aCount addition count
+         */
+        void ShowSoftNotificationL();
+
+        /**
+         * Cancels custom soft notification.
+         *
+         * @param aNotificationId identifier for this notification
+         */
+        void RemoveSoftNotificationL( TInt aNotifierID );
+
+        /**
+         * Set a text for a soft notification.
+         *
+         * @param aSingularText singular text for soft notification
+         * @param aPluralText plural text for soft notification
+         */
+        void SetTextL( const TDesC& aText, const TDesC& aGroupText );
+
+        /**
+         * Set labels for soft notification's softkeys.
+         *
+         * @param aSoftkey1Label Label for the softkey 1
+         * @param aSoftkey2Label Label for the softkey 2
+         */
+        void SetSoftkeyLabelsL( const TDesC& aSoftkey1Label,
+            const TDesC& aSoftkey2Label );
+
+        /**
+         * Set an image for a soft notification.
+         *
+         * @param aImage image for soft notification
+         */
+        void SetImageL( const TDesC8& aImage );
+
+        /**
+         * Returns the notification id.
+         *
+         * @return notification id
+         */
+        TInt Id();
+
+    private:  // Constructors
+        /**
+         * C++ constructor.
+         *
+         * @param aAppId View activation application id.
+         * @param aNotificationId Notification id.
+         * @param aEventSource Event source used for posting events from
+         *        native to Java side.
+         */
+        CIAUpdateBGSoftNotification( MIAUpdateBGSoftNotificationCallBack* aCallback, CIAUpdateBGInternalFileHandler* aInternalFile );
+
+        /**
+         * 2nd phase constructor.
+         */
+        void ConstructL();
+
+    private:  // New methods
+   
+        /**
+         * Set assigned member data to custom notification parameters
+         *
+         * @param aParam custom soft notification params to fill
+         */
+        void FillNotificationParams( TAknDynamicSoftNotificationParams& aParam );
+
+    private:  // Data
+        /// Own. AvKon custom soft notifier
+        CAknDynamicSoftNotifier* iNotifier;
+        /// View activation application id
+        TUid iAppId;
+        /// Notification Id
+        TInt iNotificationId;
+        /// Own. Softkey 1 label
+        HBufC* iSoftkey1;
+        /// Own. Softkey 2 label
+        HBufC* iSoftkey2;
+        /// Own. Note label when single dialog is shown
+        HBufC* iLabel;
+        /// Own. Note label when notifications are groupped
+        HBufC* iGroupLabel;
+        /// Own. Image data byte array
+        HBufC8* iImageData;
+        
+        MIAUpdateBGSoftNotificationCallBack* iCallback;
+        
+        CIAUpdateBGInternalFileHandler* iInternalFile; //not owned
+
+    };
+
+#endif // IAUPDATEBGSOFTNOTIFICATION_H
+
+