locationsystemui/locationsysui/locverifier/src/lpdverifierquerylauncher.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 22:18:21 +0300
branchRCL_3
changeset 16 6fcbaa43369c
parent 0 667063e416a2
permissions -rw-r--r--
Revision: 201011 Kit: 201013

/*
* Copyright (c) 2002 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:  Class which handles the dialog and expiration timer.
*
*/


// INCLUDE FILES
#include "lpdverifierquerylauncher.h"
#include "lpdglobalplugindialog.h"
#include "lpdresulthandler.h"
#include "locverifierdlg.hrh"
#include <locverifierdlg.rsg>
#include <avkon.hrh>

// CONSTANTS

const TInt KNonPeriodicRequest = 0;

// ============================ MEMBER FUNCTIONS ===============================

// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::CLpdVerifierQueryLauncher
// C++ default constructor can NOT contain any code, that
// might leave.
// -----------------------------------------------------------------------------
//
CLpdVerifierQueryLauncher::CLpdVerifierQueryLauncher( 
    MLpdResultHandler& aHandler ) 
    : CLpdQueryLauncherBase( aHandler )
    {
    // Intentionally empty
    }

// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::ConstructL
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CLpdVerifierQueryLauncher::ConstructL()
    {
    BaseConstructL();
    }

// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::NewL
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
CLpdVerifierQueryLauncher* CLpdVerifierQueryLauncher::NewL( 
    MLpdResultHandler& aHandler )
    {
    CLpdVerifierQueryLauncher* self =
        new( ELeave ) CLpdVerifierQueryLauncher( aHandler );
    
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop(self);

    return self;
    }

// Destructor
CLpdVerifierQueryLauncher::~CLpdVerifierQueryLauncher()
    {
    // Intentionally empty
    }


// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::PrepareVerificationResourcesL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CLpdVerifierQueryLauncher::PrepareVerificationResourcesL(
    TPosRequestSource aSource,
    TPosRequestDecision aDefault)
    {
    if ( aSource == EPosRequestSourceNetwork && 
         aDefault == EPosDecisionAccepted )
        {
        PrepareQueryResourcesL( R_LPD_GLOBAL_VERIFICATION_DEFAULT_A, KNonPeriodicRequest );
        }
    else if ( aSource == EPosRequestSourceNetwork && 
              aDefault == EPosDecisionRejected )
        {
        PrepareQueryResourcesL( R_LPD_GLOBAL_VERIFICATION_DEFAULT_R, KNonPeriodicRequest );
        }
    else
        { // Terminal request, EPosDecisionNotAvailable or future extensions
        PrepareQueryResourcesL( R_LPD_GLOBAL_VERIFICATION_DEFAULT_N, KNonPeriodicRequest );
        }

    iQueryDlg->SetTone( EAvkonSIDLocationRequest );
    }

// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::PrepareSuplVerificationResourcesL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CLpdVerifierQueryLauncher::PrepareSuplVerificationResourcesL()
{
  PrepareQueryResourcesL( R_LPD_SUPL_PERIODIC_VERIFICATION_DEFAULT, KNonPeriodicRequest );
  iQueryDlg->SetTone( EAvkonSIDLocationRequest );
}

// -----------------------------------------------------------------------------
// CLpdVerifierQueryLauncher::ExtendedHandleDlgDismissedL
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
void CLpdVerifierQueryLauncher::ExtendedHandleDlgDismissedL()
    {
    TInt retValue = KErrNone;
    switch ( iResult )
        {
        case EAknSoftkeyOk:
            {
            retValue = KErrNone;
            break;
            }
        case EAknSoftkeyCancel:
            {
            retValue = KErrAccessDenied;
            break;
            }
        case EEikCmdExit:
            {
            retValue = iExitReason;
            break;
            }
        case ELpdCmdEmergency:
            { // emergency call support
            retValue = KErrAbort;
            break;
            }
        default:
            {
            retValue = KErrGeneral;
            break;
            }
        }
    iHandler.HandleVerificationResultL( retValue );
    }

//  End of File