diff -r b183ec05bd8c -r 19bba8228ff0 fotaapplication/fotaserver/FotaServer/src/FotaSrvApp.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fotaapplication/fotaserver/FotaServer/src/FotaSrvApp.cpp Wed Sep 01 12:27:42 2010 +0100 @@ -0,0 +1,196 @@ +/* +* Copyright (c) 2005 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: Methods for CFotaSrvApp +* +*/ + + + +// INCLUDE FILES +#include +#include +#include "FotaSrvApp.h" +#include "FotaSrvDocument.h" +#include "FotaSrvDebug.h" +#include "FotaServer.h" +#include "fotaserverPrivatePSKeys.h" +#include + +// --------------------------------------------------------------------------- +// CFotaSrvApp::CFotaSrvApp +// --------------------------------------------------------------------------- +CFotaSrvApp::CFotaSrvApp() : iFotaServer(0), iDocument(0) + { + } + +// --------------------------------------------------------------------------- +// CFotaSrvApp::AppDllUid() +// Returns application UID +// --------------------------------------------------------------------------- +// +TUid CFotaSrvApp::AppDllUid() const + { + TUid fotauid; + fotauid.iUid = KFotaServerUid; + return fotauid; + } + +// -------------------------------------------------------------------------- +// CFotaSrvApp::SetUIVisibleL +// Turns UI visible or hidden +// -------------------------------------------------------------------------- +// +void CFotaSrvApp::SetUIVisibleL( const TBool aVisible, const TBool aAlsoFSW ) + { + CFotaSrvUi* ui = (CFotaSrvUi*)iDocument->AppUi(); //CFotaSrvUi + + FLOG(_L("[CFotaSrvApp] CFotaSrvApp::SetUIVisibleL %d alsoFSW:%d") + ,aVisible?1:0,aAlsoFSW?1:0); + CCoeEnv* coe = CCoeEnv::Static(); + + TApaTask task = TApaTask(coe->WsSession()); + + task.SetWgId(coe->RootWin().Identifier()); + + if ( aVisible ) + { + //Launch DM UI Application + TApaTaskList taskList(coe->WsSession()); + TApaTask task1(taskList.FindApp( TUid::Uid(KOmaDMAppUid))); + FLOG(_L("Checking whether DM UI is running...")); + TInt value (EFotaUpdateDM); + if (task1.Exists()) + { + FLOG(_L("Bring DM UI into FG")); + task1.BringToForeground(); //DM UI + } + else + { +TInt err = RProperty::Get( KPSUidNSmlDMSyncApp, KNSmlCurrentFotaUpdateAppName, value ); + + if (value != EFotaUpdateNSC && value != EFotaUpdateNSCBg ) + { + FLOG(_L("Launching DM UI into FG")); + RApaLsSession apaLsSession; + User::LeaveIfError(apaLsSession.Connect()); + TThreadId thread; + User::LeaveIfError( apaLsSession.StartDocument(KNullDesC, TUid::Uid( KOmaDMAppUid), thread) ); + apaLsSession.Close(); + } + } + if(value == EFotaUpdateDM) + { + if ( aAlsoFSW ) ui->HideApplicationFromFSW( EFalse ); + } + else if (value == EFotaUpdateNSC || value == EFotaUpdateNSCBg ) + { + if ( aAlsoFSW ) ui->HideApplicationFromFSW( ETrue ); + } + FLOG(_L("Bring FOTA into FG")); + task.BringToForeground(); + } + else + { + if ( aAlsoFSW ) ui->HideApplicationFromFSW( ETrue ); + + task.SendToBackground(); // the task whose wingroup is at next + // ordinal position is brought to + // foreground + + } + } + +// --------------------------------------------------------------------------- +// CFotaSrvApp::~CFotaSrvApp() +// --------------------------------------------------------------------------- +// +CFotaSrvApp::~CFotaSrvApp() + { + } + +// --------------------------------------------------------------------------- +// CFotaSrvApp::CreateDocumentL() +// Creates FotaSrvDocument object +// --------------------------------------------------------------------------- +// +CApaDocument* CFotaSrvApp::CreateDocumentL() + { + #ifdef _FOTA_DEBUG + RDebug::Print( _L( "[FotaServer] CFotaSrvApp::CreateDocumentL:" ) ); + #endif + iDocument = CFotaSrvDocument::NewL( *this ); + return iDocument; + } + +#include + +// --------------------------------------------------------------------------- +// NewApplication() +// Constructs CFotaSrvApp +// Returns: CApaDocument*: created application object +// --------------------------------------------------------------------------- +// +LOCAL_C CApaApplication* NewApplication() + { + #ifdef _FOTA_DEBUG + RDebug::Print( _L( "[FotaServer] CApaApplication* NewApplication:" ) ); + #endif + return new CFotaSrvApp; + } + +// --------------------------------------------------------------------------- +// ServerL() +// Getter for server +// --------------------------------------------------------------------------- +// +CFotaServer* CFotaSrvApp::Server() + { + return iFotaServer; + } + +// --------------------------------------------------------------------------- +// NewAppServerL() +// Called by framwork +// --------------------------------------------------------------------------- +// +void CFotaSrvApp::NewAppServerL( CApaAppServer*& aAppServer ) + { + #ifdef _FOTA_DEBUG + RDebug::Print( _L( "[FotaServer] CFotaSrvApp::NewAppServerL:" ) ); + #endif + iFotaServer = new (ELeave) CFotaServer(); + iFotaServer->iParentApp = this; + aAppServer = iFotaServer; + } + + +// --------------------------------------------------------------------------- +// E32Main +// --------------------------------------------------------------------------- +// +GLDEF_C TInt E32Main() + { + TInt err; + RProcess pr; TFullName fn = pr.FullName(); + #ifdef _FOTA_DEBUG + RDebug::Print(_L("[FotaServer] E32Main: >> called by %S"), &fn); + #endif + err = EikStart::RunApplication( NewApplication ); + #ifdef _FOTA_DEBUG + RDebug::Print(_L("[FotaServer] E32Main: <<")); + #endif + return err; + } + +// End of File