--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuicontrol/src/tphonetransitionhandler.cpp Tue Sep 14 21:18:17 2010 +0300
@@ -0,0 +1,156 @@
+/*
+* Copyright (c) 2010 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 handles phoneapp internal/external transitions.
+*
+*/
+
+#include "tphonetransitionhandler.h"
+#include "cphonestate.h"
+#include "phonelogger.h"
+
+// ---------------------------------------------------------------------------
+// TPhoneTransitionHandler::TPhoneTransitionHandler
+// ---------------------------------------------------------------------------
+//
+TPhoneTransitionHandler::TPhoneTransitionHandler(
+ CPhoneState& aState,
+ MPhoneViewCommandHandle& aViewCommandHandle )
+ : iState ( aState ),
+ iViewCommandHandle ( aViewCommandHandle )
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::TPhoneTransitionHandler( ) ");
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::BeginUiUpdateLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::BeginUiUpdateLC()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::BeginUiUpdateLC( ) ");
+ iViewCommandHandle.ExecuteCommand( EPhoneViewBeginUpdate );
+ TCleanupItem operation( UiUpdateCleanup, this );
+ CleanupStack::PushL( operation );
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::EndUiUpdate
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::EndUiUpdate()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::EndUiUpdate( ) ");
+ CleanupStack::PopAndDestroy(); // Call UiUpdateCleanup
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::IncomingCallUiUpdateLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::IncomingCallUiUpdateLC()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::IncomingCallUiUpdateLC( ) ");
+ iState.IsNumberEntryUsedL() ?
+ BeginTransEffectLC( EPhoneTransEffectCallUiAppear ) :
+ BeginTransEffectLC( EPhoneTransEffectPhoneUiOpen );
+ BeginUiUpdateLC();
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::IdleCallUiUpdateLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::IdleCallUiUpdateLC()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl, "TPhoneTransitionHandler::IdleCallUiUpdateLC( ) ");
+ iState.IsNumberEntryUsedL() ?
+ BeginTransEffectLC( EPhoneTransEffectCallUiDisappear ) :
+ BeginTransEffectLC( EPhoneTransEffectPhoneUiClose );
+ BeginUiUpdateLC();
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::EndUiUpdateAndEffect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::EndUiUpdateAndEffect()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::EndUiUpdateAndEffect( ) ");
+ EndUiUpdate();
+ EndTransEffect();
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::BeginTransEffectLC
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::BeginTransEffectLC( TPhoneTransEffectType aType )
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::BeginTransEffectLC( ) ");
+ TPhoneCmdParamTransEffect effectParam;
+ effectParam.SetType( aType );
+ effectParam.SetAppUid( KUidPhoneApplication );
+ iViewCommandHandle.ExecuteCommand(
+ EPhoneViewBeginTransEffect,
+ &effectParam );
+ // Always put the cleanup item into stack as expected by the caller.
+ TCleanupItem operation( EffectCleanup, this );
+ CleanupStack::PushL( operation );
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::EndTransEffect
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void TPhoneTransitionHandler::EndTransEffect()
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::EndTransEffect( ) ");
+ CleanupStack::PopAndDestroy(); // Call EffectCleanup
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::UiUpdateCleanup
+// -----------------------------------------------------------------------------
+//
+void TPhoneTransitionHandler::UiUpdateCleanup(TAny* aThis )
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::UiUpdateCleanup( ) ");
+ static_cast<TPhoneTransitionHandler*>( aThis )->
+ iViewCommandHandle.ExecuteCommand( EPhoneViewEndUpdate );
+ }
+
+// -----------------------------------------------------------------------------
+// TPhoneTransitionHandler::EffectCleanup
+// -----------------------------------------------------------------------------
+//
+void TPhoneTransitionHandler::EffectCleanup(TAny* aThis )
+ {
+ __LOGMETHODSTARTEND( EPhoneControl,
+ "TPhoneTransitionHandler::EffectCleanup( ) ");
+ TPhoneCmdParamTransEffect effectParam;
+ effectParam.SetType( EPhoneTransEffectStop );
+ // won't do anything if effect wasn't started
+ static_cast<TPhoneTransitionHandler*>( aThis )->
+ iViewCommandHandle.ExecuteCommand(
+ EPhoneViewEndTransEffect, &effectParam );
+ }
+