--- a/internetradio2.0/uisrc/irstationdirectoryview.cpp Mon May 03 12:25:23 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,692 +0,0 @@
-/*
-* Copyright (c) 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: Station Directory View
-*
-*/
-
-/* ---------------------------------------------------------------------------
-* Version history:
-* Template version:
-* <ccm_history>
-*
-* Version: 2, Fri March 21 17:20:00 2008 by Prabina
-* Ref:
-* Added WorkAround for supporting different Resolutions , Added Wait Dialog for Loading of stations ,
-* Handled Single/Double tapping on the list itmes
-*
-* </ccm_history>
-* ============================================================================
-*/
-/* ---------------------------------------------------------------------------
-* Version history:
-* Template version:
-* <ccm_history>
-*
-* Version: 3, Tues March 25 17:30:00 2008 by Prabina
-* Ref:
-* Fixing the PCLint errors
-*
-*
-* </ccm_history>
-* ============================================================================
-*/
-/* ---------------------------------------------------------------------------
-* Version history:
-* Template version:
-* <ccm_history>
-*
-* Version: 4, Tues April 04 16:40:00 2008 by Prabina
-* Ref:
-* Added WorkAround for retaining of focus & Page retaining
-*
-*
-* </ccm_history>
-* ============================================================================
-*/
-/* ---------------------------------------------------------------------------
-* Version history:
-* Template version:
-* <ccm_history>
-*
-* Version: 5, Thurs July 18 12:00:00 2008 by Prabina
-* Ref:
-* Code Review Comments Fixed
-*
-*
-* </ccm_history>
-* ============================================================================
-*/
-// SYSTEM INCLUDE FILES
-#include <akntitle.h>
-#include <eikmenup.h>
-#include <psserv.h>
-#include <hlplch.h>
-#include <eikenv.h>
-#include <internetradio.rsg>
-
-// INCLUDE FILES
-#include "irdebug.h"
-#include "irui.h"
-#include "irbaseview.h"
-#include "irstationdirectoryview.h"
-#include "irstationdirectorycontainer.h"
-#include "ircategoryview.h"
-#include "ir.hrh"
-#include "ircommon.h"
-#include "irviewstack.h"
-#include "irisdswrapper.h"
-#include "irnowplayingwrapper.h"
-#include "hlplch.h"
-#include "irsettings.h"
-#include "irnetworkcontroller.h" //Added for demo of ALR //TO DO::Remove after demo
-#include "iractivenetworkobserver.h"
-#include "irtopstationsview.h"
-
-// ==================== LOCAL FUNCTIONS ====================
-
-// ================= MEMBER FUNCTIONS =======================
-
-
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CIRStationDirectoryView::CIRStationDirectoryView( ):iCallRequestPending(EFalse)
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::CIRStationDirectoryView" );
- }
-// ---------------------------------------------------------------------------
-// EPOC default constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::ConstructL()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::ConstructL - Entering" );
- CIRBaseView::ConstructL( R_IR_STATION_DIRECTORY );
- SetCurrentFocus(0);
- iRequestPending = EFalse;
- IRLOG_DEBUG( "CIRStationDirectoryView::ConstructL - Exiting" );
- }
-
-// -----------------------------------------------------------------------------
-// CIRStationDirectoryView::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CIRStationDirectoryView* CIRStationDirectoryView::NewL()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::NewL" );
- CIRStationDirectoryView* self = CIRStationDirectoryView::NewLC();
- CleanupStack::Pop( self );
- IRLOG_DEBUG( "CIRStationDirectoryView::NewL - Exiting" );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CIRStationDirectoryView::NewLC()
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CIRStationDirectoryView* CIRStationDirectoryView::NewLC()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::NewLC" );
- CIRStationDirectoryView* self = new( ELeave ) CIRStationDirectoryView();
- CleanupStack::PushL( self );
- self->ConstructL();
- IRLOG_DEBUG( "CIRStationDirectoryView::NewLC - Exiting" );
- return self;
- }
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CIRStationDirectoryView::~CIRStationDirectoryView()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::~CIRStationDirectoryView - Entering" );
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- iContainer->MakeVisible( EFalse );
- delete iContainer;
- iContainer = NULL;
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::~CIRStationDirectoryView - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Returns view id.
-// ---------------------------------------------------------------------------
-//
-TUid CIRStationDirectoryView::Id() const
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::Id" );
- return KIRStationDirectoryViewId;
- }
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Event handler for status pane size changes.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::HandleStatusPaneSizeChange()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleStatusPaneSizeChange - Entering" );
- CIRBaseView::HandleStatusPaneSizeChange();
-
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleStatusPaneSizeChange - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Handles view activation.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId,
- const TDesC8& aCustomMessage )
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::DoActivateL - Entering" );
-
- TInt customMessageId = aCustomMessageId.iUid;
- if(customMessageId == 1)
- {
- SetCurrentFocus(0);
- }
- aCustomMessageId.iUid = 0;
- iUi->iPresentViewID = KIRStationDirectoryViewId;
-
- if ( !iContainer )
- {
- iContainer = CIRStationDirectoryContainer::NewL( *this, ClientRect() );
- iContainer->SetMopParent( this );
- AppUi()->AddToViewStackL( *this, iContainer );
- }
- else
- {
- iContainer->SetRect( ClientRect( ) );
- iContainer->HandleResourceChange(KEikDynamicLayoutVariantSwitch);
- }
-
- iContainer->ActivateL( );
- iContainer->MakeVisible( ETrue );
-
- SetTitleL(R_IRAPP_STAT_DIR_TITLE);
- CIRBaseView::DoActivateL( aPrevViewId, aCustomMessageId, aCustomMessage );
- HandleStatusPaneSizeChange();
-
- iUi->iNetworkController->RegisterActiveNetworkObserverL(*this);
- EnableObserverL(EIRSystemEventObserver);
- IRLOG_DEBUG( "CIRStationDirectoryView::DoActivateL - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Handles view deactivation.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::DoDeactivate()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::DoDeactivate - Entering" );
- if(&(iUi->SystemEventCollector()))
- {
- DisableObserver(EIRSystemEventObserver);
- }
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- iContainer->MakeVisible( EFalse );
- delete iContainer;
- iContainer = NULL;
- }
- iUi->iNetworkController->DeleteActiveNetworkObserver(*this);
- IRLOG_DEBUG( "CIRStationDirectoryView::DoDeactivate - Exiting" );
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Command handling function.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::HandleCommandL( TInt aCommand )
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleCommandL - Entering" );
- CIRUi* appUi = static_cast<CIRUi*>( AppUi() );
- CIRViewStack& viewStack = appUi->ViewStack();
- switch ( aCommand )
- {
- case ESelectCmd:
- {
- if( iUi->CheckAndNotifyLowDiskSpaceL() )
- {
- break;
- }
- else if( iUi->VerifyNetworkConnectivityL() )
- {
- iRequestPending = ETrue;
- }
- else
- {
- SetCurrentFocus(iContainer->GetCurrentItemIndex());
- iRequestIssued = ETrue;
- DoCategoryRequestL();
- }
- }
- break;
-
- case EGotoNowPlayingViewCmd:
- {
- appUi->SetHistory(EFalse);
- appUi->SavePrevIDL(KIRStationDirectoryViewId, aCommand);
- }
- break;
- //Activate settings view.
- case ESettingsCmd:
- {
- AppUi()->ActivateLocalViewL(KIRSettingsViewId);
- }
- break;
-
- case EHelpCmd:
- {
- if ( !iUi->CheckAndNotifyLowDiskSpaceL() )
- {
- HlpLauncher::LaunchHelpApplicationL(iEikonEnv->WsSession(),
- AppUi()->AppHelpContextL());
- }
- }
- break;
- case EAknSoftkeyBack:
- {
- if((appUi->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();
- appUi->ActivateLocalViewL(KIRMainChoiceViewID);
- }
- }
-
- else if(viewStack.Count() >2 )
- {
- CIRBaseView::HandleCommandL( aCommand );
- }
- else
- {
- viewStack.Pop();
- appUi->ActivateLocalViewL(KIRMainChoiceViewID);
- }
- }
- }
- break;
- default:
- {
- CIRBaseView::HandleCommandL( aCommand );
- }
- break;
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleCommandL - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// From class CAknView.
-// Foreground event handling function.
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::HandleForegroundEventL( TBool aForeground )
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleForegroundEventL - Entering" );
-
- CIRBaseView::HandleForegroundEventL( aForeground );
- if ( aForeground )
- {
- if ( iContainer )
- {
- iContainer->DrawDeferred();
- }
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleForegroundEventL - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// CIRStationDirectoryView::DoCategoryRequestL()
-//
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::DoCategoryRequestL()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::DoCategoryRequestL - Entering" );
- iLoadingCancelled = EFalse;
- TInt currentIndex = iContainer->GetCurrentItemIndex();
- if(currentIndex >= 0)
- {
- switch (currentIndex)
- {
- // if the browse by genre's is selected.
- case EGenreData:
- {
- iIsdsWrapper->IsdsCategoryRequestL(this,CIRIsdsClient::EGenre);
- iUi->iCategoryView->iCategoryReqMade = ETrue;
- }
- break;
- // if the browse by language's is selected.
- case ELanguageData:
- {
- iIsdsWrapper->IsdsCategoryRequestL(this,CIRIsdsClient::ELanguages);
- iUi->iCategoryView->iCategoryReqMade = ETrue;
- }
- break;
- // if the browse by country is selected.
- case ECountryData:
- {
- iIsdsWrapper->IsdsCategoryRequestL(this,CIRIsdsClient::ECountries);
- iUi->iCategoryView->iCategoryReqMade = ETrue;
- }
- break;
- // if top station's is selected.
- case ETopStationData:
- {
- iIsdsWrapper->IsdsCategoryRequestL(this,CIRIsdsClient::Ehotpicks);
- iUi->iTopStationsView->iResultsReqMade = ETrue;
- }
- break;
- default:
- {
- //No implementation
- }
- break;
- }
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::DoCategoryRequestL - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::ResponseL()
-// Activates the SearchResults view after getting the IsdsResponse
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::ResponseL( CIRIsdsPreset* /*aPreset*/ )
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::ResponseL - Entering" );
- ResetPendingRequests(EFalse);
- if(!iLoadingCancelled)
- {
- TInt currentIndex = iContainer->GetCurrentItemIndex();
- if(currentIndex >= 0)
- {
- switch (currentIndex)
- {
- // if the browse by genre's is selected.
- case EGenreData:
- {
- iUi->iCategoryViewTitleType = EGenreData;
- ActivateCategoryViewL();
- }
- break;
- // if the browse by language's is selected.
- case ELanguageData:
- {
- iUi->iCategoryViewTitleType = ELanguageData;
- ActivateCategoryViewL();
- }
- break;
- // if the browse by country is selected.
- case ECountryData:
- {
- iUi->iCategoryViewTitleType = ECountryData;
- ActivateCategoryViewL();
- }
- break;
- // if top station's is selected.
- case ETopStationData:
- {
- iUi->iCategoryViewTitleType = ETopStationData;
- TBuf8<2> dummy;
- TVwsViewId viewId(TUid::Uid(KUIDIRAPP),KIRTopStationsViewId);
- if(iUi->IsForeground())
- {
- AppUi()->ActivateViewL(viewId ,TUid::Uid(1),dummy);
- iUi->iActivationPending = KNullUid ;
- }
- else
- {
- iUi->iActivationPending =KIRTopStationsViewId;
- }
- }
- break;
- default:
- {
- //No implementation
- }
- break;
- }
- }
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::ResponseL - Exiting" );
- }
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::ActivateCategoryViewL()
-// Activates the Category view
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::ActivateCategoryViewL()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::ActivateCategoryViewL - Entering" );
- CIRUi* appUi = static_cast< CIRUi*>(AppUi());
- TBuf8<2> dummy;
- TVwsViewId viewId(TUid::Uid(KUIDIRAPP),KIRCategoryViewId);
-
- if(appUi->IsForeground())
- {
- AppUi()->ActivateViewL(viewId ,TUid::Uid(1),dummy);
- appUi->iActivationPending = KNullUid ;
- }
- else
- {
- appUi->iActivationPending =KIRCategoryViewId;
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::ActivateCategoryViewL - Exiting" );
-
- }
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::PresetResponseL()
-// Issues Request to listen to a particular channel
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::PresetResponseL(CIRIsdsPreset* /*aPreset*/)
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::PresetResponseL - Entering" );
-
- //No Implementation Required
-
- IRLOG_DEBUG( "CIRStationDirectoryView::PresetResponseL - Exiting" );
- }
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::ErrorL()
-// Handles the errors from Isds
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::ErrorL()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::ErrorL - Entering" );
- if(iIsdsWrapper->iConnTimeOut)
- {
- iIsdsWrapper->iConnTimeOut = EFalse;
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::ErrorL - Exiting" );
- }
-
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::DynInitMenuPaneL()
-// Dynamically initialises a menu pane
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::DynInitMenuPaneL - Entering" );
- CIRUi* appUi = static_cast<CIRUi*>( AppUi() );
-
- if(!aMenuPane) User::Leave(KErrNotFound);
- {
- if(aResourceId == R_IR_STATION_DIRECTORY_MENU)
- {
- // Now Playing option
- if(iNowPlayingWrapper->iPlaying)
- {
- aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,EFalse);
- }
- else
- {
- aMenuPane->SetItemDimmed(EGotoNowPlayingViewCmd,ETrue);
- }
- }
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::DynInitMenuPaneL - Exiting" );
- }
-// ---------------------------------------------------------------------------
-//Notifies all observers whose network request is active
-// to reissue the request
-//NotifyActiveNetworkObserversL()
-// ---------------------------------------------------------------------------
-
-void CIRStationDirectoryView::NotifyActiveNetworkObserversL(TIRNetworkEvent aEvent)
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::NotifyActiveNetworkObserversL - Entering" );
- IRRDEBUG2("CIRStationDirectoryView::NotifyActiveNetworkObserversL entering ", KNullDesC);
-
- switch(aEvent)
- {
- case ENetworkConnectionDisconnected:
- {
- iNowPlayingWrapper->HandleNetworkDisconnected();
- }
- break;
- case ENetworkConnectionEstablished:
- {
- if(iContainer)
- {
- if(iRequestPending)
- {
- iRequestIssued = ETrue;
- SetCurrentFocus(iContainer->GetCurrentItemIndex());
- iRequestPending=EFalse;
- DoCategoryRequestL();
- }
-
- if(iUi->iNetworkController->IsHandingOverConnection())
- {
- if(iRequestIssued)
- {
- iRequestIssued=EFalse;
- SetCurrentFocus(iContainer->GetCurrentItemIndex());
- DoCategoryRequestL();
- }
- }
- }
- }
- }
-
- IRLOG_DEBUG( "CIRStationDirectoryView::NotifyActiveNetworkObserversL - Exiting" );
- IRRDEBUG2("CIRStationDirectoryView::NotifyActiveNetworkObserversL exiting ", KNullDesC);
-
- }
-
-
-
-
-// -----------------------------------------------------------------------------
-// Notified by network controller when user cancels network connection, to reset
-// the pending requests
-// ResetPendingRequests()
-// -----------------------------------------------------------------------------
-void CIRStationDirectoryView::ResetPendingRequests(TBool aValue)
- {
- iRequestPending = aValue;
- iRequestIssued = aValue;
- }
-
-// ---------------------------------------------------------
-// CIRStationDirectoryView::HandleSystemEventL
-// from base class MIRSystemEventObserver
-// ---------------------------------------------------------
-//
-void CIRStationDirectoryView::HandleSystemEventL(TIRSystemEventType aEventType)
- {
- IRLOG_DEBUG(" CIRStationDirectoryView::HandleSystemEventL - Entering");
-
- switch (aEventType)
- {
- case EIRCallActivated:
- {
- if( iUi->GetNetworkControllerInstance()->IdentifyConnectionType() != EWiFi )
- {
- if(iUi->iIsdsWrapper->iIsdsWaitDialog)
- {
- TRAP_IGNORE( iUi->iIsdsWrapper->DestroyWaitDialogL() );
- }
- if(!iCallRequestPending && iCommand==ESelectCmd)
- {
- iUi->iIsdsWrapper->IsdsCancelRequest();
- iCallRequestPending = ETrue;
- }
- }
- break;
- }
- case EIRCallDeactivated:
- {
- if(iCallRequestPending && iCommand==ESelectCmd)
- {
- iCallRequestPending = EFalse;
- HandleCommandL( iCommand );
- }
- break;
- }
- default:
- {
- break;
- }
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::HandleSystemEventL - Exiting." );
- }
-// ---------------------------------------------------------------------------
-// void CIRStationDirectoryView::IssueSearchRequestL()
-// Issues a search request to the Isds Client
-// ---------------------------------------------------------------------------
-//
-void CIRStationDirectoryView::RefreshView()
- {
- IRLOG_DEBUG( "CIRStationDirectoryView::IssueSearchRequestL - Entering" );
- if ( iContainer )
- {
- iContainer->SetRect( ClientRect() );
- }
- IRLOG_DEBUG( "CIRStationDirectoryView::IssueSearchRequestL - Exiting" );
- }
-// End of file