codhandler/roapapp/inc/RoapAppUi.h
changeset 0 dd21522fd290
child 36 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/codhandler/roapapp/inc/RoapAppUi.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,337 @@
+/*
+* 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 the License "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: 
+*      Declaration of class CRoapAppUi.   
+*      
+*
+*/
+
+
+#ifndef ROAP_APP_UI_H
+#define ROAP_APP_UI_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <f32file.h>
+#include <AknAppUi.h>
+#include <AknServerApp.h>
+#include <RoapObserver.h>
+#include <DownloadMgrClient.h>
+#include "RoapAppWaitDialog.h"
+#include <CentralRepository.h>
+
+// FORWARD DECLARATIONS
+
+class CRoapAppView;
+class CRoapAppDocument;
+class CRequestCompleteCallback;
+class CDocumentHandler;
+
+// CONSTANTS
+const TUid KDRMHelperUid = {0x101F85C7}; // KBrowserHelpUid = {0x10008D39} 
+
+/**
+* ROAP Application UI.
+*/
+class CRoapAppUi
+: public CAknAppUi,
+  public MRoapDialogCommandObserver,
+  public Roap::MRoapObserver,
+  public MAknServerAppExitObserver,
+  public MHttpDownloadMgrObserver
+    {
+
+    public:     // Constructors and destructor
+
+        /**
+        * Constructor.
+        */      
+        CRoapAppUi();
+        
+        /**
+        * Second phase constructor. Leaves on failure.
+        */      
+        void ConstructL();
+
+        /**
+        * Destructor.
+        */      
+        virtual ~CRoapAppUi();
+
+    public:     // from CAknAppUi
+
+        /**
+        * Open a file.
+        * @param aFileName File name to open.
+        */
+        virtual void OpenFileL( const TDesC& aFileName );
+
+        /**
+        * Handle command.
+        * @param aCommand Command id.
+        */
+        virtual void HandleCommandL( TInt aCommand );
+
+    protected:  // from CAknAppUi
+
+        /**
+        * Process command line parameters.
+        * @param aCommand Command.
+        * @param aDocumentName Document name.
+        * @param aTail Don't know what; ignored.
+        * @return EFalse.
+        */
+        virtual TBool ProcessCommandParametersL
+            (
+            TApaCommand aCommand,
+            TFileName& aDocumentName,
+            const TDesC8& aTail
+            );
+
+        /**
+        * Handle resource change.
+        * @param aType Resource type.
+        */
+        virtual void HandleResourceChangeL( TInt aType );
+
+    private:    // from Roap::MRoapObserver
+    
+        /**
+        * Confirm creating network connection.
+        * @return ETrue if network connection confirmed.
+        */
+        virtual TBool ConnectionConfL();
+
+        /**
+        * Confirm contacting Rights Issuer.
+        * @return ETrue if confirmed.
+        */
+        virtual TBool ContactRiConfL();
+		
+        /**
+        * Confirm transaction ID tracking.
+        * @return ETrue if transaction ID tracking confirmed.
+        */
+        virtual TBool TransIdConfL();
+
+       /**
+        * Handle right objects after a successful RoAcq.
+        * @param aRightsList Received right objects.
+        */
+		virtual void RightsObjectDetailsL
+	        ( const RPointerArray<CDRMRights>& aRightsList );
+		
+        /**
+        * ROAP response returned multipart response, return parameters
+        * needed saving.
+        * @param aTempFolder Folder for temp file returned here.
+        * @param aContentName Name for content file returned here.
+        * @param aMaxSize Safety size limit returned here.
+        */
+        virtual void ContentDownloadInfoL
+            ( TPath& aTempFolder, TFileName& aContentName, TInt& aMaxSize );
+
+        /**
+        * Details of DCF file received in ROAP (saved by ROAP Engine).
+        * @param aPath: The path and the filename of the saved DCF file.
+        * @param aType: The plain MIME type of the saved DCF file.
+        * @param aAppUid: The handler app UID of the saved DCF file.
+        */
+		virtual void ContentDetailsL
+		    ( const TDesC& aPath, const TDesC8& aType, const TUid& aAppUid );
+                                      
+        /**
+        * Handle DCF file (received in multipart RO response).
+        * @aFilename File name.
+        */
+        virtual void HandleDCFPartL( const TDesC8& aFilename );
+
+        /**
+        * Progress callback.
+        * @param aProgressInfo Percentage completed.
+        */
+		virtual void RoapProgressInfoL( const TInt aProgressInfo );
+		
+       /**
+        * ErrorUrl
+        * @param aErrorUrl: The error URL
+        * @return void
+        */
+        virtual void ErrorUrlL( const TDesC8& aErrorUrl );
+
+        /**
+        * PostResponseUrlL
+        * @param aPrUrl: The PostResponseURL
+        * @return void
+        */
+        virtual void PostResponseUrlL( const TDesC8& aPrUrl );
+        
+	private:	//from MHttpDownloadMgrObserver        
+        /**
+        * Indicates an event.
+        * @param aDownload The download with which the event occured.
+        * @param aEvent Event type.
+        * @return None.
+        */
+        virtual void HandleDMgrEventL( RHttpDownload& aDownload, THttpDownloadEvent aEvent );
+
+        		
+    private:    // from MAknServerAppExitObserver
+    
+        /**
+        * Handle exmbedded application exit.
+        * @param aReason Exit reason.
+        */
+        virtual void HandleServerAppExit( TInt aReason );
+    
+    public:     // new methods
+
+        /**
+        * Trigger parsed.
+        */
+        void HandleTriggerParsedL();
+        
+        /**
+        * Call back function to launch the help 
+        */ 
+        static TInt ShowRoapCallback( TAny* aPtr ); 
+
+        /**
+        * Handle One Pass RO
+        */
+        void HandleOnePassRoL( TInt aError);
+
+    private:    // new methods
+            
+        /**
+        * Start ROAP.
+        */
+        void StartRoapL();
+    
+        /**
+        * Cancel ROAP.
+        */
+        void CancelRoap();
+    
+        /**
+        * Handle ROAP completion.
+        */
+        void RoapDone();
+
+        /**
+        * Handle successful ROAP.
+        * @return ETrue if application should exit.
+        */
+        TBool RoapOkL();
+
+        /**
+        * Handle successful RoAcq ROAP.
+        * @return ETrue if application should exit.
+        */
+        TBool RoAcqOkL();
+
+        /**
+        * Handle failed ROAP.
+        * @param aError ROAP error.
+        * @return ETrue if application should exit.
+        */
+        TBool RoapFailedL( TInt aError );
+
+        /**
+        * Handle ROAP completion (static wrapper for TCallBack use).
+        * @param aPtr Pointer passed to the callback (this object as TAny*).
+        * @return EFalse (as TInt).
+        */
+        static TInt StaticRoapDone( TAny* aPtr );
+
+    private:    // new methods
+
+        /**
+        * Access the document (casted to its real type).
+        * @return The document (casted to its real type).
+        */
+        CRoapAppDocument* RoapDocument();
+
+    private:    // from MRoapDialogCommandObserver
+
+        /**
+        * Handle dialog command (from wait note).
+        * @param aCommand Dialog command id.
+        */
+        void HandleDialogCommandL( TInt aCommand );
+
+    private:    // new methods
+
+        /**
+        * Show an information note.
+        * @param aPromptResourceId Resource id of prompt text (RESOURCE TBUF).
+        */
+        void InfoNoteL( TInt aPromptResourceId );
+
+        /**
+        * Show an information note.
+        * @param aPrompt Prompt text.
+        */
+        void InfoNoteL( const TDesC& aPrompt );
+
+        /**
+        * Show an confirmation note.
+        * @param aPromptResourceId Resource id of prompt text (RESOURCE TBUF).
+        */
+        void ConfNoteL( TInt aPromptResourceId );
+
+        /**
+        * Show an confirmation note.
+        * @param aPrompt Prompt text.
+        */
+        void ConfNoteL( const TDesC& aPrompt );
+
+    private:    // new methods
+
+        /**
+        * Check if file can be opened (unprotected, or rights present).
+        * @param aFile File.
+        * @return ETrue if file can be opened.
+        */
+        TBool CanOpenL( RFile& aFile ) const;
+        
+       /**
+        * Launch help dialog
+        * @param TDesC aContext
+        * @return void
+        */
+        void LaunchHelpL( const TDesC& aContext );
+		
+    private:    // data
+
+        /// App's view (control). Owned.
+        CRoapAppView* iView;
+        /// Wait note. Owned.
+        CRoapAppWaitDialog* iWaitNote;
+        /// Callback object. Owned.
+        CRequestCompleteCallback* iCallback;
+        /// Document handler or NULL. Owned.
+        CDocumentHandler* iDocHandler;
+        /// File Server Session.
+        RFs iFs;
+        /// MO associated with the received RO.
+        RFile iFile;
+        /// Download manager
+        RHttpDownloadMgr   iDownloadMgr;
+        /// Download status of PostResponse URL 
+        TBool iPostResponseURLDownLoad;
+    };
+
+#endif /* def ROAP_APP_UI_H */