internetradio2.0/uisrc/irplsview.cpp
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- a/internetradio2.0/uisrc/irplsview.cpp	Mon May 03 12:25:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,507 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:  view class for pls list
-*
-*/
-
-
-#include <hlplch.h>
-
-#include <internetradio.rsg>
-#include <internetradio.mbg>
-
-#include "ir.hrh"
-#include "ircommon.h"
-#include "irdebug.h"
-#include "irplsview.h"
-#include "irplscontainer.h"
-#include "irui.h"
-#include "irbaseview.h"
-#include "irsettings.h"
-#include "irnowplayingwrapper.h"
-#include "irisdspreset.h"
-#include <eikclbd.h>
-#include <akntoolbar.h>
-
-#include "irnetworkcontroller.h" 	
-#include "iractivenetworkobserver.h"
-
-//-----------------------------------------------------------------------------
-//  CIRPlsView::NewL
-//  Creates a new instance of pls view
-//-----------------------------------------------------------------------------
-//
-CIRPlsView* CIRPlsView::NewL(const TRect& aRect)
-    {
-	IRLOG_DEBUG( "CIRPlsView::NewL - Entering" );
-    CIRPlsView* self = CIRPlsView::NewLC(aRect);
-    CleanupStack::Pop(self);
-	IRLOG_DEBUG( "CIRPlsView::NewL - Exiting." );
-    return self;
-    }
-
-//-----------------------------------------------------------------------------
-//  CIRPlsView::NewLC
-//  Creates a new instance of pls view and leaves it on the cleanup stack.
-//-----------------------------------------------------------------------------
-//
-CIRPlsView* CIRPlsView::NewLC(const TRect& aRect)
-    {
-    IRLOG_DEBUG( "CIRPlsView::NewLC - Entering" );
-    CIRPlsView* self = new (ELeave) CIRPlsView;
-    CleanupStack::PushL(self);
-    self->ConstructL(aRect);
-	IRLOG_DEBUG( "CIRPlsView::NewLC - Exiting." );
-    return self;
-    }
-
-//----------------------------------------------------------------------------- 
-//  CIRPlsView::CIRPlsView()
-//  Default constructor
-//-----------------------------------------------------------------------------
-//
-CIRPlsView::CIRPlsView():iContainer(NULL) 
-    {
-	IRLOG_DEBUG( "CIRPlsView::CIRPlsView" );
-	SetCurrentTopItem(0);
-    }
-
-//----------------------------------------------------------------------------- 
-//  CIRPlsView::~CIRPlsView()
-//  Destructor
-//-----------------------------------------------------------------------------
-//
-CIRPlsView::~CIRPlsView()
-    {
-	IRLOG_DEBUG( "CIRPlsView::~CIRPlsView - Entering" );
-    if ( iContainer )
-        {
-        AppUi()->RemoveFromViewStack( *this, iContainer );
-        delete iContainer;
-    	}
-	if( AknLayoutUtils::PenEnabled() && Toolbar() )
-		{
-		Toolbar()->SetToolbarVisibility(EFalse, EFalse);
-		Toolbar()->SetToolbarObserver( NULL );
-		}
-	IRLOG_DEBUG( "CIRPlsView::~CIRPlsView - Exiting." );
-    }
-
-//-----------------------------------------------------------------------------
-//  CIRPlsView::ConstructL
-//  Second phase constructor
-//-----------------------------------------------------------------------------
-//
-void CIRPlsView::ConstructL(const TRect& /*aRect*/)
-	{
-	IRLOG_DEBUG( "CIRPlsView::ConstructL - Entering" );
-    CIRBaseView::ConstructL(R_IR_PLSVIEW);
-	MAknsSkinInstance * skin=AknsUtils::SkinInstance () ;
-    TRgb color;
-    TInt skinColor=AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
-    				                                      EAknsCIQsnTextColorsCG6 );
-	if(color.Gray2()!=0)
-		{
-		CreateAndSetToolbarL(R_NOW_PLSLIST_WHITE_TOOLBAR);
-		}
-	else
-		{
-		CreateAndSetToolbarL(R_NOW_PLSLIST_BLACK_TOOLBAR);	
-		}
-	if( AknLayoutUtils::PenEnabled() && Toolbar() )
-		{
-		Toolbar()->SetToolbarObserver( this );
-		}
-	SetCurrentFocus(0);
-	iRequestPending = EFalse;
-	IRLOG_DEBUG( "CIRPlsView::ConstructL - Exiting." );
-	}
-
-	
-//-----------------------------------------------------------------------------
-//  TUid CIRPlsView::Id()
-//  This returns the view ID
-//-----------------------------------------------------------------------------
-//
-TUid CIRPlsView::Id() const
-    {
-    IRLOG_DEBUG( "CIRPlsView::Id" );
-    return KIRPlsViewID;
-    }
-    
-// ----------------------------------------------------------------------------
-//  This is called when a view needs to be activated. 
-//  This creates container with its controls.
-//  It also receives messages sent to the view.
-//  aPrevViewId is passed s.t. we can return to the previous view.
-//  aCustomMessageId is an ID for the message.
-//  aCustomMessage is the actual message.
-// ----------------------------------------------------------------------------
-//
-void CIRPlsView::DoActivateL(const TVwsViewId& aPrevViewId,TUid /*aCustomMessageId*/,
-   const TDesC8& aCustomMessage)
-	{
-	IRLOG_DEBUG( "CIRPlsView::DoActivateL - Entering" );
-	iUi->iPresentViewID = KIRPlsViewID;
-    if ( !iContainer )
-		{
-		iContainer =CIRPlsContainer::NewL(ClientRect(),*this);
-		iContainer->SetMopParent( this );
-		AppUi()->AddToViewStackL( *this, iContainer );
-		}
-    else
-       {
-	    // we must notify a resource change in order to update the skin context
-	    // This is a flaw of CEikFormattedCellListBox
-		iContainer->SetRect(ClientRect());
-    	iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch);
-       }
-	ConstructToolbarL();
-    iContainer->ActivateL();
-    iContainer->MakeVisible( ETrue );
-    SetTitleL( R_IRAPP_FEATURE_FILE_TITLE );
-    CIRBaseView::DoActivateL( aPrevViewId, TUid::Uid(1), aCustomMessage );
-    HandleStatusPaneSizeChange();
-    iUi->iNetworkController->RegisterActiveNetworkObserverL(*this);
-    IRLOG_DEBUG( "CIRPlsView::DoActivateL - Exiting" );
-	}
-	
-// ----------------------------------------------------------------------------
-// CIRPlsView::DoDeactivate()
-// This is called when a view needs to be deactivated. 
-// This destroys container with its controls.
-// ----------------------------------------------------------------------------
-//
-void CIRPlsView::DoDeactivate()
-	{
-	IRLOG_DEBUG( "CIRPlsView::DoDeactivate - Entering" );
-	if ( iContainer )
-		{
-	    SetCurrentFocus(iContainer->GetCurrentItemIndex());
-		SetCurrentTopItem(iContainer->GetListBoxTopIndex());
-        AppUi()->RemoveFromViewStack( *this, iContainer );
-        delete iContainer;
- 		iContainer = NULL;
-		}
-	if( AknLayoutUtils::PenEnabled() && Toolbar() )
-		{
-		Toolbar()->SetToolbarVisibility(EFalse, EFalse);
-		Toolbar()->SetToolbarObserver( NULL );
-		}
-    iUi->iNetworkController->DeleteActiveNetworkObserver(*this);
-	IRLOG_DEBUG( "CIRPlsView::DoDeactivate - Exiting." );
-	}
-	
-// ----------------------------------------------------------------------------
-//  CIRPlsView::HandleCommandL(TInt aCommand) 
-//  Command handling function
-// ----------------------------------------------------------------------------
-//	
-void CIRPlsView::HandleCommandL(TInt aCommand)
-	{
-	IRLOG_DEBUG( "CIRPlsView::HandleCommandL - Entering" );
-	iCurrentFocus = iContainer->GetCurrentItemIndex();	
-    
-    // handle the corresponding command selected by the user through options.
-	switch(aCommand)
-		{
-	
-		case EListenCmd:
-			{
-			iUi->SetListenFromPls(ETrue);
-			if( iUi->VerifyNetworkConnectivityL() )
-				{
-				iRequestPending = ETrue;
-				break;
-				}
-			else
-				{
-				SetCurrentFocus(iContainer->GetCurrentItemIndex());
-				iContainer->ListenToStationL(); 
-				}
-			   
-     		}
-		    break;
-
-		case ESaveCmd:
-			{  
-			if( !iUi->CheckAndNotifyLowDiskSpaceL() )
-				{
-     			iContainer->SaveL();
-				}
-			}	
-			break;
-			
-		case ESaveAllCmd:
-			{
-			if( !iUi->CheckAndNotifyLowDiskSpaceL() )
-				{
-				iContainer->SaveAllL();
-				}
-		 	}
-			break;
-			
-		case EGotoNowPlayingViewCmd:
-		    {
-		    SetCurrentFocus(iContainer->GetCurrentItemIndex());
-			iUi->SetHistory(EFalse);
-			iUi->SavePrevIDL(KIRMainChoiceViewID,aCommand); 
-		    }
-		    break;
-		    
-		case ESettingsCmd:
-		    {
-		    SetCurrentFocus(iContainer->GetCurrentItemIndex());
-		    AppUi()->ActivateLocalViewL(KIRSettingsViewId);
-		    }
-		    break;
-		    
-	    case EHelpCmd:
-			{
-			if( !iUi->CheckAndNotifyLowDiskSpaceL() )
-				{
-				SetCurrentFocus(iContainer->GetCurrentItemIndex());
-	            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
-	            			 AppUi()->AppHelpContextL() );
-				}
-			}
-            break;
-            
-		case EGotoMainView:
-			{
-			_LIT8(KNull,"");
-			AppUi()->ActivateLocalViewL( KIRMainChoiceViewID ,KMainViewLaunch ,KNull);
-			}
-	    	break;   
-		default:
-			{
-			CIRBaseView::HandleCommandL( EAknSoftkeyExit );	
-			}
-
-		}
-	IRLOG_DEBUG( "CIRPlsView::HandleCommandL - Exiting." );
-	}
-	
-// ----------------------------------------------------------------------------
-// CIRPlsView::DynInitMenuPaneL()
-// Dynamically handles menu pane.
-// ----------------------------------------------------------------------------
-//
-void CIRPlsView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
-	{
-	IRLOG_DEBUG( "CIRPlsView::DynInitMenuPaneL - Entering" );
-	// Pls view options menu  
-	CIRUi* appUi = static_cast<CIRUi*>( AppUi() );  
-	if(aResourceId == R_IR_MENU_PLS  )
-		{
-        	if(!aMenuPane) User::Leave(KErrNotFound);
-        	{   
-				// Now Playing option
-				if(iNowPlayingWrapper->iPlaying)
-					{
-					 aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,EFalse);
-					}
-				else
-					{
-					 aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue);
-					}
-				if(iUi->IsFirstTime())
-					{
-					aMenuPane->SetItemDimmed(EGotoMainView,ETrue);	
-					}
-				else
-					{
-					aMenuPane->SetItemDimmed(EGotoMainView,EFalse);	
-					}
-        	}
-		}
-	IRLOG_DEBUG( "CIRPlsView::DynInitMenuPaneL - Exiting." );
-	}
-	
-// ---------------------------------------------------------------------------
-// CIRPlsView::ConstructToolbarL()
-// Coonstructs the toolbar for the view.
-// ---------------------------------------------------------------------------
-//    
-void CIRPlsView::ConstructToolbarL()
-	{
-	IRLOG_DEBUG( "CIRPlsView::ConstructToolbarL - Entering." );
-
-	TInt count = (iUi->iURLs.Count());
-    if(Toolbar())
-	    {
-		if((count==0))
-			{
-			Toolbar()->SetItemDimmed(ESaveCmd,ETrue,ETrue);
-			Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue);
-			}
-		else
-			{
-			Toolbar()->SetItemDimmed(ESaveCmd,EFalse,ETrue);
-			Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue);
-			}
-		if((count<=2))
-			{
-			Toolbar()->SetItemDimmed(ESaveAllCmd,ETrue,ETrue);
-			}
-		else
-			{
-			Toolbar()->SetItemDimmed(ESaveAllCmd,EFalse,ETrue);
-			}
-		Toolbar()->SetToolbarVisibility( ETrue );
-
-	    // Update rect, as changes in toolbar visibility also affect layout.
-	    if(iContainer)
-		    {
-		    iContainer->SetRect( ClientRect() );
-		    iContainer->DrawDeferred();
-		    }
-	    }
-	IRLOG_DEBUG( "CIRPlsView::ConstructToolbarL - Exiting." );
-	}
-// ---------------------------------------------------------------------------
-// CIRPlsView::ConstructToolbarL()
-// Dynamically initialises a tool bar..
-// ---------------------------------------------------------------------------
-//    
-void CIRPlsView::DynInitToolbarL( TInt /*aResourceId*/, CAknToolbar* /*aToolbar*/ )
-	{
-	IRLOG_DEBUG( "CIRPlsView::DynInitToolbarL - Entering." );
-	IRLOG_DEBUG( "CIRPlsView::DynInitToolbarL - Exiting." );
-    }
-		
-// ---------------------------------------------------------------------------
-// CIRMainView::OfferToolbarEventL()
-// catch the selection key event and perform the operation according to it...
-// ---------------------------------------------------------------------------
-void CIRPlsView::OfferToolbarEventL
-        ( TInt aCommand )
-	{
-	IRLOG_DEBUG( "CIRPlsView::OfferToolbarEventL - Entering." );
-	HandleCommandL(aCommand);
-	IRLOG_DEBUG( "CIRPlsView::OfferToolbarEventL - Exiting." );
-	}
-// ---------------------------------------------------------------------------
-// CIRPlsView::HandleStatusPaneSizeChange()
-// 
-// ---------------------------------------------------------------------------
-//	
-void CIRPlsView::HandleStatusPaneSizeChange()
-    {
-    IRLOG_DEBUG( "CIRPlsView::HandleStatusPaneSizeChange - Entering." );
-    // the client rect is also set here after screen orientation change
-    if (iContainer )
-        {
-        iContainer->SetRect( ClientRect() );
-        }
-    IRLOG_DEBUG( "CIRPlsView::HandleStatusPaneSizeChange - Exiting." );
-    }
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Foreground event handling function.
-// ---------------------------------------------------------------------------
-//
-void CIRPlsView::HandleForegroundEventL( TBool aForeground )
-	{
-	IRLOG_DEBUG( "CIRMainView::HandleForegroundEventL - Entering" );
-	CIRBaseView::HandleForegroundEventL( aForeground );
-	if(aForeground)
-	{
-	if(iContainer)
-		{
-		MAknsSkinInstance * skin=AknsUtils::SkinInstance () ;
-	    TRgb color;
-	    TInt skinColor=AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
-	    				                                      EAknsCIQsnTextColorsCG6 );
-		if(color.Gray2()!=0)
-			{
-			CreateAndSetToolbarL(R_NOW_PLSLIST_WHITE_TOOLBAR);
-			}
-		else
-			{
-			CreateAndSetToolbarL(R_NOW_PLSLIST_BLACK_TOOLBAR);	
-			}
-        if( AknLayoutUtils::PenEnabled() && Toolbar() )
-			{
-			Toolbar()->SetToolbarObserver( this );
-			}
-		ConstructToolbarL();
-	    //iUi->iNetworkController->RegisterActiveNetworkObserver(this)
-	    //iListen = ETrue
-	    iContainer->DrawDeferred();
-        Toolbar()->DrawDeferred();
-		iContainer->SecondPls();
-		}
-	}
-	IRLOG_DEBUG( "CIRMainView::HandleForegroundEventL - Exiting." );
-	}		
-
-
-// ---------------------------------------------------------------------------
-//Notifies all observers whose network request is active
-// to reissue the request  
-//NotifyActiveNetworkObserversL()
-// ---------------------------------------------------------------------------
-
-void CIRPlsView::NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent)
-	{
-	IRLOG_DEBUG( "CIRPlsView::NotifyActiveNetworkObserversL - Entering." );
-	
-	switch(aEvent)
-	{
-	case ENetworkConnectionDisconnected:
-		{
-		iNowPlayingWrapper->HandleNetworkDisconnected();
-		}
-		break;
-	case ENetworkConnectionEstablished:
-		{
-		if(iContainer)
-			{
-			if(iRequestPending || iUi->iNetworkController->IsHandingOverConnection())
-				{
-				SetCurrentFocus(iContainer->GetCurrentItemIndex());
-				iContainer->ListenToStationL(); 
-				}
-			}
-		ResetPendingRequests(EFalse);
-		}
-	}
-
-	IRLOG_DEBUG( "CIRPlsView::NotifyActiveNetworkObserversL - Exiting." );
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// Notified by network controller when user cancels network connection, to reset 
-// the pending requests  
-// ResetPendingRequests()
-// -----------------------------------------------------------------------------
-void CIRPlsView::ResetPendingRequests(TBool aValue)
-	{
-	iRequestPending = aValue;
-	}
-
-	
-
-// CIRPlsView :: SecondConstruct()
-// To again initialise when Second pls file is opened.
-// ---------------------------------------------------------------------------
-//
-void CIRPlsView::SecondConstruct()
-	{
-	SetCurrentFocus(0);
-	SetCurrentTopItem(0);
-	iRequestPending = EFalse;
-	}