diff -r 000000000000 -r 09774dfdd46b qtinternetradio/ui/src/irnowplayingview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/src/irnowplayingview.cpp Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,880 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#include +#include +#include +#include +#include + +#include "irabstractviewmanager.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" + +// Const +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 + +/* + * 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), + iPlayStopAction(NULL), + iAdd2FavAction(NULL), + iAdvClickThroughUrl(KDefaultAdvertisementLink), + iGettingAdv(false), + iStationLogo(NULL), + iStereoMode(0), + iShowStationInfo(FALSE), + iLogoStatus(EDefaultLogo), + iFindinNmsAllowed(false), + iSongNameAvailable(false) +{ + // 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"); +} + +/* + * Description : destructor + */ +IRNowPlayingView::~IRNowPlayingView() +{ + delete iIdleContainer; + iIdleContainer = NULL; + + delete iStationExporter; + iStationExporter = NULL; + + iNowPlayingContainer = NULL; + iStationDetailsContainer = NULL; + + delete iLogoPreset; + iLogoPreset = NULL; + + delete iStationLogo; + iStationLogo = NULL; + + HbEffect::remove("nowplaying", ":/playback/view_flip_hide.fxml", "hide"); + HbEffect::remove("nowplaying", ":/playback/view_flip_show.fxml", "show"); +} + +/* + * 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 + */ +TIRHandleResult IRNowPlayingView::handleSystemEvent(TIRSystemEventType aEvent) +{ + Q_UNUSED(aEvent); + return EIR_DoDefault; +} + +/* + * Description : from base class IRBaseView. + * handle view commands. + * Parameters : aCommand : see the definition of TIRViewCommand + * Return : EIR_DoDefault : caller does default handling + * EIR_NoDefault : caller doesn't do default handling + */ +TIRHandleResult IRNowPlayingView::handleCommand(TIRViewCommand aCommand, TIRViewCommandReason aReason) +{ + Q_UNUSED(aReason); + TIRHandleResult ret = EIR_DoDefault; + + switch (aCommand) + { + case EIR_ViewCommand_ACTIVATED: + connect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset* )), + this, SLOT(presetLogoDownload(IRQPreset* ))); + showWidget(); + break; + + case EIR_ViewCommand_DEACTIVATE: + if (ERequestIssued == iLogoStatus) + { + // cancel downloading logo + iIsdsClient->isdsLogoDownCancelTransaction(); + iLogoStatus = EDefaultLogo; + } + disconnect(iIsdsClient, SIGNAL(presetLogoDownloaded(IRQPreset*)), + this, SLOT(presetLogoDownload(IRQPreset* ))); + break; + } + + return ret; +} + +/* + * Description : actions when view is launched. + */ +void IRNowPlayingView::launchAction() +{ + IRLastPlayedStationInfo *lastPlayedStationInfo = + iApplication->getLastPlayedStationInfo(); + IRQPreset *preset = lastPlayedStationInfo->getLastPlayedStation(); + if ( preset && (0 == preset->musicStoreStatus.compare("yes",Qt::CaseInsensitive))) + { + iFindinNmsAllowed = true; + } + else + { + iFindinNmsAllowed = false; + } + + iShowStationInfo = true; + setUseNetworkReason(EIR_UseNetwork_StartingView); + iApplication->verifyNetworkConnectivity(); +} + +/* + * Description : start to converter the downloaded logo. + */ +void IRNowPlayingView::presetLogoDownload(IRQPreset* aPreset) +{ + 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)) + { + 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) + { + iNowPlayingContainer->setAdvImage(hbIcon); + iAdvClickThroughUrl = iTempAdvClickThroughUrl; + iGettingAdv = false; + QTimer::singleShot(1, this, SLOT(updateLogoInfo())); + } + else + { + *iStationLogo = hbIcon; + + // update the logo + iNowPlayingContainer->setLogo(hbIcon); + // temp solution, it will be deleted once there's adv info in preset + iNowPlayingContainer->setAdvImage(*iStationLogo); + + if (iStationDetailsContainer) + { + iStationDetailsContainer->setLogo(hbIcon); + } + iLogoStatus = ELogoDetermined; + } +} + +/* + * Description: slot function for signal triggered() of iPlayStopAction and + * playStopPressed() of irmediakeyobserver. + * According to the playing state, play or stop. + */ +void IRNowPlayingView::playStopControl() +{ + setUseNetworkReason(EIR_UseNetwork_PlayStation); + if (false == iApplication->verifyNetworkConnectivity()) + { + return; + } + setUseNetworkReason(EIR_UseNetwork_NoReason); + + if (iPlayController->isPlaying()) + { + iPlayController->stop(EIRQUserTerminated); + } + else + { + iPlayController->resume(); + } +} + +/* + * 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() +{ + IRQPreset *nowPlayingPreset = iPlayController->getNowPlayingPreset(); + int retValue = iFavorites->addPreset(*nowPlayingPreset); + // show the information from favorites DB + switch (retValue) + { + case EIRQErrorNone: + popupNote(hbTrId("txt_irad_info_added_to_favorites"), HbMessageBox::MessageTypeInformation); + break; + + case EIRQErrorOutOfMemory: + popupNote(hbTrId("txt_irad_info_can_not_add_more"), HbMessageBox::MessageTypeInformation); + break; + + case EIRQErrorAlreadyExist: + popupNote(hbTrId("txt_irad_info_favorite_updated"), HbMessageBox::MessageTypeInformation); + break; + + default: + Q_ASSERT(false); + break; + } +} + +/* + * Description: slot function for signal triggered() of flip action. + * change the container of now playing view. + */ +void IRNowPlayingView::flipControl() +{ + // 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); + + 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. + */ +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() +{ + getViewManager()->activateView(EIRView_OpenWebAddressView); +} + +/* + * Description: active settings view + */ +void IRNowPlayingView::launchSettingsView() +{ + 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 bitRateList; + bitRateList.clear(); + nowPlayingPreset->getAvailableBitrates(bitRateList); + QString songName; + QString bitrate; + for(int i=0; isetIcon(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 (iLoader.findObject("activateStereo")); + iStereoMode = iApplication->getSettings()->getStereoMode(); + if (iStereoMode == 1) + { + iStereoAction->setText(hbTrId("txt_irad_opt_deactivate_stereo")); + } + HbAction *openWebAddressAction = qobject_cast (iLoader.findObject("openWebAddressAction")); + HbAction *shareStationAction = qobject_cast (iLoader.findObject("shareStationAction")); + HbAction *songRecAction = qobject_cast (iLoader.findObject("songRecAction")); + HbAction *gotoMusicStoreAction = qobject_cast (iLoader.findObject("gotoMusicStoreAction")); + HbAction *settings = qobject_cast (iLoader.findObject("settings")); + HbAction *helpAction = qobject_cast (iLoader.findObject("help")); + HbAction *exitAction = qobject_cast (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 (iLoader.findObject("musicShop")); + iPlayStopAction = qobject_cast (iLoader.findObject("playStop")); + iAdd2FavAction = qobject_cast (iLoader.findObject("addToFav")); + iFlipAction = qobject_cast (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() +{ + // 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) + { + 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); + } +} + +void IRNowPlayingView::openAdvLink() +{ + IRQUtility::openAdvLink(iAdvClickThroughUrl); +} +void IRNowPlayingView::shareStationViaMms() +{ + popupNote(hbTrId("Not Ready"), HbMessageBox::MessageTypeInformation); +} + +void IRNowPlayingView::prepareMenu() +{ + HbAction *songRecAction = qobject_cast (iLoader.findObject("songRecAction")); + songRecAction->setEnabled(iPlayController->isPlaying()); +}