upnpsettings/appwizard/src/cupnpappwizard.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpsettings/appwizard/src/cupnpappwizard.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1314 +0,0 @@
-/*
-* 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:      Implementation of setup Wizard
- *
-*/
-
-
-
-
-
-
-// INCLUDE FILES
-#include <AknUtils.h>
-#include <featmgr.h>
-#include <bautils.h>
-#include <StringLoader.h>
-#include <eikspmod.h>
-#include <eikclb.h>
-#include <aknview.h>
-#include <aknViewAppUi.h>
-#include <eikprogi.h>
-#include <aknmessagequerydialog.h>  //CAknMessageQueryDialog
-#include <aknlistquerydialog.h>     //CAknListQueryDialog
-#include <es_sock.h> //RSocketServ
-#include <commdb.h>
-#include <cdbcols.h>
-#include <WlanCdbCols.h>
-#include <wlanmgmtinterface.h>
-#include <aknnotewrappers.h> //CAknWaitDialog
-#include <AknWaitDialog.h>
-#include <cupnpappwizard.rsg>
-#include <commdb.h> // COMMS DB - for checking AP validity
-
-// upnp stack
-#include "upnpstring.h" //String::ToUnicodeL
-
-// ADO internal interfaces
-#include "upnpsettingsengine.h" //Friendly name, AP
-#include "upnpsettingsengine.hrh" //AP
-#include "cupnpmultiselectionui.h" //CUPnPMultiSelectionUi
-
-// this component
-#include "cupnpappwizard.h"
-
-// logging facility
-_LIT( KComponentLogfile, "upnpsetupwizard.txt");
-#include "upnplog.h"
-
-// CONSTANTS
-// Filename of rsc file
-_LIT( KUPnPSetupWizardRscFile, "\\resource\\cupnpappwizard.rsc" );
-
-// ============================ MEMBER FUNCTIONS ============================
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::CUPnPAppWizard
-// --------------------------------------------------------------------------
-//
-CUPnPAppWizard::CUPnPAppWizard()
-    {
-    __LOG("CUPnPAppWizard::CUPnPAppWizard");
-    iDialogDismissed = ETrue;
-    iFeatureManagerInitialized = EFalse;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::ConstructL( const TDesC& aFirstStepText,
-                                 CUPnPFileSharingEngine* aEng )
-    {
-    __LOG("CUPnPAppWizard::ConstructL begin");
-
-    iShareImgAndVideoArray = new (ELeave) CArrayFixFlat<TInt>(3);
-    iShareMusicArray = new (ELeave) CArrayFixFlat<TInt>(3);
-    
-    iCoeEnv = CEikonEnv::Static();
-    RFs& fileSession = iCoeEnv->FsSession();
-
-
-    // Load resource file
-    TFileName rscFileName( KUPnPSetupWizardRscFile );
-    TFileName dllName;
-    Dll::FileName( dllName );
-    TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':' 
-    rscFileName.Insert( 0, drive );
-    
-    // Get the exact filename of the resource file
-    BaflUtils::NearestLanguageFile( fileSession, rscFileName );
-    // Check if the resource file exists or not
-    if ( !BaflUtils::FileExists( fileSession, rscFileName ) )
-        {
-        User::Leave( KErrNotFound );
-        }
-    TInt err( KErrNone );
-    TRAP( err, iResFileOffset = iCoeEnv->AddResourceFileL( rscFileName ) );
-
-    FeatureManager::InitializeLibL();
-    iFeatureManagerInitialized = ETrue;
-
-    // Get AppUI pointer
-    iAppUi = static_cast<CAknViewAppUi*>( iCoeEnv->EikAppUi() );
-
-    iSetEng = CUPnPSettingsEngine::NewL();
-    if ( aEng )
-        {
-        iFileEng = aEng;
-        }
-    else
-        {
-        User::Leave( KErrArgument);
-        }
-    iFileEng->SetObserver( this );
-    iFirstStepText = aFirstStepText.AllocL();
-
-    iSharingState = iFileEng->SharingStateL();
-    iSelections = new (ELeave) CSelectionStorage( iSetEng, iFileEng );
-    __LOG("CUPnPAppWizard::ConstructL end");
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::NewL()
-// Two-phased constructor.
-// --------------------------------------------------------------------------
-//
-EXPORT_C CUPnPAppWizard* CUPnPAppWizard::NewL( const TDesC& aFirstStepText,
-                                               CUPnPFileSharingEngine* aEng )
-    {
-    __LOG("CUPnPAppWizard::NewL begin");
-
-    CUPnPAppWizard* self = new ( ELeave) CUPnPAppWizard();
-    CleanupStack::PushL( self );
-
-    self->ConstructL( aFirstStepText, aEng );
-
-    CleanupStack::Pop();
-    __LOG("CUPnPAppWizard::NewL end");
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// Destructor
-// --------------------------------------------------------------------------
-//
-CUPnPAppWizard::~CUPnPAppWizard()
-    {
-    __LOG("CUPnPAppWizard::~CUPnPAppWizard begin");
-
-    if ( iFeatureManagerInitialized )
-        {
-        FeatureManager::UnInitializeLib();
-        }
-
-    // Un-Load resource file
-    if ( iResFileOffset )
-        {
-        CEikonEnv::Static()->DeleteResourceFile( iResFileOffset );
-        iResFileOffset = 0;
-        }
-
-    delete iSetEng;
-
-    delete iSelections;
-    delete iIapNameArr;
-    delete iFirstStepText;
-
-    if ( iWait.IsStarted() )
-        {
-        if ( iWait.CanStopNow() )
-            {
-            iWait.AsyncStop();
-            }
-        else
-            {
-            __LOG("CUPnPAppWizard: \
-Error cant stop iWait");
-            }
-        }
-
-    if ( iFileEng )
-        {
-        iFileEng->SetObserver( NULL );
-        }
-
-    delete iShareImgAndVideoArray;
-    delete iShareMusicArray;
-    
-    __LOG("CUPnPAppWizard::~CUPnPAppWizard end");
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::StartL
-// The main loop of setup wizard
-// --------------------------------------------------------------------------
-//
-
-EXPORT_C TInt CUPnPAppWizard::StartL( )
-    {
-    __LOG("CUPnPAppWizard::StartL begin");
-    TInt ret(KErrNone);
-    do
-        {
-        switch ( iStep )
-            {
-        case EInfo1:
-            {
-            ret = ShowFirstStepL( R_UPNP_WIZARD_POPUP_DIALOG_1 );
-            }
-            break;
-        case EInfo2:
-            {
-            ret = ShowInfoStepL( R_UPNP_WIZARD_POPUP_DIALOG_2 );
-            }
-            break;
-        case EDeviceName:
-            {
-            ret = ShowTextStepL( R_UPNP_WIZARD_POPUP_DIALOG_3 );
-            }
-            break;
-        case EInfo4:
-            {
-            ret = ShowInfoStepL( R_UPNP_WIZARD_POPUP_DIALOG_4 );
-            }
-            break;
-        case EAccessPoint:
-            {
-            ret = ShowListStepL( R_UPNP_WIZARD_POPUP_DIALOG_5 );
-            }
-            break;
-        case EInfo6:
-            {
-            ret = ShowInfoStepL( R_UPNP_WIZARD_POPUP_DIALOG_6 );
-            }
-            break;
-        case EShareImages:
-            {
-            ret = ShowMultiselectionStepL( R_UPNP_WIZARD_HEAD_7_TEXT );
-            }
-            break;
-        case EShareMusic:
-            {
-            ret = ShowMultiselectionStepL(R_UPNP_WIZARD_HEAD_8_TEXT );
-            }
-            break;
-        case EInfo9:
-            {
-            if ( iSelections->HasSomethingToShare() )
-                {
-                ret = ShowInfoStepL( R_UPNP_WIZARD_POPUP_DIALOG_9A );
-                }
-            else
-                {
-				iFileEng->SetObserver( this );
-                ret = ShowInfoStepL( R_UPNP_WIZARD_POPUP_DIALOG_9B );
-                }
-            }
-            break;
-        case EStoreSettings:
-            {
-            iSelections->StoreSettingsL();
-            if ( !iSharingState && iSelections->HasSomethingToShare() )
-                {
-                __LOG("CUPnPAppWizard::StartL: \
-Staring sharing..");
-                // need to wait for DialogDismissed()
-                iDialogDismissed = EFalse;
-                ShowWaitNoteL( R_UPNP_WIZARD_STARTING_FILE_SHARING_NOTE );
-                DisplayInfoL( R_UPNP_WIZARD_UPDATING_CONTENT_HEADER,
-                              R_UPNP_WIZARD_UPDATING_CONTENT_NOTE_TEXT,
-                              R_UPNP_WIZARD_INFO_QUERY );
-                }
-            else if ( iSharingState && !iSelections->HasSomethingToShare() )
-                {
-                __LOG("CUPnPAppWizard::StartL: \
-Stopping sharing..");
-                iFileEng->SetSharingStateL( EFalse );
-                iWait.Start();
-                }
-
-            // Stores also videofiles
-            iSelections->ImageStoreSharedFilesL();
-
-
-            }
-            break;
-        default :
-            {
-            __LOG("CUPnPAppWizard::StartL: default!");
-            _LIT(KUser, "USER");
-            User::Panic(KUser, 0);
-            }
-            break;
-            }
-        SetNextStep( ret );
-        }
-    while ( iStep != EFinished );
-    __LOG("CUPnPAppWizard::StartL end");
-    return ret;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowListStepL
-// Show the UI dialog with selection list
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::ShowListStepL( TInt aMain )
-    {
-    __LOG("CUPnPAppWizard::ShowListStepL begin");
-    TInt returnValue(KErrNone);
-    TInt currentSel(0);
-    TInt selectedIap(1);
-    TInt oldIap;
-    iSelections->GetIapId( oldIap );
-    TBool sharingCheck;
-    RArray<TInt64> iapIdArr;
-    TInt oldIapCount(0);
-
-    if ( !iIapNameArr )
-        {
-        iIapNameArr = new (ELeave) CDesCArrayFlat(3);
-        }
-
-    do
-        {
-        sharingCheck = ETrue;// ok to exit
-        currentSel = 0;
-        iSelections->InitializeIapArraysL( iIapNameArr, iapIdArr );
-        CUPnPSettingsEngine::GetWLANAccessPointsL( iIapNameArr, iapIdArr );
-        
-        // Set correct initial selection for ui
-        if ( currentSel != KUPnPCreateNewInd )
-            {
-            iSelections->GetCurrentSelection( currentSel, iapIdArr );
-            }
-        else
-            {
-            // ..in case user has selected "Create new"
-            if ( !iSharingState &&
-                 returnValue &&
-                 oldIapCount )
-                {
-                if ( oldIapCount != iapIdArr.Count() )
-                    {
-                    currentSel = iapIdArr.Count() - 1;
-                    }
-                }
-            }
-        CAknListQueryDialog* dlg = new
-            ( ELeave ) CAknListQueryDialog( &currentSel );
-
-        if ( !dlg )
-            {
-            User::Leave( KErrNoMemory );
-            }
-        dlg->PrepareLC( aMain );
-        
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_5_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-    
-        dlg->SetItemTextArray( iIapNameArr );
-        dlg->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
-        CListBoxView* listBoxView = dlg->ListBox()->View();
-        listBoxView->SetCurrentItemIndex( currentSel );
-
-        returnValue = dlg->RunLD();
-
-        TInt c( iapIdArr.Count() );
-
-        if ( currentSel == KUPnPCreateNewInd )
-            {
-            /* call to Wlan creator API */
-            
-            __LOG("CUPnPAppWizard::ShowListStepL:\
-Create new IAP..");
-            CUPnPSettingsEngine::CreateAccessPointL();
-            oldIapCount = iapIdArr.Count();
-            }
-        else if ( currentSel-1 < c )
-            {
-            // set last iap as selected if user succesfully created new iap
-            selectedIap = iapIdArr[ currentSel ];
-            }
-        if ( iSharingState &&
-             ( selectedIap != oldIap ) &&
-             returnValue )
-            {
-            // show info note if sharing is on and user pressed ok
-            sharingCheck = EFalse;
-            ShowInfoNoteL( R_UPNP_WIZARD_IAP_TURN_SHARING_OFF );
-            }
-        iapIdArr.Reset();
-        iIapNameArr->Reset();
-        }
-    while ( currentSel == KUPnPCreateNewInd ||
-            ! sharingCheck );
-
-    iSelections->SetIapId( selectedIap, currentSel );
-
-    iapIdArr.Reset();
-    __LOG("CUPnPAppWizard::ShowListStepL end");
-    return returnValue;
-    }
-
-// ---------------------------------------------------------
-// CUPnPAppWizard::ShowTextStepL( TInt aMain )
-// Shows popup with text and header
-// ---------------------------------------------------------
-//
-TInt CUPnPAppWizard::ShowTextStepL( TInt aMain )
-    {
-    __LOG("CUPnPAppWizard::ShowTextStepL");
-    TInt returnValue(KErrNone);
-
-    TBuf<64> data;
-    TBool sharingCheck( ETrue );
-    iSelections->GetDeviceNameL( data );
-    HBufC16* oldName16 = HBufC16::NewL( data.Size() );
-    CleanupStack::PushL( oldName16 );
-    *oldName16 = data;
-
-    do
-        {
-        sharingCheck = ETrue;
-        CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( data );
-
-        dlg->PrepareLC( aMain );
-        
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_3_TEXT );
-        dlg->SetPromptL( *head );
-        CleanupStack::PopAndDestroy( head );    
-    
-        returnValue = dlg->RunLD();
-
-        if ( iSharingState &&
-             returnValue )
-            {
-            TInt compRes = oldName16->CompareF( data );
-            if ( compRes )
-                {
-                // show info note if sharing is on
-                sharingCheck = EFalse;
-                ShowInfoNoteL( R_UPNP_WIZARD_IAP_TURN_SHARING_OFF );
-                data = *oldName16;
-                }
-            }
-        }
-    while ( !sharingCheck );
-    CleanupStack::PopAndDestroy( oldName16 );
-    if ( returnValue )
-        {
-        iSelections->SetDeviceNameL( data );
-        }
-    return returnValue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowInfoNoteL
-// Show the information note without buttons
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::ShowInfoNoteL( TInt aMain ) const
-    {
-    __LOG("CUPnPAppWizard::ShowInfoNoteL");
-
-    CAknInformationNote* note = new (ELeave) CAknInformationNote(ETrue);
-    HBufC* noteText = CCoeEnv::Static()->AllocReadResourceLC(
-        aMain);
-    note->ExecuteLD(*noteText);
-    CleanupStack::PopAndDestroy(noteText);
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowInfoStepL
-// Show the information note with OK BACK buttons
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::ShowInfoStepL( TInt aMain ) const
-    {
-    __LOG("CUPnPAppWizard::ShowInfoStepL");
-    TInt returnValue(KErrNone);
-    HBufC* messageText;
-
-    CAknMessageQueryDialog* dlg = new (ELeave)
-        CAknMessageQueryDialog( CAknQueryDialog::ENoTone );
-
-    dlg->PrepareLC( aMain );
-
-    switch( aMain )
-        {
-    case R_UPNP_WIZARD_POPUP_DIALOG_2:
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_2_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-        
-        HBufC* body = StringLoader::LoadLC( R_UPNP_WIZARD_2_TEXT );
-        dlg->SetMessageTextL( *body );
-        CleanupStack::PopAndDestroy( body );
-        
-        break;
-        }
-    case R_UPNP_WIZARD_POPUP_DIALOG_5:
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_5_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-        break;
-        }    
-    case R_UPNP_WIZARD_POPUP_DIALOG_6:
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_6_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-    
-        messageText = StringLoader::LoadLC( R_UPNP_WIZARD_6_2_TEXT );
-        dlg->SetMessageTextL( messageText->Des() );
-        CleanupStack::PopAndDestroy( );
-        break;
-        }
-    case R_UPNP_WIZARD_POPUP_DIALOG_9A:
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_9_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-        
-        messageText = StringLoader::LoadLC( R_UPNP_WIZARD_9A_TEXT );
-        dlg->SetMessageTextL( messageText->Des() );
-        CleanupStack::PopAndDestroy( );
-        break;
-        }
-    case R_UPNP_WIZARD_POPUP_DIALOG_9B:
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_9_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-        
-        messageText = StringLoader::LoadLC( R_UPNP_WIZARD_9B_TEXT );
-        dlg->SetMessageTextL( messageText->Des() );
-        CleanupStack::PopAndDestroy( );
-        break;
-        }
-    default:
-        break;
-        }
-
-    if ( iStep == EInfo4 )
-        {
-        HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_4_TEXT );
-        dlg->SetHeaderTextL( *head );
-        CleanupStack::PopAndDestroy( head );
-        
-        HBufC* itemText2 = StringLoader::LoadLC( R_UPNP_WIZARD_ALWAYS_ASK_TEXT );
-        HBufC* itemText1 = StringLoader::LoadLC( R_UPNP_WIZARD_4_TEXT,
-                                                 *itemText2 );
-
-        dlg->SetMessageTextL( itemText1->Des() );
-        CleanupStack::PopAndDestroy( 2 ); //itemText 1 & 2
-        }
-    returnValue = dlg->RunLD();
-
-    return returnValue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowFirstStepL
-// Show the first information note with OK BACK buttons and given text
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::ShowFirstStepL( TInt aMain ) const
-    {
-    __LOG("CUPnPAppWizard::ShowFirstStepL");
-    TInt returnValue( KErrNone );
-
-    CAknMessageQueryDialog* dlg = new (ELeave)
-        CAknMessageQueryDialog( CAknQueryDialog::ENoTone );
-
-    dlg->PrepareLC( aMain );
-    HBufC* head = StringLoader::LoadLC( R_UPNP_WIZARD_HEAD_1_TEXT );
-    dlg->SetHeaderTextL( *head );
-    CleanupStack::PopAndDestroy( head );
-    
-    if ( iFirstStepText->Length() )
-        {
-        // if the text for first step is given use it insted of default
-        __LOG( "Setting text" );
-        dlg->SetMessageTextL( *iFirstStepText );
-        }       
-    else
-        {
-        __LOG( " StringLoader::LoadLC" );
-        HBufC* body = StringLoader::LoadLC(R_UPNP_WIZARD_1_TEXT);
-        __LOG( "SetMessageTextL" );
-        dlg->SetMessageTextL( *body );
-        __LOG( "PopAndDestroy" );
-        CleanupStack::PopAndDestroy();
-        }
-    returnValue = dlg->RunLD();
-
-    return returnValue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowInfoStepL
-// Show the multiselection popup dialog for setting content to share
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::ShowMultiselectionStepL( TInt aText )
-    {
-    __LOG("CUPnPAppWizard::ShowMultiselectionStepL");
-
-    TInt returnValue(KErrNone);
-
-    THomeConnectMediaType mediaType( EImageAndVideo );
-
-    CArrayFix<TInt>* resArr = new (ELeave) CArrayFixFlat<TInt>(5);
-    CleanupStack::PushL( resArr );
-
-    if ( iStep == EShareMusic )
-        {
-        mediaType = EPlaylist;
-        }
-    TInt visualSharingState;
-    HBufC* head = StringLoader::LoadLC( aText );
-    
-    // no ownership transfers
-    CUPnPMultiselectionUi* uiDlg = CUPnPMultiselectionUi::
-        NewL(mediaType,
-             iFileEng,
-             visualSharingState,
-             resArr,
-             CUPnPMultiselectionUi::EPopup,
-             head );
-    CleanupStack::PushL( uiDlg );
-
-    ModifyMarkedArrayL(ESetMarked,NULL,uiDlg);
-    
-    returnValue = uiDlg->ExecutePopupLD();
-
-    CleanupStack::PopAndDestroy( uiDlg );
-    
-    CleanupStack::PopAndDestroy( head );    
-
-    if ( returnValue )
-        {
-        ModifyMarkedArrayL(EResetArray);
-        for( TInt i = 0 ; i < resArr->Count() ; ++i )
-            {
-            TInt tmp = resArr->At(i);
-            ModifyMarkedArrayL(EAddToArray,tmp);
-            }
-        // Transfer ownership of all dynamic variables( resARr )
-        iSelections->SetSharedContent( mediaType,
-                                       resArr );
-        iFileEng->SetSelectionIndexesL( mediaType, *resArr );
-        }
-
-    CleanupStack::PopAndDestroy( resArr );
-    return returnValue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ModifyMarkedArrayL
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::ModifyMarkedArrayL( TShareArrayState aArrayState 
-                                       , TInt aValue 
-                                       , CUPnPMultiselectionUi* aUiDlg )
-    {
-    CArrayFix<TInt>* array = NULL;
-    if( iStep == EShareMusic )
-        {
-        array = iShareMusicArray;
-        }
-    else if( EShareImages == iStep )
-        {
-        array = iShareImgAndVideoArray;
-        }
-    if( array )
-        {
-        switch(aArrayState)
-            {
-            case ESetMarked:
-                {
-                if( aUiDlg )
-                    {
-                    aUiDlg->SetMarkedItemsL( *array );
-                    }
-                break;
-                }
-            case EResetArray:
-                {
-                array->Reset();
-                break;
-                }
-            case EAddToArray:
-                {
-                array->AppendL(aValue);
-                break;
-                }
-            default:
-            	break;
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::SetNextStep
-// Calculates the next step in wizard
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::SetNextStep( const TInt& aSelection )
-    {
-    __LOG("CUPnPAppWizard::SetNextStep");
-
-    switch ( iStep )
-        {
-    case EInfo1:
-        {
-        if ( aSelection )
-            {
-            iStep++;
-            }
-        else
-            {
-            iStep = EFinished;
-            }
-        }
-        break;
-    case EInfo2:
-        // fall through
-    case EDeviceName:
-        // fall through
-    case EInfo4:
-        // fall through
-    case EAccessPoint:
-        // fall through
-    case EInfo6:
-        // fall through
-    case EShareImages:
-        // fall through
-    case EShareMusic:
-        // fall through
-    case EInfo9:
-        // fall through
-    case EStoreSettings:
-        {
-        if ( aSelection )
-            {
-            iStep++;
-            }
-        else
-            {
-            iStep--;
-            }
-        }
-        break;
-    default :
-        {
-        __LOG("CUPnPAppWizard::SetNextStep: default!");
-        _LIT(KUser, "USER");
-        User::Panic(KUser, 0);
-        }
-        break;
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowErrorNoteL
-// Shows note with error message
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::ShowErrorNoteL( TInt aMain ) const
-    {
-    __LOG("CUPnPAppWizard::ShowErrorNoteL begin");
-
-    // show error note
-    HBufC* errorNote = StringLoader::LoadLC( aMain );
-    CAknErrorNote* note = new (ELeave) CAknErrorNote(ETrue);
-    note->ExecuteLD(*errorNote);
-    CleanupStack::PopAndDestroy(); //errorNote
-    __LOG("CUPnPAppWizard::ShowErrorNoteL end");
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::ShowWaitNoteL
-// Shows standard wait note
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::ShowWaitNoteL( TInt aMain )
-    {
-    __LOG("CUPnPAppWizard::ShowWaitNoteL begin");
-
-    CAknWaitNoteWrapper* waitNoteWrapper = CAknWaitNoteWrapper::NewL();
-    CleanupStack::PushL(reinterpret_cast<CBase*>(waitNoteWrapper));
-    waitNoteWrapper->ExecuteL(
-        aMain,      // TInt aResId,
-        *this,            // MAknBackgroundProcess& aBackgroundProcess
-        ETrue);
-    CleanupStack::PopAndDestroy();
-    __LOG("CUPnPAppWizard::ShowWaitNoteL end");
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::StepL
-// Step done during wait note
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::StepL(void)
-    {
-    if ( iStartingSharing == ENotActive )
-        {
-        iStartingSharing = EStartingSharing;
-        }
-
-    }
-
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::IsProcessDone
-// Returns ETrue if process finished
-// --------------------------------------------------------------------------
-//
-TBool CUPnPAppWizard::IsProcessDone(void) const
-    {
-
-    TBool ret(EFalse);
-    if ( iStartingSharing == ENotActive )
-        {
-        TRAPD( err, iFileEng->SetSharingStateL( ETrue ) );
-        if( err != KErrNone )
-            {
-            return ETrue;
-            }
-        }
-    else if ( iStartingSharing == ESharingStarted )
-        {
-        ret = ETrue;
-        }
-    else
-        {
-        __LOG( "CUPnPAppWizard::IsProcessDone: else branch");
-        }
-    return ret;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::HandleSharingStatus
-// Function informs when file sharing was enabled or disabled
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::HandleSharingStatus( 
-        CUPnPFileSharingEngine& /*aEngine*/, 
-        TInt aError, 
-        TBool aPhase )
-    {
-    __LOG("CUPnPAppWizard::HandleSharingStatus begin");
-
-    if ( aPhase )
-        {
-        __LOG("CUPnPAppWizard::HandleSharingStatus:\
- activating sharing");
-        iStartingSharing = ESharingStarted;
-        if ( aError )
-            {
-            // If there domtree wasn't able to be written due to disk full
-            // situation, send leave to kernel to inform user
-            if( aError == KErrDiskFull ||
-                aError == KErrNoMemory ||
-                aError == KErrInUse )
-                {
-                //show some critical errors using
-                //default symbian error notes
-                CActiveScheduler::Current()->Error( aError );
-                }
-            else
-                {
-                if ( !iDialogDismissed )
-                    {
-                    // must ensure that wait note is gone, see DialogDismissed
-                    iWait.Start();
-                    }
-                TRAP_IGNORE( 
-                    ShowErrorNoteL( 
-                        R_UPNP_WIZARD_START_SHARING_ERROR_TEXT ) );
-                }
-            }
-        if ( iWait.IsStarted() )
-            {
-            if ( iWait.CanStopNow() )
-                {
-                iWait.AsyncStop();
-                }
-            else
-                {
-                __LOG("CUPnPAppWizard: \
-Error cant stop iWait");
-                }
-            }
-        }
-    else
-        {
-        __LOG("CUPnPAppWizard::HandleSharingStatus:\
- deactivating sharing");
-        // stop showing wait note
-        if ( iWait.IsStarted() )
-            {
-            iWait.AsyncStop();
-            }
-        }
-
-    __LOG("CUPnPAppWizard::HandleSharingStatus end");
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::HandleSharingConnectionLost
-// Callback to inform if connection has been lost
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::HandleSharingConnectionLost( 
-    CUPnPFileSharingEngine& /*aEngine*/ )
-    {
-    __LOG( "[CUPnPAppWizard]\t CUPnPAppWizard::HandleSharingConnectionLost\
- begin" );
-
-    iSharingState = EFalse;
-
-    __LOG( "[CUPnPAppWizard]\t CUPnPAppWizard::HandleSharingConnectionLost\
- end" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::DialogDismissedL
-// Callback for dialog disappearing
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::DialogDismissedL( TInt /*aButtonId*/ )
-    {
-    __LOG( "[CUPnPAppWizard]\t DialogDismissedL begin" );
-
-    iDialogDismissed = ETrue;
-    if ( iWait.IsStarted())
-        {
-        iWait.AsyncStop();
-        }
-
-    __LOG( "[CUPnPAppWizard]\t DialogDismissedL end" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::DisplayInfoL()
-// Shows message query to user
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::DisplayInfoL(
-    TInt aHeaderResourceId,
-    TInt aMessageResourceId,
-    TInt aDialogResourceId )
-    {
-    __LOG("CUPnPAppWizard::DisplayInfoL begin");
-    HBufC* noteHeader = StringLoader::LoadL(
-        aHeaderResourceId);
-    CleanupStack::PushL(noteHeader);
-    HBufC* noteMsg = StringLoader::LoadL(
-        aMessageResourceId);
-    CleanupStack::PushL(noteMsg);
-
-    CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL(*noteMsg);
-
-
-    dlg->PrepareLC(aDialogResourceId);
-    dlg->QueryHeading()->SetTextL(*noteHeader);
-    dlg->RunLD();
-
-
-    CleanupStack::PopAndDestroy(noteMsg);
-    CleanupStack::PopAndDestroy(noteHeader);
-    __LOG("CUPnPAppWizard::DisplayInfoL end");
-    }
-
-
-// --------------------------------------------------------------------------
-// CUPnPAppWizard::CSelectionStorage functions
-//
-// --------------------------------------------------------------------------
-//
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::CSelectionStorage
-// Destructor
-// --------------------------------------------------------------------------
-//
-CUPnPAppWizard::CSelectionStorage::~CSelectionStorage()
-    {
-    __LOG("[UPnPAppWizard]\tCSelectionStorage::~CSelectionStorage() begin");
-    delete iDeviceName;
-    delete iMusicSelectionArray;
-    delete iImageSelectionArray;
-    __LOG("CSelectionStorage::~CSelectionStorage() end");
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::CSelectionStorage
-// Constructor
-// --------------------------------------------------------------------------
-//
-CUPnPAppWizard::CSelectionStorage::CSelectionStorage(
-    CUPnPSettingsEngine* aSetEng,
-    CUPnPFileSharingEngine* aFileEng )
-    {
-    __LOG("CSelectionStorage::CSelectionStorage() begin");
-    iSetEng = aSetEng;
-    iFileEng = aFileEng;
-    __LOG("CSelectionStorage::CSelectionStorage() end");
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::SetDeviceNameL
-// Function for setting the device name to local storage
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::SetDeviceNameL( TDes& aDeviceName )
-    {
-    __LOG("CSelectionStorage::SetDeviceNameL begin");
-    delete iDeviceName;
-    iDeviceName = NULL;
-    iDeviceName = HBufC::NewL(aDeviceName.Length());
-
-    *iDeviceName = aDeviceName;
-    __LOG("CSelectionStorage::SetDeviceNameL end");
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::GetDeviceNameL
-// Function for getting the device name from local storage or from cenrep
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::CSelectionStorage::GetDeviceNameL( TDes& aDeviceName )
-    {
-    __LOG("CSelectionStorage::GetDeviceNameL begin");
-    TInt err(0);
-    if ( iDeviceName )
-        {
-        aDeviceName = iDeviceName->Des();
-        }
-    else
-        {
-        THostName data;
-        TBuf8<65> deviceName8;
-        err = iSetEng->GetLocalFriendlyName( deviceName8 );
-
-        HBufC* deviceName16 = UpnpString::ToUnicodeL( deviceName8 );
-        CleanupStack::PushL( deviceName16 );
-        aDeviceName = deviceName16->Des();
-        CleanupStack::PopAndDestroy( deviceName16 );
-        }
-    __LOG("CSelectionStorage::GetDeviceNameL end");
-    return err;
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::GetIapId
-// Function for getting the iapid from local storage or from cenrep
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::CSelectionStorage::GetIapId( TInt& aIapId )
-    {
-    __LOG("CSelectionStorage::GetIapId begin");
-    TInt err( KErrNone );
-    if ( iIapId )
-        {
-        aIapId = iIapId;
-        }
-    else
-        {
-        err = iSetEng->GetAccessPoint( iIapId );
-        aIapId = iIapId;
-        }
-    __LOG("CSelectionStorage::GetIapId end");
-    return err;
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::SetIapId
-// Function for setting the iapid to local storage
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::SetIapId( const TInt aIapId,
-                                                  const TInt aIndexForUi )
-    {
-    __LOG("CSelectionStorage::SetIapId begin");
-
-    iIapId = aIapId;
-    iIndexForUi = aIndexForUi;
-
-    __LOG("CSelectionStorage::SetIapId end");
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::StoreSettingsL
-// Function for storing devicename and iapid to cenrep
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::CSelectionStorage::StoreSettingsL()
-    {
-    __LOG("CSelectionStorage::StoreSettingsL begin");
-    TInt err(0);
-    if ( iDeviceName )
-        {
-        HBufC8* name8 = UpnpString::FromUnicodeL( iDeviceName->Des() );
-        CleanupStack::PushL( name8 );
-        err = iSetEng->SetLocalFriendlyName( name8->Des() );
-        CleanupStack::PopAndDestroy( name8 );
-        }
-    if ( iIapId >= EUPnPSettingsEngineIAPIdAlwaysAsk )
-        {
-        // Stores iap id.
-        iSetEng->SetAccessPoint( iIapId );
-        
-        // Stores iap selection type.
-        TInt iapForHomeNetworkUi( EUPnPSettingsEngineIAPItemUserDefined );
-        if ( iIapId == EUPnPSettingsEngineIAPIdAlwaysAsk )
-            {
-            iapForHomeNetworkUi = EUPnPSettingsEngineIAPItemAlwaysAsk;
-            }
-        iSetEng->SetAccessPointSetting( iapForHomeNetworkUi );
-        
-        // index for HN ui?
-        iSetEng->SetWapId( iIndexForUi+1 );
-        }
-
-    __LOG("CSelectionStorage::StoreSettingsL end");
-    return err;
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::ImageStoreSharedFilesL
-// Function for storing image and video
-// --------------------------------------------------------------------------
-//
-TInt CUPnPAppWizard::CSelectionStorage::ImageStoreSharedFilesL( )
-    {
-    /* Save Images and Videos */
-    __LOG( "CSelectionStorage::Sharing image and video .." );
-    if ( iFileEng )
-        {
-        iFileEng->ShareMediaL( EImageAndVideo );
-        iFileEng->ShareMediaL( EPlaylist );
-        }   
-    __LOG( "CSelectionStorage::ImageStoreSharedFilesL end" );
-    return KErrNone;
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::InitializeIapArraysL
-// Add default items to iap name array
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::InitializeIapArraysL(
-    CDesCArray* aIapNameArr,
-    RArray<TInt64>& aIapIdArr ) const
-    {
-    __LOG("[UPnPAppWizard]\tCSelectionStorage::InitializeIapArraysL begin");
-
-    HBufC* itemText1 = StringLoader::LoadLC( R_UPNP_WIZARD_ALWAYS_ASK_TEXT );
-    HBufC* itemText2 = StringLoader::LoadLC( R_UPNP_WIZARD_CREATE_NEW_TEXT );
-
-    aIapNameArr->AppendL( itemText1->Des() );
-    aIapIdArr.AppendL( EUPnPSettingsEngineIAPIdAlwaysAsk );
-    aIapNameArr->AppendL( itemText2->Des() );
-    aIapIdArr.AppendL( EUPnPSettingsEngineIAPIdCreateNew );
-
-    //aIapNameArr does not own the items
-    CleanupStack::PopAndDestroy(2);
-
-    __LOG("[UPnPAppWizard]\tCSelectionStorage::InitializeIapArraysL end");
-    }
-
-// -------------------------------------------------------------
-// CSelectionStorage::SetSharedContent()
-// Sets the users sharing selections to local storage
-// -------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::SetSharedContent(
-    THomeConnectMediaType aMedia,
-    CArrayFix<TInt>* aSelections )
-    {
-    __LOG("CSelectionStorage::SetSharedContent begin");
-
-    if ( aMedia == EImageAndVideo )
-        {
-        // determine the users selections from UI
-        // if there is only one item selected and its value is not 0
-        // -> Share all is selected
-        if ( ! (aSelections->Count() == 1 && aSelections->At(0) == 0 ) )
-            {
-            iVisualImageSelection = ETrue;
-            }
-        }
-    else
-        {
-
-        if ( ! (aSelections->Count() == 1 && aSelections->At(0) == 0 ) )
-            {
-            // no difference between EShareAll and EShareMany
-            iVisualMusicSelection = ETrue;
-            }
-
-        }
-
-    __LOG("CSelectionStorage::SetSharedContent end");
-    }
-
-
-// -------------------------------------------------------------
-// CSelectionStorage::SetSharedContent()
-// Gets the users sharing selections from local storage
-// -------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::GetSelectionsL(
-    THomeConnectMediaType aMedia,
-    CArrayFix<TInt>* aSelections )
-    {
-    __LOG("CSelectionStorage::GetSelectionsL begin");
-
-    if ( aMedia == EImageAndVideo )
-        {
-        if ( iImageSelectionArray )
-            {
-            for ( TInt i = 0; i < iImageSelectionArray->Count(); i++ )
-                {
-                TInt tmp = iImageSelectionArray->At( i );
-                aSelections->AppendL( tmp );
-                }
-            }
-        }
-    else
-        {
-        if ( iMusicSelectionArray )
-            {
-            for ( TInt i = 0; i < iMusicSelectionArray->Count(); i++ )
-                {
-                TInt tmp = iMusicSelectionArray->At( i );
-                aSelections->AppendL( tmp );
-                }
-            }
-        }
-    __LOG("CSelectionStorage::GetSelectionsL end");
-    }
-
-// -------------------------------------------------------------
-// CSelectionStorage::HasSomethingToShare()
-// Determines if the user has selected content to share
-// -------------------------------------------------------------
-//
-TBool CUPnPAppWizard::CSelectionStorage::HasSomethingToShare() const
-    {
-    __LOG("CSelectionStorage::HasSomethingToShare begin");
-    TBool retVal( EFalse );
-    if ( iVisualImageSelection || iVisualMusicSelection )
-        {
-        retVal = ETrue;
-        }
-    __LOG("CSelectionStorage::HasSomethingToShare end");
-    return retVal;
-    }
-
-// --------------------------------------------------------------------------
-// CSelectionStorage::GetCurrentSelection
-// Gets the user selected iapid or iapid from cenrep
-// --------------------------------------------------------------------------
-//
-void CUPnPAppWizard::CSelectionStorage::GetCurrentSelection(
-    TInt& aCurrentSelection, RArray<TInt64>& aIapIdArr )
-    {
-    __LOG("CSelectionStorage::GetCurrentSelection begin");
-    // Get the current selection
-    TInt userIapId( 0 );
-    GetIapId( userIapId );
-
-    if ( userIapId < 1 ||
-         userIapId == aIapIdArr[ KUPnPAlwaysAskInd ] )
-        {
-        aCurrentSelection = 0;
-        }
-    else
-        {
-        aCurrentSelection = aIapIdArr.Find( userIapId );
-
-        if ( aCurrentSelection <= KUPnPCreateNewInd )
-            {
-            /* Current iap is not in the list or it is Always Ask */
-            aCurrentSelection = 0;
-            }
-        }
-    __LOG("CSelectionStorage::GetCurrentSelection end");
-    }
-
-
-// End of File