wvuing/IMPSConnectionUI/UISrc/CCnUiUiFacade.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/UISrc/CCnUiUiFacade.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,404 @@
+/*
+* 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:  UI facade.
+*
+*/
+
+#ifndef __CCNUIFACADE_H
+#define __CCNUIFACADE_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "mimpsconnprocessobserverng.h"
+#include "MCnUiUiFacade.h"
+#include "CCnUiSignInControl.h"
+
+
+// FORWARD DECLARATIONS
+class CCoeEnv;
+class MCnUiWaitNoteObserver;
+class CCommandAbsorbingControl;
+class CAknIconArray;
+class CIMPSSAPSettings;
+class MIMPSSharedData;
+class CBrowserLauncher;
+
+/**
+ * Internal note type enumeration.
+ * @since 2.1
+ */
+enum TCnUiConnUiNoteType
+    {
+    EInfoNote = 0,
+    EConfirmationNote,
+    EErrorNote,
+    EConfirmedErrorNote,
+    EConfirmedErrorNoteMSKSelectIcon
+    };
+
+
+
+// CLASS DECLARATION
+/**
+ * UI facade implementation for
+ * Connection UI
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnUiUiFacade ) : public CBase,
+        public MCnUiUiFacade,
+        public MIMPSConnProcessUi
+    {
+public:  // Two-phased constructors and destructor
+
+    /**
+     * Two-phased constructor.
+     */
+    static CCnUiUiFacade* NewL();
+
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCnUiUiFacade();
+
+private:
+
+    /**
+     * C++ constructor.
+     */
+    CCnUiUiFacade();
+
+
+    /**
+     * Symbian OS constructor.
+     */
+    void ConstructL();
+
+
+public: // Functions from MCnUiUiFacade
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    MIMPSConnProcessUi& ConnProcessUi();
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void CommandAbsorbOnLC();
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void FlushCommandBuffer();
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    MCnUiConnWaitNote* WaitNoteL( TCnUiConnectionWaitNotes aNoteId,
+                                  MCnUiWaitNoteObserver* aObserver = NULL );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    MCnUiConnWaitNote* WaitNoteL( TCnUiConnectionWaitNotesDynText aNoteId,
+                                  const TDesC& aInsertText,
+                                  MCnUiWaitNoteObserver* aObserver = NULL );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    MCnUiConnQuery* QueryL( TCnUiConnAsyncQuery aQueryId,
+                            MCnUiConnQueryObserver& aObserver );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    MCnUiConnQuery* QueryL( TCnUiConnAsyncQueryDynText aQueryId,
+                            const TDesC& aInsertText,
+                            MCnUiConnQueryObserver& aObserver );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void ShowNoteL( TCnUiConnectionNotes aNoteId );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void ShowNoteL( TCnUiConnectionNotesDynText aNoteId,
+                    const TDesC& aInsertText );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void ShowLoginErrorNoteL( TInt aErrorCode );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void ShowLogoutErrorNoteL( TInt aErrorCode );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    TBool ConfirmationQueryL( TCnUiConnectionQueries aQueryId );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    TBool ConfirmationQueryL( TCnUiConnectionQueriesDynText aQueryId,
+                              const TDesC& aInsertText );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    TBool LoginQueryL( TDes& aUsername,
+                       TDes& aPassword,
+                       CIMPSSAPSettings& aSap,
+                       TCnUiLoginDataQueryMode aMode );
+
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    TBool ServerToUseQueryL( MDesCArray& aServers,
+                             TInt aIndexToHighlight,
+                             TInt& aSelectedIndex );
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.1
+     */
+    void HandleIfError( TInt aErr );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 2.6
+     */
+    void SwitchResourceFileL( const TDesC& aNewResourceFile );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 3.1u
+     */
+    TInt DisplayDomainSelectionQueryL( TDes& aSelectedDomain,
+                                       CIMPSSAPSettings* aSap = NULL );
+
+    /**
+     * @see MCnUiUiFacade
+     * @since 3.1u
+     */
+    TBool DisplayTermsOfUseAndQueryL();
+
+public: //from MIMPSConnProcessUi
+
+    /**
+     * Sets the new resource file to use in Connection UI.
+     *
+     * @see MIMPSConnProcessUi
+     * @since 2.1
+     */
+    void UseResourceFileL( const TDesC& aNewResourceFile );
+
+
+    /**
+     * Gets Connection UI's default resource file name.
+     *
+     * @see MIMPSConnProcessUi
+     * @since 2.1
+     */
+    void ResourceFileNameL( TDes& aResourceFileName );
+
+
+private: //New helpers
+
+
+    /**
+     * Removes the possibly added resource file
+     * from resource file stack,
+     * @since 2.1
+     */
+    void RemoveUsedResourceFile();
+
+
+    /**
+     * Retrieves a system error text for given
+     * error code and returns it as a HBufC.
+     * Ownership of HBufC is returned to caller.
+     *
+     * If any matching system error text isn't
+     * found for error number, returns a NULL.
+     *
+     * Performs internally certain filtering and
+     * mapping operations for basic KErr* error
+     * codes.
+     *
+     * @since 2.1
+     * @param aErrorCode for which to get the error
+     * text.
+     * @return HbufC buffer containing the proper error
+     * text or NULL pointer if matching text wasn't found.
+     */
+    HBufC* SystemErrorTextOrNullForCodeL( TInt aErrorCode );
+
+
+    /**
+     * Shows a desired type note with desired text
+     * loaded from given resource id.
+     *
+     * @since 2.1
+     * @param aNoteTextResourceId Resource of the note text to show.
+     * @param aNoteType Type of shown note.
+     */
+    void DoShowNoteL( TInt aNoteTextResourceId, TCnUiConnUiNoteType aNoteType );
+
+
+    /**
+     * Shows a desired type note with given text.
+     *
+     * @since 2.1
+     * @param aNotePrompt The prompt text to show in note.
+     * @param aNoteType Type of shown note.
+     */
+    void DoShowNoteL( const TDesC& aNotePrompt, TCnUiConnUiNoteType aNoteType );
+
+
+    /**
+     * Shows a confirmation query with given text.
+     *
+     * @since 2.1
+     * @param aPromptText The prompt text to show in query.
+     * @return ETrue if user accepted the query, else EFalse.
+     */
+    TBool DoShowConfirmationQueryL( const TDesC& aPromptText );
+
+    /**
+    * Constructs complete path from parts and checks for correctness.
+    * @param aResult, the complete path.
+    * @param aModuleId, dll's (or app) id. For example "IM".
+    * @param aAlternative, id for alternative (for example operator "Oper1" ) files.
+    * @param aFileName, filename of the complete path
+    * @return ETrue if path was found from C or MMC card, otherwise false
+    * @since 2.1
+    */
+    TBool ConstructCompletePathAndCheck( TDes& aResult,
+                                         const TDesC& aModuleId,
+                                         const TDesC& aAlternative,
+                                         const TDesC& aFileName );
+
+    /**
+    * Returns MMC drive.
+    * @param aDrive, the result.
+    */
+    void MMCDrive( TDes& aDrive ) const;
+
+    /**
+     * Loads the branded server icons to iIconArray
+     * @param aServers List of the server names
+     */
+    void LoadServerIconsL( MDesCArray& aServers );
+
+
+    /**
+     * Opens correct resource file.
+     * !!! Two items left to cleanup stack. !!!
+     * @param aResourceFile Contains opened file on return
+     * @since 3.2
+     */
+    void OpenResourceFileLC( RResourceFile& aResourceFile );
+
+    /**
+     * Reads integer resource value from resources
+     * @param aResourceId resource id which is read
+     * @return value of wanted integer resource flag
+     */
+    TInt IntResourceValueL( TInt aResourceId );
+
+    /**
+     * Shows WAP registration query
+     * @return command id for user action
+     */
+    TInt ShowWAPQueryL();
+
+    /**
+     * Shows Terms and Conditions query
+     * @return command id for user action
+     */
+    TInt ShowTAndCDlgL();
+
+    /**
+     * Opens native browser with the specified URL
+     * @param a Url
+     */
+    void OpenWebBrowserL( const TDesC& aUrl );
+
+    TInt GetIntResourceValueL( TInt aResourceId );
+
+private: // data
+    ///<Cached pointer to control environment, not owned
+    CCoeEnv*                    iCoeEnv;
+
+    ///<Resource file offset, owned
+    TInt                        iResourceFileOffset;
+
+    ///<Default resource file name, owned
+    HBufC*                      iDefaultRssFileName;
+
+    ///<Flag wether the resource file has been added or not.
+    TBool                       iResourceFileAdded;
+
+    ///<Command absorber, owned
+    CCommandAbsorbingControl*   iCommandAbsorber;
+
+    ///<Icon array for server list query, owned
+    CAknIconArray* iIconArray;
+
+    MIMPSSharedData* iSharedData;
+
+    // Browser launcher
+    CBrowserLauncher* iBrLauncher;
+    // file handle used by resource file reading routine
+    RFs   iRFs;
+    CCnUiSignInControl* iControl;
+    };
+
+#endif      //  __CCNUIFACADE_H
+
+//  End of File
+