upnpframework/upnpcommonui/src/upnpexternaldevicedialog.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpframework/upnpcommonui/src/upnpexternaldevicedialog.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,813 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Source file for UPnP External device dialog
-*                UI Implementation
-*
-*/
-
-
-// INCLUDE FILES
-// System
-#include <aknnavide.h> // CAknNavigationDecorator
-#include <barsread.h> // TResourceReader
-#include <AknIconArray.h>
-#include <eikclbd.h>
-#include <StringLoader.h>
-#include <featmgr.h>
-#include <hlplch.h>
-#include <upnpstring.h>
-#include <layoutmetadata.cdl.h>
-
-// upnpframework / avcontroller api
-#include "upnpavdevice.h"
-#include "upnpavcontroller.h"
-#include "upnpavbrowsingsession.h"
-#include "upnpavdevicelist.h"
-
-// upnpframework / internal api's
-#include "upnpcommonutils.h"
-
-// common ui internal
-#include "upnpadvfinddialog.h"
-#include "upnpcommonui.hrh"
-#include "upnpexternaldevicedialog.h"
-#include <upnpcommonui.rsg>
-#include <upnpcommonui.mbg> //for icons
-#include "upnpcommonui.h"
-#include "upnpnavipanecontainer.h"
-
-_LIT( KComponentLogfile, "commonui.txt");
-#include "upnplog.h"
-
-// CONSTANTS
-_LIT( KAknCommonUIMbmFileName, "\\resource\\apps\\upnpcommonui.mbm" );
-const TInt KLength = 100;
-_LIT(KUPNP_HLP_MAIN_EXTERNAL,"UPNP_HLP_MAIN_EXTERNAL"); 
-
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::CUPnPExternalDeviceDialog
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// --------------------------------------------------------------------------
-//
-CUPnPExternalDeviceDialog::CUPnPExternalDeviceDialog(
-                                        MUPnPAVController& aAVControl,
-                                        CUPnPCommonUI& aCommonUI):
-                                        iAVControl(aAVControl),
-                                        iCommonUI(aCommonUI)
-    {
-    iPreDeviceObserver = iAVControl.DeviceObserver();
-    iAVControl.RemoveDeviceObserver();
-    iAVControl.SetDeviceObserver( *this );
-    }
-    
-// Destructor
-CUPnPExternalDeviceDialog::~CUPnPExternalDeviceDialog()
-    {
-    __LOG( "CUPnPExternalDeviceDialog::~CUPnPExternalDeviceDialog" );
-    
-    delete iDeviceArray;
-    iAVControl.RemoveDeviceObserver();
-    
-    if( iPreDeviceObserver )
-        {
-        iAVControl.SetDeviceObserver( *iPreDeviceObserver );
-        }
-    
-    if ( iNaviDecorator && iNaviPaneContainer )
-        {
-        iNaviPaneContainer->Pop( iNaviDecorator );
-        }
-    delete iNaviDecorator;
-    iNaviDecorator = NULL;
-    
-    __LOG( "CUPnPExternalDeviceDialog::~CUPnPExternalDeviceDialog End." );
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::ConstructL
-// Symbian 2nd phase constructor can leave.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::ConstructL( TInt aMenuResource )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::ConstructL" );
-    
-    iDeviceArray = CUpnpAVDeviceList::NewL();
-    
-    CAknDialog::ConstructL( aMenuResource );
-    __LOG( "CUPnPExternalDeviceDialog::ConstructL End" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::NewL
-// Two-phased constructor.
-// --------------------------------------------------------------------------
-//
-CUPnPExternalDeviceDialog* CUPnPExternalDeviceDialog::NewL(
-    TInt aMenuResource, 
-    MUPnPAVController& aAVControl,
-    CUPnPCommonUI& aCommonUI)
-    {
-    __LOG( "CUPnPExternalDeviceDialog::NewL" );
-
-    CUPnPExternalDeviceDialog* self = 
-                        new ( ELeave ) CUPnPExternalDeviceDialog( aAVControl,
-                                                                aCommonUI );
-    CleanupStack::PushL( self );
-    self->ConstructL( aMenuResource );
-    CleanupStack::Pop();
-    __LOG( "CUPnPExternalDeviceDialog::NewL End" );
-    return self;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::PreLayoutDynInitL();
-// called by framework before dialog is shown
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::PreLayoutDynInitL()
-    {
-    __LOG( "CUPnPExternalDeviceDialog::PreLayoutDynInitL" );
-
-    // Create dialog title text
-    CEikStatusPane* statusPane = 
-                    ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane();    
-    iTitlePane = ( CAknTitlePane* )statusPane->ControlL(
-                    TUid::Uid( EEikStatusPaneUidTitle ) );
-    iTitlePane->SetTextL( *StringLoader::LoadLC(
-                                R_UPNPCOMMONUI_EXTERNAL_MEDIA_TITLE ) );
-    CleanupStack::PopAndDestroy();
-    
-    iListBox = static_cast<CAknSingleGraphicStyleListBox*>
-              ( Control( EUPnPExternDevicesListBoxId ) );
-    iListBox->CreateScrollBarFrameL( ETrue );
-    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL( 
-            CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
-    iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
-    
-    
-    CAknIconArray* icons = new ( ELeave ) CAknIconArray( 3 );
-    CleanupStack::PushL(icons);
-
-    // Mif icons
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TFileName iconsPath( AknIconUtils::AvkonIconFileName( ) );
-    
-    // Folder icon
-    
-    TFileName mbmFileName( KAknCommonUIMbmFileName );
-    TFileName dllName;
-    Dll::FileName( dllName );
-    TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':' 
-    mbmFileName.Insert( 0, drive );
-    
-    AppendIconToArrayL( icons, skin, 
-                        mbmFileName, 
-                        KAknsIIDDefault, 
-                        EMbmUpnpcommonuiQgn_server_icon, 
-                        EMbmUpnpcommonuiQgn_server_icon_mask );
-   
-                                        
-    iListBox->ItemDrawer()->ColumnData()->SetIconArray( icons );
-        
-    CleanupStack::Pop( icons );
-
-    // Enable horizontal scrolling
-    iListBox->ItemDrawer()->ColumnData()->EnableMarqueeL( ETrue );
-
-    DisplayMediaServersL();
-
-    if ( !iDeviceArray->Count() )  
-        {
-        // show "Waiting devices" text
-        iListBox->View()->SetListEmptyTextL(
-            *StringLoader::LoadLC( R_UPNPCOMMONUI_EXTERNAL_WAITING_NOTE ) );
-        CleanupStack::PopAndDestroy(); 
-        }
-    else
-        {
-        CEikButtonGroupContainer* cba = &ButtonGroupContainer();
-        cba->SetCommandSetL( R_UPNPCOMMONUI_SOFTKEYS_OPTIONS_BACK__OPEN );
-        cba->DrawDeferred();
-        }
-    __LOG( "CUPnPExternalDeviceDialog::PreLayoutDynInitL End" );    
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::PostLayoutDynInitL();
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::PostLayoutDynInitL()
-    {
-    iNaviPaneActive = ETrue;
-    UpDateAnimationWindowL(iNaviPaneActive);//DateAnimationWindow();
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::OkToExitL(TInt aButtonId)
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-//
-TBool CUPnPExternalDeviceDialog::OkToExitL( TInt aButtonId )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::OkToExitL" );
-    
-    TBool returnValue = EFalse;
-    iCommonUI.HandleCommonErrorL( aButtonId, NULL );
-    // Translate the button presses into commands for the appui & current
-    // view to handle
-    switch ( aButtonId )
-        {
-        case EAknSoftkeyOptions:
-            {
-            DisplayMenuL(); 
-            break;
-            }
-        case EAknSoftkeyOpen: //fall through
-        case EAknSoftkeyOk:
-            {
-            CTextListBoxModel *model = iListBox->Model();
-
-            if (model->NumberOfItems()) //browse only if list have items
-                {
-                iNaviPaneActive = EFalse;                
-                UpDateAnimationWindowL(iNaviPaneActive);
-
-                TInt ret = ExecuteBrowseL();
-                if (ret == EAknCmdExit || 
-                    ret == EEikCmdExit ||
-                    ret == KErrDisconnected ||
-                    ret == KErrSessionClosed
-                    )
-                    {
-                    TryExitL( ret );
-                    }
-                else
-                    {
-                    DisplayMediaServersL();
-                    iNaviPaneActive = ETrue;
-                    UpDateAnimationWindowL(iNaviPaneActive);
-                    }
-                }
-            break;
-            }
-        case EAknSoftkeyBack: // fall through
-        case EUPnPBackCmd: // fall through
-        case EAknSoftkeyCancel: // fall through
-        case EAknSoftkeyExit: // fall through
-        case EAknCmdExit: // fall through
-        case EEikCmdExit: // fall through
-        case KErrNotReady: // fall through
-        case KErrDisconnected:
-            {
-            if( iTitlePane )
-                {
-                iTitlePane->SetTextToDefaultL();
-                }
-            returnValue = ETrue; //back to previous dialog
-            break;
-            }
-        case KErrSessionClosed:
-            {
-            DisplayMediaServersL();
-            iNaviPaneActive = ETrue;
-            UpDateAnimationWindowL(iNaviPaneActive);
-
-            break;
-            }
-        default:
-            {
-            // ignore
-            }
-        }
-  
-    __LOG( "CUPnPExternalDeviceDialog::OkToExitL End." );
-    return returnValue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDevice::DynInitMenuPaneL(TInt aResourceId, 
-// CEikMenuPane *aMenuPane)
-// called by framework before menu panel is shown
-// --------------------------------------------------------------------------
-void  CUPnPExternalDeviceDialog::DynInitMenuPaneL( TInt aResourceId,
-                                                   CEikMenuPane *aMenuPane )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::DynInitMenuPaneL" );
-
-    if( aResourceId ==  R_UPNPCOMMONUI_EXTERNAL_DEVICE_OPTION_MENU )
-        {
-        // Hide menu items if empty list
-        CTextListBoxModel *model = iListBox->Model();
-        if ( !model->NumberOfItems() ) 
-            {
-            aMenuPane->SetItemDimmed( EUPnPOpen, ETrue );
-            aMenuPane->SetItemDimmed( EUPnPFind, ETrue );
-            }
-
-        // Hide "Find" if the currently focused device does not support it
-        TInt selected_item = iListBox->CurrentItemIndex();
-        if( selected_item >= 0 &&
-            !( *iDeviceArray )[ selected_item ]->SearchCapability() )
-            {
-            aMenuPane->SetItemDimmed( EUPnPFind, ETrue );
-            }
-
-        // Hide "Help" if the help file is not available
-        if( !FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-            {
-            aMenuPane->SetItemDimmed( EUPnPHelp, ETrue );
-            }
-        }
-    __LOG( "CUPnPExternalDeviceDialog::DynInitMenuPaneL End" );    
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::ProcessCommandL(TInt aCommand)
-// called by framework when menu item is selected
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::ProcessCommandL( TInt aCommand )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::ProcessCommandL" );
-    
-    TInt error = KErrNone;
-    HideMenu();
-    switch ( aCommand ) 
-        {
-        case EAknCmdExit:
-        case EEikCmdExit:
-            {
-            TryExitL( aCommand );
-            break;
-            }
-        case EUPnPOpen:
-            {
-            iNaviPaneActive = EFalse;
-            UpDateAnimationWindowL(iNaviPaneActive);
-
-            error = ExecuteBrowseL();
-            if ( error == EAknCmdExit ||
-                 error == EEikCmdExit ||
-                 error == KErrDisconnected ||
-                 error == KErrSessionClosed )
-                {
-                TryExitL( error );
-                }
-            else 
-                {
-                DisplayMediaServersL(); 
-                iNaviPaneActive = ETrue;
-                UpDateAnimationWindowL(iNaviPaneActive); 
-                }
-            break;
-            }
-        case EUPnPFind:
-            {
-            iNaviPaneActive = EFalse;
-            UpDateAnimationWindowL(iNaviPaneActive);  
-            
-            error = ExecuteFindL();
-            if ( error == EAknCmdExit ||
-                 error == EEikCmdExit ||
-                 error == KErrDisconnected || 
-                 error == KErrNotReady || 
-                 error == KErrSessionClosed )
-                {
-                TryExitL( error );
-                }
-            else
-                {
-                iNaviPaneActive = ETrue;
-                UpDateAnimationWindowL(iNaviPaneActive);
-                }
-            break;
-            }
-        case EUPnPHelp:
-            {
-            iNaviPaneActive = EFalse;
-            UpDateAnimationWindowL(iNaviPaneActive);
-            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-            iEikonEnv->EikAppUi()->AppHelpContextL() );
-            iNaviPaneActive = ETrue;
-            UpDateAnimationWindowL(iNaviPaneActive);
-            break;
-            }
-        default:
-            break;
-        }
-    __LOG( "CUPnPExternalDeviceDialog::ProcessCommandL End" );    
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::UPnPDeviceDiscovered
-// Returns discovered device from UPnP AV control point.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::UPnPDeviceDiscovered(
-                                        const CUpnpAVDevice& aDevice )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDiscovered" );
-    TInt error = KErrNone;
-    TRAP( error, UPnPDeviceDiscoveredL( aDevice ) );
-    
-    __LOG1( "CUPnPExternalDeviceDialog::UPnPDeviceDiscovered %d", error);
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::UPnPDeviceDiscoveredL
-// Returns discovered device from UPnP AV control point.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::UPnPDeviceDiscoveredL(
-                                        const CUpnpAVDevice& aDevice )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDiscovered" );
-              
-    // Display only Media servers
-    if( aDevice.DeviceType() == CUpnpAVDevice::EMediaServer )
-        {
-        CUpnpAVDevice* tempDevice = CUpnpAVDevice::NewL( aDevice ) ;
-                                      
-        CleanupStack::PushL( tempDevice );
-        iDeviceArray->AppendDeviceL( *tempDevice );
-        CleanupStack::Pop( tempDevice ); 
-        
-        // Get device friendly name and replace illegal characters.
-        HBufC8* tmpfriendlyname = 
-            UPnPCommonUtils::ReplaceIllegalFilenameCharactersL( 
-            ( ( CUpnpAVDevice* )tempDevice )->FriendlyName() );
-            
-        CleanupStack::PushL( tmpfriendlyname );
-        TPtrC8 friendlyname = *tmpfriendlyname;
-                
-        CTextListBoxModel* model = iListBox->Model();
-        MDesCArray* textArray = model->ItemTextArray();
-        CDesCArray* listBoxItems = static_cast<CDesCArray*>( textArray );
-        TBuf<256> item;
-        
-        HBufC *tmpbuf = UpnpString::ToUnicodeL( friendlyname.Left( KLength ) );
-        CleanupStack::PushL( tmpbuf ); 
-        
-        item.Format( _L( "%d\t%S\t\t" ),0, tmpbuf ); 
-        CleanupStack::PopAndDestroy( tmpbuf ); 
-        CleanupStack::PopAndDestroy( tmpfriendlyname );
-
-        listBoxItems->AppendL( item );
-        iListBox->HandleItemAdditionL(); // Update listbox
-
-        iListBox->ActivateL();
-        iListBox->DrawDeferred();
-        
-        //update menu pane
-        CEikButtonGroupContainer* cba = &ButtonGroupContainer();
-        
-        cba->SetCommandSetL( R_UPNPCOMMONUI_SOFTKEYS_OPTIONS_BACK__OPEN );
-        cba->DrawDeferred();
-        }
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDiscovered End" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::UPnPDeviceDisappeared
-// Returns disappeared device from UPnP AV control point.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::UPnPDeviceDisappeared(
-                                        const CUpnpAVDevice& aDevice )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDisappeared" );
-    
-    TRAP_IGNORE( UPnPDeviceDisappearedL( aDevice ) );
-    
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::UPnPDeviceDisappearedL
-// Returns disappeared device from UPnP AV control point.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::UPnPDeviceDisappearedL(
-                                               const CUpnpAVDevice& aDevice )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDissapearedL" );
-    
-    CTextListBoxModel* model = iListBox->Model();
-    TInt currentItem = iListBox->CurrentItemIndex();
-    MDesCArray* textArray = model->ItemTextArray();
-    CDesCArray* listBoxItems = static_cast<CDesCArray*>( textArray );
-    TInt i = 0;
-    TPtrC8 ptr(aDevice.Uuid());
-    while( i < iDeviceArray->Count() &&
-        ptr.Compare( ( *iDeviceArray)[ i ]->Uuid() ) )
-        {
-        i++;
-        }
-    if ( i < iDeviceArray->Count() )
-        {
-        iDeviceArray->RemoveAndDestroy( i );
-        listBoxItems->Delete( i,1 );
-        AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
-            iListBox, currentItem, ETrue );
-        iListBox->DrawDeferred();
-        }
-            
-    if ( !iDeviceArray->Count() )
-        {
-        // show "Waiting devices" text
-        iListBox->View()->SetListEmptyTextL(
-            *StringLoader::LoadLC( R_UPNPCOMMONUI_EXTERNAL_WAITING_NOTE ) );
-        CleanupStack::PopAndDestroy(); // R_EXTERNAL_WAITING_NOTE
-        
-        CEikButtonGroupContainer* cba = &ButtonGroupContainer();
-        cba->SetCommandSetL( R_UPNPCOMMONUI_SOFTKEYS_EMPTY_BACK );
-        cba->DrawDeferred();
-        }
-   
-    __LOG( "CUPnPExternalDeviceDialog::UPnPDeviceDissapearedL-END" );
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::AppendIconToArrayL
-// Load a possibly skinned icon (with mask) and append it to an 
-// icon array.
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::AppendIconToArrayL( CAknIconArray* aArray,
-                                           MAknsSkinInstance* aSkin,
-                                           const TDesC& aMbmFile,
-                                           const TAknsItemID& aID,
-                                           TInt aBitmapId,
-                                           TInt aMaskId )
-    {
-    __LOG( "CUPnPExternalDeviceDialog::AppendIconToArrayL" );
-    
-    __ASSERTD( aArray != NULL, __FILE__, __LINE__ );
-
-    CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;
-
-    AknsUtils::CreateIconLC( aSkin, aID,
-        bitmap, mask, aMbmFile, aBitmapId, aMaskId );
-
-    CGulIcon* icon = CGulIcon::NewL( bitmap, mask );
-    icon->SetBitmapsOwnedExternally( EFalse );
-
-    // icon now owns the bitmaps, no need to keep on cleanup stack.
-    CleanupStack::Pop( 2 ); // mask, bitmap
-    bitmap = NULL;
-    mask = NULL;
-
-    CleanupStack::PushL( icon );
-    aArray->AppendL( icon );
-
-    // aArray now owns the icon, no need to delete.
-    CleanupStack::Pop();
-    __LOG( "CUPnPExternalDeviceDialog::AppendIconToArrayL End" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPBrowseDialog::DisplayMediaServersL
-// Add visible Media Servers to Listbox of dialog
-// --------------------------------------------------------------------------
-void CUPnPExternalDeviceDialog::DisplayMediaServersL()
-    {
-    __LOG( "CUPnPExternalDeviceDialog::DisplayMediaServersL" );
-    
-    CTextListBoxModel* model = iListBox->Model();
-    MDesCArray* textArray = model->ItemTextArray();
-    CDesCArray* listBoxItems = static_cast<CDesCArray*>( textArray );
-    
-    //clear list        
-    delete iDeviceArray; iDeviceArray = NULL;
-    listBoxItems->Reset();
-    
-    TBuf<256> item;
-    
-    iDeviceArray=iAVControl.GetMediaServersL();
-    
-
-    if ( iDeviceArray->Count() )
-        {
-        for ( TInt i=0; i < iDeviceArray->Count(); i++ )
-            {
-            // Get device frienly name and replace illegal characters.
-            HBufC8* tmpfriendlyname = 
-            UPnPCommonUtils::ReplaceIllegalFilenameCharactersL( 
-                ( *iDeviceArray )[ i ]->FriendlyName() );
-
-            CleanupStack::PushL( tmpfriendlyname );
-            TPtrC8 friendlyname = *tmpfriendlyname;
-
-            HBufC* tmpbuf = UpnpString::ToUnicodeL( 
-                friendlyname.Left( KLength ) );
-            CleanupStack::PushL( tmpbuf ); 
-            item.Format( _L( "%d\t%S\t\t" ),0, tmpbuf ); 
-            CleanupStack::PopAndDestroy( tmpbuf );
-            CleanupStack::PopAndDestroy( tmpfriendlyname ); 
-            listBoxItems->AppendL( item );
-            }
-        
-        iListBox->HandleItemAdditionL(); // Update listbox
-        iListBox->SetCurrentItemIndexAndDraw( 0 ); // select new item        
-        }
-    __LOG( "CUPnPExternalDeviceDialog::DisplayMediaServersL End" );        
-    }
-
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::ExecuteBrowseL
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-TInt CUPnPExternalDeviceDialog::ExecuteBrowseL()
-    {
-    __LOG( "CUPnPExternalDeviceDialog::ExecuteBrowseL" );
-    
-    TInt selected_item = iListBox->CurrentItemIndex();
-
-    const CUpnpAVDevice* selectedDevice = ( *iDeviceArray )[ selected_item ];
-    
-    TInt ret = iCommonUI.ExecuteBrowseDialogL(
-        iAVControl, *selectedDevice );
-    
-    iTitlePane->SetTextL( *StringLoader::LoadLC(
-        R_UPNPCOMMONUI_EXTERNAL_MEDIA_TITLE ) );
-    CleanupStack::PopAndDestroy();
-
-    
-    __LOG( "CUPnPExternalDeviceDialog::ExecuteBrowseL End" );
-    return ret;
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::ExecuteFindL
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-TInt CUPnPExternalDeviceDialog::ExecuteFindL()
-    {
-    __LOG( "CUPnPExternalDeviceDialog::ExecuteFindL" );
-    
-    TInt ret = KErrNone;
-    TInt selected_item = iListBox->CurrentItemIndex();
-    CUpnpAVDevice* selectedDevice = 
-                            ( *iDeviceArray )[ selected_item ];
-    
-    if( selectedDevice )
-        {
-        //create a browsessesion only for advFind dialog
-        
-        MUPnPAVBrowsingSession* browsingSession = NULL;    
-        browsingSession = &( iAVControl.StartBrowsingSessionL(
-                                                *selectedDevice ) );
-        
-        ret = iCommonUI.ExecuteAdvFindDialogL( iAVControl,
-                                               *browsingSession );
-        browsingSession->RemoveObserver();
-        iAVControl.StopBrowsingSession( *browsingSession );    
-        }
-    
-    if( KErrDisconnected != ret ) //if not WLAN lost
-        {
-        DisplayMediaServersL();    
-        }
-
-    __LOG( "CUPnPExternalDeviceDialog::ExecuteFindL End" );
-    return ret;
-    }
-    
-
-            
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::WLANConnectionLost
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-void CUPnPExternalDeviceDialog::WLANConnectionLost() 
-    {
-    __LOG( "CUPnPExternalDeviceDialog::WLANConnectionLost" );
-    //if no dialog created in CUPnPExternalDeviceDialog, destory itself 
-    //Otherwise destory other dialogs like in normal by KErrAbort
-    if( !iCommonUI.PresenceOfDialog() )
-        {
-        TRAP_IGNORE( TryExitL( KErrDisconnected ) );
-        }
-    
-    }
-
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::GetHelpContext
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::GetHelpContext(
-                                        TCoeHelpContext& aContext ) const
-    {
-    __LOG( "CUPnPExternalDeviceDialog::GetHelpContext" );
-    
-//  aContext.iMajor = TUid::Uid( KMediaGalleryUID3 );    
-    aContext.iContext = KUPNP_HLP_MAIN_EXTERNAL;
-    
-    __LOG( "CUPnPExternalDeviceDialog::GetHelpContext End" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::UpDateAnimationWindowL
-// see upnpexternaldevicedialog.h
-// --------------------------------------------------------------------------
-//
-void CUPnPExternalDeviceDialog::UpDateAnimationWindowL(TBool aAnimationState)
-    {    
-    __LOG( "CUPnPExternalDeviceDialog::UpDateAnimationWindowL" );
-    if ( iNaviDecorator )
-        {
-        iNaviPaneContainer->Pop( iNaviDecorator );
-        }
-    
-    // destroy iNaviDecorator
-    delete iNaviDecorator;
-    iNaviDecorator = NULL;
-        
-    if ( ( !Layout_Meta_Data::IsLandscapeOrientation() )
-         && ( aAnimationState ) )
-        {
-        iStatusPane = iEikonEnv->AppUiFactory()->StatusPane();
-
-        TBool naviFaded = iStatusPane->IsFaded();
-
-        if (!naviFaded)
-            {
-            iNaviPaneContainer = ( CAknNavigationControlContainer* )
-                iStatusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) );
-        
-            TPoint screenPosition = iNaviPaneContainer->
-                PositionRelativeToScreen();
-            /**
-             * adjust the screen position so that the "Searching..." could be 
-             * exactly in that "blue" NaviPane
-             */                        
-            screenPosition.iY = screenPosition.iY+1;
-            iNaviContainer = CUPnPNaviPaneContainer::NewL(
-                                                 iNaviPaneContainer->Rect(),
-                                                 screenPosition,
-                                                 iNaviPaneContainer );
-        
-            iNaviDecorator = CAknNavigationDecorator::NewL(
-                iNaviPaneContainer, iNaviContainer );
-        iNaviDecorator->SetContainerWindowL( *iNaviPaneContainer );
-        iNaviDecorator->MakeScrollButtonVisible(EFalse);
-        iNaviDecorator->SetComponentsToInheritVisibility( ETrue );
-            iNaviPaneContainer->PushL( *iNaviDecorator );        
-            }
-        }
-    iListBox->ActivateL();
-    
-    __LOG( "CUPnPExternalDeviceDialog::UpDateAnimationWindowL End" );
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPExternalDeviceDialog::HandleResourceChange
-// --------------------------------------------------------------------------
-//    
-void CUPnPExternalDeviceDialog::HandleResourceChange(TInt aType)
-    {
-    __LOG("[UPnPCommonUI]\t CUPnPExternalDeviceDialog::HandleResourceChange");
-    CAknDialog::HandleResourceChange(aType);
-    
-    // Update Titlepane only if there is no other dialogs open
-    if( !iCommonUI.PresenceOfDialog() )
-        {
-        __LOG("[UPnPCommonUI]\t CUPnPExternalDeviceDialog::HandleResourceChange\
-updating iTitlePane");
-
-    TRAPD( err,
-            iTitlePane->SetTextL( *StringLoader::LoadLC(
-                R_UPNPCOMMONUI_EXTERNAL_MEDIA_TITLE ) );
-            CleanupStack::PopAndDestroy();
-            );
-            
-    if( err != KErrNone )
-        {
-        __LOG("[UPnPCommonUI]\t CUPnPExternalDeviceDialog::HandleResourceChange\
-iTitlePane->SetTextL failed");
-            }
-        }
-    
-    if (iNaviPaneActive)
-        {
-        TRAP_IGNORE( UpDateAnimationWindowL(iNaviPaneActive) );
-        }    
-    }         
-// end of file