diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/uisrc/irsearchresultsview.cpp --- a/internetradio2.0/uisrc/irsearchresultsview.cpp Mon May 03 12:25:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1089 +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: Search Results view class -* -*/ - - - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "irviewstack.h" -//For Touch Toolbar -#include -#include -#include - -#include "irui.h" -#include "ir.hrh" -#include "ircommon.h" -#include "irdebug.h" -#include "irbaseview.h" -#include "irsearchResultsview.h" -#include "irsearchresultsviewcontainer.h" -#include "irisdswrapper.h" -#include "irsettings.h" -#include "irnowplayingwrapper.h" -#include "irpubsub.h" - -#include "hlplch.h" -#include "irimageconverter.h" -#include "irlogodownloadengine.h" -#include "irdataprovider.h" -#include "irhttpdataprovider.h" -#include "irdialoglauncher.h" -#include "irdebug.h" // PC-Lint comments :: SPP -#include "irfilteredmodel.h" - -#include "iractivenetworkobserver.h" -#include "irnetworkcontroller.h" - -const TInt KStringSize = 20; -const TInt KLogosSize = 59; -const TInt KLogosReqFrom = 0; - - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::CIRSearchResultsView() -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CIRSearchResultsView::CIRSearchResultsView():iCallRequestPending(EFalse) - { - IRLOG_DEBUG( "CIRSearchResultsView::CIRSearchResultsView " ); - iSearchReqMade = EFalse; - } - - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::ConstructL() -// EPOC default constructor can leave. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::ConstructL() - { - IRLOG_DEBUG( "CIRSearchResultsView::ConstructL - Entering " ); - CIRBaseView::ConstructL( R_IR_SEARCHRESULTS ); - - MAknsSkinInstance * skin=AknsUtils::SkinInstance () ; - TRgb color; - TInt skinColor=AknsUtils::GetCachedColor(skin, color, KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG6 ); - if(color.Gray2()!=0) - { - CreateAndSetToolbarL(R_IR_SEARCHRESULTS_WHITE_TOOLBAR); - } - else - { - CreateAndSetToolbarL(R_IR_SEARCHRESULTS_BLACK_TOOLBAR); - } - if( AknLayoutUtils::PenEnabled() && Toolbar() ) - { - Toolbar()->SetToolbarObserver( this ); - } - SetCurrentFocus(0); - iFilteredIndex = 0; - iRequestPending = EFalse; - iAddToFav= EFalse; - IRLOG_DEBUG( "CIRSearchResultsView::ConstructL - Exiting " ); - } - -// ----------------------------------------------------------------------------- -// CIRSearchResultsView::NewL() -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CIRSearchResultsView* CIRSearchResultsView::NewL() - { - IRLOG_DEBUG( "CIRSearchResultsView::NewL" ); - CIRSearchResultsView* self = CIRSearchResultsView::NewLC(); - CleanupStack::Pop( self ); - IRLOG_DEBUG( "CIRSearchResultsView::NewL - Exiting" ); - return self; - } - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::NewLC() -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CIRSearchResultsView* CIRSearchResultsView::NewLC() - { - IRLOG_DEBUG( "CIRSearchResultsView::NewLC - Entering" ); - CIRSearchResultsView* self = new( ELeave ) CIRSearchResultsView(); - CleanupStack::PushL( self ); - self->ConstructL(); - IRLOG_DEBUG( "CIRSearchResultsView::NewLC - Exiting" ); - return self; - } - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::~CIRSearchResultsView() -// Destructor -// --------------------------------------------------------------------------- -// -CIRSearchResultsView::~CIRSearchResultsView() - { - IRLOG_DEBUG( "CIRSearchResultsView::~CIRSearchResultsView - Entering " ); - if (iContainer) - { - AppUi()->RemoveFromViewStack( *this, iContainer); - delete iContainer; - iContainer = NULL; - } - if( AknLayoutUtils::PenEnabled() && Toolbar() ) - { - Toolbar()->SetToolbarVisibility(EFalse, EFalse); - Toolbar()->SetToolbarObserver( NULL ); - } - iFilteredIndex = 0; - IRLOG_DEBUG( "CIRSearchResultsView::~CIRSearchResultsView - Exiting " ); - } - -// --------------------------------------------------------------------------- -// TUid CIRSearchResultsView::Id() const -// From class CAknView. -// Returns view id. -// --------------------------------------------------------------------------- -// -TUid CIRSearchResultsView::Id() const - { - IRLOG_DEBUG( "CIRSearchResultsView::Id" ); - return KIRSearchResultsViewID; - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::DoActivateL( ) -// From class CAknView. -// Handles view activation. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::DoActivateL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, const TDesC8& aCustomMessage ) - { - IRLOG_DEBUG( "CIRSearchResultsView::DoActivateL() started." ); - if(iUi->IsForeground()) - { - TInt customMessageId = aCustomMessageId.iUid; - if(customMessageId == 1) - { - SetCurrentFocus(0); - SetCurrentTopItem(0); - iFirstTimeLaunchFlag= ETrue; - } - aCustomMessageId.iUid = 0; - - - //////////////////////////////////////////////////////////// - - if(iSearchReqMade) - { - if(iContainer) - { - delete iContainer; - iContainer = NULL; - } - iSearchReqMade = EFalse; - } - - //////////////////////////////////////////////////////////// - SetStatusPaneTextL(); - CIRBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage ); - - - ConstructToolbarL(); - iUi->iPresentViewID = KIRSearchResultsViewID; - if ( !iContainer ) - { - iContainer = CIRSearchResultsViewContainer::NewL(ClientRect(),*this); - iContainer->CreateListBoxL(); - AppUi()->AddToViewStackL( *this, iContainer); - } - else - { - // we must notify a resource change in order to update the skin context - // This is a flaw of CEikFormattedCellListBox - iContainer->SetRect(ClientRect()); - iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch); - AppUi()->AddToViewStackL( *this, iContainer); - } - - - iContainer->ActivateL(); - iContainer->MakeVisible( ETrue ); - - - HandleStatusPaneSizeChange(); - EnableObserverL(EIRSystemEventObserver); - iUi->iNetworkController->RegisterActiveNetworkObserverL(*this); - } - IRLOG_DEBUG( "CIRSearchResultsView::DoActivateL() exiting." ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::DoDeactivate() -// From class CAknView. -// Handles view deactivation. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::DoDeactivate() - { - IRLOG_DEBUG( "CIRSearchResultsView::DoDeactivate() - Entering." ); - if(&(iUi->SystemEventCollector())) - { - DisableObserver(EIRSystemEventObserver); - } - if ( iContainer ) - { - if(iContainer->GetListPointer() && iContainer->GetSearchBoxPointer()) - { - TBuf findstring = iContainer->GetFindString(); - iContainer->GetSearchBoxPointer()->GetSearchText(findstring); - if(iContainer->GetSearchBoxPointer() && findstring.Length()!=0) - { - if(!iIndex) - { - TInt currentIndex = iContainer->GetCurrentItemIndex(); - iFilteredIndex = currentIndex; - iContainer->Comparestrings(); - } - SetCurrentFocus(iIndex); - } - else - { - TInt currentIndex = iContainer->GetCurrentItemIndex(); - SetCurrentFocus(currentIndex); - } - SetCurrentTopItem(iContainer->GetListBoxTopIndex()); - } - iUi->RemoveFromViewStack( *this, iContainer ); - iContainer->MakeVisible( EFalse ); - } - // Disable focus of toobar, so that it can't steal it from other views - if( AknLayoutUtils::PenEnabled() && Toolbar() ) - { - Toolbar()->SetToolbarVisibility(EFalse, EFalse); - Toolbar()->SetToolbarObserver( NULL ); - } - iFirstTimeLaunchFlag= EFalse; - iUi->iNetworkController->DeleteActiveNetworkObserver(*this); - IRLOG_DEBUG( "CIRSearchResultsView::DoDeactivate() - Exiting." ); - - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::HandleCommandL( TInt aCommand ) -// From class CAknView. -// Command handling function. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::HandleCommandL( TInt aCommand ) - { - IRLOG_DEBUG( "CIRSearchResultsView::HandleCommandL - Entering." ); - iCommand = aCommand; - switch(aCommand) - { - case EListenCmd: - { - if ( iUi->CheckAndNotifyLowDiskSpaceL() ) - { - break; - } - - iUi->SetListenFromPls(EFalse); - if( iUi->VerifyNetworkConnectivityL() ) - { - iRequestPending = ETrue; - iListenRequest = ETrue; - break; - } - else - { - ListenChannelL(GetActualIndex()); - } - break; - } - case ESearchCmd: - { - if ( !iUi->CheckAndNotifyLowDiskSpaceL() ) - { - iIsSearchAgain = ETrue; - HBufC *SearchTitle = StringLoader::LoadLC(R_IRAPP_SEARCH_STRING); - _LIT(KNullText,""); - RBuf string1; - string1.Create(KStringSize); - string1.Append(KNullText); - ShowQueryDialogL(*SearchTitle,string1); - CleanupStack::PopAndDestroy(SearchTitle); - string1.Close(); - } - } - break; - - //Activate NowPlaying view. - case EGotoNowPlayingViewCmd: - { - iUi->SetHistory(EFalse); - iUi->SavePrevIDL(KIRSearchResultsViewID, aCommand); - } - break; - - case EAddtoFavouritesCmd: - { - if ( iUi->CheckAndNotifyLowDiskSpaceL() ) - { - break; - } - else if( iUi->VerifyNetworkConnectivityL() ) - { - iRequestPending = ETrue; - iAddToFav = ETrue; - break; - } - else - { - iAddToFav = ETrue; - AddToFavouritesL(GetActualIndex(),aCommand); - } - break; - } - - //Activate settings view. - case ESettingsCmd: - { - iUi->ActivateLocalViewL(KIRSettingsViewId); - } - break; - case EAddStationManuallyCmd: - { - if ( !iUi->CheckAndNotifyLowDiskSpaceL() ) - { - iUi->SetEditStation(EFalse); - iUi->ActivateLocalViewL(KIRAddManuallyStationViewID); - } - } - break; - - case EAdvertisementUrl: - { - if ( iUi->CheckAndNotifyLowDiskSpaceL() ) - { - break; - } - else if( iUi->VerifyNetworkConnectivityL() ) - { - break; - } - if(iUi->iIsdsWrapper->iClickThroughUrl) - { - if(iUi->iIsdsWrapper->iClickThroughUrl->Length() != 0) - { - iContainer->OpenUrlL(*iUi->iIsdsWrapper->iClickThroughUrl); - } - } - else - { - iUi->iIsdsWrapper->GetDialogLauncherInstance()->ShowErrorNoteL - (R_IRAPP_ERROR_URL_UNAVAILABLE,ETrue); - } - - } - break; - - case EHelpCmd: - { - if ( !iUi->CheckAndNotifyLowDiskSpaceL() ) - { - HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), AppUi()->AppHelpContextL() ); - } - break; - } - case EAknSoftkeyBack: - { - CIRViewStack& viewStack = iUi->ViewStack(); - - if((iUi->IsFirstTime())) - { - CIRBaseView::HandleCommandL( aCommand ); - } - else - { - if(viewStack.Count() == 2 ) - { - TUid topView = viewStack.Pop(); - if(viewStack.Peek()==KIRMainChoiceViewID) - { - viewStack.PushL(topView); - CIRBaseView::HandleCommandL( aCommand ); - } - else - { - viewStack.Pop(); - iUi->ActivateLocalViewL(KIRMainChoiceViewID); - } - } - else - { - viewStack.Pop(); - iUi->ActivateLocalViewL(KIRMainChoiceViewID); - } - } - } - break; - default: - { - CIRBaseView::HandleCommandL( aCommand ); - } - } - IRLOG_DEBUG( "CIRSearchResultsView::HandleCommandL - Exiting" ); - } -// --------------------------------------------------------------------------- -// CIRSearchResultsView::GetActualIndex(). -// Returns the actual index. -// --------------------------------------------------------------------------- -// -TInt CIRSearchResultsView::GetActualIndex() - { - TInt currentIndex = iContainer->GetCurrentItemIndex(); - SetCurrentFocus(currentIndex); - TBuf findstring ; - if(iContainer->GetSearchBoxPointer()) - { - findstring = iContainer->GetFindString(); - iContainer->GetSearchBoxPointer()->GetSearchText(findstring); - } - if(iContainer->GetSearchBoxPointer() && findstring.Length()!=0) - { - iFilteredIndex = currentIndex; - iContainer->Comparestrings(); - currentIndex = iIndex; - } - if(iContainer->GetLogoNotSupported()) - { - currentIndex = currentIndex +1; - } - return currentIndex; - } - -// --------------------------------------------------------------------------- -// From class CAknView. -// Event handler for status pane size changes. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::HandleStatusPaneSizeChange() - { - IRLOG_DEBUG( "CIRSearchResultsView::HandleStatusPaneSizeChange - Entering" ); - - // the client rect is also set here after screen orientation change - if ( iContainer ) - { - iContainer->SetRect( ClientRect() ); - } - IRLOG_DEBUG( "CIRSearchResultsView::HandleStatusPaneSizeChange - Exiting" ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::SetStatusPaneTextL() -// Sets the title pane of the search results view -// --------------------------------------------------------------------------- -// - -void CIRSearchResultsView:: SetStatusPaneTextL() - { - IRLOG_DEBUG( "CIRSearchResultsView::SetStatusPaneTextL - Entering" ); - TInt number = iIsdsWrapper->iStationsData->MdcaCount(); - HBufC* stringholder = NULL; - - CDesCArray* array = new (ELeave) CDesCArrayFlat(1); - CleanupStack::PushL( array ); - array->AppendL( iUi->iSearchString); //First string - - MDesCArray* list = STATIC_CAST(MDesCArray*,array); - - CArrayFix* presetCounts = new (ELeave) CArrayFixFlat( 2 ); - CleanupStack::PushL( presetCounts ); - presetCounts->AppendL( number ); - - if(1 == number) - { - stringholder = StringLoader::LoadLC( R_IRAPP_SEARCHRESULT_TITLETEXT,*list, - *presetCounts, iEikonEnv ); - } - else - { - stringholder = StringLoader::LoadLC( R_IRAPP_SEARCHRESULTS_TITLETEXT,*list, - *presetCounts, iEikonEnv ); - } - static_cast(StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) )-> - SetTextL( *stringholder ); - - CleanupStack::PopAndDestroy(stringholder); - CleanupStack::PopAndDestroy( presetCounts ); - - // Pop and delete strings array - CleanupStack::PopAndDestroy(); - IRLOG_DEBUG( "CIRSearchResultsView::SetStatusPaneTextL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::DynInitMenuPaneL() -// Dynamically initialises a menu pane -// --------------------------------------------------------------------------- -// - - -void CIRSearchResultsView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane) - { - IRLOG_DEBUG( "CIRSearchResultsView::DynInitMenuPaneL - Entering" ); - if(!aMenuPane) User::Leave(KErrNotFound); - { - if(aResourceId == R_IR_MENU_SEARCHRESULTS) - { - // Now Playing option - if(iNowPlayingWrapper->iPlaying) - { - aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,EFalse); - } - else - { - aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue); - } - } - } - IRLOG_DEBUG( "CIRSearchResultsView::DynInitMenuPaneL - Exiting" ); - } - - - -// --------------------------------------------------------------------------- -// Touch Toolbar -// Dynamically initialises a tool bar -// --------------------------------------------------------------------------- - -void CIRSearchResultsView::ConstructToolbarL() - { - IRLOG_DEBUG( "CIRSearchResultsView::ConstructToolbarL - Entering" ); - SetToolbarItems(); - - // Update rect, as changes in toolbar visibility also affect layout. - if(iContainer) - { - iContainer->SetRect( ClientRect() ); - iContainer->DrawDeferred(); - } - - IRLOG_DEBUG( "CIRSearchResultsView::ConstructToolbarL - Exiting" ); - } - - -// -------------------------------------------------------------------------- -// CIRSearchResultsView::OfferToolbarEventL -// -------------------------------------------------------------------------- -// -void CIRSearchResultsView::OfferToolbarEventL ( TInt aCommand ) - { - IRLOG_DEBUG( "CIRSearchResultsView::OfferToolbarEventL - Entering" ); - HandleCommandL(aCommand); - IRLOG_DEBUG( "CIRSearchResultsView::OfferToolbarEventL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// From class CAknView. -// Foreground event handling function. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::HandleForegroundEventL( TBool aForeground ) - { - IRLOG_DEBUG( "CIRSearchResultsView::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_SEARCHRESULTS_WHITE_TOOLBAR); - } - else - { - CreateAndSetToolbarL(R_IR_SEARCHRESULTS_BLACK_TOOLBAR); - } - if( AknLayoutUtils::PenEnabled() && Toolbar() ) - { - Toolbar()->SetToolbarObserver( this ); - } - ConstructToolbarL(); - iContainer->DrawDeferred(); - } - } - IRLOG_DEBUG( "CIRSearchResultsView::HandleForegroundEventL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::AddToFavouritesL() -// Adds the selected channel to favorites -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::AddToFavouritesL(TInt aCurrentIndex,TInt aCommand) - { - IRLOG_DEBUG( "CIRSearchResultsView::AddToFavouritesL - Entering" ); - //request isds for preset data to be added to favorites - iIsdsWrapper->IsdsPresetRequestL(this,aCurrentIndex,aCommand); - IRLOG_DEBUG( "CIRSearchResultsView::AddToFavouritesL - Exiting" ); - } -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::ResponseL() -// Activates the Stations view after getting the IsdsResponse -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::ResponseL(CIRIsdsPreset* /*aPreset*/) - { - IRLOG_DEBUG( "CIRSearchResultsView::ResponseL() started." ); - ResetPendingRequests(EFalse); - if(iIsdsWrapper->iStationsData->Count()) - { - if(iIsSearchAgain) - { - iIsSearchAgain = EFalse; - if(iContainer) - { - AppUi()->RemoveFromViewStack( *this, iContainer ); - iContainer->MakeVisible( EFalse ); - delete iContainer; - iContainer = NULL; - } - SetCurrentFocus(0); - SetCurrentTopItem(0); - iContainer = CIRSearchResultsViewContainer::NewL(ClientRect(),*this); - iContainer->CreateListBoxL(); - iContainer->ActivateL(); - iContainer->MakeVisible( ETrue ); - AppUi()->AddToViewStackL( *this, iContainer); - SetStatusPaneTextL(); - } - } - else - { - iIsdsWrapper->GetDialogLauncherInstance()->ShowInformationNoteL( R_IRAPP_RESULTS_NONE,ETrue ); - iIsdsWrapper->iError = EFalse; - } - IRLOG_DEBUG( "CIRSearchResultsView::ResponseL() exiting." ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::PresetResponseL() -// Called when Preset Data is received -// Used to Listen to a channel with given preset. -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::PresetResponseL(CIRIsdsPreset* aPreset) - { - IRLOG_DEBUG( "CIRSearchResultsView::PresetResponseL - Entering" ); - ResetPendingRequests(EFalse); - if ( !iUi->CheckAndNotifyLowDiskSpaceL() ) - if(!iNowPlayingWrapper->GetWhenUserCancelsIsdsBufferingWaitBar()) - { - iNowPlayingWrapper->SetListenFromIsdsValue(ETrue); - iNowPlayingWrapper->ListenToChannelL(aPreset); - } - IRLOG_DEBUG( "CIRSearchResultsView::PresetResponseL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::ErrorL() -// Handles error Conditions -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::ErrorL() - { - IRLOG_DEBUG( "CIRSearchResultsView::ErrorL - Entering" ); - if(iIsdsWrapper->iDialogDismissed) - { - iIsdsWrapper->iDialogDismissed=EFalse; - return; - } - if(iIsdsWrapper->GetListenRequest()) - { - iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingError); - iNowPlayingWrapper->DestroyWaitDialogL(); - iIsdsWrapper->SetListenRequest(EFalse); - } - - if(iIsdsWrapper->iConnTimeOut) - { - iIsdsWrapper->iConnTimeOut = EFalse; - } - if(iIsdsWrapper->iError) - { - if(iIsdsWrapper->GetDialogLauncherInstance()) - { - iIsdsWrapper->GetDialogLauncherInstance()->ShowInformationNoteL( R_IRAPP_RESULTS_NONE,ETrue ); - iIsdsWrapper->iError = EFalse; - } - } - IRLOG_DEBUG( "CIRSearchResultsView::ErrorL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::ListenChannelL() -// Request for listening to a channel -// --------------------------------------------------------------------------- -// - -void CIRSearchResultsView:: ListenChannelL(TInt aCurrentIndex) - { - IRLOG_DEBUG( "CIRSearchResultsView::ListenChannelL - Entering" ); - iNowPlayingWrapper->SetView(ESearch); - iNowPlayingWrapper->SetWhenUserCancelsBufferingWaitBar(EFalse); - iNowPlayingWrapper->SetListenFromIsdsValue(EFalse); - iNowPlayingWrapper->SetWhenUserCancelsIsdsBufferingWaitBar(EFalse); - iNowPlayingWrapper->CreateWaitDialogL(); - iUi->GetPubSubManagerInstance()->PublishBufferingState(EIRStateBufferingStart); - - iIsdsWrapper->IsdsListenRequestL(this,aCurrentIndex); - IRLOG_DEBUG( "CIRSearchResultsView::ListenChannelL - Exiting" ); - } - - -void CIRSearchResultsView::ShowQueryDialogL(const TDesC& aTitle, TDes& aBuffer) - { - IRLOG_DEBUG( "CIRSearchResultsView::ShowQueryDialogL - Entering" ); - CAknTextQueryDialog* Dialog = - CAknTextQueryDialog::NewL(aBuffer,CAknQueryDialog::ENoTone); - Dialog->PrepareLC(R_SEARCH_STRING_DIALOG); - Dialog->SetPromptL(aTitle); - //return Dialog->RunLD() - iSearchValue = Dialog->RunLD(); - - //Display a searching Progress Bar - - if( iSearchValue) - { - iUi->iSearchString = aBuffer; - if( iUi->VerifyNetworkConnectivityL() ) - { - iRequestPending = ETrue; - } - else - { - iIsdsWrapper->IsdsSearchRequestL(this,aBuffer); - } - } - IRLOG_DEBUG( "CIRSearchResultsView::ShowQueryDialogL - Exiting" ); - } - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::LogoRequestL() -// called from the container -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::LogoRequestL() - { - IRLOG_DEBUG( "CIRSearchResultsView::LogoRequestL - Entering" ); - if(iContainer) - { - iUi->iIsdsWrapper->GetISDSInstance()->GetDataProvider()->GetHttpDataProvider()-> - GetLogoDownloadEngine()->SendRequestL(iContainer->GetTempPreset(),this, - KLogosReqFrom,KLogosSize,KLogosSize); - } - IRLOG_DEBUG( "CIRSearchResultsView::LogoRequestL - Exiting" ); - } - - - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::PresetLogoDownloadedL() -// from base class MLogoDownloadObserver -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::PresetLogoDownloadedL(CIRIsdsPreset* aPreset) - { - IRLOG_DEBUG( "CIRSearchResultsView::PresetLogoDownloadedL - Entering" ); - if(iContainer) - { - iContainer->PresetLogoDownloadL(aPreset); - } - IRLOG_DEBUG( "CIRSearchResultsView::PresetLogoDownloadedL - Exiting" ); - } - - -// --------------------------------------------------------------------------- -// CIRSearchResultsView::PresetLogoDownloadError() -// from base class MLogoDownloadObserver -// --------------------------------------------------------------------------- -// -void CIRSearchResultsView::PresetLogoDownloadError(CIRIsdsPreset* /*aPreset*/) - { - IRLOG_DEBUG( "CIRSearchResultsView::PresetLogoDownloadError " ); - //call the API of search results view container - if(iContainer) - { - TRAP_IGNORE(iContainer->HandleLogoErrorL()); - } - IRLOG_DEBUG( "CIRSearchResultsView::PresetLogoDownloadErrorL - Exiting" ); - } - - -void CIRSearchResultsView::AdRequestL() - { - IRLOG_DEBUG( "CIRSearchResultsView::AdRequestL - Entering" ); - if(iContainer) - { - iUi->iIsdsWrapper->GetISDSInstance()->GetDataProvider()->GetHttpDataProvider()-> - GetLogoDownloadEngine()->SendRequestL(iContainer->GetAdvPreset(),this); - } - - IRLOG_DEBUG( "CIRSearchResultsView::AdRequestL - Exiting" ); - } -// --------------------------------------------------------- -// CIRSearchResultsView::SetActualFilteredItemIndex () -// Sets the listen is from favourites or not -// --------------------------------------------------------- -// -void CIRSearchResultsView::SetActualFilteredItemIndex(TInt aIndex) - { - IRLOG_DEBUG( "CIRSearchResultsView::SetListBoxMarkedCount - Entering." ); - iIndex = aIndex; - IRLOG_DEBUG( "CIRSearchResultsView::SetListBoxMarkedCount - Exiting." ); - } - -// --------------------------------------------------------- -// CIRSearchResultsView::GetFilteredIndex () -// returns the iFilteredIndex -// --------------------------------------------------------- -// -TInt CIRSearchResultsView::GetFilteredIndex() - { - IRLOG_DEBUG( "CIRSearchResultsView::GetFilteredIndex - Entering." ); - IRLOG_DEBUG( "CIRSearchResultsView::GetFilteredIndex - Exiting." ); - return iFilteredIndex; - } -// --------------------------------------------------------- -// CIRSearchResultsView::GetFirstLaunchFlag () -// returns whether is launching for the first time /coming from other view -// which is activated from this view. -// --------------------------------------------------------- -// -TBool CIRSearchResultsView::GetFirstLaunchFlag() - { - IRLOG_DEBUG( "CIRSearchResultsView::GetFirstLaunchFlag - Entering." ); - IRLOG_DEBUG( "CIRSearchResultsView::GetFirstLaunchFlag - Exiting." ); - return iFirstTimeLaunchFlag; - } -// --------------------------------------------------------------------------- -// void CIRSearchResultsView::SetToolbarItems() -// Setting toolbar items when text is entered -// --------------------------------------------------------------------------- -void CIRSearchResultsView:: SetToolbarItems() - { - IRLOG_DEBUG( "CIRSearchResultsView::SetToolbarItems - Entering" ); - if(Toolbar()) - { - if(iContainer) - { - Toolbar()->SetToolbarVisibility(ETrue, EFalse); - if(iContainer->GetSearchBoxPointer()) - { - TInt currentIndex = iContainer->GetCurrentItemIndex(); - TBuf findstring ; - if(iContainer->GetSearchBoxPointer()) - { - iContainer->GetSearchBoxPointer()->GetSearchText(findstring); - } - TInt filterModelCount = iContainer->GetFilterdModelPointer()->NumberOfItems(); - if(iContainer->GetSearchBoxPointer() && findstring.Length()!=0 - && filterModelCount == 0) - { - Toolbar()->SetItemDimmed(EAddtoFavouritesCmd,ETrue,ETrue); - Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue); - Toolbar()->SetItemDimmed(EAddStationManuallyCmd,ETrue,ETrue); - } - else - { - if (currentIndex == 0 && !iContainer->GetLogoNotSupported()) - { - if (iUi->iIsdsWrapper->GetBannerUrl()) - { - Toolbar()->SetItemDimmed(EAddtoFavouritesCmd,ETrue,ETrue); - Toolbar()->SetItemDimmed(EListenCmd,ETrue,ETrue); - Toolbar()->SetItemDimmed(EAddStationManuallyCmd,ETrue,ETrue); - } - else - { - Toolbar()->SetItemDimmed(EAddtoFavouritesCmd,EFalse,ETrue); - Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue); - Toolbar()->SetItemDimmed(EAddStationManuallyCmd,EFalse,ETrue); - } - } - else - { - Toolbar()->SetItemDimmed(EAddtoFavouritesCmd,EFalse,ETrue); - Toolbar()->SetItemDimmed(EListenCmd,EFalse,ETrue); - Toolbar()->SetItemDimmed(EAddStationManuallyCmd,EFalse,ETrue); - } - } - } - Toolbar()->DrawDeferred(); - } - } - IRLOG_DEBUG( "CIRSearchResultsView::SetToolbarItems - Exiting" ); - } - - -// --------------------------------------------------------------------------- -//Notifies all observers whose network request is active -// to reissue the request -//NotifyActiveNetworkObserversL() -// --------------------------------------------------------------------------- - -void CIRSearchResultsView::NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent) - { - IRLOG_DEBUG( "CIRSearchResultsView::NotifyActiveNetworkObserversL - Entering." ); - IRRDEBUG2("CIRSearchResultsView::NotifyActiveNetworkObserversL entering ", KNullDesC); - - switch(aEvent) - { - case ENetworkConnectionDisconnected: - { - iNowPlayingWrapper->HandleNetworkDisconnected(); - } - break; - case ENetworkConnectionEstablished: - { - if( !iUi->CheckAndNotifyLowDiskSpaceL() && iContainer) - { - if(iRequestPending || iUi->iNetworkController->IsHandingOverConnection()) - { - if(iAddToFav) - { - iAddToFav = ETrue; - AddToFavouritesL(GetActualIndex(),EAddtoFavouritesCmd); - } - else if(iListenRequest) - { - iListenRequest=EFalse; - ListenChannelL(GetActualIndex()); - } - else if(iSearchValue) - { - iSearchValue=ETrue; - iIsdsWrapper->IsdsSearchRequestL(this,iUi->iSearchString); - } - else - { - - } - } - if(iUi->iNetworkController->IsHandingOverConnection()) - { - ResetPendingRequests(EFalse); - } - - } - } - } - - IRRDEBUG2("CIRSearchResultsView::NotifyActiveNetworkObserversL exiting ", KNullDesC); - - IRLOG_DEBUG( "CIRSearchResultsView::NotifyActiveNetworkObserversL - Exiting." ); - } - - - -// ----------------------------------------------------------------------------- -// Notified by network controller when user cancels network connection, to reset -// the pending requests -// ResetPendingRequests() -// ----------------------------------------------------------------------------- -void CIRSearchResultsView::ResetPendingRequests(TBool aValue) - { - iRequestPending = aValue; - iListenRequest = aValue; - iAddToFav = aValue; - iSearchValue = aValue; - } - -// --------------------------------------------------------- -// CIRSearchResultsView::HandleSystemEventL -// from base class MIRSystemEventObserver -// --------------------------------------------------------- -// -void CIRSearchResultsView::HandleSystemEventL(TIRSystemEventType aEventType) - { - IRLOG_DEBUG(" CIRSearchResultsView::HandleSystemEventL - Entering"); - - - switch (aEventType) - { - case EIRCallActivated: - { - if( iUi->GetNetworkControllerInstance()->IdentifyConnectionType() != EWiFi ) - { - if(iUi->iIsdsWrapper->iIsdsWaitDialog) - { - TRAP_IGNORE( iUi->iIsdsWrapper->DestroyWaitDialogL() ); - } - if((!iCallRequestPending && iCommand==ESearchCmd) || - (!iCallRequestPending && iCommand==EAddtoFavouritesCmd)) - { - iUi->iIsdsWrapper->IsdsCancelRequest(); - iCallRequestPending = ETrue; - } - if(iUi->iIsdsWrapper->GetListenRequest()) - { - iNowPlayingWrapper->DestroyWaitDialogL(); - iUi->iIsdsWrapper->SetListenRequest(EFalse); - iUi->iIsdsWrapper->IsdsCancelRequest(); - } - } - break; - } - case EIRCallDeactivated: - { - if(iCallRequestPending && iCommand==ESearchCmd) - { - iCallRequestPending = EFalse; - if(iSearchValue) - { - iIsdsWrapper->IsdsSearchRequestL(this,iUi->iSearchString); - } - } - else if(iCallRequestPending && iCommand==EAddtoFavouritesCmd) - { - iCallRequestPending = EFalse; - HandleCommandL( iCommand ); - } - break; - } - default: - { - break; - } - } - IRLOG_DEBUG( "CIRSearchResultsView::HandleSystemEventL - Exiting." ); - }