internetradio2.0/uisrc/irmainview.cpp
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/uisrc/irmainview.cpp	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,2154 @@
+/*
+* Copyright (c) 2009 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:  Main View
+*
+*/
+/*
+* ============================================================================
+*  Name        : irmainview.cpp
+*  Part of     : InternetRadio
+*  Description : Main View
+*  Version    :
+* ============================================================================
+*
+*/
+
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Version: 2, Tue Feb 28 18:00:00 2008 by Neelima
+*  Ref:
+*  Added Workaround in CIRMainView::HandleCommandL() Listen/Add to Favourates is implemented and the dummy functionality is removed
+*
+*
+*  </ccm_history>
+* ============================================================================
+*/
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Version: 2, Sat Feb 18:12:00 2008 by Neelima
+*  Ref:
+*  Added Workaround in CIRMainView::Handlecommandl() for deleting the stations and necessary dialogs  .
+*  and also handled necessary cases for add to favourites.
+*  </ccm_history>
+* ============================================================================
+*/
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Version: 1, Thrus Feb 20 07:35:00 2008 by Neelima
+*  Ref:
+*  Added Workaround in CIRMainView::DynInitMenuPaneL() for displaying "Go to Now playing" & "update" options .
+*  </ccm_history>
+* ============================================================================
+*/
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Version: 10, July 8 tue 18:44:00 2008 by Rohit
+*  Implemented delayed activation for Station Information view in case of no network connectivity
+*
+*  Version: 9, May 28 wed 16:34:00 2008 by Rohit
+*  Fixed bug to verify network before invoking Station Information view
+*
+*  Version: 8, May 5 wed 19:14:00 2008 by Rohit
+*  Fixed bug to show Song Information view for last played station
+*
+*  Version: 7, Apr 30 wed 14:10:00 2008 by Rohit
+*  Added handler to invoke Song Information view
+*
+*  Version: 6, April 29 tue 12:15:00 2008 by Neelima
+*  Changed the container to CCoeControl and implemented dynamic filtering
+*
+*  Version: 5, April 18 wed 10:41:00 2008 by Neelima
+*  Updated after pc-lint run
+*
+*  Version: 4, April 17 wed 08:06:00 2008 by Neelima
+*  Ref:
+*  Customisation of  mark/unmark
+*
+*  Version: 3, April 9 wed 19:12:00 2008 by Neelima
+*  Ref:
+*  Added Workaround in CIRMainContainer::DeleteMultiStationsL() the code for deleting the stations and necessary dialogs  .
+*
+*  Version: 2, Thrus Feb 20 08:52:00 2008 by Neelima
+*  Ref:
+*  Added Workaround in CIRMainView::Handlecommandl() Added marm/unmark commands and necessary functionality
+*  also implemented delete for marked items
+*  </ccm_history>
+* ============================================================================
+*/
+/* ---------------------------------------------------------------------------
+*  Version history:
+*  Template version:
+*  <ccm_history>
+*
+*  Version: 9, may 13 Wed 05:55:00 2008 by Neelima
+* Implemeted Listen on dynamic filtered stations.
+* ============================================================================
+*/
+
+
+#include <stringloader.h>
+#include <hlplch.h>
+#include <internetradio.rsg>
+#include <internetradio.mbg>
+//For Touch Toolbar
+#include <akntoolbar.h>
+
+
+
+#include "irui.h"
+#include "ir.hrh"
+#include "ircommon.h"
+#include "irdebug.h"
+#include "irbaseview.h"
+#include "irmainview.h"
+#include "irmaincontainer.h"
+#include "irisdswrapper.h"
+#include "irstationinfoview.h"
+#include "irchannelserverurl.h"
+#include "irhistory.h"
+#include "irnowplayingview.h"
+#include "irdialoglauncher.h"
+#include "irnowplayingwrapper.h"
+#include "irnetworkcontroller.h"
+#include "irfilteredmodel.h"
+#include "iradvertisinglistbox.h"
+#include "msyncpresetobserver.h"	// MSyncPresetObserver
+#include "irlogodownloadengine.h"
+#include "irdataprovider.h"
+#include "irhttpdataprovider.h"
+#include "irpubsub.h"
+
+
+const TInt KUrlbufMaxLength = 256;
+const TInt KDummyLength = 10;
+const TInt KNull = 0;
+const TInt KIsdsPreset = 1;
+const TInt KLPLogoSize = 59;
+const TInt KLPReqFrom = 0;
+
+// ---------------------------------------------------------------------------
+// CIRMainView::CIRMainView()
+// C++ default constructor can NOT contain any code, that might leave.
+// ---------------------------------------------------------------------------
+//
+CIRMainView::CIRMainView()
+    {
+	IRLOG_DEBUG( "CIRMainView::CIRMainView - Entering" );
+    SetCurrentFocus(0);
+   	SetCurrentTopItem(0);
+   	iMarkedFlag = EFalse;
+   	iRequestPending = EFalse;
+   	iFavListen = EFalse;
+   	iStationDetailsCmd = EFalse;
+   	iAddtoStationsCmd = EFalse;
+	iMarkedAllFlag = EFalse;
+	iMarkedFlag = EFalse;
+	iMarkedItemCount = 0;
+	iMarkedIndexArray.Reset();
+	iUnMarkedArray.Reset();
+	IRLOG_DEBUG( "CIRMainView::CIRMainView - Exiting" );
+    }
+
+
+// ---------------------------------------------------------------------------
+// void CIRMainView::ConstructL()
+// EPOC default constructor can leave.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::ConstructL()
+    {
+	IRLOG_DEBUG( "CIRMainView::ConstructL - Entering" );
+    CIRBaseView::ConstructL( R_IR_FAV );
+	MAknsSkinInstance * skin=AknsUtils::SkinInstance () ;
+	TRgb color;
+	TInt skinColor=AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors,
+					                                      EAknsCIQsnTextColorsCG6 );
+	if(color.Gray2()!=0)
+		{
+		CreateAndSetToolbarL(R_IR_MAINVIEW_WHITE_TOOLBAR);
+		}
+	else
+		{
+		CreateAndSetToolbarL(R_IR_MAINVIEW_BLACK_TOOLBAR);
+		}
+	if( AknLayoutUtils::PenEnabled() && Toolbar() )
+		{
+		Toolbar()->SetToolbarObserver( this );
+		}
+	IRLOG_DEBUG( "CIRMainView::ConstructL - Exiting" );
+   	}
+// -----------------------------------------------------------------------------
+// CIRMainView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CIRMainView* CIRMainView::NewL()
+    {
+ 	IRLOG_DEBUG( "CIRMainView::NewL" );
+    CIRMainView* self = CIRMainView::NewLC();
+    CleanupStack::Pop( self );
+    IRLOG_DEBUG( "CIRMainView::NewL - Exiting" );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CIRMainView* CIRMainView::NewLC()
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CIRMainView* CIRMainView::NewLC()
+    {
+    IRLOG_DEBUG( "CIRMainView::NewLC - Entering" );
+    CIRMainView* self = new( ELeave ) CIRMainView;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    IRLOG_DEBUG( "CIRMainView::NewL - Exiting." );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CIRMainView::~CIRMainView()
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CIRMainView::~CIRMainView()
+	{
+	IRLOG_DEBUG( "CIRMainView::~CIRMainView - Entering" );
+	if ( iContainer )
+		{
+		AppUi()->RemoveFromViewStack( *this, iContainer );
+		delete iContainer;
+		iContainer = NULL;
+		}
+	if( AknLayoutUtils::PenEnabled() && Toolbar() )
+		{
+		Toolbar()->SetToolbarVisibility(EFalse, EFalse);
+		Toolbar()->SetToolbarObserver( NULL );
+		}
+	iMarkedIndexArray.Close();
+	iUnMarkedArray.Close();
+	IRLOG_DEBUG( "CIRMainView::~CIRMainView - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// TUid CIRMainView::Id() const
+// From class CAknView.
+// Returns view id.
+// ---------------------------------------------------------------------------
+//
+TUid CIRMainView::Id() const
+    {
+	IRLOG_DEBUG( "CIRMainView::Id" );
+    return KIRMainChoiceViewID;
+    }
+
+// ---------------------------------------------------------------------------
+// void CIRMainView::DoActivateL( )
+// From class CAknView.
+// Handles view activation.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::DoActivateL( const TVwsViewId& aPrevViewId,
+        TUid aCustomMessageId, const TDesC8& aCustomMessage )
+	{
+	IRLOG_DEBUG( "CIRMainView::DoActivateL - Entering" );
+	iMarkedItemCount =0;
+	iMarkedFlag = EFalse;
+	iAddToFavouratesFlag = EFalse;
+
+	if(GetCurrentFocus() == -1)
+		{
+		SetCurrentFocus(0);
+		SetCurrentTopItem(0);
+		}
+	iUi->iFavPresets->AddObserver( *this );
+	iUi->iPresentViewID = KIRMainChoiceViewID;
+	if ( !iContainer )
+		{
+ 	    iContainer = CIRMainContainer::NewL( *this, ClientRect() );
+     	iContainer->CreateCustomListBoxL();
+        AppUi()->AddToViewStackL( *this, iContainer);
+        TInt index = GetCurrentFocus();
+        if( aPrevViewId.iViewUid == KIRNowPlayingViewID )
+	        {
+	        if(iNowPlayingWrapper->GetFavFocus()!= GetCurrentFocus()
+	        	&& iNowPlayingWrapper->GetFavFocus()>=0 )
+		        {
+		        index = iNowPlayingWrapper->GetFavFocus();
+		        }
+	        }
+       iContainer->GetListPointer()->SetCurrentItemIndex(index);
+       if( aPrevViewId.iViewUid != KIRAddManuallyStationViewID )
+	       {
+	       iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch);
+	       }
+       }
+    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 );
+   	MenuBar()->SetContextMenuTitleResourceId(R_IR_MENUBAR_FAV);
+   	SetTitleL( R_IRAPP_MAIN_MENU_TITLE);
+	if(	iUi->GetPlsActiavted())
+		{
+		CIRBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
+		}
+	else
+		{
+		CIRBaseView::DoActivateL( aPrevViewId, TUid::Uid(1), aCustomMessage );
+		}
+	HandleStatusPaneSizeChange();
+	iUi->iNetworkController->RegisterActiveNetworkObserverL(*this);
+	HandleCommandL(EUnmarkAll);
+	IRLOG_DEBUG( "CIRMainView::DoActivateL - Exiting" );
+	}
+
+// ---------------------------------------------------------------------------
+// void CIRMainView::DoDeactivate()
+// From class CAknView.
+// Handles view deactivation.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::DoDeactivate()
+    {
+	IRLOG_DEBUG( "CIRMainView::DoDeactivate - Entering" );
+	CIRBaseView::DoDeactivate();
+	if ( iContainer )
+		{
+        if(iContainer->GetListPointer() && iContainer->GetSearchBoxPointer())
+		    {
+		    TBuf<KDummyLength> findstring;
+			iContainer->GetSearchBoxPointer()->GetSearchText(findstring);
+			if( findstring.Length()!=0)
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				if(GetCurrentFocus() != -1)
+					{
+					iContainer->Comparestrings();
+					SetCurrentFocus(iFilteredIndex);
+					SetCurrentTopItem(iFilteredIndex);
+					}
+				}
+			else
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				SetCurrentTopItem(iContainer->GetListBoxTopIndex());
+				}
+			}
+		iUi->RemoveFromStack(iContainer );
+		delete iContainer;
+		iContainer = NULL;
+		}
+	if( AknLayoutUtils::PenEnabled() && Toolbar() )
+		{
+		Toolbar()->SetToolbarVisibility(EFalse, EFalse);
+		Toolbar()->SetToolbarObserver( NULL );
+		}
+	iMarkedIndexArray.Close();
+	iUnMarkedArray.Close();
+    iUi->iNetworkController->DeleteActiveNetworkObserver(*this);
+
+	IRLOG_DEBUG( "CIRMainView::DoDeactivate - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// void CIRMainView::HandleCommandL( TInt aCommand )
+// From class CAknView.
+// Command handling function.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::HandleCommandL( TInt aCommand )
+	{
+	IRLOG_DEBUG( "CIRMainView::HandleCommandL - Entering" );
+	switch ( aCommand )
+		{
+		case EMark:
+			{
+			TInt currentIndex = iContainer->GetCurrentItemIndex();
+			TInt index = 0;
+			if(currentIndex <=iUi->iFavPresets->iFavPresetList.Count())
+				{
+				if(iUi->iLastPlayed->FileExists())
+					{
+					if(currentIndex ==0)
+						{
+						index = iUi->iFavPresets->iFavPresetList[currentIndex]->Index();
+						}
+					else
+						{
+						index = iUi->iFavPresets->iFavPresetList[currentIndex-1]->Index();
+						}
+					}
+				else
+					{
+					index = iUi->iFavPresets->iFavPresetList[currentIndex]->Index();
+					}
+				}
+			if(currentIndex !=-1)
+				{
+				if(currentIndex ==0 &&iUi->iLastPlayed->FileExists())
+					{
+					// if the current item index is Zero and the Last palyed exists i.e., it is the lastplayed station then do nothing on mark/unmark.
+					}
+				else
+					{
+					iContainer->cmdMarkL(currentIndex,ETrue);
+					iMarkedFlag = ETrue;
+					}
+				}
+
+			if (index != KErrNotFound )
+				{
+				if(iMarkedIndexArray.Count())
+					{
+					currentIndex = GetCurrentIndex();
+					for(TInt i=0;i<iMarkedIndexArray.Count();i++)
+						{
+						// check whether the marked index already exists in the marked array.
+						if(iMarkedIndexArray[i]==currentIndex)
+							{
+							iIndexExisting = ETrue;
+							}
+						}
+					}
+				currentIndex = iContainer->GetCurrentItemIndex();
+				if(!(currentIndex ==0 &&iUi->iLastPlayed->FileExists()))
+					{
+					if(iIndexExisting)
+						{
+						//If the index is already marked do nothing.
+						}
+					else
+						{
+						//If the index is not marked before then insert that into marked array.
+						currentIndex = GetCurrentIndex();
+						iMarkedIndexArray.InsertInOrderL(currentIndex);
+						(iMarkedItemCount)++ ;
+						}
+					}
+				}
+			if(iUnMarkedArray.Count())
+				{
+				for(TInt i=0;i<iUnMarkedArray.Count();i++)
+					{
+					if(iUnMarkedArray[i]==currentIndex)
+						{
+						iUnMarkedArray.Remove(i);
+						}
+					}
+				}
+			iIndexExisting = EFalse;
+			SetToolbarItems();
+			SetCurrentFocus(currentIndex);
+			}
+		break;
+		case EMarkAll:
+			{
+			iMarkedAllFlag = ETrue;
+			iMarkedIndexArray.Reset();
+			if(iUi->iLastPlayed->FileExists())
+				{
+				// If Last Played station exists then mark all the stations in the favourate list except the Last played.
+				iContainer->cmdMarkL(0,ETrue);
+				}
+			else
+				{
+				// If Last Played station doesn't exist, then mark all the stations in the favourite list .
+				iContainer->cmdMarkL(-1,ETrue);
+				}
+			TBuf<KDummyLength> findString ;
+			// if elements in the listbox r not filtered
+			if(iContainer->GetSearchBoxPointer())
+				{
+				iContainer->GetSearchBoxPointer()->GetSearchText(findString);
+				}
+			// If the elements in the listbox are not filtered
+			if((findString.Length()==0))
+				{
+				TInt listboxCount ;
+				// If last played exists
+				if(iUi->iLastPlayed->FileExists())
+					{
+					// Except Last played mark all the elements in the favourite list
+					// and  all the marked elements are to be inserted into the array.
+					listboxCount = iContainer->GetListBoxCount()-1;
+					}
+				else
+					{
+					// If last played doesn't exist Mark all the elements in the list and all the
+					// elements are to be inserted into the array.
+					listboxCount = iContainer->GetListBoxCount();
+					}
+				for(TInt i=0;i<listboxCount;i++)
+					{
+					iMarkedIndexArray.InsertInOrderL(i);
+					}
+				iMarkedItemCount = iContainer->GetListPointer()->Model()->NumberOfItems();
+				}
+			// If the elements in the listbox are filtered
+			else
+				{
+				iContainer->FilteredIndexL();
+				iMarkedItemCount = iMarkedIndexArray.Count();
+				}
+			SetToolbarItems();
+			SetCurrentFocus(iContainer->GetCurrentItemIndex());
+			}
+		break;
+		case EUnmark:
+			{
+			TInt currentIndex = iContainer->GetCurrentItemIndex();
+			if(currentIndex != -1)
+				{
+				if(currentIndex ==0 &&iUi->iLastPlayed->FileExists())
+					{
+					iContainer->cmdMarkL(currentIndex,EFalse);
+					}
+				else
+					{
+					iContainer->cmdMarkL(currentIndex,EFalse);
+					}
+				currentIndex = GetCurrentIndex();
+				for(TInt j=0;j<iMarkedIndexArray.Count();j++)
+					{
+					// check which element of marked array is unmarked and remove from the marked array.
+					if(iMarkedIndexArray[j] ==currentIndex )
+						{
+						iMarkedIndexArray.Remove(j);
+						}
+					}
+				if(iMarkedAllFlag)
+					{
+					iUnMarkedArray.InsertInOrderL(currentIndex);
+					}
+				(iMarkedItemCount)-- ;
+				}
+			if(iMarkedIndexArray.Count()==0)
+				{
+				iMarkedFlag = EFalse;
+				iMarkedAllFlag = EFalse;
+				iContainer->SetContextSenstiveFlag(EFalse) ;
+				}
+			SetToolbarItems();
+			SetCurrentFocus(currentIndex);
+			}
+		break;
+		case EUnmarkAll:
+			{
+			iMarkedAllFlag = EFalse;
+			iMarkedFlag = EFalse;
+			// If Last played Exists
+			if(iUi->iLastPlayed->FileExists())
+				{
+				iContainer->cmdMarkL(0,EFalse);
+				}
+			// If last played doesn't exist
+			else
+				{
+				iContainer->cmdMarkL(-1,EFalse);
+				}
+			iMarkedItemCount = 0;
+			iMarkedIndexArray.Reset();
+			iUnMarkedArray.Reset();
+			iContainer->SetContextSenstiveFlag(EFalse) ;
+			SetToolbarItems();
+		//	SetCurrentFocus(iContainer->GetCurrentItemIndex())
+			}
+		break;
+		case EAknSoftkeyOptions:
+			{
+			Cba()->DrawDeferred();
+			break;
+			}
+		case EListenCmd:
+			{
+			if( iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				break;
+				}
+
+			iUi->SetListenFromPls(EFalse);
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				}
+
+			if( iUi->VerifyNetworkConnectivityL() )
+				{
+				iRequestPending = ETrue;
+				iListenRequest = ETrue;
+				break;
+				}
+
+			ConnectToSelectedStationL();
+			break;
+			}
+		case ESelectCmd:
+			{
+			break;
+			}
+		case EFindStationsCmd:
+			{
+			if( iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				break;
+				}
+
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				if((iContainer->GetListBoxCount()!=0)&&(iContainer->GetCurrentItemIndex()
+					 <= iContainer->GetListBoxCount()))
+					{
+					SetCurrentFocus(iContainer->GetCurrentItemIndex());
+					}
+				}
+			TBuf8<2> dummy;
+			TVwsViewId viewId(TUid::Uid(KUIDIRAPP),KIRFirstTimeViewId);
+			AppUi()->ActivateViewL(viewId ,TUid::Uid(1),dummy);
+			break;
+			}
+		case EHistoryCmd:
+			{
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				if((iContainer->GetListBoxCount()!=0)&&(iContainer->GetCurrentItemIndex()
+					 <= iContainer->GetListBoxCount()))
+					{
+					SetCurrentFocus(iContainer->GetCurrentItemIndex());
+					}
+				}
+			AppUi()->ActivateLocalViewL( KIRHistoryListViewId );
+			break;
+			}
+		case EDeleteCmd:
+			{
+			TInt dlgValue ;
+			if(iContainer->GetCurrentItemIndex()!=-1)
+				{
+				RBuf deleteStation;
+				HBufC* textResource ;
+				// If elements are marked in the list
+				if(iMarkedItemCount)
+					{
+					// If only one station in the list is marked.
+					if(iMarkedIndexArray.Count()==1)
+						{
+						TInt index = iMarkedIndexArray[0];
+						textResource = StringLoader::LoadLC( R_IRAPP_NOTE_DELETE,
+										iUi->iFavPresets->iFavPresetList[index]->Name() );
+						}
+					// If more than one station in the list is marked
+					else
+						{
+						textResource = StringLoader::LoadLC( R_IRAPP_NOTE_DELETE_MANY,
+													iMarkedIndexArray.Count());
+						}
+					deleteStation.Create(*textResource);
+					iIsdsWrapper->GetDialogLauncherInstance()->
+							ShowQueryDialogDeletionL(deleteStation,dlgValue);
+					if(dlgValue)
+						{
+						iContainer->DeleteMultiStationsL();
+						}
+					}
+				// If elements are not marked
+				else
+					{
+					TBuf<KDummyLength> findString;
+					TInt currentIndex;
+					if(iContainer->GetSearchBoxPointer())
+						{
+						iContainer->GetSearchBoxPointer()->GetSearchText(findString);
+						}
+					// If elements in the listbox are not filtered
+					if((findString.Length()==0))
+						{
+						TInt index;
+						currentIndex = iContainer->GetListPointer()->CurrentItemIndex();
+						SetCurrentFocus(iContainer->GetCurrentItemIndex());
+						SetCurrentTopItem(iContainer->GetListBoxTopIndex());
+						// If the last played exists
+						if(iUi->iLastPlayed->FileExists())
+							{
+							index = currentIndex-1;
+							textResource = StringLoader::LoadLC( R_IRAPP_NOTE_DELETE,
+								iUi->iFavPresets->iFavPresetList[currentIndex-1]->Name() );
+							}
+						// If the last played doesn't exist
+						else
+							{
+							index = currentIndex;
+							textResource = StringLoader::LoadLC( R_IRAPP_NOTE_DELETE,
+							iUi->iFavPresets->iFavPresetList[currentIndex]->Name() );
+							}
+						deleteStation.Create(*textResource);
+						iIsdsWrapper->GetDialogLauncherInstance()->
+								ShowQueryDialogDeletionL(deleteStation,dlgValue);
+						if(dlgValue)
+							{
+							iContainer->DeleteChannelL(index );
+							}
+						}
+					// If elements are  filtered
+					else
+						{
+						currentIndex = GetCurrentIndex();
+						textResource = StringLoader::LoadLC( R_IRAPP_NOTE_DELETE,
+									iUi->iFavPresets->iFavPresetList[currentIndex]->Name() );
+						deleteStation.Create(*textResource);
+						iIsdsWrapper->GetDialogLauncherInstance()->
+							ShowQueryDialogDeletionL(deleteStation,dlgValue);
+						if(dlgValue)
+							{
+							iContainer->DeleteChannelL( currentIndex);
+							}
+						}
+					}
+				CleanupStack::PopAndDestroy( textResource );
+				deleteStation.Close();
+				SetToolbarItems();
+				}
+			break;
+			}
+		case EGotoNowPlayingViewCmd:
+			{
+			iUi->SetHistory(EFalse);
+			iUi->SetMainView(ETrue);
+			iUi->SavePrevIDL(KIRMainChoiceViewID,aCommand);
+			break;
+			}
+		case EExportFavCmd:
+			{
+			break;
+			}
+		case EEditStationsCmd:
+			{
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				}
+			iUi->SetEditStation(ETrue);
+			iUi->iEditStationIndex = iContainer->GetListPointer()->CurrentItemIndex();
+			if(iUi->iLastPlayed->FileExists())
+				{
+				iUi->iFavPresets->iFavPresetList[iUi->iEditStationIndex-1]->
+				CopyPresetData(*iNowPlayingWrapper->iEditStationPreset);
+				}
+			else
+				{
+				iUi->iFavPresets->iFavPresetList[iUi->iEditStationIndex]->
+				CopyPresetData(*iNowPlayingWrapper->iEditStationPreset);
+				}
+
+			iUi->SetEditStation(ETrue);
+			AppUi()->ActivateLocalViewL(KIRAddManuallyStationViewID);
+			break;
+			}
+		case EStationsCmd:
+			{
+			break;
+			}
+		case EAddtoStationsCmd:
+			{
+			if ( iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				break;
+				}
+			iAddToFavouratesFlag = ETrue;
+
+			////////verifying network connectivity/////////////////////////////////
+			TBool bNoNetwork = iUi->VerifyNetworkConnectivityL();
+			if( bNoNetwork )
+				{
+				iRequestPending = ETrue;
+				iAddtoStationsCmd = ETrue;
+
+				break;
+				}
+			else
+				{
+				AddStationtoFavoritesL();
+				}
+
+
+			break;
+			}
+		case EAddStationManuallyCmd:
+			{
+			if ( !iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				iUi->SetEditStation(EFalse);
+				AppUi()->ActivateLocalViewL(KIRAddManuallyStationViewID);
+				}
+			break;
+			}
+		case EHelpCmd:
+			{
+			if ( !iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(),
+							AppUi()->AppHelpContextL() );
+				}
+			}
+		break;
+		case ESettingsCmd:
+			{
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				}
+			AppUi()->ActivateLocalViewL(KIRSettingsViewId);
+			break;
+			}
+		case EAknSoftkeyBack:
+			{
+			if(	iUi->GetPlsActiavted() )
+				{
+				CIRBaseView::HandleCommandL( EAknSoftkeyBack );
+				}
+			else
+				{
+				CIRBaseView::HandleCommandL( EAknSoftkeyExit );
+				}
+			break;
+			}
+
+		case EStationDetailsCmd:
+			{
+			if( iUi->CheckAndNotifyLowDiskSpaceL() )
+				{
+				break;
+				}
+
+			TInt presetIndex = -1;
+			if(iContainer->GetListBoxCount()!=-1)
+				{
+				SetCurrentFocus(iContainer->GetCurrentItemIndex());
+				}
+			// Last Played channel selected
+			if(iContainer->GetCurrentItemIndex()==0 && iContainer->GetLastPlayedChannel())
+				{
+				iUi->iStationInfoView->SetStationPresetL( iUi->iLastPlayed->iLastPlayedStation );
+				}
+			else
+				{
+				presetIndex = GetCurrentIndex();
+				iUi->iStationInfoView->SetStationPresetL( iUi->iFavPresets->
+														  iFavPresetList[presetIndex] );
+				}
+
+			if( iUi->iStationInfoView->GetStationPresetL()->GetChannelType() == CIRIsdsPreset::EIsdsPreset
+				&& iUi->VerifyNetworkConnectivityL() )
+				{
+				iRequestPending = ETrue;
+				iStationDetailsCmd = ETrue;
+				}
+			else
+				{
+				AppUi()->ActivateLocalViewL(KIRStationInfoViewId);
+				}
+			break;
+			}
+		case EMoveCmd:
+			{
+			TInt currentIndex = iContainer->GetCurrentItemIndex();
+
+			Toolbar()->SetItemDimmed(EFindStationsCmd,ETrue,ETrue);
+			Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue);
+			Toolbar()->SetItemDimmed(EHistoryCmd,ETrue,ETrue);
+			Toolbar()->DrawNow();
+
+			if(iMarkedIndexArray.Count()==1)
+				{
+				if(!iUi->iLastPlayed->FileExists())
+					{
+					iIndexFrom = iMarkedIndexArray[0];
+					iMovedItemIndex=iMarkedIndexArray[0];
+					iChannelIdFrom = iUi->iFavPresets->iFavPresetList[iIndexFrom]->Id();
+					}
+				else
+					{
+					iIndexFrom = iMarkedIndexArray[0];
+					iMovedItemIndex=iMarkedIndexArray[0] + 1;
+					iChannelIdFrom = iUi->iFavPresets->iFavPresetList[iIndexFrom]->Id();
+					}
+				iMarkedIndexArray.Reset();
+				SetListBoxMarkedCount(0);
+				iMarkedFlag = EFalse;
+				iMoveMarkedFlag = ETrue;
+				}
+			else
+				{
+				if(!iUi->iLastPlayed->FileExists())
+					{
+					iIndexFrom = currentIndex;
+					iMovedItemIndex=currentIndex;
+					iChannelIdFrom = iUi->iFavPresets->iFavPresetList[iIndexFrom]->Id();
+					}
+				else
+					{
+					iIndexFrom = currentIndex-1;
+					iMovedItemIndex=currentIndex;
+					iChannelIdFrom = iUi->iFavPresets->iFavPresetList[iIndexFrom]->Id();
+					}
+				if(currentIndex !=-1)
+					{
+					if(currentIndex ==0 &&iUi->iLastPlayed->FileExists())
+						{
+						// if the current item index is Zero and the Last palyed exists i.e., it is the lastplayed station then do nothing on mark/unmark.
+						}
+					else
+						{
+						iContainer->cmdMarkL(currentIndex,ETrue);
+						iMoveMarkedFlag = ETrue;
+						}
+					}
+				}
+			Cba()->SetCommandSetL( R_IR_CBA_DONE_CANCEL );
+			Cba()->DrawDeferred();
+			break;
+			}
+		case EAknSoftkeyCancel:
+		case EIRCancel:
+			{
+			TInt currentIndex =iMovedItemIndex;
+			if(currentIndex != -1)
+				{
+				iContainer->cmdMarkL(currentIndex,EFalse);
+				iMoveMarkedFlag = EFalse;
+				}
+			Toolbar()->SetItemDimmed(EFindStationsCmd,EFalse,ETrue);
+			Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue);
+			Toolbar()->SetItemDimmed(EHistoryCmd,EFalse,ETrue);
+			Toolbar()->DrawNow();
+			Cba()->SetCommandSetL( R_IRAPP_SOFTKEYS_OPTIONS_BACK_CBA );
+			Cba()->DrawDeferred();
+			break;
+			}
+		case EAknSoftkeyDone:
+			{
+			TInt movedIndex =iMovedItemIndex;
+			TInt currentIndex = iContainer->GetCurrentItemIndex();
+			SetCurrentFocus(currentIndex);
+			if(currentIndex==0)
+				{
+				iIndexTo=0;
+				iChannelIdTo = iUi->iFavPresets->iFavPresetList[iIndexTo]->Id();
+				}
+			else
+				{
+				if(!iUi->iLastPlayed->FileExists())
+					{
+					iIndexTo = currentIndex;
+					iChannelIdTo = iUi->iFavPresets->iFavPresetList[iIndexTo]->Id();
+					}
+				else
+					{
+					iIndexTo = currentIndex-1;
+					iChannelIdTo = iUi->iFavPresets->iFavPresetList[iIndexTo]->Id();
+					}
+				}
+			iUi->iFavPresets->SwapPresetsInDbL(iChannelIdFrom,iChannelIdTo,iIndexFrom,iIndexTo);
+			if(movedIndex != -1)
+				{
+				iContainer->cmdMarkL(movedIndex,EFalse);
+				}
+			Toolbar()->SetItemDimmed(EFindStationsCmd,EFalse,ETrue);
+			Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue);
+			Toolbar()->SetItemDimmed(EHistoryCmd,EFalse,ETrue);
+			Toolbar()->DrawNow();
+			Cba()->SetCommandSetL( R_IRAPP_SOFTKEYS_OPTIONS_BACK_CBA );
+			Cba()->DrawDeferred();
+			break;
+			}
+		default:
+			{
+			CIRBaseView::HandleCommandL( aCommand );
+			break;
+			}
+		}
+	IRLOG_DEBUG( "CIRMainView::HandleCommandL - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// void CIRMainView::DynInitMenuPaneL()
+// Dynamically initialises a menu pane
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
+	{
+	IRLOG_DEBUG( "CIRMainView::DynInitMenuPaneL - Entering" );
+	if(iContainer->GetListBoxCount()!=-1)
+		{
+		AknSelectionService::HandleMarkableListDynInitMenuPane
+		(aResourceId, aMenuPane, iContainer->GetListPointer());
+		}
+	if(aResourceId == R_IR_MENU_FAV)
+		{
+		if(!aMenuPane) User::Leave(KErrNotFound);
+			{
+			if ( iContainer )
+				{
+				if(!(iContainer->GetContextSenstiveFlag()))
+					{
+					TInt filteredCount = iContainer->GetFilterdModelPointer()->NumberOfItems();
+					if(filteredCount == 0)
+						{
+						// After dynamic filtering if no matches are present, if user presses
+						// option menu only add stations manually,settings,help,
+						// exit should be displayed
+						aMenuPane->SetItemDimmed(EAddStationManuallyCmd, EFalse);
+						aMenuPane->SetItemDimmed(EEditStationsCmd, ETrue);
+						if(iContainer->GetLastPlayedChannel())
+							{
+							aMenuPane->SetItemDimmed(EAddtoStationsCmd, EFalse);
+							}
+						else
+							{
+							aMenuPane->SetItemDimmed(EAddtoStationsCmd, ETrue);
+							aMenuPane->SetItemDimmed(EMarkUnmark,ETrue );
+							aMenuPane->SetItemDimmed(EDeleteCmd,ETrue );
+							aMenuPane->SetItemDimmed(EStationsCmd, ETrue);
+							aMenuPane->SetItemDimmed(ESettingsCmd, EFalse);
+							aMenuPane->SetItemDimmed(EHelpCmd, EFalse);
+							aMenuPane->SetItemDimmed(EExitCmd, EFalse);
+							}
+						}
+					else
+						{
+						if(filteredCount == iMarkedIndexArray.Count()|| iMarkedIndexArray.Count())
+							{
+							aMenuPane->SetItemDimmed(EEditStationsCmd, ETrue);
+							}
+						else
+							{
+							aMenuPane->SetItemDimmed(EEditStationsCmd, GetEditDimmingStatus());
+							}
+						aMenuPane->SetItemDimmed(EAddtoStationsCmd, GetAddDimmingStatus());
+						aMenuPane->SetItemDimmed(EMarkUnmark,GetLastPlayedStatus() );
+						aMenuPane->SetItemDimmed(EDeleteCmd,ETrue );
+						}
+					// Now Playing option
+					if(iNowPlayingWrapper->iPlaying)
+						{
+						aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,EFalse);
+						}
+					else
+						{
+						aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue);
+						}
+					}
+				else
+					{
+					// After marking of any station, if user  taps on any station
+					// only delete and mark/unmark options should be shown.
+					aMenuPane->SetItemDimmed(EDeleteCmd,EFalse );
+					aMenuPane->SetItemDimmed(EMarkUnmark, EFalse);
+					aMenuPane->SetItemDimmed(EAddStationManuallyCmd, ETrue);
+					aMenuPane->SetItemDimmed(EAddtoStationsCmd, ETrue);
+					aMenuPane->SetItemDimmed(EEditStationsCmd, ETrue);
+					aMenuPane->SetItemDimmed(EStationsCmd, ETrue);
+					aMenuPane->SetItemDimmed(ESettingsCmd, ETrue);
+					aMenuPane->SetItemDimmed(EHelpCmd, ETrue);
+					aMenuPane->SetItemDimmed(EExitCmd, ETrue);
+					aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue);
+					iContainer->SetContextSenstiveFlag(EFalse) ;
+					}
+				} /*iContainer */
+			} /*aMenuPane */
+		} /*aResource */
+
+	else if(aResourceId == R_IR_MENU_STATIONS_SUB_MENU)
+		{
+		aMenuPane->SetItemDimmed(EDeleteCmd,GetLastPlayedStatus() );
+		aMenuPane->SetItemDimmed(EStationDetailsCmd,EFalse );
+		aMenuPane->SetItemDimmed(EMoveCmd,GetLastPlayedStatus() );
+		if(iMarkedIndexArray.Count())
+			{
+			// If any element is marked then sation details option should be disabled
+			// from options menu
+			if(iContainer->GetLastPlayedChannel() && iContainer->GetListPointer()->CurrentItemIndex()==0)
+				{
+				aMenuPane->SetItemDimmed(EStationDetailsCmd,EFalse );
+				}
+			else
+				{
+				aMenuPane->SetItemDimmed(EStationDetailsCmd,ETrue );
+				}
+			}
+		if(  iMarkedIndexArray.Count()>1 ||
+		iContainer->GetFilteredFlag() ||
+		(iContainer->GetListBoxCount()==2 && iContainer->GetLastPlayedChannel() ) ||
+		iContainer->GetListBoxCount()==1  )
+			{
+			aMenuPane->SetItemDimmed(EMoveCmd,ETrue );
+			}
+		}
+	else if(aResourceId == R_IR_MENUPANE_MARKABLE_LIST)
+		{
+		aMenuPane->SetItemDimmed(EMark, EFalse);
+		aMenuPane->SetItemDimmed(EMarkAll, EFalse);
+		aMenuPane->SetItemDimmed(EUnmark, ETrue);
+		aMenuPane->SetItemDimmed(EUnmarkAll, ETrue);
+		if(iMarkedIndexArray.Count())
+			{
+			TBool markedflag;
+			TInt noOfSelectedIndexes = 0;
+			TInt filteredCount = iContainer->GetFilterdModelPointer()->NumberOfItems();
+			if(iContainer->GetLastPlayedChannel())
+				{
+				filteredCount = filteredCount-1	;
+				}
+
+			markedflag = EFalse;
+			TInt CurrentItemIndex = GetCurrentIndex();
+			for(TInt i=0;i<iMarkedIndexArray.Count();i++)
+				{
+				if(iMarkedIndexArray[i]==CurrentItemIndex)
+					{
+					markedflag = ETrue;
+					}
+				noOfSelectedIndexes++;
+				}
+			if((markedflag && iMarkedFlag)||(markedflag && iMarkedAllFlag))
+				{
+				aMenuPane->SetItemDimmed(EMark, ETrue);
+				aMenuPane->SetItemDimmed(EMarkAll, EFalse);
+				aMenuPane->SetItemDimmed(EUnmark, EFalse);
+				aMenuPane->SetItemDimmed(EUnmarkAll, EFalse);
+				}
+			else
+				{
+				aMenuPane->SetItemDimmed(EMark, EFalse);
+				aMenuPane->SetItemDimmed(EMarkAll, EFalse);
+				aMenuPane->SetItemDimmed(EUnmark, ETrue);
+				aMenuPane->SetItemDimmed(EUnmarkAll, EFalse);
+				}
+			if((markedflag && iMarkedAllFlag && noOfSelectedIndexes == filteredCount)
+			||(markedflag && noOfSelectedIndexes == filteredCount))
+				{
+				aMenuPane->SetItemDimmed(EMark, ETrue);
+				aMenuPane->SetItemDimmed(EMarkAll, ETrue);
+				aMenuPane->SetItemDimmed(EUnmark, EFalse);
+				aMenuPane->SetItemDimmed(EUnmarkAll, EFalse);
+				}
+			}
+		}
+	IRLOG_DEBUG( "CIRMainView::DynInitMenuPaneL - Exiting" );
+	}
+
+// ---------------------------------------------------------------------------
+// Touch Toolbar
+//
+// ---------------------------------------------------------------------------
+
+void CIRMainView::ConstructToolbarL()
+    {
+	IRLOG_DEBUG( "CIRMainView::ConstructToolbarL - Entering" );
+	SetToolbarItems();
+	// Update rect, as changes in toolbar visibility also affect layout.
+	if(iContainer)
+		{
+		iContainer->SetRect( ClientRect() );
+		iContainer->DrawDeferred();
+		}
+
+	IRLOG_DEBUG( "CIRMainView::ConstructToolbarL - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Foreground event handling function.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::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_IR_MAINVIEW_WHITE_TOOLBAR);
+				}
+			else
+				{
+				CreateAndSetToolbarL(R_IR_MAINVIEW_BLACK_TOOLBAR);
+				}
+			if( AknLayoutUtils::PenEnabled() && Toolbar() )
+				{
+				Toolbar()->SetToolbarObserver( this );
+				}
+			ConstructToolbarL();
+			iContainer->DrawDeferred();
+			}
+		}
+	IRLOG_DEBUG( "CIRMainView::HandleForegroundEventL---Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// From class CAknView.
+// Event handler for status pane size changes.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::HandleStatusPaneSizeChange()
+    {
+	IRLOG_DEBUG( "CIRMainView::HandleStatusPaneSizeChange - Entering" );
+    CIRBaseView::HandleStatusPaneSizeChange();
+
+    if ( iContainer )
+        {
+        iContainer->SetRect( ClientRect() );
+        }
+	IRLOG_DEBUG( "CIRMainView::HandleStatusPaneSizeChange - Exiting" );
+    }
+
+// ---------------------------------------------------------------------------
+// CIRMainView::OfferToolbarEventL()
+// catch the selection key event and perform the operation according to it...
+// ---------------------------------------------------------------------------
+void CIRMainView::OfferToolbarEventL( TInt aCommand )
+	{
+	IRLOG_DEBUG( "CIRMainView::OfferToolbarEventL - Entering" );
+	HandleCommandL(aCommand);
+	IRLOG_DEBUG( "CIRMainView::OfferToolbarEventL - Exiting" );
+	}
+
+// ---------------------------------------------------------------------------
+// void CIRMainView::SetToolbarItems()
+// Setting toolbar items when text is entered
+//  ---------------------------------------------------------------------------
+void CIRMainView:: SetToolbarItems()
+	{
+	IRLOG_DEBUG( "CIRMainView::SetToolbarItems - Entering" );
+	if(Toolbar())
+		{
+		if(iContainer)
+			{
+			Toolbar()->SetToolbarVisibility(ETrue, EFalse);
+			TBuf<KFindStringLength> findstring ;
+			if(iContainer->GetSearchBoxPointer())
+				{
+				iContainer->GetSearchBoxPointer()->GetSearchText(findstring);
+				}
+			TInt filterModelCount = iContainer->GetFilterdModelPointer()->NumberOfItems();
+			if(iContainer->GetSearchBoxPointer() && findstring.Length()!=0
+			&& filterModelCount == 0)
+				{
+				Toolbar()->SetItemDimmed(EFindStationsCmd,ETrue,ETrue);
+				Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue);
+				Toolbar()->SetItemDimmed(EHistoryCmd,ETrue,ETrue);
+				}
+			else
+				{
+				if(iMarkedItemCount||iContainer->GetListPointer()->Model()->NumberOfItems()==0 )
+					{
+					Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue);
+					}
+				else
+					{
+		            Toolbar()->SetItemDimmed(EFindStationsCmd,EFalse,ETrue);
+					Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue);
+					Toolbar()->SetItemDimmed(EHistoryCmd,EFalse,ETrue);
+					}
+	            if(iMoveMarkedFlag)
+		            {
+		            Toolbar()->SetItemDimmed(EFindStationsCmd,ETrue,ETrue);
+					Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue);
+					Toolbar()->SetItemDimmed(EHistoryCmd,ETrue,ETrue);
+		            }
+				}
+
+			Toolbar()->DrawNow();
+			}
+		}
+	IRLOG_DEBUG( "CIRMainView::SetToolbarItems - Exiting" );
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView::HandlePresetChangedL( TInt aId, TUid aDataHandler, MPSPresetObserver::TPSReason aType )
+// This is called by CIRFavoritesDb when values of presets stations has been changed
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::HandlePresetChangedL( TInt aId, TUid aDataHandler,
+						 MPSPresetObserver::TPSReason aType )
+	{
+	IRLOG_DEBUG( "CIRMainView::HandlePresetChangedL  - Entering." );
+	if(iContainer)
+		{
+		iContainer->HandlePresetChangedL(aId,aDataHandler,aType);
+		}
+	IRLOG_DEBUG( "CIRMainView::HandlePresetChangedL - Exiting." );
+	}
+
+
+// ---------------------------------------------------------------------------
+//Notifies all observers whose network request is active
+// to reissue the request
+//NotifyActiveNetworkObserversL()
+// ---------------------------------------------------------------------------
+
+void CIRMainView::NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent)
+	{
+	IRLOG_DEBUG( "CIRMainView::NotifyActiveNetworkObserversL  - Entering." );
+
+	switch(aEvent)
+		{
+		case ENetworkConnectionDisconnected:
+			{
+			iNowPlayingWrapper->HandleNetworkDisconnected();
+			}
+			break;
+		case ENetworkConnectionEstablished:
+			{
+
+			if(iContainer)
+				{
+
+				if(iRequestPending || iUi->iNetworkController->IsHandingOverConnection())
+					{
+					if(iFavListen)
+						{
+						DoConnectToChannelL( iContainer->GetUrlIndex() );
+						}
+					else if( iStationDetailsCmd )
+						{
+						iStationDetailsCmd = ETrue;
+						AppUi()->ActivateLocalViewL(KIRStationInfoViewId);
+						}
+					else if(iListenRequest)
+						{
+						ConnectToSelectedStationL();
+						}
+					else if(iAddtoStationsCmd)
+						{
+						AddStationtoFavoritesL();
+						}
+					else if(iSyncReq)
+						{
+						HandleCommandL(EListenCmd);
+						}
+					}
+				}
+
+			ResetPendingRequests(EFalse);
+			}
+			break;
+		}
+
+	IRLOG_DEBUG( "CIRMainView::NotifyActiveNetworkObserversL  - Exiting." );
+	}
+
+
+// -----------------------------------------------------------------------------
+// Notified by network controller when user cancels network connection, to reset
+// the pending requests
+// ResetPendingRequests()
+// -----------------------------------------------------------------------------
+void CIRMainView::ResetPendingRequests(TBool aValue)
+	{
+	IRLOG_DEBUG( "CIRMainView::ResetPendingRequests  - Entering." );
+	iRequestPending = aValue;
+	iListenRequest  = aValue;
+	iStationDetailsCmd = aValue;
+	iFavListen = aValue;
+	iAddtoStationsCmd = aValue;
+	IRLOG_DEBUG( "CIRMainView::ResetPendingRequests  - Exiting." );
+
+	}
+
+
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetAddDimmingStatus()
+// Returns status for making the edit option dimmed or not..
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetAddDimmingStatus()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetAddDimmingStatus  - Entering." );
+	IRLOG_DEBUG( "CIRMainView::GetAddDimmingStatus  - Exiting." );
+	if(iContainer->GetListPointer()->CurrentItemIndex()==0 && iContainer->GetLastPlayedChannel())
+		{
+		return EFalse;
+		}
+	else
+		{
+		return ETrue;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetEditDimmingStatus()
+// Returns status for making the edit option dimmed or not..
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetEditDimmingStatus()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetEditDimmingStatus  - Entering." );
+	TInt favIndex = 0;
+	TInt currentIndex = 0;
+	currentIndex = iContainer->GetListPointer()->CurrentItemIndex();
+	if(currentIndex!= -1)
+		{
+		// If last played station exist
+		if(iContainer->GetLastPlayedChannel())
+			{
+		 	favIndex = GetCurrentIndex();
+			}
+		else
+			{
+			favIndex = iContainer->GetListPointer()->CurrentItemIndex();
+			}
+		// If focus is on last played station
+		if((currentIndex == 0) && (iContainer->GetLastPlayedChannel()))
+			{
+			return ETrue;
+			}
+		if(favIndex <=iUi->iFavPresets->iFavPresetList.Count() &&
+				iUi->iFavPresets->iFavPresetList[favIndex]->GetChannelType() == 0)
+			{
+			return EFalse;
+			}
+		}
+	IRLOG_DEBUG( "CIRMainView::GetEditDimmingStatus  - Exiting." );
+	return ETrue;
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetMainContainer()
+// returns pointer to main container..
+// ---------------------------------------------------------------------------
+//
+CIRMainContainer* CIRMainView::GetMainContainer()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetMainContainer  - Entering." );
+	return iContainer;
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::ConnectToLastPlayedStationL()
+// Connects to the last played station.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::ConnectToLastPlayedStationL()
+	{
+	IRLOG_DEBUG( "CIRMainView::ConnectToLastPlayedStationL - Entering" );
+	if(iNowPlayingWrapper->iNowPlayingPreset)
+	*iNowPlayingWrapper->iNowPlayingPreset=*iUi->iLastPlayed->iLastPlayedStation;
+	TBuf8<KUrlbufMaxLength> urlbuf;
+	urlbuf.Copy(iUi->iLastPlayed->iLastPlayedStation->iUrlArray->At(0)->iURL->Des());
+	iUi->iNPPrevViewId = KIRMainChoiceViewID;
+	iNowPlayingWrapper->SetView(ELastplayed);
+	TConnectedFrom connectedfrom = EIRPresetIsds;
+	iNowPlayingWrapper->SetCurrentConnectionSource(connectedfrom);
+	iNowPlayingWrapper->ConnectToChannelL(*iUi->iLastPlayed->iLastPlayedStation);
+	IRLOG_DEBUG( "CIRMainView::ConnectToLastPlayedStationL - Exiting." );
+	}
+
+// ----------------------------------------------------------------------------
+// CIRMainView::SetUrlFromPresetL( TInt aUrlIndex )
+// Checks whether the url name contains only spaces and if the descriptor really was.
+// empty replaces its content with default name
+// ----------------------------------------------------------------------------
+//
+void CIRMainView::SetUrlFromPresetL(TInt aUrlIndex)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetUrlFromPresetL - Entering" );
+	iNowPlayingWrapper->SetView(EFav);
+	//iNowPlayingWrapper->SetConnectToServerState(ETrue)
+	if(aUrlIndex <= iUi->iFavPresets->iFavPresetList.Count())
+	iUi->iFavPresets->iFavPresetList[aUrlIndex]->CopyPresetData(*iNowPlayingWrapper->
+													iNowPlayingPreset);
+	iUi->iNPPrevViewId = KIRSavedStationsViewID;
+	//connected from saved preset
+	iNowPlayingWrapper->SetCurrentConnectionSource(EIRPresetIsds);
+	//Checking for valid url, Start
+	TBool urlStatus = FALSE;
+	//executed for user defined channels
+	if( !iNowPlayingWrapper->iNowPlayingPreset->GetId() &&
+					iNowPlayingWrapper->iNowPlayingPreset->GetUrlCount() > 0 )
+		{
+		//to get the only url available for user defined channel
+		urlStatus = iUi->ParseAndPrepareUrl(iNowPlayingWrapper->
+									iNowPlayingPreset->GetChannelUrlAtL(0));
+		if( !urlStatus )
+			{
+			HBufC *infoBuf = StringLoader::LoadL(R_IRAPP_ERROR_ADDRESS);
+			delete infoBuf;
+			return;
+			}
+		}
+	//Checking for valid url, End
+	if( iContainer )
+		{
+		iContainer->CheckConnectionL(aUrlIndex);
+		}
+	IRLOG_DEBUG( "CIRMainView::SetUrlFromPresetL - Exiting." );
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView::DoConnectChannelL()
+// Connects to the channel identified by the supplied index.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::DoConnectToChannelL( TInt /*aUrlIndex*/ )
+	{
+	IRLOG_DEBUG( "CIRMainView::DoConnectToChannelL - Entering" );
+/*d	if(aUrlIndex <= iUi->iFavPresets->iFavPresetList.Count() &&
+		iUi->iFavPresets->iFavPresetList[aUrlIndex]->GetChannelType())
+		{
+		iIsdsWrapper->SetSyncPresetObserver(this);
+		SyncPresetL(iUi->iFavPresets->iFavPresetList[aUrlIndex]->GetId(),
+		iUi->iFavPresets->iFavPresetList[aUrlIndex]->GetLastModifiedTime());
+		}
+d*/
+	iNowPlayingWrapper->ConnectToChannelL(*iNowPlayingWrapper->iNowPlayingPreset);
+	IRLOG_DEBUG( "CIRMainView::DoConnectToChannelL - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::SyncPresetL()
+// Connects to the channel identified by the supplied index.
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::SyncPresetL(TInt aChid,const TDesC &aModifiedTime)
+	{
+	IRLOG_DEBUG( "CIRMainView::SyncPresetL  - Entering." );
+	//sync state set to pending
+	//	iUi->SetSyncState(ESyncReqPending)
+	iUi->iNowPlayingWrapper->CreateWaitDialogL();
+	iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingStart);
+	iSyncReq = ETrue;
+	iUi->iNowPlayingWrapper->iSyncPreset = ETrue;
+	iIsdsWrapper->SetSyncPresetObserver(this,this);
+	iIsdsWrapper->SetSyncReqFromMainView(ETrue);
+	iIsdsWrapper->GetISDSInstance()->SyncPresetL(aChid,aModifiedTime);
+	IRLOG_DEBUG( "CIRMainView::SyncPresetL - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetListBoxMarkedCount()
+// returns the listbox count.
+// ---------------------------------------------------------------------------
+//
+TInt CIRMainView::GetListBoxMarkedCount()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetListBoxMarkedCount" );
+	return iMarkedItemCount;
+	}
+// ---------------------------------------------------------
+// CIRMainView::SetListBoxMarkedCount
+// Sets the listbox marked count
+// ---------------------------------------------------------
+//
+void CIRMainView::SetListBoxMarkedCount(TInt aMarkedItemCount)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetListBoxMarkedCount - Entering." );
+	iMarkedItemCount = aMarkedItemCount;
+	IRLOG_DEBUG( "CIRMainView::SetListBoxMarkedCount - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetMarkedIndexArray()
+// returns the Marked array Index.
+// ---------------------------------------------------------------------------
+//
+RArray<TInt> CIRMainView::GetMarkedIndexArray()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetMarkedIndexArray" );
+	return iMarkedIndexArray;
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetMarkedFlag()
+// returns marked flag
+// ---------------------------------------------------------------------------
+//
+TInt CIRMainView::GetMarkedFlag()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetMarkedFlag" );
+	return iMarkedFlag;
+	}
+// ---------------------------------------------------------
+// CIRBaseView::SetMarkedFlag
+// Sets the marked flag
+// ---------------------------------------------------------
+//
+void CIRMainView::SetMarkedFlag(TInt aMarkedFlag)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetMarkedFlag - Entering." );
+	iMarkedFlag = aMarkedFlag;
+	IRLOG_DEBUG( "CIRMainView::SetMarkedFlag - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetMarkedAllFlag()
+// returns marked all flag.
+// ---------------------------------------------------------------------------
+//
+TInt CIRMainView::GetMarkedAllFlag()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetMarkedAllFlag" );
+	return iMarkedAllFlag;
+	}
+// ---------------------------------------------------------
+// CIRMainView::SetMarkedAllFlag
+// Sets the marked all flag
+// ---------------------------------------------------------
+//
+void CIRMainView::SetMarkedAllFlag(TInt aMarkedAllFlag)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetMarkedAllFlag - Entering." );
+	iMarkedAllFlag = aMarkedAllFlag;
+	IRLOG_DEBUG( "CIRMainView::SetMarkedAllFlag - Exiting." );
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView::GetAddToFavouratesFlag()
+// returns whether any station has been added to favourates or not
+// ---------------------------------------------------------------------------
+//
+TInt CIRMainView::GetAddToFavouratesFlag()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetAddToFavouratesFlag" );
+	return iAddToFavouratesFlag;
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetLastPlayedStatus()
+// Returns status for making the edit option dimmed or not..
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetLastPlayedStatus()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetLastPlayedStatus - Entering." );
+	IRLOG_DEBUG( "CIRMainView::GetLastPlayedStatus - Exiting." );
+	if(iContainer && iContainer->GetListPointer()->CurrentItemIndex()==0
+	   && iContainer->GetLastPlayedChannel())
+		{
+		return ETrue;
+		}
+	else
+		{
+		return EFalse;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetCurrentIndex()
+// Returns actual index of the station depending on the lastplayed/ filtering.
+// ---------------------------------------------------------------------------
+//
+TInt CIRMainView::GetCurrentIndex()
+	{
+	IRLOG_DEBUG( "CIRMainView::GetCurrentIndex - Entering." );
+	TInt currentIndex ;
+	SetCurrentFocus(iContainer->GetListPointer()->CurrentItemIndex());
+	if(iContainer->GetSearchBoxPointer())
+		{
+		TBuf<KDummyLength> findString;
+		iContainer->GetSearchBoxPointer()->GetSearchText(findString);
+		if((findString.Length()==0))
+			{
+			// If current item index is other than Last played station
+			// If Last played Exists then the index of Favorite preset is one less than the current item index.
+			if(iUi->iLastPlayed->FileExists())
+				{
+				currentIndex = iContainer->GetListPointer()->CurrentItemIndex()-1;
+				}
+			// If Last played doesn't exists then the index of Favorite preset is the same as current item index.
+			else
+				{
+				currentIndex = iContainer->GetListPointer()->CurrentItemIndex();
+				}
+			}
+		else
+			{
+			if(findString.Length()!=0)
+				{
+				iContainer->Comparestrings();
+				SetCurrentFocus(iFilteredIndex);
+				if(iUi->iLastPlayed->FileExists())
+					{
+					iFilteredIndex = iFilteredIndex -1;
+					}
+
+				currentIndex = iFilteredIndex;
+				}
+			}
+		}
+	else
+		{
+		// If Last played Exists then the index of Favorite preset is one less than the current item index.
+		if(iUi->iLastPlayed->FileExists())
+			{
+			currentIndex = iContainer->GetListPointer()->CurrentItemIndex()-1;
+			}
+		// If Last played doesn't exists then the index of Favorite preset is the same as current item index.
+		else
+			{
+			currentIndex = iContainer->GetListPointer()->CurrentItemIndex();
+			}
+
+		}
+	IRLOG_DEBUG( "CIRMainView::GetCurrentIndex - Exiting." );
+	return currentIndex;
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetRequestPendingStatus()
+// returns whether an active request is pending.
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetRequestPendingStatus()
+	{
+	IRLOG_DEBUG( "CIRMainContainer::GetRequestPendingStatus" );
+	return iRequestPending;
+	}
+// ---------------------------------------------------------
+// CIRMainView::SetRequestPendingStatus ()
+// Sets the request pending state
+// ---------------------------------------------------------
+//
+void CIRMainView::SetRequestPendingStatus(TBool aRequestPending)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetRequestPendingStatus - Entering." );
+	iRequestPending = aRequestPending;
+	IRLOG_DEBUG( "CIRMainView::SetRequestPendingStatus - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView::GetFavListen()
+// returns Checks whether request is listen to favorites.
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetFavListen()
+	{
+	IRLOG_DEBUG( "CIRMainContainer::GetFavListen" );
+	return iFavListen;
+	}
+// ---------------------------------------------------------
+// CIRMainView::SetFavListen ()
+// Sets the listen is from favourites or not
+// ---------------------------------------------------------
+//
+void CIRMainView::SetFavListen(TBool aFavListen)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetFavListen - Entering." );
+	iFavListen = aFavListen;
+	IRLOG_DEBUG( "CIRMainView::SetFavListen - Exiting." );
+	}
+// ---------------------------------------------------------
+// CIRMainView::SetActualFilteredItemIndex ()
+// Sets the actual index of the station
+// ---------------------------------------------------------
+//
+void CIRMainView::SetActualFilteredItemIndex(TInt aFilteredIndex)
+	{
+	IRLOG_DEBUG( "CIRMainView::SetActualFilteredItemIndex - Entering." );
+	iFilteredIndex = aFilteredIndex;
+	IRLOG_DEBUG( "CIRMainView::SetActualFilteredItemIndex - Exiting." );
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView :: GetMovingFlag()
+// Gets the view is in move mode or not.
+// ---------------------------------------------------------------------------
+//
+TBool CIRMainView::GetMovingFlag()
+	{
+	return iMoveMarkedFlag;
+	}
+// ---------------------------------------------------------------------------
+// CIRMainView :: SetMovingFlag()
+// Sets the view is in move mode .
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::SetMovingFlag(TBool aValue)
+	{
+	iMoveMarkedFlag = aValue;
+	}
+
+
+// ------------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetRemovedL()
+// called back when the preset that is synced was removed from isds
+// @param TInt,the preset id
+// -----------------------------------------------------------------------
+void CIRMainView::SyncPresetRemovedL(TInt aId)
+	{
+	IRLOG_DEBUG( "CIRMainView::SyncPresetRemovedL - Entering." );
+
+	iSyncReq = EFalse;
+
+	if( !iContainer )
+		return;
+
+	if( iUi->iLastPlayed->FileExists() &&
+	iUi->iLastPlayed->iLastPlayedStation->GetId() == aId)
+		{
+		// update the last played station
+		//convert the flag to user defined and commit
+		//0 for EUserDefined
+		iUi->iLastPlayed->iLastPlayedStation->SetChannelType(KNull);
+		//assign null id
+		iUi->iLastPlayed->iLastPlayedStation->SetId(KNull);
+
+		//make logo as null
+		_LIT8(KEmpty, "");
+		RBuf8 tempLogo;
+		tempLogo.Create(KEmpty);
+		iUi->iLastPlayed->iLastPlayedStation->SetLogoData(tempLogo);
+		tempLogo.Close();
+		_LIT(KEmptyString, "");
+		RBuf tempString;
+		tempString.Create(KEmptyString);
+		//set imgurl to null
+		iUi->iLastPlayed->iLastPlayedStation->SetImgUrl(tempString);
+		//set genre to null
+		iUi->iLastPlayed->iLastPlayedStation->SetGenreName(tempString);
+		iUi->iLastPlayed->iLastPlayedStation->SetGenreId(tempString);
+		//set language to null
+		iUi->iLastPlayed->iLastPlayedStation->SetLang(tempString);
+		//set country to null
+		iUi->iLastPlayed->iLastPlayedStation->SetCountryName(tempString);
+		tempString.Close();
+		//set musicStoreEnabled filed to "no"
+		_LIT(KNo, "no");
+		RBuf tempMusicStoreEnabled;
+		tempMusicStoreEnabled.Create(KNo);
+		iUi->iLastPlayed->iLastPlayedStation->SetMusicStoreStatus(tempMusicStoreEnabled);
+		tempMusicStoreEnabled.Close();
+
+		//save the changes to the lastplayed file
+		TRAPD(err,iUi->iLastPlayed->CommitLastPlayedChannelL());
+		TInt error=KErrNone;
+		if(err != KErrNone)
+			{
+			error = iUi->iLastPlayed->RemoveLastPlayedFile();
+			User::Leave(error);
+			}
+		}
+	iContainer->RefreshViewL();
+	TInt currentIndex = GetCurrentIndex();
+	if(iContainer->GetCurrentItemIndex() ==0 && iUi->iLastPlayed->FileExists())
+		{
+		iUi->iLastPlayed->RetriveLastPlayedChannelL();
+		ConnectToLastPlayedStationL();
+		}
+	else
+		{
+		SetUrlFromPresetL(currentIndex);
+		}
+	IRLOG_DEBUG( "CIRMainView::SyncPresetRemovedL - Entering." );
+	}
+
+// -----------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetChangedL()
+// called back when the preset that is synced has been changed in the isds
+// @param CIRIsdsPreset&,the new preset data
+// ----------------------------------------------------------------------
+void CIRMainView::SyncPresetChangedL(CIRIsdsPreset& aPreset)
+	{
+	IRLOG_DEBUG( "CIRMainView::SyncPresetChangedL - Entering." );
+
+	iSyncReq = EFalse;
+
+	if( !iContainer )
+		return;
+
+	if( iUi->iLastPlayed->FileExists() &&
+		iUi->iLastPlayed->iLastPlayedStation->GetId() == aPreset.GetId())
+		{
+		aPreset.SetChannelType(KIsdsPreset);
+		*iUi->iLastPlayed->iLastPlayedStation = aPreset;
+		//save the changes to the lastplayed file
+		TRAPD(err,iUi->iLastPlayed->CommitLastPlayedChannelL());
+		TInt error=KErrNone;
+		if(err != KErrNone)
+			{
+			error = iUi->iLastPlayed->RemoveLastPlayedFile();
+			User::Leave(error);
+			}
+		}
+	iContainer->RefreshViewL();
+	TInt currentIndex = GetCurrentIndex();
+	if(iContainer->GetCurrentItemIndex() ==0 && iUi->iLastPlayed->FileExists())
+		{
+		iUi->iLastPlayed->RetriveLastPlayedChannelL();
+		ConnectToLastPlayedStationL();
+		}
+	else
+		{
+		SetUrlFromPresetL(currentIndex);
+		}
+	IRLOG_DEBUG( "CIRMainView::SyncPresetChangedL - Entering." );
+	}
+
+// -----------------------------------------------------------------------
+// from MSyncPresetObserver
+// SyncPresetNoChangeL()
+// called back when the preset that is synced has not been changed
+// -----------------------------------------------------------------------
+void CIRMainView::SyncPresetNoChangeL()
+	{
+	IRLOG_DEBUG( "CIRMainView::SyncPresetNoChangeL - Entering." );
+
+	iSyncReq = EFalse;
+
+	if( !iContainer )
+		return;
+	iUi->iNowPlayingWrapper->iSyncPreset = EFalse;
+	TInt currentIndex = GetCurrentIndex();
+	if(iContainer->GetCurrentItemIndex() ==0 &&iUi->iLastPlayed->FileExists())
+		{
+		ConnectToLastPlayedStationL();
+		}
+	else
+		{
+		SetUrlFromPresetL(currentIndex);
+		}
+	IRLOG_DEBUG( "CIRMainView::SyncPresetNoChangeL - Entering." );
+	}
+
+// ----------------------------------------------------------------------
+// CIRMainView::ConnectToSelectedStationL()
+// Used to synchronize the LastPlayed preset before listen
+// ----------------------------------------------------------------------
+void CIRMainView::ConnectToSelectedStationL()
+	{
+	IRLOG_DEBUG("CIRMainView::ConnectToSelectedStationL - Entering");
+
+	if( !iContainer )
+		return;
+
+	TInt currentIndex = GetCurrentIndex();
+
+	// Connect to User defined / Last Played preset
+	if(iContainer->GetCurrentItemIndex() == 0
+		&& iUi->iLastPlayed->FileExists()
+		&& iUi->iLastPlayed->iLastPlayedStation->GetChannelType() == CIRIsdsPreset::EUserDefined)
+		{
+		if(iNowPlayingWrapper->iPlaying)
+			{
+			HandleCommandL(EGotoNowPlayingViewCmd);
+			}
+		else
+			{
+			ConnectToLastPlayedStationL();
+			}
+		}
+
+	// Sync ISDS / Last Played preset
+	else if(iContainer->GetCurrentItemIndex() == 0
+		&& iUi->iLastPlayed->FileExists()
+		&& iUi->iLastPlayed->iLastPlayedStation->GetChannelType())
+		{
+		if(iNowPlayingWrapper->iPlaying)
+			{
+			HandleCommandL(EGotoNowPlayingViewCmd);
+			}
+		else
+		{
+		SyncPresetL(iUi->iLastPlayed->iLastPlayedStation->GetId(),
+			iUi->iLastPlayed->iLastPlayedStation->GetLastModifiedTime());
+		}
+		}
+
+	// Connect to User defined preset
+	else if(currentIndex <= iUi->iFavPresets->iFavPresetList.Count()
+		&& iUi->iFavPresets->iFavPresetList[currentIndex]->GetChannelType()
+		   == CIRIsdsPreset::EUserDefined)
+		{
+		SetUrlFromPresetL(currentIndex);
+		}
+
+	// Sync ISDS preset
+	else if(currentIndex <= iUi->iFavPresets->iFavPresetList.Count()
+		&& iUi->iFavPresets->iFavPresetList[currentIndex]->GetChannelType())
+		{
+		SyncPresetL(iUi->iFavPresets->iFavPresetList[currentIndex]->GetId(),
+					iUi->iFavPresets->iFavPresetList[currentIndex]->GetLastModifiedTime());
+		}
+
+	IRLOG_DEBUG("CIRMainView::ConnectToSelectedStationL - Exiting");
+	}
+
+
+void CIRMainView::AddStationtoFavoritesL()
+	{
+	IRLOG_DEBUG("CIRMainView::AddStationtoFavoritesL - Entering");
+	TInt err = KErrNone;
+	if(iUi->iLastPlayed->iLastPlayedStation->GetChannelType())
+		{
+		iUi->iFavPresets->AddPresetL(*iUi->iLastPlayed->iLastPlayedStation,err,1);
+		}
+	else
+		{
+		iUi->iFavPresets->AddPresetL(*iUi->iLastPlayed->iLastPlayedStation,err);
+		}
+	RBuf channel;
+	HBufC* textResource = StringLoader::LoadLC( R_IRAPP_STATIONS_POPUP_SAVED,
+		iUi->iLastPlayed->iLastPlayedStation->GetName() );
+	channel.Create(*textResource);
+
+	//If favourites is full then display an error message
+	if(err==KErrNoMemory)
+		{
+		iIsdsWrapper->GetDialogLauncherInstance()->ShowErrorNoteL
+						(R_IRAPP_ADDFAVOURITES_ERROR,ETrue);
+		return;
+		}
+	else
+		{
+		if((err==KErrAlreadyExists )&&
+		 ( iUi->iFavPresets->iFavPresetList.Count() == KPresetsArrayMaxLength) )
+			{
+			iIsdsWrapper->GetDialogLauncherInstance()->ShowErrorNoteL
+							(R_IRAPP_ADDFAVOURITES_ERROR,ETrue);
+			return;
+			}
+		else
+			{
+			iIsdsWrapper->GetDialogLauncherInstance()->
+			ShowConfirmationNoteL( channel,ETrue );
+			}
+		}
+	CleanupStack::PopAndDestroy(textResource);
+	channel.Close();
+	IRLOG_DEBUG("CIRMainView::AddStationtoFavoritesL - Exiting");
+	}
+
+// ---------------------------------------------------------------------------
+// CIRMainView::LogoRequestL()
+// called from the container
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::LogoRequestL()
+	{
+	IRLOG_DEBUG( "CIRMainView::LogoRequestL - Entering" );
+	if(iContainer)
+		{
+		iUi->iIsdsWrapper->GetISDSInstance()->GetDataProvider()->GetHttpDataProvider()->
+		GetLogoDownloadEngine()->SendRequestL(iContainer->GetTempPreset(),this,
+									KLPReqFrom,KLPLogoSize,KLPLogoSize);
+		}
+	IRLOG_DEBUG( "CIRMainView::LogoRequestL - Exiting" );
+	}
+
+
+
+// ---------------------------------------------------------------------------
+// CIRMainView::PresetLogoDownloadedL()
+// from base class MLogoDownloadObserver
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::PresetLogoDownloadedL(CIRIsdsPreset* aPreset)
+	{
+	IRLOG_DEBUG( "CIRMainView::PresetLogoDownloadedL - Entering" );
+	if(iContainer)
+		{
+		// store the last played station
+		iUi->iLastPlayed->iLastPlayedStation->SetLogoData(aPreset->GetLogoData());
+		TRAPD(err,iUi->iLastPlayed->CommitLastPlayedChannelL());
+		TInt error=KErrNone;
+		if(err != KErrNone)
+			{
+			error = iUi->iLastPlayed->RemoveLastPlayedFile();
+			User::Leave(error);
+			}
+		iUi->iLastPlayed->RetriveLastPlayedChannelL();
+		iContainer->PresetLogoDownloadL(aPreset);
+		}
+	IRLOG_DEBUG( "CIRMainView::PresetLogoDownloadedL - Exiting" );
+	}
+
+
+// ---------------------------------------------------------------------------
+// CIRMainView::PresetLogoDownloadError()
+// from base class MLogoDownloadObserver
+// ---------------------------------------------------------------------------
+//
+void CIRMainView::PresetLogoDownloadError(CIRIsdsPreset* /*aPreset*/)
+	{
+	IRLOG_DEBUG( "CIRMainView::PresetLogoDownloadError " );
+	//call the API of search results view container
+	if(iContainer)
+		{
+		TRAP_IGNORE(iContainer->HandleLogoErrorL());
+		}
+	IRLOG_DEBUG( "CIRMainView::PresetLogoDownloadErrorL - Exiting" );
+	}
+
+
+// ---------------------------------------------------------------------
+// ResponseL()
+// From the class MViewsResponseAndErrorObserver
+// ---------------------------------------------------------------------
+void CIRMainView::ResponseL(CIRIsdsPreset* /*aPreset*/)
+	{
+	IRLOG_DEBUG( "CIRMainView::ResponseL " );
+	IRLOG_DEBUG( "CIRMainView::ResponseL - Exiting" );
+	}
+
+// ---------------------------------------------------------------------
+// PresetResponseL()
+// From the class MViewsResponseAndErrorObserver
+// ---------------------------------------------------------------------
+void CIRMainView::PresetResponseL(CIRIsdsPreset* /*aPreset*/)
+	{
+	IRLOG_DEBUG( "CIRMainView::PresetResponseL " );
+	IRLOG_DEBUG( "CIRMainView::PresetResponseL - Exiting" );
+	}
+
+// ---------------------------------------------------------------------
+// ErrorL()
+// From the class MViewsResponseAndErrorObserver
+// ---------------------------------------------------------------------
+void CIRMainView::ErrorL()
+	{
+	IRLOG_DEBUG( "CIRMainView::ErrorL " );
+	IRRDEBUG2("CIRMAINVIEW::ERRORL",KNullDesC);
+	if(iSyncReq)
+		{
+		iSyncReq = EFalse;
+		iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingError);
+
+		iUi->iNowPlayingWrapper->DestroyWaitDialogL();
+		}
+	IRLOG_DEBUG( "CIRMainView::ErrorL - Exiting" );
+	}
+
+
+
+