diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uisrc/irhistorylistcontainer.cpp --- a/internetradio2.0/uisrc/irhistorylistcontainer.cpp Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1002 +0,0 @@ -/* -* Copyright (c) 2004 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: Container class for IRHistoryListContainer -* -*/ - - -/* --------------------------------------------------------------------------- -* Version history: -* Template version: -* -* -* Version: 2, Thu Apr 10 20:00:00 2008 by Rohit -* Ref: -* Implemented SongHistory changes for channelwise songs -* -* -* ============================================================================ -*/ - -#include -#include -#include "iraap.hlp.hrh" -#include -#include -#include - -#include "irsonghistoryengine.h" -#include "irui.h" -#include "ir.hrh" -#include "ircommon.h" -#include "irdebug.h" -#include "irbaseview.h" -#include "irhistorylistview.h" -#include "irhistorylistcontainer.h" -#include "irapplication.h" -#include "irsonghistoryinfo.h" -#include "irnowplayingwrapper.h" -#include "irfavoritesdb.h" -#include "irisdswrapper.h" -#include "irisdspreset.h" -#include "irpubsub.h" - -const TInt KMaxSize = 5; -const TInt KTwo = 2 ; -_LIT(KNo,"No"); - -//----------------------------------------------------------------------------- -// CIRHistoryListContainer::NewL -// Creates a new instance of History Container -//----------------------------------------------------------------------------- -// -CIRHistoryListContainer* CIRHistoryListContainer::NewL( - const TRect& aRect,CIRHistoryListView& aView, - RPointerArray& aHistoryDataArr) - { - IRLOG_DEBUG( "CIRHistoryListContainer::NewL - Entering" ); - CIRHistoryListContainer* self = CIRHistoryListContainer::NewLC(aRect,aView,aHistoryDataArr); - CleanupStack::Pop(self); - IRLOG_DEBUG( "CIRHistoryListContainer::NewL - Exiting." ); - return self; - } - -//----------------------------------------------------------------------------- -// CIRHistoryListContainer::NewLC -// Creates a new instance of History Container and leaves it on the cleanup stack. -//----------------------------------------------------------------------------- -// -CIRHistoryListContainer* CIRHistoryListContainer::NewLC(const TRect& aRect , - CIRHistoryListView& aView ,RPointerArray& aHistoryDataArr) - { - IRLOG_DEBUG( "CIRHistoryListContainer::NewLC - Entering" ); - CIRHistoryListContainer* self = new (ELeave) CIRHistoryListContainer(aView); - CleanupStack::PushL(self); - self->ConstructL(aRect,aHistoryDataArr); - IRLOG_DEBUG( "CIRHistoryListContainer::NewLC - Exiting." ); - return self; - } - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CIRHistoryListContainer::CIRHistoryListContainer( CIRHistoryListView& aHistoryListView): - iHistoryListView( aHistoryListView ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::CIRHistoryListContainer" ); - iDimmed=ETrue; - } - - -// --------------------------------------------------------------------------- -// CIRHistoryListContainer::ConstructL -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::ConstructL( const TRect& aRect, - RPointerArray& aHistoryDataArr - ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::ConstructL - Entering" ); - CreateWindowL(); - - InitComponentArrayL(); - Components().SetControlsOwnedExternally( ETrue ); - CAknSingleStyleTreeList* list =CAknSingleStyleTreeList::NewL( *this ); - // Use list as a component control of the view. - Components().AppendLC( list, KCoeNoControlId ); - CleanupStack::Pop( list ); - iTreeListBox = list; - iTreeListBox->SetContainerWindowL(*this); - iTreeListBox->SetFlags( iTreeListBox->Flags() ^ KAknTreeListLooping ^ - KAknTreeListNoStructureLines ^ KAknTreeListMarqueeScrolling); - iTreeListBox->AddObserverL( this ); - iBgContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgAreaMain, iAvkonAppUi->ApplicationRect(), EFalse ); - - - iChannelArray=new ( ELeave ) CDesC16ArrayFlat (KMaxSize); - iUrlArray=new ( ELeave ) CDesC16ArrayFlat (KMaxSize); - iChannelDescriptionArray=new ( ELeave ) CDesC16ArrayFlat (KMaxSize); - iMusicStoreStatus=new ( ELeave ) CDesC16ArrayFlat (KMaxSize); - - UpdateAllL(aHistoryDataArr); - iTreeListBox->SetRect(aRect); - iTreeListBox->SetFocus(ETrue); - iTreeListBox->MakeVisible(ETrue); - SetRect( aRect ); - DrawNow(); - iTreeListBox->DrawNow(); - IRLOG_DEBUG( "CIRHistoryListContainer::ConstructL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CIRHistoryListContainer::~CIRHistoryListContainer() - { - - IRLOG_DEBUG( "CIRHistoryListContainer::~CIRHistoryListContainer - Entering" ); - if(iTreeListBox) - { - delete iTreeListBox; - iTreeListBox = NULL; - } - - iNodeArray.Close(); - - iLeafArray.Close(); - - iChannelTypeArray.Close(); - - iChannelIdArray.Close(); - - if(iBgContext) - { - delete iBgContext; - iBgContext = NULL; - } - - if(iUrlArray) - { - iUrlArray->Reset(); - delete iUrlArray; - iUrlArray=NULL; - } - if(iChannelArray) - { - iChannelArray->Reset(); - delete iChannelArray; - iChannelArray=NULL; - } - if(iChannelDescriptionArray) - { - iChannelDescriptionArray->Reset(); - delete iChannelDescriptionArray; - iChannelDescriptionArray=NULL; - } - if(iMusicStoreStatus) - { - iMusicStoreStatus->Reset(); - delete iMusicStoreStatus; - iMusicStoreStatus=NULL; - } - IRLOG_DEBUG( "CIRHistoryListContainer::~CIRHistoryListContainer - Exiting" ); - } - -// --------------------------------------------------------------------------- -// From class CCoeControl. -// We need to catch the selection key event in order to do a couple of things -// in moving state make the movement, and in normal state open channel -// specific popup menu. Up and down buttons are forwarded to the list. -// --------------------------------------------------------------------------- -// -TKeyResponse CIRHistoryListContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, TEventCode aType ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::OfferKeyEventL -Entering" ); - if(iTreeListBox) - { - IRLOG_DEBUG( "CIRHistoryListContainer::OfferKeyEventL -Exiting" ); - return iTreeListBox->OfferKeyEventL(aKeyEvent, aType); - } - return EKeyWasNotConsumed; - } - -void CIRHistoryListContainer::HandlePointerEventL( const TPointerEvent& aPointerEvent ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::HandlePointerEventL - Entering" ); - if(iTreeListBox) - { - iTreeListBox->HandlePointerEventL( aPointerEvent ); - } - IRLOG_DEBUG( "CIRHistoryListContainer::HandlePointerEventL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// CIRHistoryListContainer::UpdateAllL() -// Fills list with data read from data base. -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::UpdateAllL(RPointerArray & aHistoryDataArr) - { - IRLOG_DEBUG( "CIRHistoryListContainer::UpdateAllL - Entering" ); - if(aHistoryDataArr.Count()==0) - { - iTreeListBox->DrawNow(); - HBufC* headerText = StringLoader::LoadLC(R_IRAPP_CLEAR_HISTORY); - iTreeListBox->SetEmptyTextL(*headerText); - CleanupStack::PopAndDestroy(headerText); - - } - else - { - - - TUint32 flags = CAknSingleStyleTreeList::EPersistent; - TBool drawNow = EFalse; - - for(TInt songCount = 0; songCount < aHistoryDataArr.Count(); songCount++) - { - if(songCount==0) - { - iChannelArray->AppendL(aHistoryDataArr[songCount]->GetChannelName()); - iUrlArray->AppendL(aHistoryDataArr[songCount]->GetStreamUrl()); - iChannelTypeArray.Append(aHistoryDataArr[songCount]->GetChannelType()); - iChannelIdArray.Append(aHistoryDataArr[songCount]->GetChannelId()); - iChannelDescriptionArray->AppendL(aHistoryDataArr[songCount]->GetChannelDesc()); - iMusicStoreStatus->AppendL(aHistoryDataArr[songCount]->GetChannelMusicStatus()); - } - else - { - TBool nextChannel=EFalse; - for(TInt comp=0;compCount();comp++) - { - if((aHistoryDataArr[songCount]->GetChannelName()==iChannelArray->MdcaPoint(comp)) && - (aHistoryDataArr[songCount]->GetStreamUrl()==iUrlArray->MdcaPoint(comp)) && - (aHistoryDataArr[songCount]->GetChannelType()==iChannelTypeArray[comp])) - { - nextChannel=ETrue; - } - - - - } - if(!nextChannel) - { - - iChannelArray->AppendL(aHistoryDataArr[songCount]->GetChannelName()); - iUrlArray->AppendL(aHistoryDataArr[songCount]->GetStreamUrl()); - iChannelTypeArray.Append(aHistoryDataArr[songCount]->GetChannelType()); - iChannelIdArray.Append(aHistoryDataArr[songCount]->GetChannelId()); - iChannelDescriptionArray->AppendL(aHistoryDataArr[songCount]-> - GetChannelDesc()); - iMusicStoreStatus->AppendL(aHistoryDataArr[songCount]-> - GetChannelMusicStatus()); - - } - - } - - } - for(TInt index=0;indexCount();index++) - { - - TAknTreeItemID subtitle = iTreeListBox->AddNodeL( 1, - iChannelArray->MdcaPoint(index), - flags, - drawNow ); - iNodeArray.Append(subtitle); - } - for(TInt songCount = 0; songCount < aHistoryDataArr.Count(); songCount++) - { - for(TInt index=0;indexCount();index++) - { - if((aHistoryDataArr[songCount]->GetChannelName()==iChannelArray->MdcaPoint(index)) && - (aHistoryDataArr[songCount]->GetStreamUrl()==iUrlArray->MdcaPoint(index)) && - (aHistoryDataArr[songCount]->GetChannelType()==iChannelTypeArray[index])) - { - HBufC* text ; - CDesCArray* strings = new ( ELeave ) CDesCArrayFlat( 2 ); - CleanupStack::PushL( strings ); - if(aHistoryDataArr[songCount]->GetArtistInfo() != KNullDesC && - aHistoryDataArr[songCount]->GetSongInfo() != KNullDesC) - { - strings->AppendL(aHistoryDataArr[songCount]->GetArtistInfo()); - strings->AppendL(aHistoryDataArr[songCount]->GetSongInfo()); - text = StringLoader::LoadLC( R_IR_HISTORY_ARTIST_SONG, *strings ); - } - else if(aHistoryDataArr[songCount]->GetArtistInfo() != KNullDesC) - { - text = HBufC::NewLC( aHistoryDataArr[songCount]-> - GetArtistInfo().Length() + KTwo ); - text->Des().Copy(aHistoryDataArr[songCount]->GetArtistInfo()); - } - else - { - text = HBufC::NewLC( aHistoryDataArr[songCount]-> - GetSongInfo().Length() + KTwo ); - text->Des().Copy(aHistoryDataArr[songCount]->GetSongInfo()); - } - if(index>=0 && indexAddLeafL( iNodeArray[index], - *text, flags, drawNow ); - iTreeListBox->SetIcon( coreItem, CAknSingleStyleTreeList::ELeaf, NULL, ETrue ); - iLeafArray.AppendL(coreItem); - } - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( strings ); - } - - - } - - } - iTreeListBox->DrawNow(); - if(iHistoryListView.Toolbar()) - { - iHistoryListView.Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue); - iHistoryListView.Toolbar()->DrawNow(); - } - } - IRLOG_DEBUG( "CIRHistoryListContainer::UpdateAllL - Exiting" ); - - - } -// --------------------------------------------------------------------------- -// CIRHistoryListContainer::RemoveListItem() -// Removes data from the list read from data base. -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::RemoveListItem(const TDesC &/*aSongName*/ , const TDesC & /*aArtistName*/, const TDesC & /*aChannelName*/) -{ -IRLOG_DEBUG( "CIRHistoryListContainer::RemoveListItem" ); -} - - -// --------------------------------------------------------------------------- -// From class CCoeControl. -// Draws the control. -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::Draw( const TRect& /*aRect*/ ) const - { - IRLOG_DEBUG( "CIRHistoryListContainer::Draw" ); - } - - -// --------------------------------------------------------------------------- -// From class CCoeControl. -// Opens help by context. -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::GetHelpContext( TCoeHelpContext& aContext ) const - { - IRLOG_DEBUG( "CIRHistoryListContainer::GetHelpContext - Entering" ); - aContext = TCoeHelpContext( KIRMCVUid, KIR_HELP_STATIONS ); - IRLOG_DEBUG( "CIRHistoryListContainer::GetHelpContext - Exiting" ); - } - -// --------------------------------------------------------------------------- -// CIRHistoryListContainer::ClearHistoryListL(). -// Clears the List -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::ClearHistoryListL() - { - IRLOG_DEBUG( "CIRHistoryListContainer::ClearHistoryListL - Entering" ); - HBufC* headerText = StringLoader::LoadLC(R_IRAPP_CLEAR_HISTORY); - iTreeListBox->SetEmptyTextL(* headerText); - CleanupStack::PopAndDestroy(headerText); - for(TInt index=0;indexRemoveItem( iNodeArray[index], EFalse ); - } - - iNodeArray.Reset(); - iLeafArray.Reset(); - iChannelTypeArray.Reset(); - iChannelIdArray.Reset(); - if(iUrlArray) - { - iUrlArray->Reset(); - } - if(iMusicStoreStatus) - { - iMusicStoreStatus->Reset(); - } - if(iChannelArray) - { - iChannelArray->Reset(); - } - if(iChannelDescriptionArray) - { - iChannelDescriptionArray->Reset(); - } - - IRLOG_DEBUG( "CIRHistoryListContainer::ClearHistoryListL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// CIRHistoryListContainer::ListenUrlL() -// Listen a URL and displays Now Playing -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::ListenUrlL( TInt aIndex ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::ListenUrlL - Entering" ); - iHistoryListView.iNowPlayingWrapper->SetView(EHistoryView); - - iListenFrmHistory = ETrue ; - iAddFrmHistory = EFalse; - // Listen the URL - if(aIndex>=0 && aIndexSetName(iChannelArray->MdcaPoint(aIndex)); - if(aIndex>=0 && aIndexSetChannelType(iChannelTypeArray[aIndex]); - } - preset->SetShortDesc(iChannelDescriptionArray->MdcaPoint(aIndex )); - preset->SetDescription(iChannelDescriptionArray->MdcaPoint(aIndex )); - //Set the URL data. - _LIT(KNA,"NA"); - preset->SetUrlL( KNA, iUrlArray->MdcaPoint(aIndex ), 0 ); - preset->SetUrlCount(); - // Set the channel as last played and currently playing - *iHistoryListView.iNowPlayingWrapper->iNowPlayingPreset = *preset; - CleanupStack::PopAndDestroy( preset ); - - iHistoryListView.iUi->iNPPrevViewId = KIRHistoryListViewId; - - //connecting to server - iHistoryListView.iNowPlayingWrapper->SetCurrentConnectionSource(EIRHistoryAdhoc); - iHistoryListView.iNowPlayingWrapper->ConnectToChannelL(*iHistoryListView. - iNowPlayingWrapper->iNowPlayingPreset); - } - else - { - iHistoryListView.iUi->iNPPrevViewId = KIRHistoryListViewId; - if(aIndex>=0 && aIndexSetWhenUserCancelsBufferingWaitBar(EFalse); - iHistoryListView.iNowPlayingWrapper->SetListenFromIsdsValue(EFalse); - iHistoryListView.iNowPlayingWrapper->CreateWaitDialogL(); - iHistoryListView.iUi->GetPubSubManagerInstance()->PublishBufferingState( - EIRStateBufferingStart); - iHistoryListView.iIsdsWrapper->IsdsListenRequestL(this,iChannelIdArray[aIndex],ETrue); - } - } - } - IRLOG_DEBUG( "CIRHistoryListContainer::ListenUrlL - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// void CIRHistoryListContainer::SizeChanged(const TRect& aRect) -// -// --------------------------------------------------------------------------- -// - -void CIRHistoryListContainer::SizeChanged() - { - IRLOG_DEBUG( "CIRHistoryListContainer::SizeChanged - Entering" ); - TRect rect = Rect(); - if (iTreeListBox) - { - iTreeListBox->SetRect( rect ); - } - if ( iBgContext ) - { - iBgContext->SetRect( rect ); - } - IRLOG_DEBUG( "CIRHistoryListContainer::SizeChanged - Exiting" ); - } - -//---------------------------------------------------------------------------- -// CIRHistoryListContainer::CountComponentControls() const -// returns the number of components in the view. -//---------------------------------------------------------------------------- -// -TInt CIRHistoryListContainer::CountComponentControls() const - { - IRLOG_DEBUG( "CIRHistoryListContainer::CountComponentControls" ); - return 1; - } -//---------------------------------------------------------------------------- -// CIRHistoryListContainer::ComponentControl() const -// returns a pointer to the control under this view depending on the index -// passed,to the framework. -//---------------------------------------------------------------------------- -// -CCoeControl* CIRHistoryListContainer::ComponentControl(TInt /*aIndex*/) const - { - IRLOG_DEBUG( "CIRHistoryListContainer::ComponentControl" ); - return iTreeListBox; - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::HandleTreeListEvent -// From MAknTreeListObserver . -// Handles the events on the TreeList -// ---------------------------------------------------- -// -TBool CIRHistoryListContainer::HandleTreeListEvent( CAknTreeList& aList, - TAknTreeItemID /* aItem */, TEvent aEvent ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::HandleTreeListEvent - Entering" ); - if ( &aList != iTreeListBox ) - { - return KErrNone; - } - - switch ( aEvent ) - { - // One of the nodes in the list is being expanded. - case ENodeExpanded: - // One of the nodes in the list is being collapsed. - case ENodeCollapsed: - // Simple data row or core data row is selected. - case EItemSelected: - break; - // Focused item changes - case EItemFocused: - { - _LIT(KMusicStoreEnabled, "yes"); - if(iHistoryListView.Toolbar()) - { - if(!ShowFocus()) - { - iHistoryListView.Toolbar()->SetItemDimmed(EFindInShop,ETrue,ETrue); - iDimmed=ETrue; - - } - else - { - TInt itemIndex =GetCurrentFocussedNode(); - if(itemIndex>=0 && itemIndexMdcaCount() ) - { - TInt comp=(iMusicStoreStatus->MdcaPoint(itemIndex)).Compare(KMusicStoreEnabled); - if(comp) - { - iHistoryListView.Toolbar()->SetItemDimmed(EFindInShop,ETrue,ETrue); - iDimmed=ETrue; - } - else - { - if(iHistoryListView.GetFindInShopInstance()) - { - iHistoryListView.Toolbar()->SetItemDimmed(EFindInShop,EFalse,ETrue); - iDimmed=EFalse; - } - else - { - iHistoryListView.Toolbar()->SetItemDimmed(EFindInShop,ETrue,ETrue); - iDimmed=ETrue; - } - } - } - } - iHistoryListView.Toolbar()->DrawNow(); - } - - } - break; - // Item is being removed from the list. - case EItemRemoved: - case EMarkingModeEnabled: - case EMarkingModeDisabled: - case EItemUnmarked: - case EItemMarked: - break; - - default: - break; - } - IRLOG_DEBUG( "CIRHistoryListContainer::HandleTreeListEvent - Exiting" ); - return KErrNone; - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::MopSupplyObject() -// ---------------------------------------------------- -// -TTypeUid::Ptr CIRHistoryListContainer::MopSupplyObject( TTypeUid aId ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::MopSupplyObject - Entering" ); - if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::MopSupplyObject - Exiting" ); - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - IRLOG_DEBUG( "CIRHistoryListContainer::MopSupplyObject - Exiting" ); - return CCoeControl::MopSupplyObject( aId ); - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::HandleResourceChange() -// Handles Changes in the resources -// ---------------------------------------------------- -// -void CIRHistoryListContainer::HandleResourceChange( TInt aType ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::HandleResourceChange - Entering" ); - CCoeControl::HandleResourceChange( aType ); - CIRUi* ui = reinterpret_cast( iCoeEnv->AppUi() ); - TRect rect = ui->ApplicationRect(); - if( aType == KAknsMessageSkinChange ) - { - } - if( aType == KEikDynamicLayoutVariantSwitch ) - { - if ( iBgContext ) - { - iBgContext->SetRect( Rect() ); - } - iTreeListBox->SetRect(rect); - SizeChanged(); - DrawNow(); - - } - IRLOG_DEBUG( "CIRHistoryListContainer::HandleResourceChange - Exiting" ); - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::GetCurrentFocussed() -// To get the focus of Node of the treeList -// ---------------------------------------------------- -// - -TInt CIRHistoryListContainer::GetCurrentFocussedNode() - { - IRLOG_DEBUG( "CIRHistoryListContainer::GetCurrentFocussedNode - Entering" ); - TInt focusItem=iTreeListBox->FocusedItem(); - TInt isNode=iTreeListBox->IsNode( focusItem ); - TInt retValue = -1; - if(!isNode) - { - focusItem=iTreeListBox->Parent(focusItem); - } - for(TInt index=0;indexCount();index++) - { - if(index>=0 && indexFocusedItem(); - TInt isLeaf=iTreeListBox->IsLeaf( focusItem ); - TInt retValue = -1; - if(isLeaf) - { - for(TInt index=0;indexFocusedItem(); - TInt isNode=iTreeListBox->IsNode( focusItem ); - TInt favouriteIndexChannel = -1; - if(!isNode) - { - focusItem=iTreeListBox->Parent(focusItem); - } - for(TInt index=0;indexCount();index++) - { - if(index>=0 && index=0 && favouriteIndexChannelSetName(iChannelArray->MdcaPoint(favouriteIndexChannel)); - preset->SetUrlL( KNA, iUrlArray->MdcaPoint(favouriteIndexChannel ), 0 ); - preset->SetUrlCount(); - if(favouriteIndexChannel >=0 && favouriteIndexChannelSetChannelType(iChannelTypeArray[favouriteIndexChannel]); - } - if(favouriteIndexChannel >=0 && favouriteIndexChannelSetId(iChannelIdArray[favouriteIndexChannel]); - } - preset->SetShortDesc(iChannelDescriptionArray->MdcaPoint(favouriteIndexChannel )); - preset->SetDescription(iChannelDescriptionArray->MdcaPoint(favouriteIndexChannel )); - iHistoryListView.iUi->iFavPresets->AddPresetL(*preset,res); - if( res == KErrNoMemory ) - { - DisplayErroronDBL(); - } - else - { - iHistoryListView.iUi->DisplayInformationL( R_IRAPP_STATIONS_POPUP_SAVED, - iChannelArray-> - MdcaPoint(favouriteIndexChannel) ); - } - CleanupStack::PopAndDestroy( preset ); - } - else - { - //Display a loading Progress Bar - iChannelSyncId = iChannelIdArray[favouriteIndexChannel] ; - iChangedIndex = favouriteIndexChannel; - iHistoryListView.iIsdsWrapper->IsdsPresetRequestL(this, - iChannelIdArray[favouriteIndexChannel], - aCommand,EFalse,ETrue); - } - } - IRLOG_DEBUG( "CIRHistoryListContainer::AddStationToFavoritesL - Exiting" ); - - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::DisplayErroronDBL() -// To show error note whenever the Fovorites DB is full -// ---------------------------------------------------- -// -void CIRHistoryListContainer::DisplayErroronDBL() - { - IRLOG_DEBUG( "CIRHistoryListContainer::DisplayErroronDBL - Entering" ); - iHistoryListView.iUi->iDialogNote->ShowErrorNoteL(R_IRAPP_ADDFAVOURITES_ERROR,ETrue); - IRLOG_DEBUG( "CIRHistoryListContainer::DisplayErroronDBL - Exiting" ); - } - -// ---------------------------------------------------- -// CIRHistoryListContainer::ShowFocus() -// To return whether a leaf or node is focused -// ---------------------------------------------------- -// -TInt CIRHistoryListContainer::ShowFocus() - { - IRLOG_DEBUG( "CIRHistoryListContainer::ShowFocus - Entering" ); - TInt focusItem=iTreeListBox->FocusedItem(); - TInt isLeaf=0; - TInt retValue; - if(focusItem) - { - isLeaf=iTreeListBox->IsLeaf( focusItem ); - } - if(isLeaf) - { - retValue = ETrue; - } - else - { - retValue = EFalse; - } - IRLOG_DEBUG( "CIRHistoryListContainer::ShowFocus - Exiting" ); - return retValue ; - - } - -// --------------------------------------------------------------------------- -// void CIRHistoryListContainer::ResponseL() -// Activates the Stations view after getting the IsdsResponse -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::ResponseL( CIRIsdsPreset* aPreset ) - { - IRLOG_DEBUG( "CIRHistoryListContainer::ResponseL - Entering" ); - iHistoryListView.ResetPendingRequests(EFalse); - - iHistoryListView.HistoryEngineInstance()->UpdateSongHistoryDb(aPreset->GetId(), - aPreset->GetName(), - KNo, - aPreset->GetMusicStoreStatus()); - iHistoryListView.RefreshHistoryL(); - IRLOG_DEBUG( "CIRHistoryListContainer::ResponseL - Exiting" ); - return; - } -// --------------------------------------------------------------------------- -// void CIRHistoryListContainer::PresetResponseL() -// Called when Preset Data is received -// Used to Listen to a channel with given preset. -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::PresetResponseL(CIRIsdsPreset* aPreset) - { - IRLOG_DEBUG( "CIRHistoryListContainer::PresetResponseL - Entering" ); - if ( !iHistoryListView.iUi->CheckAndNotifyLowDiskSpaceL() ) - { - iHistoryListView.ResetPendingRequests(EFalse); - if(!iHistoryListView.iNowPlayingWrapper->GetWhenUserCancelsIsdsBufferingWaitBar()) - { - iHistoryListView.iNowPlayingWrapper->SetListenFromIsdsValue(ETrue); - iHistoryListView.iNowPlayingWrapper->ListenToChannelL(aPreset); - } - } - IRLOG_DEBUG( "CIRHistoryListContainer::PresetResponseL - Exiting" ); - } -// --------------------------------------------------------------------------- -// void CIRHistoryListContainer::ErrorL() -// Handles error Conditions -// --------------------------------------------------------------------------- -// -void CIRHistoryListContainer::ErrorL() - { - IRLOG_DEBUG( "CIRHistoryListContainer::ErrorL - Entering" ); - if(iHistoryListView.iIsdsWrapper->GetListenRequest()) - { - iHistoryListView.iNowPlayingWrapper->DestroyWaitDialogL(); - iHistoryListView.iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingError); - - iHistoryListView.iIsdsWrapper->SetListenRequest(EFalse); - } - if(iHistoryListView.iIsdsWrapper->iConnTimeOut) - { - iHistoryListView.iIsdsWrapper->iConnTimeOut = EFalse; - } - RemovedIsdsChannelL(); - IRLOG_DEBUG( "CIRHistoryListContainer::ErrorL - Exiting" ); - return; - } - -// ----------------------------------------------------------------------------- -// CIRHistoryListContainer::IsdsOrNot() -// Whether ISDS channel or not. -// ----------------------------------------------------------------------------- -// -TBool CIRHistoryListContainer::IsdsOrNot() - { - IRLOG_DEBUG( "CIRHistoryListContainer::IsdsOrNot - Entering" ); - TInt focusItem=iTreeListBox->FocusedItem(); - TInt isNode=iTreeListBox->IsNode( focusItem ); - TInt itemIndex = -1; - TBool retValue = EFalse; - if(!isNode) - { - focusItem=iTreeListBox->Parent(focusItem); - } - for(TInt index=0;indexCount();index++) - { - if(index>=0 && index=0 && itemIndexGetErrorCode()) - { - iHistoryListView.HistoryEngineInstance()->SyncHistory( iChannelSyncId ); - - _LIT(KNA,"NA"); - CIRIsdsPreset* preset = CIRIsdsPreset::NewL(); - CleanupStack::PushL( preset ); - preset->SetName(iChannelArray->MdcaPoint(iChangedIndex)); - preset->SetUrlL( KNA, iUrlArray->MdcaPoint(iChangedIndex ), 0 ); - preset->SetUrlCount(); - preset->SetChannelType(0); - preset->SetId(0); - preset->SetShortDesc(iChannelDescriptionArray->MdcaPoint(iChangedIndex )); - preset->SetDescription(iChannelDescriptionArray->MdcaPoint(iChangedIndex )); - TInt res = KErrNone; - - if(iAddFrmHistory) - { - iHistoryListView.iUi->iFavPresets->AddPresetL(*preset,res); - if( res == KErrNoMemory ) - { - DisplayErroronDBL(); - } - else - { - iHistoryListView.iUi->DisplayInformationL( R_IRAPP_STATIONS_POPUP_SAVED, - iChannelArray-> - MdcaPoint(iChangedIndex) ); - } - CleanupStack::PopAndDestroy( preset ); - iAddFrmHistory = EFalse ; - } - if(iListenFrmHistory) - { - - // Set the channel as last played and currently playing - *iHistoryListView.iNowPlayingWrapper->iNowPlayingPreset = *preset; - CleanupStack::PopAndDestroy( preset ); - - iHistoryListView.iUi->iNPPrevViewId = KIRHistoryListViewId; - - //connecting to server - iHistoryListView.iNowPlayingWrapper->SetCurrentConnectionSource(EIRHistoryAdhoc); - iHistoryListView.iNowPlayingWrapper->ConnectToChannelL(*iHistoryListView. - iNowPlayingWrapper->iNowPlayingPreset); - - iListenFrmHistory = EFalse ; - } - iHistoryListView.RefreshHistoryL(); - } - IRLOG_DEBUG( "CIRHistoryListContainer::RemovedIsdsChannelL - Exiting" ); - } - - -