diff -r 6c158198356e -r ae942d28ec0e javauis/mmapi_qt/volumekeys/src/cmmaforeground.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javauis/mmapi_qt/volumekeys/src/cmmaforeground.cpp Tue Aug 31 15:09:22 2010 +0300 @@ -0,0 +1,183 @@ +/* +* Copyright (c) 2006-2007 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: Class is used to find out from java is midlet foreground or not +* +*/ + + + +// INCLUDE FILES +#include + +#include "cmmaforeground.h" +#include "cmmaforegroundevent.h" +// INCLUDE FILES +#include + +// xm-radio fix +//#include "cmidenv.h" + +CMMAForeground* CMMAForeground::NewL(MMMAEventPoster* aEventPoster, + jobject aForegroundListener, + jmethodID aJavaMethod/* , + CMIDToolkit* aToolkit*/) +{ + LOG(EJavaMMAPI, EInfo, "CMMAForeground::NewL + "); + CMMAForeground* self = new(ELeave) CMMAForeground; + + CleanupStack::PushL(self); + self->ConstructL(aEventPoster, aForegroundListener, aJavaMethod/*, aToolkit*/); + CleanupStack::Pop(); + + LOG(EJavaMMAPI, EInfo, "CMMAForeground::NewL - "); + return self; +} + +CMMAForeground::~CMMAForeground() +{ + LOG(EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() + "); + /* if (iMidEnv) + { + // unregister for getting the foreground change event + LOG( EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() : iMidEnv RemoveObserver +"); + iMidEnv->RemoveObserver(*this); + LOG( EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() : iMidEnv RemoveObserver -"); + } + + CEikonEnv* eikEnv = ((CEikonEnv*)CEikonEnv::Static()); + + if (eikEnv) + { + LOG( EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() : eikEnv RemoveForegroundObserver +"); + eikEnv->RemoveForegroundObserver(*this); + LOG( EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() : eikEnv RemoveForegroundObserver -"); + } + + if (iEventPoster && iDeleteRefEvent) + { + iEventPoster->PostEvent(iDeleteRefEvent); + } + else + { + delete iDeleteRefEvent; + }*/ + //TODO MemoryLeak need to delete the above object. + delete iForegroundEvent; + delete iActiveScheduler; + LOG(EJavaMMAPI, EInfo, "CMMAForeground::~CMMAForeground() - "); +} + +CMMAForeground::CMMAForeground() + : iIsForeground(ETrue) // Initialize IsForeground to true, we might have already missed the event (HandleForegroundL), events before observer registration +{ +} + +void CMMAForeground::ConstructL(MMMAEventPoster* aEventPoster, + jobject aForegroundListener, + jmethodID aJavaMethod /* , + CMIDToolkit* aToolkit*/) // xm-radio fix +{ + LOG1(EJavaMMAPI, EInfo, "CMMAForeground::ConstructL + ISFOREGROUND = %d",iIsForeground); + + iActiveScheduler = new(ELeave) CActiveSchedulerWait(); + iEventPoster = aEventPoster; + iForegroundListener = aForegroundListener; + iJavaMethod = aJavaMethod; + + iForegroundEvent = new(ELeave) CMMAForegroundEvent( + aForegroundListener, + aJavaMethod, + CMMAEvent::EReusableEvent); + iDeleteRefEvent = new(ELeave) CMMADeleteRefEvent(aForegroundListener); + + // xm-radio fix + /* + iToolkit = aToolkit; + + if (iToolkit) + { + DEBUG("CMMAForeground::ConstructL : iToolkit->Env(); +"); + iMidEnv = iToolkit->Env(); + DEBUG("CMMAForeground::ConstructL : iToolkit->Env(); -"); + } + + if (iMidEnv) + { + DEBUG("CMMAForeground::ConstructL : iMidEnv->AddObserverL + "); + // register for getting the foreground change event + iMidEnv->AddObserverL(*this); + DEBUG("CMMAForeground::ConstructL : iMidEnv->AddObserverL - "); + } + + CEikonEnv* eikEnv = ((CEikonEnv*)CEikonEnv::Static()); + + if (eikEnv) + { + DEBUG("CMMAForeground::ConstructL - eikAppUi->AddForegroundObserverL() + "); + eikEnv->AddForegroundObserverL(*this); + DEBUG("CMMAForeground::ConstructL - eikAppUi->AddForegroundObserverL() - "); + } + */ + LOG(EJavaMMAPI, EInfo, "CMMAForeground::ConstructL - "); +} + +TBool CMMAForeground::IsForeground() +{ + LOG2(EJavaMMAPI, EInfo, "THREADID = %d : CMMAForeground::IsForeground : ISFOREGROUND = %d",RThread().Id().Id(),iIsForeground); + return iIsForeground; +} + +void CMMAForeground::SetForeground(TBool aIsForeground) +{ + iIsForeground = aIsForeground; + LOG1(EJavaMMAPI, EInfo, "CMMAForeground::SetForeground - ISFOREGROUND = %d",iIsForeground); +} + +// Implement MMIDEnvObserver +/* +void CMMAForeground::HandleSwitchOnL(TBool aSwitchOn) +{ + // Dummy implementation, no intent to do anything +} +*/ +/** + * Handles the case when the MIDlet is brought to the foreground. + */ +/* +void CMMAForeground::HandleForegroundL(TBool aForeground) +{ + LOG1( EJavaMMAPI, EInfo, "CMMAForeground::HandleForegroundL %d", aForeground); + iIsForeground = aForeground; +} +*/ +/** + * Handles a change to resources which are shared accross the environment. + */ +/*void CMMAForeground::HandleResourceChangeL(TInt aType) +{ + // Dummy implementation, no intent to do anything +} +*/ +// Handles the application coming to the foreground. +void CMMAForeground::HandleGainingForeground() +{ + iIsForeground = ETrue; +} + +// Handles the application going into the background. +void CMMAForeground::HandleLosingForeground() +{ + iIsForeground = EFalse; +} +// End of File