--- a/startupservices/Startup/src/StartupWelcomeAnimation.cpp Thu Aug 19 10:05:08 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,520 +0,0 @@
-/*
-* Copyright (c) 2002 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:
-* This class is the container class of the CStartupWelcomeAnimation.
-* Is used to show welcome animation.
-*
-*/
-
-
-// INCLUDE FILES
-#include <aknappui.h>
-#include <aknnotewrappers.h>
-#include <barsread.h> //use of TResourceReader
-#include <StarterClient.h> //used for RemoveSplashScreen
-#include <aknbitmapanimation.h>
-#include <startup.mbg>
-#include "StartupWelcomeAnimation.h"
-#include <Startup.rsg>
-#include "StartupDefines.h"
-#include "Startup.hrh"
-#include "StartupAppUi.h"
-#include <akniconutils.h>
-
-// CONSTANTS
-const TInt KStartupAnimationShowingDuration( 4200 );//4.2 sec
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ConstructL(const TRect& aRect)
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::ConstructL(const TRect& /*aRect*/)
- {
- TRACES("CStartupWelcomeAnimation::ConstructL()");
- iShowingTime = KStartupAnimationShowingDuration;
- UpdateDrawInfo( EStartupDIStart );
-
- iAvkonAppUi->StatusPane()->MakeVisible(EFalse);
- CreateWindowL();
- iAnimCancelTimer = CPeriodic::NewL( EPriorityNormal );
-
- TRACES("CStartupWelcomeAnimation::ConstructL(): animation loading started");
- iAnim = CAknBitmapAnimation::NewL();
- iAnim->ExcludeAnimationFramesFromCache();
- iAnim->SetContainerWindowL( *this );
- iAnim->SetScaleModeForAnimationFrames(EAspectRatioPreservedAndUnusedSpaceRemoved);
- TResourceReader rr;
- iCoeEnv->CreateResourceReaderLC(rr, R_ANIM_IMAGE);
- TRAPD(err, iAnim->ConstructFromResourceL( rr ))
- if (err != KErrNone)
- {
- TRACES1("CStartupWelcomeAnimation::ConstructL(): ConstructFromResourceL() leaves, err = %d", err );
- }
- CleanupStack::PopAndDestroy();
-
- SetRect(iAvkonAppUi->ApplicationRect()); // Results in a call to SizeChanged()
- ActivateL();
-
- TRACES("CStartupWelcomeAnimation::ConstructL(): animation loading ended");
- TRACES("CStartupWelcomeAnimation::ConstructL(): End");
- }
-
-// -----------------------------------------------------------------------------
-// CStartupWelcomeAnimation::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CStartupWelcomeAnimation* CStartupWelcomeAnimation::NewL( CStartupAppUi* aStartupAppUi,
- const TRect& aRect)
- {
- TRACES("CStartupWelcomeAnimation::NewL()");
- CStartupWelcomeAnimation* self = new (ELeave) CStartupWelcomeAnimation( aStartupAppUi );
- CleanupStack::PushL(self);
- self->ConstructL(aRect);
- CleanupStack::Pop();
- TRACES("CStartupWelcomeAnimation::NewL(): End");
- return self;
- }
-
-// ---------------------------------------------------------
-// CStartupWelcomeAnimation::CStartupWelcomeAnimation()
-// ---------------------------------------------------------
-CStartupWelcomeAnimation::CStartupWelcomeAnimation( CStartupAppUi* aStartupAppUi ) :
- iBackgroundBitmap( NULL ),
- iSplashScreenRemoved( EFalse ),
- iStartupAppUi( aStartupAppUi ),
- iAnimationShowing( EFalse ),
- iAnimationCancelled ( EFalse )
- {
- TRACES("CStartupWelcomeAnimation::CStartupWelcomeAnimation()");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::StartL()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::StartL()
- {
- TRACES("CStartupWelcomeAnimation::StartL()");
- iAnim->StartAnimationL();
- ControlEnv()->WsSession().Flush(); // force draw of the context
- TRACES("CStartupWelcomeAnimation::StartL(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::UpdateDrawInfo( TStartupDrawInfo aValue )
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::UpdateDrawInfo( TStartupDrawInfo aValue )
- {
- TRACES("CStartupWelcomeAnimation::UpdateDrawInfo()");
- TRACES1("CStartupWelcomeAnimation::UpdateDrawInfo(): Value %d", aValue);
- //Prevent state change if already EStartupDISystemFatalError
- if( iDrawUpdateInfo == EStartupDISystemFatalError )
- {
- TRACES("CStartupWelcomeAnimation::UpdateDrawInfo(): End, preventing state change - EStartupDISystemFatalError");
- return;
- }
-
- iDrawUpdateInfo = aValue;
- TRACES("CStartupWelcomeAnimation::UpdateDrawInfo(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::DoDrawingL()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::DoDrawingL() const
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL()");
- switch ( iDrawUpdateInfo )
- {
- case EStartupDIStart:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIStart");
- DrawBlankScreen(); // clears screen after code query emergency call
- }
- break;
- case EStartupDITouchScreenCalib:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDITouchScreenCalib");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDICharging:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDICharging");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDIAlarm:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIAlarm");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDIHiddenReset:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIHiddenReset");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDIQueriesOn:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIQueriesOn");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDIQueriesOff:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIQueriesOff");
- }
- break;
- case EStartupDIWelcomeAnimStart:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimStart");
- RemoveSplashScreen();
- DrawBlankScreen();
- }
- break;
- case EStartupDIWelcomeAnimCancelled:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimCancelled");
- }
- break;
- case EStartupDIWelcomeAnimEnd:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIWelcomeAnimEnd");
- DrawBlankScreen();
- }
- break;
- case EStartupDIOperatorAnimEnd:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIOperatorAnimEnd");
- DrawBlankScreen();
- }
- break;
- case EStartupDICityTimeDateQueries:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDICityTimeDateQueries");
- DrawBlankScreen();
- }
- break;
- case EStartupDIEnd:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDIEnd");
- }
- break;
- case EStartupDISystemFatalError:
- {
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): EStartupDISystemFatalError");
- }
- break;
- default:
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): default");
- break;
- }
- TRACES("CStartupWelcomeAnimation::DoDrawingL(): End");
- }
-
-// ---------------------------------------------------------
-// CStartupWelcomeAnimation::RemoveSplashScreen()
-// ---------------------------------------------------------
-void CStartupWelcomeAnimation::RemoveSplashScreen() const
- {
- TRACES("CStartupWelcomeAnimation::RemoveSplashScreen()");
- //Remove SplashScreen
- if( !iSplashScreenRemoved )
- {
- TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Connect to Starter");
- RStarterSession startersession;
- if( startersession.Connect() == KErrNone )
- {
- TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Connected to Starter");
- startersession.EndSplashScreen();
- TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): Splash screen removed");
- startersession.Close();
- }
- }
- TRACES("CStartupWelcomeAnimation::RemoveSplashScreen(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::~CStartupWelcomeAnimation()
-// ---------------------------------------------------------------------------
-CStartupWelcomeAnimation::~CStartupWelcomeAnimation()
- {
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation()");
-
- if( iAnim )
- {
- if( iAnimationShowing )
- {
- iAnim->CancelAnimation();
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): Animation cancelled");
- }
- }
- delete iAnim;
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iAnim deleted");
-
- if (iBackgroundBitmap)
- {
- delete iBackgroundBitmap;
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iBackgroundBitmap deleted");
- }
-
- if( iAnimCancelTimer )
- {
- iAnimCancelTimer->Cancel();
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): Timer cancelled");
- }
- delete iAnimCancelTimer;
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): iAnimCancelTimer deleted");
-
- TRACES("CStartupWelcomeAnimation::~CStartupWelcomeAnimation(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ComponentControl(TInt aIndex)
-// ---------------------------------------------------------------------------
-CCoeControl* CStartupWelcomeAnimation::ComponentControl(TInt aIndex) const
- {
- switch ( aIndex )
- {
- case 0:
- {
- return iAnim;
- }
- default:
- {
- return NULL;
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CountComponentControls()
-// ---------------------------------------------------------------------------
-TInt CStartupWelcomeAnimation::CountComponentControls() const
- {
- return iAnim ? 1 : 0; // return nbr of controls inside this container
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::Draw(const TRect& aRect) const
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::Draw(const TRect& /*aRect*/ ) const
- {
- TRACES("CStartupWelcomeAnimation::Draw()");
- TRAPD(err, DoDrawingL());
- if (err != KErrNone)
- {
- TRACES1("CStartupWelcomeAnimation::Draw(): DoDrawingL() leaves, err = %d", err );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::DrawBlankScreen() const
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::DrawBlankScreen() const
- {
- TRACES("CStartupWelcomeAnimation::DrawBlankScreen()");
- CWindowGc& gc = SystemGc();
- TRect rect = Rect();
- gc.SetPenStyle(CGraphicsContext::ENullPen);
- gc.SetBrushColor(KRgbWhite);
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.DrawRect(rect);
- ControlEnv()->WsSession().Flush(); // force draw of the context
- TRACES("CStartupWelcomeAnimation::DrawBlankScreen(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::ShowingTime()
-// ---------------------------------------------------------------------------
-TInt CStartupWelcomeAnimation::ShowingTime()
- {
- TRACES1("CStartupWelcomeAnimation::ShowingTime(): time = %d", iShowingTime);
- return iShowingTime;
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::SizeChanged()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::SizeChanged()
- {
- if( iAnim )
- {
- iAnim->SetRect(Rect());
- iAnim->SetPosition( TPoint(
- (iAvkonAppUi->ApplicationRect().Width()/2) - (iAnim->BitmapAnimData()->Size().iWidth/2),
- (iAvkonAppUi->ApplicationRect().Height()/2) - (iAnim->BitmapAnimData()->Size().iHeight/2)
- ) );
- }
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::EndAnimation()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::EndAnimation() const
- {
- TRACES("CStartupWelcomeAnimation::EndAnimation()");
- if( iAnim )
- {
- TRACES("CStartupWelcomeAnimation::EndAnimation(): Cancel animation");
- iAnim->CancelAnimation();
- }
- TRACES("CStartupWelcomeAnimation::EndAnimation(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandleControlEventL(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandleControlEventL(
- CCoeControl* /*aControl*/,
- TCoeEvent /*aEventType*/)
- {
- //pure virtual from MCoeControlObserver
- TRACES("CStartupWelcomeAnimation::HandleControlEventL()");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandlePointerEventL(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandlePointerEventL(const TPointerEvent& aPointerEvent)
- {
- TRACES("CStartupWelcomeAnimation::HandlePointerEventL()");
- if (AknLayoutUtils::PenEnabled())
- {
- TRACES1("CStartupWelcomeAnimation::HandlePointerEventL: aPointerEvent.iType == %d",aPointerEvent.iType );
- switch (aPointerEvent.iType)
- {
- case TPointerEvent::EButton1Down:
- CancelAnimation();
- break;
-
- default:
- break;
- }
- }
- TRACES("CStartupWelcomeAnimation::HandlePointerEventL(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::OfferKeyEventL(...)
-// ---------------------------------------------------------------------------
-TKeyResponse CStartupWelcomeAnimation::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode /*aType*/ )
- {
- TRACES("CStartupWelcomeAnimation::OfferKeyEventL()");
- TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): aKeyEvent.iCode == %d",aKeyEvent.iCode);
- TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): aKeyEvent.iScanCode == %d",aKeyEvent.iScanCode);
- TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): iAnimationShowing == %d",iAnimationShowing);
- TRACES1("CStartupWelcomeAnimation::OfferKeyEventL(): iAnimationCancelled == %d",iAnimationCancelled);
-
- if ( iStartupAppUi->GetOfflineModeQueryShown() )
- {
- TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): Key event from offline mode query");
- // first key event comes from Offline Mode Query
- iStartupAppUi->SetOfflineModeQueryShown( EFalse );
- }
- else
- {
- if( iAnimationShowing && !iStartupAppUi->HiddenReset() && !iAnimationCancelled )
- {
- if (aKeyEvent.iScanCode == EStdKeyNkpAsterisk || aKeyEvent.iScanCode == 0x2a)
- {
- TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): Set clean boot");
- iStartupAppUi->SetCleanBoot();
- }
- // Cancel animation
- CancelAnimation();
- }
- else if( !iAnimationShowing && iStartupAppUi->StartupTonePlaying())
- {
- TRACES("CStartupWelcomeAnimation::OfferKeyEventL() Animation has completed but tone is still playing. Stop it.");
- iStartupAppUi->StopStartupTone();
- }
- }
-
- TRACES("CStartupWelcomeAnimation::OfferKeyEventL(): End");
- return EKeyWasConsumed;
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CancelAnimCancelTimer()
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::CancelAnimCancelTimer()
- {
- TRACES("CStartupWelcomeAnimation::CancelAnimCancelTimer()");
- iAnimCancelTimer->Cancel();
- TRACES("CStartupWelcomeAnimation::CancelAnimCancelTimer(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::CancelAnimation(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::CancelAnimation()
- {
- TRACES("CStartupWelcomeAnimation::CancelAnimation()");
- if( iAnimationShowing && !iStartupAppUi->HiddenReset() && !iAnimationCancelled )
- {
- UpdateDrawInfo( EStartupDIWelcomeAnimCancelled );
- EndAnimation();
- TRACES("CStartupWelcomeAnimation::CancelAnimation(): Timer activated - before");
- iAnimCancelTimer->Start( 10000, 10000,
- TCallBack( iStartupAppUi->DoStopTimingL, iStartupAppUi ) );
- TRACES("CStartupWelcomeAnimation::CancelAnimation(): Timer activated - after");
- iAnimationCancelled = ETrue;
- }
- TRACES("CStartupWelcomeAnimation::CancelAnimation(): End");
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::IsAnimationCancelled(...)
-// ---------------------------------------------------------------------------
-TBool CStartupWelcomeAnimation::IsAnimationCancelled()
- {
- TRACES1("CStartupWelcomeAnimation::IsAnimationCancelled(): iAnimationCancelled: %d", iAnimationCancelled);
- return iAnimationCancelled;
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::SetAnimationShowing(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::SetAnimationShowing(TBool aValue)
- {
- TRACES("CStartupWelcomeAnimation::SetAnimationShowing()");
- TRACES2("CStartupWelcomeAnimation::SetAnimationShowing(): iAnimationShowing changed from %d to %d",iAnimationShowing, aValue );
- iAnimationShowing = aValue;
- }
-
-// ---------------------------------------------------------------------------
-// CStartupWelcomeAnimation::HandleResourceChange(...)
-// ---------------------------------------------------------------------------
-void CStartupWelcomeAnimation::HandleResourceChange(TInt aType)
- {
- CCoeControl::HandleResourceChange(aType);
- if(aType==KEikDynamicLayoutVariantSwitch)
- {
- SetRect(iAvkonAppUi->ApplicationRect()); // update rect
- }
- }
-
-
-
-// End of File