pnpmobileservices/pnpms/PnP/PnpProvisioningAppInc/PnpProvisioningAppUi.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:09:30 +0200
changeset 2 a5fecba4b1e4
parent 0 3ce708148e4d
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
* Copyright (c) 2004-2006 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: Implementation of PnPMS components
*
*/


#ifndef PNPPROVISIONINGAPPUI_H
#define PNPPROVISIONINGAPPUI_H

// INCLUDES
#include <eikapp.h>
#include <eikdoc.h>
#include <e32std.h>
#include <coeccntx.h>
#include <aknappui.h>
#include "PnpProvisioningDocument.h"
#include "mwaitdialogstatusnotifier.h"  // for MWaitDialogStatusNotifier
#include <PnpProvUtil.h>
#include "PnpServiceActivation.h"


// FORWARD DECLARATIONS
//class CPnpProvisioningContainer;
class CWaitDialogMonitor;

// CLASS DECLARATION

/**
* Application UI class.
* Provides support for the following features:
* - EIKON control architecture
* 
*/
class CPnpProvisioningAppUi : 
    public CAknAppUi,
    public MCoeForegroundObserver,
    private MWaitDialogStatusNotifier
    {
    public: // // Constructors and destructor

        /**
        * EPOC default constructor.
        */      
        void ConstructL();

        /**
        * Destructor.
        */      
        ~CPnpProvisioningAppUi();
        
    public: // New functions

        /**
        * From Exits app.
        */
        void DoExit();
        void RedirectL( const TDesC& aUrl, THttpProvStates::TProvisioningStatus aStatus );
        static TInt PeriodicCallback( TAny* aPtr );

    public: // from MCoeForegroundObserver
        void HandleGainingForeground();
        void HandleLosingForeground();
        
    private:
        // From MEikMenuObserver
        void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
    
    public: // from MCMDialogStatusNotifier
        void WaitDialogDismissedL( const TInt aStatusCode );

    public:
	TBool ServiceActivationEnabledL();
        
    private:
        /**
        * From CEikAppUi, takes care of command handling.
        * @param aCommand command to be handled
        */
        void HandleCommandL(TInt aCommand);

        /**
        * From CEikAppUi, handles key events.
        * @param aKeyEvent Event to handled.
        * @param aType Type of the key event. 
        * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed). 
        */
        virtual TKeyResponse HandleKeyEventL(
            const TKeyEvent& aKeyEvent,TEventCode aType);
            
        void ShowWaitNoteL();
        
        void TerminateBrowserL(TInt aError, TInt& aNoRedirect);

    private: //Data
        void DoPeriodicCallbackL( TAny* aPtr );
        /**
        Tries to read AP id from a connection (that is currently in use)
        that RConnectionMonitor::GetConnectionInfo gives first.
        */
        void ResolveApL( TUint32& aAp );
        
        void ShowErrorNoteL();

        //CPnpProvisioningContainer* iAppContainer; 
        CPeriodic* iPeriodic;
        TUint32 iApInUse;
        
         // wait note dialog monitor
        CWaitDialogMonitor* iWaitDialogMonitor;
        // wait note dialog
        CAknGlobalNote* iGlobalWaitNote;
    };

#endif

// End of File