diff -r cce62ebc198e -r 93c594350b9a radioapp/radioapplication/src/radioapplication.cpp --- a/radioapp/radioapplication/src/radioapplication.cpp Tue Aug 31 15:15:02 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* -* 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: -* -*/ - -// System includes -#include -#include -#include -#include -#include -#include - -// User includes -#include "radioapplication.h" -#include "radiowindow.h" -#include "radiouiengine.h" -#include "radio_global.h" -#include "radiologger.h" - -#ifdef BUILD_WIN32 -# include "testwindow_win32.h" -# define CREATE_WIN32_TEST_WINDOW \ - mWin32Window.reset( new Win32Window() ); \ - mMainWindow->setParent( mWin32Window.data() ); \ - mWin32Window->addHbWindow( mMainWindow.data() ); \ - mWin32Window->show(); -# define INIT_WIN32_TEST_WINDOW \ - mWin32Window->init(); -#else -# define CREATE_WIN32_TEST_WINDOW -# define INIT_WIN32_TEST_WINDOW -#endif // BUILD_WIN32 - - -static XQSettingsKey gConnectionKey( XQSettingsKey::TargetCentralRepository, CENREP_CORE_APPLICATION_UIS, ID_NETWORK_CONNECTION_ALLOWED ); - -/*! - * Constructor - */ -RadioApplication::RadioApplication( int &argc, char *argv[] ) : - HbApplication( argc, argv, Hb::NoSplash ), - mSettingsManager( new XQSettingsManager( this ) ) -{ - // Initializes the radio engine utils if UI logs are entered into the engine log - INIT_COMBINED_LOGGER - - LOG_TIMESTAMP( "Start radio" ); - setApplicationName( hbTrId( "txt_rad_title_fm_radio" ) ); - - if ( XQServiceUtil::isService() ) { - - // Radio was started as a highway service from homescreen widget. - // Widget has already done the offline mode check so we can start without checking - init(); - - } else { - - if ( isInOfflineMode() ) { - askOfflineModePermission( hbTrId( "txt_rad_info_activate_radio_in_offline_mode" ) ); - } else { - init(); - } - - } -} - -/*! - * - */ -RadioApplication::~RadioApplication() -{ - // Destructor needs to be defined. See explanation from RadioEngineWrapperPrivate destructor. - // Releases the radio engine utils if it was initialized in the beginning - RELEASE_COMBINED_LOGGER -} - -/*! - * Private slot - * - */ -void RadioApplication::checkOfflineMode() -{ - if ( isInOfflineMode() ) { - askOfflineModePermission( hbTrId( "txt_rad_info_continue_using_the_radio_in_offline" ) ); - } -} - -/*! - * Private slot - * - */ -void RadioApplication::handleOfflineQueryAnswer() -{ - HbDeviceMessageBox* box = static_cast( sender() ); - box->deleteLater(); - if ( box->isAcceptAction( box->triggeredAction() ) ) { - - // If main window has not been created yet it means the offline question was asked during startup - // so we must continue with the startup sequence. If the main window was already created it means - // the question was asked when the radio was already running and the offline mode was activated. - // In that case there is no need to do anything since the user wants to continue listening to radio. - if ( !mMainWindow ) { - init(); - } - - } else { - quit(); - } -} - -/*! - * - */ -void RadioApplication::init() -{ - // Try to optimize startup time by launching the radio server process as soon as possible. - // This way the server and UI are being initialized at the same time and the startup is faster. -// RadioUiEngine::launchRadioServer(); - - // Splash screen needs to be shown when not started by homescreen widget - if ( !XQServiceUtil::isService() ) { - HbSplashScreen::setAppId( "0x2002FF4E" ); - HbSplashScreen::start(); - } - - Radio::connect( mSettingsManager, SIGNAL(valueChanged(XQSettingsKey,QVariant)), - this, SLOT(checkOfflineMode()) ); - - bool monitoringStarted = mSettingsManager->startMonitoring( gConnectionKey ); - LOG_ASSERT( monitoringStarted, LOG( "Failed to start monitoring Offline mode!" ) ); - Q_UNUSED( monitoringStarted ); - - mMainWindow.reset( new RadioWindow() ); - - CREATE_WIN32_TEST_WINDOW - - INIT_WIN32_TEST_WINDOW - - // Construct the real views - mMainWindow->init(); - - mMainWindow->show(); -} - -/*! - * - */ -bool RadioApplication::isInOfflineMode() const -{ - const QVariant connectionAllowed = mSettingsManager->readItemValue( gConnectionKey ); - if ( connectionAllowed.canConvert( QVariant::Int ) && connectionAllowed.toInt() == NetworkNotAllowed ) { - return true; - } - - return false; -} - -/*! - * - */ -void RadioApplication::askOfflineModePermission( const QString& question ) -{ - HbDeviceMessageBox* box = new HbDeviceMessageBox( question, HbMessageBox::MessageTypeQuestion, this ); - box->setStandardButtons( HbMessageBox::Yes | HbMessageBox::No ); - box->setTimeout( HbPopup::NoTimeout ); - box->setDismissPolicy( HbPopup::NoDismiss ); - Radio::connect( box, SIGNAL(aboutToClose()), - this, SLOT(handleOfflineQueryAnswer()) ); - box->show(); -}