qtinternetradio/ui/src/irnowplayingview.cpp
changeset 3 ee64f059b8e1
parent 0 09774dfdd46b
child 5 0930554dc389
--- a/qtinternetradio/ui/src/irnowplayingview.cpp	Mon May 03 12:25:23 2010 +0300
+++ b/qtinternetradio/ui/src/irnowplayingview.cpp	Fri May 14 15:43:29 2010 +0300
@@ -15,111 +15,71 @@
 *
 */
 #include <QPixmap>
-#include <QTimer>
-#include <hbmenu.h>
-#include <hbtoolbar.h>
 #include <hbaction.h>
+#include <hblabel.h>
+#include <hbnotificationdialog.h>
 
-#include "irabstractviewmanager.h"
+#include "irviewmanager.h"
 #include "irapplication.h"
 #include "irplaycontroller.h"
-#include "irnowplayingview.h"
-#include "irnowplayingcontainer.h"
-#include "irstationdetailscontainer.h"
 #include "irqisdsdatastructure.h"
 #include "irqmetadata.h"
-#include "irqutility.h"
 #include "irqisdsclient.h"
 #include "irqfavoritesdb.h"
 #include "irlastplayedstationinfo.h"
 #include "irqnetworkcontroller.h" 
-#include "irqmusicshop.h"
 #include "irqstatisticsreporter.h"
 #include "irqenums.h"
 #include "irmediakeyobserver.h"
-#include "irqsettings.h"
-#include "irqstationexporter.h"
 #include "iruidefines.h"
+#include "irnowplayingview.h"
+#include "irstationshare.h"
+#include "irqutility.h"
+#include "irqlogger.h"
+#include "irplaylist.h"
+#include "irstationdetailsview.h"
 
-// Const
+#ifdef ADV_ENABLED
+#include <QTimer>
+#include <qgraphicssceneevent.h>
+static const QString KDefaultAdvLink(""); // default advertisement link
+#endif
+
 const int KNowPlayingLogoSize = 300; // Now playing logo size
-const char* NOW_PLAYING_VIEW_OBJECT_NAME = "ex-IRNowPlayingView"; // object name in the XML
-const char* KDefaultAdvertisementLink = ""; // default advertisement link
-
-//                                     public functions
+static const QString KDefaultStationLogo("qtg_large_internet_radio");
+static const QString KPlayButtonIcon("qtg_mono_play");
+static const QString KStopButtonIcon("qtg_mono_stop");
 
 /*
  * Description : constructor
  */
 IRNowPlayingView::IRNowPlayingView(IRApplication* aApplication, TIRViewId aViewId) :
     IRBaseView(aApplication, aViewId),
-    iLogoPreset(NULL),
-    iStationDetailsContainer(NULL),
-    iIdleContainer(NULL),
-    iMusicShop(NULL),
-    iStationExporter(NULL),
-    iStereoAction(NULL),
-    iMusicShopAction(NULL),
+    iStatisticsReporter(NULL),
+    iNetworkController(NULL),
     iPlayStopAction(NULL),
-    iAdd2FavAction(NULL),
-    iAdvClickThroughUrl(KDefaultAdvertisementLink),
-    iGettingAdv(false),
+    iLaunchActionNeeded(false),
+    iLogoDownloadState(EIdle),    
+    iSongName(NULL),
+    iArtistName(NULL),
+    iStationName(NULL),
     iStationLogo(NULL),
-    iStereoMode(0),
-    iShowStationInfo(FALSE),
-    iLogoStatus(EDefaultLogo),
+    iLogoNeedUpdate(true),    
     iFindinNmsAllowed(false),
     iSongNameAvailable(false)
+#ifdef ADV_ENABLED
+    ,iAdvImage(NULL)
+    ,iAdvImageNeedUpdate(true)
+    ,iAdvUrl(KDefaultAdvLink)    
+#endif
 {
-    // Create widget hierarchy
-    setObjectName(NOW_PLAYING_VIEW_OBJECT_NAME);
-
-    // List existing root elements - this allows us to refer to objects in the XML 
-    // which are created outside the document.
-    QObjectList roots;
-    roots.append(this); // IRNowPlayingView is referred in XML file
-    iLoader.setObjectTree(roots);
-
-    // Load XML file
-    iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME);
-
-    createMenu();
-    createToolBar();
     initialize();
-
-    connect(iPlayController, SIGNAL(metaDataAvailable(IRQMetaData*)), this, SLOT(updateSongInfo(IRQMetaData*)));
-    connect(iPlayController, SIGNAL(initializeLogo()), this, SLOT(initializeLogo()));
-    connect(iPlayController, SIGNAL(playingStarted()), this, SLOT(playingStarted()));
-    connect(iPlayController, SIGNAL(playingStopped()), this, SLOT(playingStopped()));
-
-    connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
-            this, SLOT(networkRequestNotified(IRQNetworkEvent)));
-    connect(iApplication->getMediaKeyObserver(), SIGNAL(playPausePressed()), 
-            this, SLOT(playPressed()));
-    connect(iApplication->getMediaKeyObserver(), SIGNAL(stopPressed()), 
-            this, SLOT(stop()));
-
-    // Initialize logo
-    QIcon icon(":/playback/default_cd.png");
-    iStationLogo = new HbIcon(icon);
-
-    // Initialize advertisement image
-    QIcon advIcon(":/playback/default_cd.jpg");
-    HbIcon advInitialImage(advIcon);
-    iStationExporter = new IRQStationExporter();
-    iNowPlayingContainer = new IRNowPlayingContainer(getViewManager());
-    connect(getViewManager(), SIGNAL(orientationChanged(Qt::Orientation)), 
-            iNowPlayingContainer, SLOT(orientationChanged(Qt::Orientation)));
-    connect(iNowPlayingContainer, SIGNAL(volumePressed()), 
-            iApplication->getMediaKeyObserver(), SLOT(showVolumeSlider()));
-    connect(iNowPlayingContainer, SIGNAL(advertisementPressed()), 
-                this, SLOT(openAdvLink()));
-    setWidget(iNowPlayingContainer);
-    iNowPlayingContainer->setLogo(*iStationLogo);
-    iNowPlayingContainer->setAdvImage(advInitialImage);
-
-    HbEffect::add("nowplaying", ":/effect/view_flip_hide.fxml", "hide");
-    HbEffect::add("nowplaying", ":/effect/view_flip_show.fxml", "show");
+    
+    //if this view is not starting view, finish all initialization in constructor
+    if (getViewManager()->views().count() > 0)
+    {
+        normalInit();
+    }
 }
 
 /*
@@ -127,37 +87,191 @@
  */
 IRNowPlayingView::~IRNowPlayingView()
 {
-    delete iIdleContainer;
-    iIdleContainer = NULL;
+    if(iNetworkController)
+    {
+        iNetworkController->closeInstance();
+    }
+    
+    if (iStatisticsReporter)
+    {
+        iStatisticsReporter->closeInstance();
+    }
+}
+
 
-    delete iStationExporter;
-    iStationExporter = NULL;
+/*
+ * Description: initializing.
+ */
+void IRNowPlayingView::initialize()
+{
+    setObjectName(NOW_PLAYING_VIEW_OBJECT_NAME);
+    QObjectList roots;
+    roots.append(this);
+    iLoader.setObjectTree(roots);
 
-    iNowPlayingContainer = NULL;
-    iStationDetailsContainer = NULL;
+    // Load XML file
+    iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME);
+    
+    initMenu();
+    initToolBar();
+    initWidget();    
+}
 
-    delete iLogoPreset;
-    iLogoPreset = NULL;
+/*
+ * Description : create menu for now playing view
+ */
+void IRNowPlayingView::initMenu()
+{
+#ifdef SONGRECOGNITION_ENABLED  
+    if(IRQUtility::identifySongAvailable())
+    {
+        LOG("Song Recognition is Available");
+        iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME, NOW_PLAYING_VIEW_SONG_RECOG_YES_SEC);
+    }
+    else
+    {
+        LOG("Song Recognition is NOT Available");
+        iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME, NOW_PLAYING_VIEW_SONG_RECOG_NO_SEC);
+    }
+#else
+    LOG("Song Recognition is Disabled");
+    iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME, NOW_PLAYING_VIEW_SONG_RECOG_NO_SEC);
+#endif    
+    HbAction *openWebAddressAction = qobject_cast<HbAction *> (iLoader.findObject(GO_TO_STATION_ACTION));
+    HbAction *shareStationAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_SHARE_STATION_ACTION));
+    HbAction *settings = qobject_cast<HbAction *> (iLoader.findObject(SETTINGS_ACTION));
+    HbAction *exitAction = qobject_cast<HbAction *> (iLoader.findObject(EXIT_ACTION));
+    HbAction *songRecAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_IDENTIFYSONG));
 
-    delete iStationLogo;
-    iStationLogo = NULL;
-    
-    HbEffect::remove("nowplaying", ":/playback/view_flip_hide.fxml", "hide");
-    HbEffect::remove("nowplaying", ":/playback/view_flip_show.fxml", "show");
+    connect(openWebAddressAction, SIGNAL(triggered()), this, SLOT(handleGoToStationAction()));
+    connect(shareStationAction, SIGNAL(triggered()), this, SLOT(handleShareStationAction()));
+    connect(settings, SIGNAL(triggered()), this, SLOT(handleSettingAction()));
+    connect(exitAction, SIGNAL(triggered()), iApplication, SIGNAL(quit()));  
+    connect(songRecAction, SIGNAL(triggered()), this, SLOT(handleIdentifySongAction()));    
 }
 
 /*
- * Description : from base class IRBaseView.
- *               handle system events reported by system event collector
- * Parameters  : aEvent : see the definiton of TIRSystemEventType.
- * Return      : EIR_DoDefault : caller does default handling
- *               EIR_NoDefault : caller doesn't do default handling
+ * Description : create tool bar for now playing view
+ */
+void IRNowPlayingView::initToolBar()
+{
+    HbAction *musicStoreAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_MUSICSTORE));
+    iPlayStopAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_PLAYSTOP));
+    HbAction *add2FavAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_ADDTOFAV));
+    HbAction *flipAction = qobject_cast<HbAction *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_FLIP));
+
+    connect(musicStoreAction, SIGNAL(triggered()), this, SLOT(handleMusicStoreAction()));
+    connect(iPlayStopAction, SIGNAL(triggered()), this, SLOT(handlePlayStopAction()));
+    connect(add2FavAction, SIGNAL(triggered()), this, SLOT(handleAddToFavAction()));
+    connect(flipAction, SIGNAL(triggered()), this, SLOT(handleDetailInfoAction()));
+}
+
+void IRNowPlayingView::initWidget()
+{
+    iStationLogo = qobject_cast<HbLabel *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_STATION_LOGO));
+    iSongName = qobject_cast<HbLabel *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_SONG_NAME));
+    iArtistName = qobject_cast<HbLabel *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_ARTIST_NAME));
+    iStationName = qobject_cast<HbLabel *> (iLoader.findObject(NOW_PLAYING_VIEW_OBJECT_STATION_NAME));   
+    iStationLogo->setIcon(HbIcon(KDefaultStationLogo));   
+    iStationName->setPlainText("");
+    iSongName->setPlainText("");
+    iArtistName->setPlainText("");    
+#ifdef ADV_ENABLED
+    iAdvImage = qobject_cast<HbLabel *> (iLoader.findObject( NOW_PLAYING_VIEW_OBJECT_ADVERTISEMENT_IMAGE));
+    iAdvImage->setIcon(HbIcon(KDefaultStationLogo));
+#endif    
+}
+
+/*
+ * Description : update station name and category according to the information in preset
+ */
+void IRNowPlayingView::updateWidgets()
+{
+    if(iPlayController->getNowPlayingPreset())
+    {
+        iStationName->setPlainText(iPlayController->getNowPlayingPreset()->name);
+    }
+}
+
+void IRNowPlayingView::updateMusicStoreStatus()
+{
+    IRQPreset *preset = iPlayController->getNowPlayingPreset();
+    if(preset && (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)))
+    {
+        iFindinNmsAllowed = true;
+    }
+    else
+    {
+        iFindinNmsAllowed = false;
+    }
+}
+
+
+/*
+ * Description : Update logo info
  */
-TIRHandleResult IRNowPlayingView::handleSystemEvent(TIRSystemEventType aEvent)
+void IRNowPlayingView::updateStationLogo()
+{    
+    if( !iLogoNeedUpdate
+        || iLogoDownloadState != EIdle )
+    {
+        return;
+    }
+    
+    if( !iNetworkController->getNetworkStatus() )
+    {
+        // when launch as starting view, reach here.
+        // but later, will be invoked again via handlePlayStarted()
+        return;
+    }    
+
+    IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
+    if( 1 == nowPlayingPreset->type )
+    {
+        // isds server channel
+        iLogoDownloadState = EDownloadLogo; 
+        iIsdsClient->isdsLogoDownSendRequest(nowPlayingPreset, 2, KNowPlayingLogoSize, KNowPlayingLogoSize);    
+    }
+    else
+    {
+        iLogoDownloadState = EIdle;
+        iLogoNeedUpdate = false; 
+#ifdef ADV_ENABLED        
+        iAdvImageNeedUpdate = false;  
+#endif             
+    }
+}
+
+#ifdef ADV_ENABLED
+/*
+ * Description : Update advertisement image
+ */
+void IRNowPlayingView::updateAdvImage()
 {
-    Q_UNUSED(aEvent);
-    return EIR_DoDefault;
+    if( !iAdvImageNeedUpdate
+        || iLogoDownloadState != EIdle )
+    {
+        return;
+    }
+
+    IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
+    if( (1 == nowPlayingPreset->type)  // isds server channel
+        && (nowPlayingPreset->advertisementInUse.size() > 0) )
+    {
+        IRQPreset advPreset;
+        advPreset.imgUrl = nowPlayingPreset->advertisementInUse;
+        advPreset.type = 1;
+        iLogoDownloadState = EDownLoadAdvImage;        
+        iIsdsClient->isdsLogoDownSendRequest(&advPreset);
+    }
+    else
+    {
+        iLogoNeedUpdate = false;
+        iAdvImageNeedUpdate = false;
+        iLogoDownloadState = EIdle;
+    }
 }
+#endif
 
 /*
  * Description : from base class IRBaseView.
@@ -168,26 +282,39 @@
  */
 TIRHandleResult IRNowPlayingView::handleCommand(TIRViewCommand aCommand, TIRViewCommandReason aReason)
 {
+    if (!initCompleted())
+    {
+        return EIR_NoDefault;
+    }
+    
     Q_UNUSED(aReason);
     TIRHandleResult ret = EIR_DoDefault;
 
     switch (aCommand)
     {
+    case EIR_ViewCommand_TOBEACTIVATED:       
+        handleOrientationChanged(getViewManager()->orientation());                 
+        updateMusicStoreStatus();
+        updateWidgets();
+        ret = EIR_NoDefault;
+        break;
+
     case EIR_ViewCommand_ACTIVATED:
         connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )),
-                this, SLOT(presetLogoDownload(IRQPreset* )));
-        showWidget();
+                this, SLOT(handleLogoDownloaded(IRQPreset* )));
+        updateStationLogo();
         break;
-
+        
     case EIR_ViewCommand_DEACTIVATE:
-        if (ERequestIssued == iLogoStatus)
+        if( iLogoDownloadState != EIdle )
         {
             // cancel downloading logo
             iIsdsClient->isdsLogoDownCancelTransaction();
-            iLogoStatus = EDefaultLogo;
-        }
+            iLogoDownloadState = EIdle;            
+        }        
         disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)),
-                   this, SLOT(presetLogoDownload(IRQPreset* )));
+                   this, SLOT(handleLogoDownloaded(IRQPreset* )));
+        ret = EIR_NoDefault;
         break;
     }
 
@@ -198,94 +325,340 @@
  * Description : actions when view is launched.
  */
 void IRNowPlayingView::launchAction()
+{      
+    setUseNetworkReason(EIR_UseNetwork_StartingView);
+    iApplication->verifyNetworkConnectivity();
+    getViewManager()->pushViewById(EIRView_MainView);
+    iLaunchActionNeeded = true;
+    updateForLauchAction();
+}
+
+void IRNowPlayingView::lazyInit()
 {
-    IRLastPlayedStationInfo *lastPlayedStationInfo =
-            iApplication->getLastPlayedStationInfo();
-    IRQPreset *preset = lastPlayedStationInfo->getLastPlayedStation();
-    if ( preset && (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)))
+    if (!initCompleted())
+    {       
+        normalInit();
+        
+        //initization from handleCommand()
+        handleCommand(EIR_ViewCommand_TOBEACTIVATED, EIR_ViewCommandReason_Show);
+        handleCommand(EIR_ViewCommand_ACTIVATED, EIR_ViewCommandReason_Show);
+    }
+}
+
+void IRNowPlayingView::normalInit()
+{
+    if (!initCompleted())
+    {
+        IRBaseView::lazyInit();
+        
+        iStatisticsReporter = IRQStatisticsReporter::openInstance();
+        iNetworkController = IRQNetworkController::openInstance();
+            
+        connect(iPlayController, SIGNAL(metaDataAvailable(IRQMetaData*)), this, SLOT(updateMetaData(IRQMetaData*)));
+        connect(iPlayController, SIGNAL(playingStarted()), this, SLOT(handlePlayStarted()));
+        connect(iPlayController, SIGNAL(playingStopped()), this, SLOT(handlePlayStopped()));
+
+        connect(iNetworkController, SIGNAL(networkRequestNotified(IRQNetworkEvent)),
+                this, SLOT(handleNetworkEvent(IRQNetworkEvent)));
+        connect(iApplication->getMediaKeyObserver(), SIGNAL(playPausePressed()), 
+                this, SLOT(handlePlayPauseMediaKey()));
+        connect(iApplication->getMediaKeyObserver(), SIGNAL(stopPressed()), 
+                this, SLOT(handleStopMediaKey()));
+        connect( getViewManager(), SIGNAL( orientationChanged(Qt::Orientation) ),
+                 this, SLOT( handleOrientationChanged(Qt::Orientation) ) );
+        
+        setInitCompleted(true);
+    }
+}
+
+void IRNowPlayingView::updateForLauchAction()
+{
+    //nowplaying view as starting view can have two cases : one is for last played station, the other is for 
+    //the only one item in play list file    
+    IRPlayList *playList = iApplication->getPlayList();
+    if (playList && 1 == playList->getNumberOfEntries())
+    {
+        IRQPreset *preset = playList->getPresetForEntry(0);
+        iStationName->setPlainText(preset->name);
+        iFindinNmsAllowed = (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive));
+        delete preset;
+    }
+    else
     {
-        iFindinNmsAllowed = true;        
+        IRLastPlayedStationInfo *lastPlayedStationInfo = iApplication->getLastPlayedStationInfo();
+        IRQPreset *lastPreset = lastPlayedStationInfo->getLastPlayedStation();
+        
+        if (lastPreset)
+        {
+            iStationName->setPlainText(lastPreset->name); 
+            iFindinNmsAllowed = (0 == lastPreset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)); 
+        }
+        else
+        {
+            iFindinNmsAllowed = false;
+        }
+    }
+}
+
+/********************************************************************************************************
+ * SLOTs for Logo Download
+ *******************************************************************************************************
+ */
+void IRNowPlayingView::handleLogoDownloaded(IRQPreset* aPreset)
+{
+    if( EIdle == iLogoDownloadState )
+    {        
+        return;
+    } 
+            
+    if( NULL == aPreset )
+    {        
+        if( EDownloadLogo == iLogoDownloadState )
+        {         
+            iLogoNeedUpdate = false;  
+#ifdef ADV_ENABLED
+            QTimer::singleShot(1, this, SLOT(updateAdvImage()));
+#endif            
+        }
+#ifdef ADV_ENABLED      
+        else if( EDownLoadAdvImage == iLogoDownloadState )
+        {
+            iAdvImageNeedUpdate = false;            
+        }
+#endif
+        iLogoDownloadState = EIdle;      
+        return;
+    }
+    
+ 
+    
+    const unsigned char * logoRawData = aPreset->logoData.Ptr();
+    QPixmap logoPixmap;
+    if( logoPixmap.loadFromData(logoRawData, aPreset->logoData.Length()) )
+    {
+        if( EDownloadLogo == iLogoDownloadState )
+        {
+            QPixmap newLogoPixmap = 
+                 logoPixmap.scaled(QSize(KNowPlayingLogoSize,KNowPlayingLogoSize),Qt::KeepAspectRatio);      
+            QIcon logoQIcon(newLogoPixmap);
+            HbIcon logoHbIcon(logoQIcon);
+            iStationLogo->setIcon(logoHbIcon);        
+            iLogoNeedUpdate = false;          
+#ifdef ADV_ENABLED
+            QTimer::singleShot(1, this, SLOT(updateAdvImage()));
+#endif
+        }
+#ifdef ADV_ENABLED      
+        else if( EDownLoadAdvImage == iLogoDownloadState )
+        {
+            QIcon logoQIcon(logoPixmap);
+            HbIcon logoHbIcon(logoQIcon);            
+            iAdvImage->setIcon(logoHbIcon); 
+            iAdvUrl = iPlayController->getNowPlayingPreset()->advertisementUrl;  
+            iAdvImageNeedUpdate = false;            
+        }
+#endif
     }
     else
     {
-        iFindinNmsAllowed = false;
+        if( EDownloadLogo == iLogoDownloadState )
+        {         
+            iLogoNeedUpdate = false;  
+#ifdef ADV_ENABLED
+            QTimer::singleShot(1, this, SLOT(updateAdvImage()));
+#endif            
+        }
+#ifdef ADV_ENABLED      
+        else if( EDownLoadAdvImage == iLogoDownloadState )
+        {
+            iAdvImageNeedUpdate = false;            
+        }
+#endif        
     }
-          
-    iShowStationInfo = true;
-    setUseNetworkReason(EIR_UseNetwork_StartingView);
-    iApplication->verifyNetworkConnectivity();
+
+    iLogoDownloadState = EIdle;      
+    
+    delete aPreset;
+    aPreset = NULL;
 }
 
-/*
- * Description : start to converter the downloaded logo.
+
+
+/********************************************************************************************************
+ * SLOT for Network Event
+ *******************************************************************************************************
  */
-void IRNowPlayingView::presetLogoDownload(IRQPreset* aPreset)
+void IRNowPlayingView::handleNetworkEvent(IRQNetworkEvent aEvent)
 {
-    if (NULL == aPreset)
-        return;
-
-    // Sometimes the logo downloaded by stationview will reach here because
-    // the isdsLogoDownCancelTransaction is delayed. So we judge the imageUrl here.
-    if (!iGettingAdv && (aPreset->imgUrl != iPlayController->getNowPlayingPreset()->imgUrl))
+    if( this != getViewManager()->currentView() )
     {
-        delete aPreset;
-        aPreset = NULL;
-        return;
-    }
- 
-    delete iLogoPreset;
-    iLogoPreset = aPreset;
-    
-    const unsigned char * logoData = iLogoPreset->logoData.Ptr();
-    QPixmap tempMap;
-    bool ret = tempMap.loadFromData(logoData, iLogoPreset->logoData.Length());
-    if( !ret )
-    {
-        if (iGettingAdv)
-        {
-            iGettingAdv = false;
-            QTimer::singleShot(1, this, SLOT(updateLogoInfo()));
-        }
-        else
-        {
-            iLogoStatus = ELogoDetermined;
-        }
         return;
     }
     
-    QIcon convertIcon(tempMap);
-    HbIcon hbIcon(convertIcon);   
-    
-    if (iGettingAdv)
+    switch(aEvent)
     {
-        iNowPlayingContainer->setAdvImage(hbIcon);
-        iAdvClickThroughUrl = iTempAdvClickThroughUrl;
-        iGettingAdv = false;
-        QTimer::singleShot(1, this, SLOT(updateLogoInfo()));
+    case EIRQNetworkConnectionEstablished:
+        {
+            iApplication->closeConnectingDialog();
+            if( EIR_UseNetwork_StartingView == getUseNetworkReason() )
+            {
+                IRPlayList *playList = iApplication->getPlayList();
+                if (playList && 1 == playList->getNumberOfEntries())
+                {
+                    IRQPreset *preset = playList->getPresetForEntry(0);
+                    iPlayController->connectToChannel(preset, EIRQAdhocExternal);
+                    delete preset;
+                }
+                else
+                {
+                    IRLastPlayedStationInfo *lastPlayedStationInfo = iApplication->getLastPlayedStationInfo();
+                    IRQPreset *lastPreset = lastPlayedStationInfo->getLastPlayedStation();
+                    if (lastPreset)
+                    {
+                        iPlayController->connectToChannel( lastPreset, lastPlayedStationInfo->connectedFrom() );
+                    }
+                }
+            }
+            else if( EIR_UseNetwork_PlayStation == getUseNetworkReason() )
+            {
+                handlePlayStopAction();
+            }
+            setUseNetworkReason(EIR_UseNetwork_NoReason);
+            break;
+        }
+        
+    case EIRQConnectingCancelled:
+    case EIRQDisplayNetworkMessageNoConnectivity:
+        {
+            IRQPreset *preset = iPlayController->getNowPlayingPreset();
+            if( NULL == preset || preset->name == "" )
+            {
+                getViewManager()->activateView(EIRView_MainView);
+            }
+        }
+        break;
+        
+    default:
+        break;
+    }
+}
+
+/********************************************************************************************************
+ * SLOT for Orientation Changed
+ *******************************************************************************************************
+ */
+
+void IRNowPlayingView::handleOrientationChanged(Qt::Orientation aOrientation)
+{
+    if (aOrientation == Qt::Vertical)
+    {
+        iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME, NOW_PLAYING_VIEW_PRT_SEC);
     }
     else
     {
-        *iStationLogo = hbIcon;
+        iLoader.load(NOW_PLAYING_VIEW_LAYOUT_FILENAME, NOW_PLAYING_VIEW_LSC_SEC);      
+    }
+}
 
-        // update the logo
-        iNowPlayingContainer->setLogo(hbIcon);
-        // temp solution, it will be deleted once there's adv info in preset
-        iNowPlayingContainer->setAdvImage(*iStationLogo);
+/********************************************************************************************************
+ * SLOT for Play Controller
+ *******************************************************************************************************
+ */
+void IRNowPlayingView::handlePlayStarted()
+{
+    if(iLaunchActionNeeded)
+    {
+        iLaunchActionNeeded = false;
+        updateStationLogo();
+    }
+    iPlayStopAction->setIcon(HbIcon(KStopButtonIcon));
+}
 
-        if (iStationDetailsContainer)
-        {
-            iStationDetailsContainer->setLogo(hbIcon);
-        }
-        iLogoStatus = ELogoDetermined;
-    } 
+void IRNowPlayingView::handlePlayStopped()
+{
+    iPlayStopAction->setIcon(HbIcon(KPlayButtonIcon));
+    iSongName->setPlainText("");
+    iArtistName->setPlainText("");
+    iSongNameAvailable = false;
+        
+    if( this != getViewManager()->currentView() )
+    {
+        iStationLogo->setIcon(HbIcon(KDefaultStationLogo));
+        iLogoNeedUpdate = true;
+#ifdef ADV_ENABLED
+        iAdvUrl = KDefaultAdvLink;
+        iAdvImage->setIcon(HbIcon(KDefaultStationLogo));
+        iAdvImageNeedUpdate = true;  
+#endif        
+    }
 }
 
-/*
- * Description: slot function for signal triggered() of iPlayStopAction and
- *              playStopPressed() of irmediakeyobserver.
- *              According to the playing state, play or stop.
+void IRNowPlayingView::updateMetaData(IRQMetaData* aMetaData)
+{
+    iSongNameAvailable = false;
+    if(aMetaData)
+    {
+        iSongName->setPlainText(aMetaData->getSongName());
+        iArtistName->setPlainText(aMetaData->getArtistName());
+        if(!aMetaData->getSongName().isEmpty() ||
+           !aMetaData->getArtistName().isEmpty())
+        {
+            iSongNameAvailable = true;
+        }
+    }
+    else
+    {
+        iSongName->setPlainText("");
+        iArtistName->setPlainText("");  
+    }
+}
+
+/********************************************************************************************************
+ * SLOT for Media Key
+ *******************************************************************************************************
  */
-void IRNowPlayingView::playStopControl()
+void IRNowPlayingView::handlePlayPauseMediaKey()
+{
+    iPlayController->resume();
+}
+
+void IRNowPlayingView::handleStopMediaKey()
+{
+    iPlayController->stop(EIRQUserTerminated);
+}
+
+/********************************************************************************************************
+ * SLOT for Toolbar Action
+ *******************************************************************************************************
+ */
+void IRNowPlayingView::handleMusicStoreAction()
+{
+    if(!iFindinNmsAllowed)
+    {
+        popupNote(hbTrId("txt_irad_info_disallowed_by_this_station"), HbMessageBox::MessageTypeInformation);
+        return;        
+    }
+    
+    if(!iSongNameAvailable)
+    {
+        popupNote(hbTrId("txt_irad_info_no_song_info"), HbMessageBox::MessageTypeInformation);
+        return;        
+    }
+    
+    // Need to log the find song in NMS event, iStatisticsReporter->logNmsEvent(IRQStatisticsReporter::EIRFind,channelId);   
+    popupNote(hbTrId("txt_irad_info_music_store_not_available"), HbMessageBox::MessageTypeInformation);
+}
+
+void IRNowPlayingView::handleIdentifySongAction()
+{
+    if(IRQUtility::openSongRecognition())
+    {
+        iStatisticsReporter->logSongRecogEvent();
+    }
+}
+
+
+void IRNowPlayingView::handlePlayStopAction()
 {
     setUseNetworkReason(EIR_UseNetwork_PlayStation);
     if (false == iApplication->verifyNetworkConnectivity())
@@ -304,61 +677,31 @@
     }
 }
 
-/*
- * Description: slot function for signal stopPressed() of irmediakeyobserver.
- */
-void IRNowPlayingView::stop()
-{
-    iPlayController->stop(EIRQUserTerminated);
-}
-
-/*
- * Description : update station info and now playing view
- */
-void IRNowPlayingView::playingStarted()
-{
-    if (iShowStationInfo)
-    {
-        updateSongInfo(iPlayController->getMetaData());
-        updateAdvImage();
-        updateStationInfo();
-        iShowStationInfo = false;
-    }
-    updateMusicStatus();
-    HbIcon icon(QString("qtg_mono_stop"));
-    iPlayStopAction->setIcon(icon);
-}
-
-/*
- * Description : update now playing view
- */
-void IRNowPlayingView::playingStopped()
-{
-    HbIcon icon(QString("qtg_mono_play"));
-    iPlayStopAction->setIcon(icon);
-}
-
-/*
- * Description: slot function for signal triggered() of iAdd2FavAction.
- *              add this preset to favorites
- */
-void IRNowPlayingView::add2FavControl()
+void IRNowPlayingView::handleAddToFavAction()
 {
     IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
     int retValue = iFavorites->addPreset(*nowPlayingPreset);
-    // show the information from favorites DB
+    HbNotificationDialog *add2FavNote = new HbNotificationDialog();
+    add2FavNote->setModal(true);
+    add2FavNote->setAttribute(Qt::WA_DeleteOnClose);
     switch (retValue)
     {
     case EIRQErrorNone:
-        popupNote(hbTrId("txt_irad_info_added_to_favorites"), HbMessageBox::MessageTypeInformation);
+        add2FavNote->setTitle(hbTrId("txt_irad_info_added_to_favorites"));
+        //add2FavNote->setIcon(HbIcon( QString("qtg_large_ok")));
+        add2FavNote->show();
         break;
 
     case EIRQErrorOutOfMemory:
-        popupNote(hbTrId("txt_irad_info_can_not_add_more"), HbMessageBox::MessageTypeInformation);
+        add2FavNote->setTitle(hbTrId("txt_irad_info_can_not_add_more"));
+        //add2FavNote->setIcon(HbIcon( QString("qtg_large_ok")));
+        add2FavNote->show();        
         break;
 
     case EIRQErrorAlreadyExist:
-        popupNote(hbTrId("txt_irad_info_favorite_updated"), HbMessageBox::MessageTypeInformation);
+        add2FavNote->setTitle(hbTrId("txt_irad_info_favorite_updated"));
+        //add2FavNote->setIcon(HbIcon( QString("qtg_large_ok")));
+        add2FavNote->show();           
         break;
 
     default:
@@ -367,514 +710,49 @@
     }
 }
 
-/*
- * Description: slot function for signal triggered() of flip action.
- *              change the container of now playing view.
- */
-void IRNowPlayingView::flipControl()
+void IRNowPlayingView::handleDetailInfoAction()
 {
-    // disconnect the signal to avoid users to click several times quickly.
-    iFlipAction->disconnect(SIGNAL(triggered()));
-    if (iIdleContainer == iStationDetailsContainer)
-    {
-        if (NULL == iStationDetailsContainer)
-        {
-            iStationDetailsContainer = new IRStationDetailsContainer(getViewManager());
-        }
-
-        IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-        iStationDetailsContainer->setDetails(nowPlayingPreset, *iStationLogo);
+    getViewManager()->activateView(EIRView_StationDetailsView);
+    IRStationDetailsView *channelHistoryView = static_cast<IRStationDetailsView*>(getViewManager()->getView(EIRView_StationDetailsView));
+    channelHistoryView->setDetails();
 
-        HbEffect::start(iNowPlayingContainer, "nowplaying", QString("hide"), this, "hidePlayingWidgetComplete");
-    }
-    else
-    {
-        HbEffect::start(iStationDetailsContainer, "nowplaying", QString("hide"), this, "hideDetailsWidgetComplete");
-    }
-}
-
-// ---------------------------------------------------------------------------
-// Slot: Handle animation completion on main widget
-// ---------------------------------------------------------------------------
-//
-void IRNowPlayingView::hidePlayingWidgetComplete(HbEffect::EffectStatus status)
-{
-    Q_UNUSED(status);
-    iIdleContainer = takeWidget();
-    setWidget(iStationDetailsContainer);
-    iFlipAction->setToolTip(hbTrId("txt_irad_tooltip_tiny_now_playing"));
-    HbEffect::start(iStationDetailsContainer, "nowplaying", QString("show"));
-
-    // reconnect the signal
-    iFlipAction->disconnect(SIGNAL(triggered()));
-    connect(iFlipAction, SIGNAL(triggered()), this, SLOT(flipControl()));
 }
 
-// ---------------------------------------------------------------------------
-// Slot: Handle animation completion on list widget
-// ---------------------------------------------------------------------------
-//
-void IRNowPlayingView::hideDetailsWidgetComplete(HbEffect::EffectStatus status)
-{
-    Q_UNUSED(status);
-    iIdleContainer = takeWidget();
-    setWidget(iNowPlayingContainer);
-    iFlipAction->setToolTip(hbTrId("txt_irad_tooltip_tiny_details"));
-    HbEffect::start(iNowPlayingContainer, "nowplaying", QString("show"));
-
-    // reconnect the signal
-    iFlipAction->disconnect(SIGNAL(triggered()));
-    connect(iFlipAction, SIGNAL(triggered()), this, SLOT(flipControl()));
-}
-
-/*
- * Description: slot function for signal triggered() of iStereoAction.
- *              According to the stereo state.
+/********************************************************************************************************
+ * SLOT for Menu Action
+ *******************************************************************************************************
  */
-void IRNowPlayingView::stereoControl()
-{
-    if (iStereoMode)
-    {
-        iPlayController->disableStereo();
-        iStereoAction->setText(hbTrId("txt_irad_opt_activate_stereo"));
-        iStereoMode = 0;
-    }
-    else
-    {
-        iPlayController->enableStereo();
-        iStereoAction->setText(hbTrId("txt_irad_opt_deactivate_stereo"));
-        iStereoMode = 1;
-    }
-
-    iApplication->getSettings()->setStereoMode(iStereoMode);
-}
-
-/*
- * Description: active open web address view
- */
-void IRNowPlayingView::openWebAddressControl()
+void IRNowPlayingView::handleGoToStationAction()
 {
     getViewManager()->activateView(EIRView_OpenWebAddressView);
 }
 
-/*
- * Description: active settings view
- */
-void IRNowPlayingView::launchSettingsView()
+void IRNowPlayingView::handleShareStationAction()
+{
+    IRStationShare stationShare;
+    stationShare.shareStations(*iPlayController->getNowPlayingPreset());
+}
+
+void IRNowPlayingView::handleSettingAction()
 {
     getViewManager()->activateView(EIRView_SettingsView);
 }
 
-/*
- * Description : slot function for signal metaDataAvailable(IRQMetaData*) of play controller.
- *               If metadata is available, update the text
- */
-void IRNowPlayingView::updateSongInfo(IRQMetaData* aMetaData)
-{
-#ifdef _DEBUG
-    if (iApplication->iTestPreferredBitrate)
-    {
-        IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-        QList<int> bitRateList;
-        bitRateList.clear();
-        nowPlayingPreset->getAvailableBitrates(bitRateList);
-        QString songName;
-        QString bitrate;
-        for(int i=0; i<bitRateList.count(); i++)
-        {
-            songName = songName + bitrate.setNum(bitRateList[i]) + " : ";
-        }
-        songName = songName + " = " + bitrate.setNum(iPlayController->bitrateTrying());
-        iNowPlayingContainer->setSongName(songName);
-        return;
-    }
-#endif
-    iSongNameAvailable = false;
-    if (aMetaData)
-    {
-        iNowPlayingContainer->setSongName(aMetaData->getArtistSongName());
-        if(!aMetaData->getSongName().isEmpty() ||
-           !aMetaData->getArtistName().isEmpty())
-        {
-            iSongNameAvailable = true;
-        }
-    }
-    else
-    {
-        iNowPlayingContainer->setSongName("");
-    }
-    
-    if(iFindinNmsAllowed && iSongNameAvailable)
-    {
-        iMusicShopAction->setIcon(HbIcon(":/playback/icon_musicshop_enable.png"));
-    }
-    else
-    {
-        iMusicShopAction->setIcon(HbIcon(":/playback/icon_musicshop_disable.png"));
-    }    
-}
-
-// ---------------------------------------------------------------------------
-// IRNowPlayingView::initializeLogo()
-// Initialize the logo
-//---------------------------------------------------------------------------
-void IRNowPlayingView::initializeLogo()
-{
-    QIcon icon(":/playback/default_cd.png");
-    HbIcon hbIcon(icon);
-    *iStationLogo = hbIcon;
-    iLogoStatus = EDefaultLogo;
-
-    // While starting to play a new station, the container should be NowPlayingContainer
-    if (iStationDetailsContainer == widget())
-    {
-        flipControl();
-    }
-}
-
-/*
- * Description : slot function for active network event
- * Parameters  : aEvent, see the definition of IRQNetworkEvent
- */
-void IRNowPlayingView::networkRequestNotified(IRQNetworkEvent aEvent)
-{
-    //when we get here, it means that current view is the first view 
-    if (getViewManager()->currentView() != this)
-    {
-        return;
-    }
-    
-    switch (aEvent)
-    {
-    case EIRQNetworkConnectionEstablished:
-        iApplication->closeConnectingDialog();
-        if (EIR_UseNetwork_StartingView == getUseNetworkReason())
-        {
-            IRLastPlayedStationInfo *lastPlayedStationInfo =
-                    iApplication->getLastPlayedStationInfo();
-            IRQPreset *preset = lastPlayedStationInfo->getLastPlayedStation();
-            if (preset)
-            {
-                iPlayController->connectToChannel(preset,lastPlayedStationInfo->connectedFrom());
-            }
-        }
-        else if (EIR_UseNetwork_PlayStation == getUseNetworkReason())
-        {
-            playStopControl();
-        }
-
-        setUseNetworkReason(EIR_UseNetwork_NoReason);
-        
-        break;
-        
-    case EIRQConnectingCancelled:
-    case EIRQDisplayNetworkMessageNoConnectivity:
-        {
-            IRQPreset *preset = iPlayController->getNowPlayingPreset();
-            //if IRPlayController::connectToChannel(IRQPreset*) hasn't been called, back to main view.
-            //otherwise stay in nowplaying view.
-            if (NULL == preset || preset->name == "")
-            {
-                getViewManager()->activateView(EIRView_MainView);
-            }
-        }
-        break;
-        
-    default:
-        break;
-    }
-}
-
-//                                       private functions
-
-/*
- * Description : create menu for now playing view
- */
-void IRNowPlayingView::createMenu()
-{
-    iStereoAction = qobject_cast<HbAction *> (iLoader.findObject("activateStereo"));
-    iStereoMode = iApplication->getSettings()->getStereoMode();
-    if (iStereoMode == 1)
-    {
-        iStereoAction->setText(hbTrId("txt_irad_opt_deactivate_stereo"));
-    }
-    HbAction *openWebAddressAction = qobject_cast<HbAction *> (iLoader.findObject("openWebAddressAction"));
-    HbAction *shareStationAction = qobject_cast<HbAction *> (iLoader.findObject("shareStationAction"));
-    HbAction *songRecAction = qobject_cast<HbAction *> (iLoader.findObject("songRecAction"));
-    HbAction *gotoMusicStoreAction = qobject_cast<HbAction *> (iLoader.findObject("gotoMusicStoreAction"));
-    HbAction *settings = qobject_cast<HbAction *> (iLoader.findObject("settings"));
-    HbAction *helpAction = qobject_cast<HbAction *> (iLoader.findObject("help"));
-    HbAction *exitAction = qobject_cast<HbAction *> (iLoader.findObject("exit"));
-
-    connect(iStereoAction, SIGNAL(triggered()), this, SLOT(stereoControl()));
-    connect(openWebAddressAction, SIGNAL(triggered()), this, SLOT(openWebAddressControl()));
-    connect(shareStationAction, SIGNAL(triggered()), this, SLOT(shareStationViaMms()));
-    connect(songRecAction, SIGNAL(triggered()), this, SLOT(recognizeSong()));
-    connect(gotoMusicStoreAction, SIGNAL(triggered()), this, SLOT(gotoMusicStore()));
-    connect(settings, SIGNAL(triggered()), this, SLOT(launchSettingsView()));
-    connect(helpAction, SIGNAL(triggered()), this, SLOT(helpAction()));
-    connect(exitAction, SIGNAL(triggered()), iApplication, SIGNAL(quit()));
-
-    HbMenu *viewMenu = menu();
-    connect(viewMenu, SIGNAL(aboutToShow()), this, SLOT(prepareMenu()));    
-}
-
-/*
- * Description : create tool bar for now playing view
- */
-void IRNowPlayingView::createToolBar()
-{
-    iMusicShopAction = qobject_cast<HbAction *> (iLoader.findObject("musicShop"));
-    iPlayStopAction = qobject_cast<HbAction *> (iLoader.findObject("playStop"));
-    iAdd2FavAction = qobject_cast<HbAction *> (iLoader.findObject("addToFav"));
-    iFlipAction = qobject_cast<HbAction *> (iLoader.findObject("flip"));
-
-    iMusicShopAction->setAutoRepeat(false);
-    iPlayStopAction->setAutoRepeat(false);
-    iAdd2FavAction->setAutoRepeat(false);
-    iFlipAction->setAutoRepeat(false);
-    connect(iMusicShopAction, SIGNAL(triggered()), this, SLOT(findInMusicShop()));
-    connect(iPlayStopAction, SIGNAL(triggered()), this, SLOT(playStopControl()));
-    connect(iAdd2FavAction, SIGNAL(triggered()), this, SLOT(add2FavControl()));
-    connect(iFlipAction, SIGNAL(triggered()), this, SLOT(flipControl()));
-}
-
-/*
- * Description : update station name and category according to the information in preset
- */
-void IRNowPlayingView::updateStationInfo()
-{
-    IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-    const QString &stationName = nowPlayingPreset->name;
-    iNowPlayingContainer->setStationName(stationName);
-
-    QString category = nowPlayingPreset->genreName + " / "
-            + nowPlayingPreset->countryName + " / "
-            + nowPlayingPreset->languageName;
-    if (" /  / " == category)
-    {
-        category = "";
-    }
-    iNowPlayingContainer->setCategory(category);
-}
-
-/*
- * Description : Update advertisement image
- */
-void IRNowPlayingView::updateAdvImage()
+#ifdef ADV_ENABLED
+void IRNowPlayingView::mousePressEvent(QGraphicsSceneMouseEvent *aEvent)
 {
-    // TODO: in the future, it should judge the change of advertisement url
-    if (ELogoDetermined == iLogoStatus || ERequestIssued == iLogoStatus)
-    {
-        return;
-    }
-
-    IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-
-    // TODO: initialize adv, in the future it will use default adv image
-    QIcon icon(":/playback/default_cd.png");
-    HbIcon hbIcon(icon);
-    iNowPlayingContainer->setAdvImage(hbIcon);
-
-    if (nowPlayingPreset->type)
-    {
-        // isds server channel
-        // TODO: it should use adv in preset, now the variants is not clear
-        if (nowPlayingPreset->advertisementInUse.size() > 0
-                && iAdvImageUrl != nowPlayingPreset->advertisementInUse)
-        {
-            iAdvImageUrl = nowPlayingPreset->advertisementInUse;
-            iTempAdvClickThroughUrl = nowPlayingPreset->advertisementUrl;
-            IRQPreset advPreset;
-            advPreset.imgUrl = iAdvImageUrl;
-            advPreset.type = 1;
-            iGettingAdv = true;
-            iIsdsClient->isdsLogoDownSendRequest(&advPreset);
-        }
-        else
-        {
-            updateLogoInfo();
-        }
-    }
-    else
-    {
-        updateLogoInfo();
-    }
-}
-
-/*
- * Description : Update logo info
- */
-void IRNowPlayingView::updateLogoInfo()
-{
-    if (ELogoDetermined == iLogoStatus || ERequestIssued == iLogoStatus
-            || iGettingAdv)
-    {
-        return;
-    }
-
-    IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-
-    iNowPlayingContainer->setLogo(*iStationLogo);
-    if (nowPlayingPreset->type)
-    {
-        // isds server channel
-        iLogoStatus = ERequestIssued;
-        iIsdsClient->isdsLogoDownSendRequest(nowPlayingPreset, 2, KNowPlayingLogoSize, KNowPlayingLogoSize);
-    }
-    else
-    {
-        // users defined channel
-        if (iStationDetailsContainer)
-        {
-            iStationDetailsContainer->setLogo(*iStationLogo);
-        }
-        iLogoStatus = ELogoDetermined;
-    }
-}
-
-/*
- * Description: show container
- */
-void IRNowPlayingView::showWidget()
-{
-    if (iStationDetailsContainer)
+    QRectF advRect = iAdvImage->geometry();
+    QPointF pos = aEvent->pos();
+    
+    if (advRect.contains(pos))
     {
-        IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset();
-        iStationDetailsContainer->setDetails(nowPlayingPreset, *iStationLogo);
-    }
-
-    updateMusicStatus();
-    updateStationInfo();
-    updateSongInfo(iPlayController->getMetaData());
-    updateAdvImage();
-}
-
-/*
- * Description: initializing.
- */
-void IRNowPlayingView::initialize()
-{
-    iMusicShop = iApplication->getMusicShop();
-    iStatisticsReporter = iApplication->getStatisticsReporter();
-}
-
-
-
-/*
-* Description : slot function for music shop button in toolbar
-*/
-void IRNowPlayingView::findInMusicShop()
-{
-    if(!iFindinNmsAllowed)
-    {
-        popupNote(hbTrId("txt_irad_info_disallowed_by_this_station"), HbMessageBox::MessageTypeInformation);
-        return;        
-    }
-    
-    if(!iSongNameAvailable)
-    {
-        popupNote(hbTrId("txt_irad_info_no_song_info"), HbMessageBox::MessageTypeInformation);
-        return;        
-    }
-        
-    if(NULL == iMusicShop)
-    {
-        popupNote(hbTrId("txt_irad_info_music_shop_not_available"), HbMessageBox::MessageTypeInformation);
-        return;
-    }
-    
-    IRQMetaData *metaData = iPlayController->getMetaData();
-    if( iMusicShop->findInMusicShop(metaData->getSongName(), metaData->getArtistName()))
-    {
-        if(iStatisticsReporter)
-        {
-            int channelId = iPlayController->getNowPlayingPreset()->presetId;
-            iStatisticsReporter->logNmsEvent(EIRQFind,channelId);
-        }
-    }
-    else
-    {
-        popupNote(hbTrId("txt_irad_info_music_shop_not_available"), HbMessageBox::MessageTypeInformation);
-    }
-}
-
-void IRNowPlayingView::helpAction()
-{
-    popupNote(hbTrId("Not Ready"), HbMessageBox::MessageTypeInformation);
-}
-
-void IRNowPlayingView::playPressed()
-{
-    if (getViewManager()->currentView() == this)
-    {
-        iPlayController->resume();
-    }
-}
-
-void IRNowPlayingView::gotoMusicStore()
-{
-    if(IRQMusicShop::launchMusicShop())
-    {
-        if(iStatisticsReporter)
-        {
-            int channelId = 0;
-            if(iPlayController)
-            {
-                IRQPreset *preset = iPlayController->getNowPlayingPreset();
-                if(preset)
-                {
-                    channelId = preset->presetId;
-                }	      
-            }            
-            iStatisticsReporter->logNmsEvent(EIRQLaunch,channelId);
-        }        
-    }
-    else
-    {
-        popupNote(hbTrId("txt_irad_info_music_shop_not_available"), HbMessageBox::MessageTypeInformation);
-    }
-}
-
-void IRNowPlayingView::updateMusicStatus()
-{
-    IRQPreset *preset = iPlayController->getNowPlayingPreset();
-    if(preset && (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive)))
-    {
-        iFindinNmsAllowed = true;
-    }
-    else
-    {
-        iFindinNmsAllowed = false;
-    }
-}
-
-void IRNowPlayingView::recognizeSong()
-{
-    if(IRQMusicShop::launchShazam())
-    {
-        if(iStatisticsReporter)
-        {           
-            iStatisticsReporter->logSongRecogEvent();    
-        }   
-    }
-    else
-    {
-        popupNote(hbTrId("txt_irad_info_song_recognition_not_available"), HbMessageBox::MessageTypeInformation);
+        openAdvLink();
     }
 }
 
 void IRNowPlayingView::openAdvLink()
 {
-    IRQUtility::openAdvLink(iAdvClickThroughUrl);
-}
-void IRNowPlayingView::shareStationViaMms()
-{
-    popupNote(hbTrId("Not Ready"), HbMessageBox::MessageTypeInformation);
+    IRQUtility::openAdvLink(iAdvUrl);
 }
+#endif
 
-void IRNowPlayingView::prepareMenu()
-{
-    HbAction *songRecAction = qobject_cast<HbAction *> (iLoader.findObject("songRecAction"));
-    songRecAction->setEnabled(iPlayController->isPlaying());
-}