--- a/startupservices/Startup/src/StartupAppUi.cpp Tue Aug 31 15:24:25 2010 +0300
+++ b/startupservices/Startup/src/StartupAppUi.cpp Wed Sep 01 12:24:48 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2008 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"
@@ -18,7 +18,14 @@
// SYSTEM INCLUDES
#include <StringLoader.h>
-
+#include <AknGlobalNote.h> //used for Selftest failed note
+#include <aknPopup.h>
+#include <aknlists.h>
+#include <aknSDData.h>
+#include <badesca.h>
+#include <tzlocalizationdatatypes.h>
+#include <tzlocalizer.h>
+#include <tz.h>
#include <featmgr.h> // Feature Manager
#include <centralrepository.h>
#include <startup.rsg>
@@ -28,21 +35,53 @@
#include <startupdomaincrkeys.h>
#include <CoreApplicationUIsSDKCRKeys.h>
#include <starterclient.h>
-#include <hbdevicemessageboxsymbian.h>
-#include "sanimstartupctrl.h"
-#include <apgtask.h>
+#include "StartupWelcomeCrKeys.h"
+
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+// Transition effects
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntranseffect.h>
+#endif
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ #include "sanimstartupctrl.h"
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ #include <akndef.h> // For layout change event definitions
+ #include <AknSoundSystem.h>
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// USER INCLUDES
#include "StartupAppUi.h"
#include "StartupApplication.h"
-
+#include "StartupUserWelcomeNote.h"
+#include "StartupQueryDialog.h" //used for Startup own Time and Date queries
+#include "StartupPopupList.h" //used for Startup own City and Country queries
+#include "StartupMediatorObserver.h"
#include "StartupPubSubObserver.h"
-#include "startupanimationwrapper.h"
-#include "startupview.h"
-
-#include <eikenv.h>
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ #include "startupanimationwrapper.h"
+ #include "startupview.h"
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ #include "StartupDocument.h"
+ #include "StartupOperatorAnimation.h"
+ #include "StartupTone.h"
+ #include "StartupWelcomeAnimation.h"
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+// CONSTANTS
+const TInt KUserWelcomeNoteShowPeriodTime = 3000000; // 3 sec
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ const TInt KOneMilliSecondInMicroSeconds = 1000;
+ const TInt KMaxToneInitWait = 200; // 200 ms
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+static const TInt KMaxCityLength(120);
+static const TInt KMaxCountryLength(120);
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
static const CSAnimStartupCtrl::TAnimationParams KStartupAnimationParams =
{
KCRUidStartupConf,
@@ -52,7 +91,15 @@
KStartupTonePath,
KStartupToneVolume
};
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+_LIT(KEmpty, " ");
+
+// Default date and time value is used if cenrep string is not valid
+// Default date is 01.01.2007 and default time is 09:00 AM
+_LIT( KDefaultDateTimeValue, "20070000:090000" ); // YYYYMMDD:HHMMSS
+
+static const TInt KTimeFormatLength(16); // "20070000:090000."
_LIT_SECURITY_POLICY_C1(KReadDeviceDataPolicy, ECapabilityReadDeviceData);
_LIT_SECURITY_POLICY_C1(KWriteDeviceDataPolicy, ECapabilityWriteDeviceData);
@@ -60,6 +107,7 @@
// ======== LOCAL FUNCTIONS ==================================================
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
namespace
{
TInt AnimationFinishedFunc( TAny* aPtr )
@@ -68,7 +116,7 @@
return KErrNone;
}
}
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// ================= MEMBER FUNCTIONS ========================================
@@ -77,8 +125,17 @@
// CStartupAppUi::CStartupAppUi()
// ---------------------------------------------------------------------------
CStartupAppUi::CStartupAppUi() :
- iInternalState( EStartupStartingUp ),
-
+ iUserWelcomeNote( NULL ),
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iStartupTone( NULL ),
+ iOpStartupTone( NULL ),
+ iToneInitWaitTime( 0 ),
+ iAnimation( EFalse ),
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iInternalState( EStartupStartingUp ),
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iSplashScreenShouldBeRemoved( EFalse ),
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
iStartupFirstBootAndRTCCheckAlreadyCalled( EFalse ),
iChargingOrAlarmBoot( EFalse ),
iFirstBoot( ETrue ),
@@ -88,8 +145,15 @@
iCriticalBlockEnded( EFalse ),
iSwStateFatalStartupError( EFalse ),
iStartupWaitingShowStartupAnimation( EFalse ),
- iSimSupported( ETrue )
-
+ iSimSupported( ETrue ),
+ iStartupMediatorObserver( NULL ),
+ iCoverUISupported( EFalse ),
+ iCounryListIndex( 0 )
+ , iTime( 0 )
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ , iTouchScreenCalibSupport( EFalse )
+ , iTouchScreenCalibrationDone( EFalse )
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
{
TRACES("CStartupAppUi::CStartupAppUi");
}
@@ -99,18 +163,18 @@
// ---------------------------------------------------------------------------
void CStartupAppUi::ConstructL()
{
- RThread thread; //increase the thread priority to smooth the animation
- thread.SetPriority(EPriorityAbsoluteForeground);
- thread.Close();
TRACES("CStartupAppUi::ConstructL()");
- TInt flags = EStandardApp;
- BaseConstructL( flags );
-
+ TInt flags = EStandardApp|EAknEnableSkin|EAknEnableMSK ;
+
+ BaseConstructL(flags);
+
+ iAvkonAppUi->SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort |
+ CAknAppUiBase::EDisableSendKeyLong );
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
iMainView = CStartupView::NewL( ApplicationRect() );
-
-
iAnimation = CStartupAnimationWrapper::NewL( *iMainView );
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
TInt err = RProperty::Define( KPSUidStartupApp,
KPSStartupAppState,
@@ -135,9 +199,42 @@
iStartupPubSubObserver = CStartupPubSubObserver::NewL( this );
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ err = RProperty::Define( KPSUidStartup,
+ KStartupBootIntoOffline,
+ RProperty::EInt,
+ KReadDeviceDataPolicy,
+ KWriteDeviceDataPolicy );
+ if( KErrNone != err &&
+ KErrAlreadyExists != err )
+ {
+ TRACES1("CStartupAppUi::ConstructL(): KStartupBootIntoOffline define err %d", err);
+ }
+ err = RProperty::Define( KPSUidStartup,
+ KStartupSecurityCodeQueryStatus,
+ RProperty::EInt,
+ KReadDeviceDataPolicy,
+ KWriteDeviceDataPolicy );
+ if( KErrNone != err &&
+ KErrAlreadyExists != err )
+ {
+ TRACES1("CStartupAppUi::ConstructL(): KStartupSecurityCodeQueryStatus define err %d", err);
+ }
+ err = RProperty::Define( KPSUidStartup,
+ KStartupCleanBoot,
+ RProperty::EInt,
+ KReadDeviceDataPolicy,
+ KWriteDeviceDataPolicy );
+ if( KErrNone != err &&
+ KErrAlreadyExists != err )
+ {
+ TRACES1("CStartupAppUi::ConstructL(): KStartupCleanBoot define err %d", err);
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
err = RProperty::Define( KPSUidStartup,
KPSStartupUiPhase,
RProperty::EInt,
@@ -151,7 +248,7 @@
}
UpdateStartupUiPhase( EStartupUiPhaseUninitialized );
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
FeatureManager::InitializeLibL();
if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) )
@@ -162,30 +259,60 @@
{
iSimSupported = EFalse;
}
-
+ if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) )
+ {
+ iCoverUISupported = ETrue;
+ }
TRACES1("CStartupAppUi::ConstructL(): Offline mode supported: %d", iOfflineModeSupported );
TRACES1("CStartupAppUi::ConstructL(): SIM card supported: %d", iSimSupported );
-
+ TRACES1("CStartupAppUi::ConstructL(): CoverUI supported: %d", iCoverUISupported );
+
+#if defined (RD_SCALABLE_UI_V2) && !defined(RD_STARTUP_ANIMATION_CUSTOMIZATION)
+ if ( FeatureManager::FeatureSupported(KFeatureIdPenSupport) &&
+ FeatureManager::FeatureSupported(KFeatureIdPenSupportCalibration) )
+ {
+ iTouchScreenCalibSupport = ETrue;
+ }
+#endif // RD_SCALABLE_UI_V2 && !RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+ if (iCoverUISupported)
+ {
+ iStartupMediatorObserver = CStartupMediatorObserver::NewL( this );
+ }
iFirstBoot = FirstBoot();
TRACES1("CStartupAppUi::ConstructL(): First boot: %d", iFirstBoot );
-
- CEikonEnv* eikEnv = CEikonEnv::Static();
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation = CStartupWelcomeAnimation::NewL( this, ClientRect());
+ AddToStackL( iWelcomeAnimation );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// Set Startup application to be system application
- eikEnv->SetSystem( ETrue );
+ iEikonEnv->SetSystem( ETrue );
- eikEnv->RootWin().SetOrdinalPosition(0,0);
+ iEikonEnv->RootWin().SetOrdinalPosition(0,0);
// Disable priority changes of window server
- eikEnv->WsSession().ComputeMode(
+ iEikonEnv->WsSession().ComputeMode(
RWsSession::EPriorityControlDisabled );
- iNoteTimer = CPeriodic::NewL( EPriorityNormal );
+ iNoteTimer = CPeriodic::NewL( EPriorityNormal );
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iAnimTimer = CPeriodic::NewL( EPriorityNormal );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
iExitTimer = CPeriodic::NewL( EPriorityNormal );
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ TRACES("CStartupAppUi::ConstructL(): StartupTone: Initialising");
+ iStartupTone = CStartupTone::NewL( this, EStartupTone );
+ TRACES("CStartupAppUi::ConstructL(): StartupTone: Initialised");
+
+ TRACES("CStartupAppUi::ConstructL(): Operator StartupTone: Initialising");
+ iOpStartupTone = CStartupTone::NewL( this, EStartupOpTone );
+ TRACES("CStartupAppUi::ConstructL(): Operator StartupTone: Initialised");
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
if ( iSwStateFatalStartupError )
{
@@ -207,6 +334,43 @@
{
TRACES("CStartupAppUi::~CStartupAppUi()");
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if (iWelcomeAnimation)
+ {
+ RemoveFromStack( iWelcomeAnimation );
+ delete iWelcomeAnimation;
+ }
+
+ if (iOperatorAnimation)
+ {
+ RemoveFromStack( iOperatorAnimation);
+ delete iOperatorAnimation;
+ }
+
+ if (iUserWelcomeNote)
+ {
+ RemoveFromStack( iUserWelcomeNote );
+ delete iUserWelcomeNote;
+ iUserWelcomeNote = NULL;
+ }
+
+ if (iStartupPubSubObserver)
+ {
+ delete iStartupPubSubObserver;
+ }
+ if (iStartupMediatorObserver)
+ {
+ delete iStartupMediatorObserver;
+ }
+ if (iStartupTone)
+ {
+ delete iStartupTone;
+ }
+ if (iOpStartupTone)
+ {
+ delete iOpStartupTone;
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
if( iExitTimer )
{
@@ -214,7 +378,13 @@
delete iExitTimer;
}
-
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if( iAnimTimer )
+ {
+ iAnimTimer->Cancel();
+ delete iAnimTimer;
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
if( iNoteTimer )
{
@@ -222,13 +392,13 @@
delete iNoteTimer;
}
-
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ delete iUserWelcomeNote;
delete iAnimation;
delete iStartupPubSubObserver;
-
+ delete iStartupMediatorObserver;
delete iMainView;
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
FeatureManager::UnInitializeLib();
@@ -242,11 +412,26 @@
{
TRACES("CStartupAppUi::PrepareToExit()");
-
+#ifdef RD_UI_TRANSITION_EFFECTS_PHASE2
+ // Start the custom exit effect at boot time.
+ // Note: Not allowed to call GfxTransEffect::EndFullScreen() as AVKON takes care of that when
+ // EApplicationExit context is used!
-
- CEikAppUi::PrepareToExit();
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if ( !( iAnimation->WasCancelled() ) )
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if( !iWelcomeAnimation->IsAnimationCancelled() )
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ {
+ TRACES("CStartupAppUi::PrepareToExit(): Starting transition effect");
+ GfxTransEffect::BeginFullScreen( AknTransEffect::EApplicationExit, TRect(),
+ AknTransEffect::EParameterType,
+ AknTransEffect::GfxTransParam( KUidStartUp, AknTransEffect::TParameter::EAllowAtBoot ) );
+ }
+#endif
+
+ CEikAppUi::PrepareToExit();
#ifndef RD_BOOT_CUSTOMIZABLE_AI
if( !iChargingOrAlarmBoot )
{
@@ -290,7 +475,6 @@
return KErrNone;
}
-
// ---------------------------------------------------------------------------
// CStartupAppUi::HandleKeyEventL
// ---------------------------------------------------------------------------
@@ -329,7 +513,13 @@
iOfflineModeQueryShown = EFalse;
response = EKeyWasConsumed;
}
-
+ else if ( iUserWelcomeNote )
+ {
+ TRACES("CStartupAppUi::HandleKeyEventL(): This key event is used to stop UserWelcomeAnimation");
+ //this is used to stop User Welcome note showing
+ StopTimingL();
+ response = EKeyWasConsumed;
+ }
else if ( ( iInternalState == EStartupShowingWelcomeAnimation ||
iInternalState == EStartupShowingOperatorAnimation ) &&
!( iAnimation->WasCancelled() ) )
@@ -345,8 +535,7 @@
return response;
}
-/*
- * Qt Support Not available..
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
// CStartupAppUi::HandleResourceChangeL
//
@@ -356,20 +545,17 @@
{
TRACES("CStartupAppUi::HandleResourceChangeL()");
TRACES1("CStartupAppUi::HandleResourceChangeL Type: %d", aType);
-
-
- * No equivalent in Qt.
+
CAknAppUi::HandleResourceChangeL( aType );
if ( aType == KEikDynamicLayoutVariantSwitch )
{
iMainView->SetRect( ApplicationRect() );
}
-
+
TRACES("CStartupAppUi::HandleResourceChangeL(): End");
}
-
-*/
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
@@ -383,8 +569,7 @@
case EEikCmdExit:
{
TRACES("CStartupAppUi::HandleCommandL(): EEikCmdExit");
-
- Exit();
+ Exit();
}
break;
default:
@@ -399,13 +584,14 @@
void CStartupAppUi::DoStartupStartPartL()
{
TRACES("CStartupAppUi::DoStartupStartPartL()");
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
TryPreLoadAnimation();
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
DoNextStartupPhaseL( EStartupWaitingCriticalBlock );
TRACES("CStartupAppUi::DoStartupStartPartL(): End");
}
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
// CStartupAppUi::TryPreLoadAnimation()
// ---------------------------------------------------------------------------
@@ -436,7 +622,7 @@
{
iAnimation->PreLoad(
ClientRect(),
- *iMainView,
+ *iMainView,
KStartupAnimationParams,
ETrue,
SecondaryDisplay::EStartWelcomeAnimation );
@@ -444,7 +630,7 @@
TRACES("CStartupAppUi::TryPreLoadAnimation(): End");
}
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
@@ -459,24 +645,44 @@
//the same way like in the end of ShowUserWelcomeNoteL()
TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Skip the animation and UWN because it's hidden reset");
TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): and change internal state directly to EStartupFirstBootAndRTCCheck");
-
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->RemoveSplashScreen();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ return;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
}
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
else
{
TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Show animation");
iAnimation->Play(
ClientRect(),
- *iMainView,
+ *iMainView,
KStartupAnimationParams,
ETrue,
SecondaryDisplay::EStartWelcomeAnimation,
TCallBack( AnimationFinishedFunc, this ) );
}
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Play startup tone.");
+
+ // Play startup tone
+ if (iStartupTone->Play() != KErrNone)
+ {
+ // Play startup beep.
+ TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): Play startup beep");
+ static_cast<CAknAppUi*>(iEikonEnv->
+ EikAppUi())->
+ KeySounds()->
+ PlaySound( EAvkonSIDPowerOnTone );
+ }
+ iWelcomeAnimation->SetAnimationShowing(ETrue);
+ ShowWelcomeAnimationL();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
TRACES("CStartupAppUi::DoStartupShowWelcomeAnimationL(): End");
}
@@ -494,9 +700,11 @@
TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Skip the animation and UWN because it's hidden reset");
TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): and change internal state directly to EStartupFirstBootAndRTCCheck");
DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
-
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ return;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
}
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
else
{
TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Show animation");
@@ -510,18 +718,61 @@
params.iVolumeKey = KStartupOperatorToneVolume;
iAnimation->Play(
ClientRect(),
-
*iMainView,
params,
EFalse,
SecondaryDisplay::EStartOperatorAnimation,
TCallBack( AnimationFinishedFunc, this ) );
}
-
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if ( iOperatorAnimation->ShowingTime() )
+ {
+ TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Operator animation time defined properly");
+ iOperatorAnimation->SetAnimationShowing(ETrue);
+ iOpStartupTone->Play();
+ ShowOperatorAnimationL();
+ }
+ else
+ {
+ TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): Operator animation not defined. Skip it.");
+ iOperatorAnimation->SetAnimationShowing(EFalse);
+ DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
TRACES("CStartupAppUi::DoStartupShowOperatorAnimationL(): End");
}
+// ---------------------------------------------------------------------------
+// CStartupAppUi::DoStartupShowUserWelcomeNoteL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::DoStartupShowUserWelcomeNoteL()
+ {
+ TRACES("CStartupAppUi::DoStartupShowUserWelcomeNoteL()");
+ ShowUserWelcomeNoteL();
+ TRACES("CStartupAppUi::DoStartupShowUserWelcomeNoteL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::StartupQueriesEnabled()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::StartupQueriesEnabled()
+ {
+ TRACES("CStartupAppUi::StartupQueriesEnabled()");
+
+ TInt value( EStartupQueriesEnabled );
+ CRepository* repository(NULL);
+
+ TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
+ if ( err == KErrNone )
+ {
+ err = repository->Get( KStartupQueries, value );
+ }
+ delete repository;
+
+ TRACES1("CStartupAppUi::StartupQueriesEnabled(): returns %d", value);
+ return value;
+ }
// ---------------------------------------------------------------------------
// CStartupAppUi::PredictiveTimeEnabled()
@@ -551,46 +802,69 @@
{
TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL()");
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
RProperty::Set( KPSUidStartup, KStartupCleanBoot, iCleanBoot );
RProperty::Set( KPSUidStartup, KPSSplashShutdown, ESplashShutdown );
+ delete iUserWelcomeNote;
+ iUserWelcomeNote = NULL;
iMainView->DrawDeferred();
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// When Predictive Time and Country Selection is enabled, no queries are
// shown to user during first boot. Instead, Clock application gets the
// time and location from the network and marks the first boot as done.
if( !PredictiveTimeEnabled() )
{
- if( iFirstBoot && !HiddenReset() ) //&& StartupQueriesEnabled() )
+ if( iFirstBoot && !HiddenReset() && StartupQueriesEnabled() )
{
TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): First boot. Show city, time and date queries.");
- TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
+
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDICityTimeDateQueries );
+ iWelcomeAnimation->DrawNow();
+
+ if (iOperatorAnimation)
+ {
+ RemoveFromStack( iOperatorAnimation );
+ delete iOperatorAnimation;
+ iOperatorAnimation = NULL;
+ }
+ if (iUserWelcomeNote)
+ {
+ RemoveFromStack( iUserWelcomeNote );
+ delete iUserWelcomeNote;
+ iUserWelcomeNote = NULL;
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+ ShowStartupQueriesL();
+ TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
MarkFirstBoot();
}
- else if( !RTCStatus() && !HiddenReset() ) // && StartupQueriesEnabled())
+ else if( !RTCStatus() && !HiddenReset() && StartupQueriesEnabled())
{
TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): No first boot but RTCStatus is corrupted. Ask time and date");
- }
- if( iFirstBoot ) // && !StartupQueriesEnabled() )
+ #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDICityTimeDateQueries );
+ if (iUserWelcomeNote)
+ {
+ RemoveFromStack( iUserWelcomeNote );
+ delete iUserWelcomeNote;
+ iUserWelcomeNote = NULL;
+ }
+ #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+ ShowStartupQueriesL(); // Not first boot, so skips Country/City query
+ }
+ if( iFirstBoot && !StartupQueriesEnabled() )
{
TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): First boot ongoing and queries are disabled.");
MarkFirstBoot();
}
}
- else
- {
- // Temporary fix for the defect VEZI-7YDEAR , as clock is not yet supported.
- TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): if PredictiveTimeEnabled is set");
- if( iFirstBoot && !HiddenReset() )
- {
- TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Mark first boot");
- MarkFirstBoot();
- }
- // End of temporary fix.
- }
TRACES("CStartupAppUi::DoStartupFirstBootAndRTCCheckL(): Setting KPSStartupAppState = EStartupAppStateFinished");
TInt err = RProperty::Set( KPSUidStartupApp, KPSStartupAppState, EStartupAppStateFinished );
@@ -600,11 +874,58 @@
, err);
}
- DoNextStartupPhaseL( EStartupStartupOK );
+ DoNextStartupPhaseL( EStartupWaitingCUIStartupReady );
}
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowStartupQueriesL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ShowStartupQueriesL()
+ {
+ TRACES("CStartupAppUi::ShowStartupQueriesL()");
+ TBool citysaved(EFalse);
+ TBool timesaved(EFalse);
+ TBool datesaved(EFalse);
+ // Get default time ( to be used only in date query )
+ GetDefaultTimeAndDate( iTime );
+
+ // Show Country, Date and Time queries ( with possibility to go back ).
+ // Country query is shown only in the first boot.
+
+ while (!timesaved)
+ {
+ while (!datesaved)
+ {
+ while (!citysaved && iFirstBoot)
+ {
+ // 1. Select time zone
+ ShowCountryAndCityListsL();
+ citysaved = ETrue;
+ TRACES1("CStartupAppUi::ShowStartupQueriesL(): citysaved = %d", citysaved );
+ }
+ // 2. Set date
+ datesaved = ShowDateQueryL();
+ TRACES1("CStartupAppUi::ShowStartupQueriesL(): datesaved = %d", datesaved );
+ if (!datesaved)
+ {
+ citysaved = EFalse;
+ }
+ }
+ // 3. Set time
+ timesaved = ShowTimeQueryL();
+ TRACES1("CStartupAppUi::ShowStartupQueriesL(): timesaved = %d", timesaved );
+ if (!timesaved)
+ {
+ datesaved = EFalse;
+ }
+ }
+
+ // All the queries completed.
+
+ TRACES("CStartupAppUi::ShowStartupQueriesL() - END");
+ }
// ---------------------------------------------------------------------------
// CStartupAppUi::DoStartupEndPart()
@@ -613,31 +934,100 @@
{
TRACES("CStartupAppUi::DoStartupEndPart()");
TRACES("CStartupAppUi::DoStartupEndPart(): STARTUP OK");
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ RProperty::Set( KPSUidStartup, KStartupCleanBoot, iCleanBoot );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ TBool fTUDone = ETrue;
+ TRAP_IGNORE(IsFTUAvailableL(fTUDone));
- TBool ftuenabled=EFalse;
- TInt err=KErrNone;
-#ifndef __WINSCW__
- TRAP(err,
- TInt enabled=0;
- //open cenrep;
- CRepository *cenrep=CRepository::NewLC(KCRUidStartupConf);
- //check if ftu is enabled or not
- User::LeaveIfError(cenrep->Get(KFtuStartupEnabled,enabled));
- ftuenabled=!!enabled; //make sure we only have a boolean value here
- CleanupStack::PopAndDestroy(cenrep);
- );
-#endif
- if(!ftuenabled)
+ if(fTUDone)
+ {
+ UpdateStartupUiPhase( EStartupUiPhaseAllDone );
+ }
+ else
{
- UpdateStartupUiPhase( EStartupUiPhaseAllDone );
+ UpdateStartupUiPhase(EStartupUiPhaseAllDone+1);
}
+ //UpdateStartupUiPhase( EStartupUiPhaseAllDone );
+
+
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
TRACES("CStartupAppUi::DoStartupEndPart(): Exit application.");
iExitTimer->Start( 100000, 100000, TCallBack( DoExitApplication, this ) );
TRACES("CStartupAppUi::DoStartupEndPart(): DoExitApplication-timer called.");
TRACES("CStartupAppUi::DoStartupEndPart(): End");
}
+void CStartupAppUi::IsFTUAvailableL(TBool& aFTUAvailable)
+ {
+ //From Startupwelcomecrkeys.h
+ CRepository* repo = CRepository::NewLC(KCRUidWelcome6);
+ repo->Get(KPhoneActicationCompleted, aFTUAvailable);
+ CleanupStack::PopAndDestroy(repo);
+ }
+
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ContinueStartupAfterToneL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ContinueStartupAfterToneL(TToneType aToneType)
+ {
+ TRACES("CStartupAppUi::ContinueStartupAfterToneL()");
+
+ if (aToneType == EStartupTone)
+ {
+ TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone type EStartupTone");
+ DoNextStartupPhaseL( EStartupWaitingCUIOperatorAnim );
+ }
+ else if (aToneType == EStartupOpTone)
+ {
+ TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone type EStartupOpTone");
+ DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
+ }
+ else
+ {
+ TRACES("CStartupAppUi::ContinueStartupAfterToneL(): Tone interrupted");
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+ }
+ TRACES("CStartupAppUi::ContinueStartupAfterToneL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::BringToForeground()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::BringToForeground()
+ {
+ TRACES("CStartupAppUi::BringToForeground()");
+ if ((iInternalState != EStartupWaitingTouchScreenCalib) ||
+ (iTouchScreenCalibrationDone))
+ {
+ TRACES("CStartupAppUi::BringToForeground(): Bring to foreground");
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.BringToForeground();
+ }
+ TRACES("CStartupAppUi::BringToForeground(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::SendToBackground()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::SendToBackground()
+ {
+ TRACES("CStartupAppUi::SendToBackground()");
+ TApaTask self(iCoeEnv->WsSession());
+ self.SetWgId(iCoeEnv->RootWin().Identifier());
+ self.SendToBackground();
+ TRACES("CStartupAppUi::SendToBackground(): End");
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
// ---------------------------------------------------------------------------
// CStartupAppUi::StopTimingL()
// ---------------------------------------------------------------------------
@@ -653,10 +1043,87 @@
TRACES("CStartupAppUi::StopTimingL(): Stopping UWN");
iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
iNoteTimer->Cancel();
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
UpdateStartupUiPhase( EStartupUiPhaseUserWelcomeDone );
DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iUserWelcomeNote->CancelNoteCancelTimer();
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeNoteEnd );
+ iWelcomeAnimation->DrawNow();
+ iUserWelcomeNote->SetUserWelcomeNoteShowing(EFalse);
+ TRACES("CStartupAppUi::StopTimingL(): UWN stopped");
+ if (iStartupTone->Playing())
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Startup tone playing. Cannot continue to next phase");
+ iStartupTone->StartupWaiting(ETrue);
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+ }
+ }
+ else if (iInternalState == EStartupShowingOperatorAnimation) // EStartupShowingOperatorAnimation
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Stopping animation");
+ iAnimTimer->Cancel();
+ iWelcomeAnimation->CancelAnimCancelTimer();
+ iOperatorAnimation->UpdateDrawInfo( EStartupDIOperatorAnimEnd );
+ iOperatorAnimation->SetAnimationShowing(EFalse);
+ TRACES("CStartupAppUi::StopTimingL(): operator animation showing stopped");
+ if ( iOperatorAnimation->IsAnimationCancelled())
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Animation is cancelled by user and therefore UWN is not shown");
+ StopOperatorTone();
+ iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+ }
+ else
+ {
+ // If tone is still playing wait until it completes.
+ if (iOpStartupTone->Playing())
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Operator startup tone is still playing. Wait until it completes.");
+ iOpStartupTone->StartupWaiting(ETrue);
+ }
+ else
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Lets display UWN");
+ DoNextStartupPhaseL( EStartupShowingUserWelcomeNote );
+ }
+ }
+ TRACES("CStartupAppUi::StopTimingL(): Operator Animation stopped");
+ }
+ else // EStartupShowingWelcomeAnimation
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Stopping animation");
+ iAnimTimer->Cancel();
+ iWelcomeAnimation->CancelAnimCancelTimer();
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimEnd );
+ iWelcomeAnimation->SetAnimationShowing(EFalse);
+ TRACES("CStartupAppUi::StopTimingL(): Welcome animation showing stopped");
+
+ if ( iWelcomeAnimation->IsAnimationCancelled())
+ {
+ TRACES("CStartupAppUi::StopTimingL(): Animation is cancelled by user and therefore operator animation and UWN is not shown");
+ StopStartupTone();
+ iStartupFirstBootAndRTCCheckAlreadyCalled = ETrue;
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+ }
+ else
+ {
+ if (iStartupTone->Playing())
+ {
+ // If tone is still playing wait until it completes.
+ iStartupTone->StartupWaiting(ETrue);
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupWaitingCUIOperatorAnim );
+ }
+ }
+ TRACES("CStartupAppUi::StopTimingL(): Animation stopped");
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
}
}
@@ -674,6 +1141,331 @@
TRACES("CStartupAppUi::ExitApplication(): End");
}
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowWelcomeAnimationL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ShowWelcomeAnimationL()
+ {
+ TRACES("CStartupAppUi::ShowWelcomeAnimationL()");
+ __ASSERT_DEBUG( iWelcomeAnimation , PANIC( EStartupPanicClassMemberVariableIsNull ) );
+ TInt showtime = iWelcomeAnimation->ShowingTime();
+ iAnimation = ETrue;
+ TRACES("CStartupAppUi::ShowWelcomeAnimationL(): Animation timer started");
+ iAnimTimer->Start(
+ showtime*KOneMilliSecondInMicroSeconds,
+ showtime*KOneMilliSecondInMicroSeconds,
+ TCallBack( DoStopTimingL, this ) );
+ iWelcomeAnimation->StartL();
+ TRACES("CStartupAppUi::ShowWelcomeAnimationL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowOperatorAnimationL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ShowOperatorAnimationL()
+ {
+ TRACES("CStartupAppUi::ShowOperatorAnimationL()");
+ __ASSERT_DEBUG( iOperatorAnimation , PANIC( EStartupPanicClassMemberVariableIsNull ) );
+ TInt showtime = iOperatorAnimation->ShowingTime();
+ iAnimation = ETrue;
+ TRACES("CStartupAppUi::ShowWelcomeAnimationL(): Operator Animation timer started");
+ iAnimTimer->Start(
+ showtime*KOneMilliSecondInMicroSeconds,
+ showtime*KOneMilliSecondInMicroSeconds,
+ TCallBack( DoStopTimingL, this ) );
+ iOperatorAnimation->StartL();
+ TRACES("CStartupAppUi::ShowOperatorAnimationL(): End");
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowUserWelcomeNoteL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ShowUserWelcomeNoteL()
+ {
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL()");
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iUserWelcomeNote = CStartupUserWelcomeNote::NewL( *this, ClientRect(), *iMainView );
+ TStartupNoteTypeInformation type = iUserWelcomeNote->NoteTypeInformation();
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ __ASSERT_DEBUG( iUserWelcomeNote , PANIC( EStartupPanicClassMemberVariableIsNull ) );
+ TStartupNoteTypeInformation type;
+ type = iUserWelcomeNote->NoteTypeInformation();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ if( type == EStartupImage )
+ {
+ // UserWelcomeNote type is EStartupImage
+ // This type of note is shown fixed (KUserWelcomeNoteShowPeriodTime) time
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): UWNTimer started (graphic)");
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iAnimation = EFalse;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iNoteTimer->Start(
+ KUserWelcomeNoteShowPeriodTime,
+ KUserWelcomeNoteShowPeriodTime,
+ TCallBack( DoStopTimingL, this ) );
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iUserWelcomeNote->StartL();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ }
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ else if ( type == EStartupText )
+ {
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): Text UWN");
+
+ iUserWelcomeNote->StartL();
+
+ UpdateStartupUiPhase( EStartupUiPhaseUserWelcomeDone );
+
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+ }
+ else
+ {
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): No UWN");
+
+ DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck );
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ else
+ {
+ //if User Welcome Note type is ETextWelcomeNote nothing to do here,
+ //because it is implemented with Avkon globalnote
+ //or if type is EDefaultWelcomeNote no User Welcome Note is shown.
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): No UWN to show or UWN is text");
+ }
+ //invoke welcome note container to show note
+ iUserWelcomeNote->StartL();
+
+ if( type == EStartupText || type == EStartupNoNote)
+ {
+ //this is called already here because timer not activated in text uwn case
+ //and so DoStopTimingL() is never called and should be called here.
+ StopTimingL();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ }
+
+ TRACES("CStartupAppUi::ShowUserWelcomeNoteL(): End");
+ }
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::WaitingTouchScreenCalibL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::WaitingTouchScreenCalibL()
+ {
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL()");
+#ifdef RD_SCALABLE_UI_V2
+
+ if( iFirstBoot && iTouchScreenCalibSupport )
+ {
+ if (iTouchScreenCalibrationDone)
+ {
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Calibration already done. Continue boot up");
+ DoNextStartupPhaseL( EStartupOfflineModeQuery );
+ }
+ else
+ {
+ SendToBackground();
+
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDITouchScreenCalib );
+ iWelcomeAnimation->DrawNow();
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Startup sequence halted until Touch Screen Calibration is done");
+ }
+ }
+ else
+ {
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Not first boot or calibration not supported. Continue boot up");
+ DoNextStartupPhaseL( EStartupOfflineModeQuery );
+ }
+
+#else // !RD_SCALABLE_UI_V2
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): Calibration not supported. Continue boot up");
+ DoNextStartupPhaseL( EStartupOfflineModeQuery );
+
+#endif // RD_SCALABLE_UI_V2
+ TRACES("CStartupAppUi::WaitingTouchScreenCalibL(): End");
+ }
+
+#ifdef RD_SCALABLE_UI_V2
+// ---------------------------------------------------------------------------
+// CStartupAppUi::TouchScreenCalibrationDoneL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::TouchScreenCalibrationDoneL()
+ {
+ TRACES("CStartupAppUi::TouchScreenCalibrationDoneL()");
+ if (iInternalState == EStartupWaitingTouchScreenCalib)
+ {
+ iTouchScreenCalibrationDone = ETrue;
+ BringToForeground();
+ DoNextStartupPhaseL( EStartupOfflineModeQuery );
+ }
+ else
+ {
+ iTouchScreenCalibrationDone = ETrue;
+ }
+ TRACES("CStartupAppUi::TouchScreenCalibrationDoneL(): End");
+ }
+#endif // RD_SCALABLE_UI_V2
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()
+ {
+ TRACES("CStartupAppUi::CoverUIWelcomeAnimationSyncOKL()");
+ DoNextStartupPhaseL( EStartupWaitingStartupTone );
+ TRACES("CStartupAppUi::CoverUIWelcomeAnimationSyncOKL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()
+ {
+ TRACES("CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL()");
+ if (iCoverUISupported)
+ {
+ iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
+ SecondaryDisplay::EStartWelcomeAnimation);
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupWaitingStartupTone );
+ }
+ TRACES("CStartupAppUi::WaitingCoverUIWelcomeAnimationSyncL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::CoverUIOperatorAnimationSyncOKL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::CoverUIOperatorAnimationSyncOKL()
+ {
+ TRACES("CStartupAppUi::CoverUIOperatorAnimationSyncOKL()");
+ DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
+ TRACES("CStartupAppUi::CoverUIOperatorAnimationSyncOKL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()
+ {
+ TRACES("CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL()");
+ if (iCoverUISupported)
+ {
+ if (iOperatorAnimation->ShowingTime())
+ {
+ iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
+ SecondaryDisplay::EStartOperatorAnimation );
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
+ }
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupShowingOperatorAnimation );
+ }
+ TRACES("CStartupAppUi::WaitingCoverUIOperatorAnimationSyncL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::WaitingStartupToneL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::WaitingStartupToneL()
+ {
+ if( iStartupTone->ToneFound() && !iStartupTone->AudioReady() )
+ {
+ TRACES("CStartupAppUi::WaitingStartupToneL(): Startup tone found but not ready. Waiting tone to init");
+ iToneInitTimer = CPeriodic::NewL( EPriorityNormal );
+ iToneInitTimer->Start( KOneMilliSecondInMicroSeconds,
+ KOneMilliSecondInMicroSeconds,
+ TCallBack( ToneInitTimerTimeoutL, this ) );
+ }
+ else
+ {
+ TRACES("CStartupAppUi::WaitingStartupToneL(): Audio ready");
+ DoNextStartupPhaseL( EStartupShowingWelcomeAnimation );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ToneInitTimerTimeoutL()
+// ---------------------------------------------------------------------------
+TInt CStartupAppUi::ToneInitTimerTimeoutL(TAny* aObject)
+ {
+ STATIC_CAST( CStartupAppUi*, aObject )->StartupToneWaitStatusL(); // cast, and call non-static function
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::StartupToneWaitStatusL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::StartupToneWaitStatusL()
+ {
+ iToneInitWaitTime++;
+ TRACES1("CStartupAppUi::StartupToneWaitStatusL(): Total tone init wait time = %d ms", iToneInitWaitTime );
+ TBool audioReady = iStartupTone->AudioReady();
+ if ( audioReady || (iToneInitWaitTime>=KMaxToneInitWait) )
+ {
+ iToneInitTimer->Cancel();
+ delete iToneInitTimer;
+ iToneInitTimer = NULL;
+
+ TRACES1("CStartupAppUi::StartupToneWaitStatusL(): AudioReady: %d, proceed", audioReady );
+ DoNextStartupPhaseL( EStartupShowingWelcomeAnimation );
+ }
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::CoverUIStartupReadySyncOKL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::CoverUIStartupReadySyncOKL()
+ {
+ TRACES("CStartupAppUi::CoverUIStartupReadySyncOKL()");
+ DoNextStartupPhaseL( EStartupStartupOK );
+ TRACES("CStartupAppUi::CoverUIStartupReadySyncOKL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::WaitingCoverUIStartupReadySyncL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::WaitingCoverUIStartupReadySyncL()
+ {
+ TRACES("CStartupAppUi::WaitingCoverUIStartupReadySyncL()");
+ if (iCoverUISupported)
+ {
+ iStartupMediatorObserver->IssueCommand(SecondaryDisplay::ECmdStartupSync,
+ SecondaryDisplay::EStartStartupReady);
+ }
+ else
+ {
+ DoNextStartupPhaseL( EStartupStartupOK );
+ }
+ TRACES("CStartupAppUi::WaitingCoverUIStartupReadySyncL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::RaiseCoverUIEvent()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::RaiseCoverUIEvent( TUid aCategory,
+ TInt aEventId,
+ const TDesC8& aData )
+ {
+ TRACES("CStartupAppUi::RaiseCoverUIEvent()");
+ if (iCoverUISupported)
+ {
+ iStartupMediatorObserver->RaiseEvent( aCategory,
+ aEventId,
+ aData );
+ }
+ TRACES("CStartupAppUi::RaiseCoverUIEvent(): End");
+ }
+
// ---------------------------------------------------------------------------
// CStartupAppUi::SetCriticalBlockEndedL()
// ---------------------------------------------------------------------------
@@ -698,8 +1490,11 @@
if( iCriticalBlockEnded )
{
TRACES("CStartupAppUi::WaitingCriticalBlockEndingL(): CriticalBlock has ended. Continue.");
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
DoNextStartupPhaseL( EStartupOfflineModeQuery );
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ DoNextStartupPhaseL( EStartupWaitingTouchScreenCalib );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
}
TRACES("CStartupAppUi::WaitingCriticalBlockEndingL(): End");
}
@@ -744,7 +1539,7 @@
{
TRACES("CStartupAppUi::SetEmergencyCallsOnlyL(): Entered emergency calls only state.");
- DoNextStartupPhaseL( EStartupStartupOK );
+ DoNextStartupPhaseL( EStartupWaitingCUIStartupReady );
}
TRACES("CStartupAppUi::SetEmergencyCallsOnlyL(): End");
}
@@ -766,6 +1561,28 @@
TRACES("CStartupAppUi::SwStateFatalStartupErrorL(): End");
}
+
+
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::GetOfflineModeQueryShown()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::GetOfflineModeQueryShown()
+ {
+ TRACES1("CStartupAppUi::GetOfflineModeQueryShown(): iOfflineModeQueryShown == %d ", iOfflineModeQueryShown );
+ return iOfflineModeQueryShown;
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::SetOfflineModeQueryShown()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::SetOfflineModeQueryShown(TBool aValue)
+ {
+ TRACES1("CStartupAppUi::SetOfflineModeQueryShown(): iOfflineModeQueryShown == %d ", iOfflineModeQueryShown );
+ iOfflineModeQueryShown = aValue;
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+
// ----------------------------------------------------------------------------
// CStartAppUi::DosInOfflineModeL()
// ----------------------------------------------------------------------------
@@ -848,23 +1665,20 @@
else if ( iOfflineModeSupported && DosInOfflineModeL() )
{
TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Offline mode query needed");
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
RProperty::Set( KPSUidStartup, KPSSplashShutdown, ESplashShutdown );
iAnimation->BringToForeground();
iMainView->DrawDeferred();
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIQueriesOn );
+ iWelcomeAnimation->DrawNow();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
iOfflineModeQueryShown = ETrue;
- CHbDeviceMessageBoxSymbian *aMessageBox = NULL;
- aMessageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EQuestion);
- _LIT(KText, "Continue using phone in Offline mode?");
- aMessageBox->SetTextL(KText);
- _LIT(KAcceptText, "Yes");
- aMessageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, KAcceptText);
- _LIT(KRejectText, "No");
- aMessageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::ERejectButton, KRejectText);
- //aMessageBox->SetDismissPolicy(HbPopup::NoDismiss);
- //define the selection button to hold user's option choice
- CHbDeviceMessageBoxSymbian::TButtonId selection;
- selection = aMessageBox->ExecL();
- if ( selection == CHbDeviceMessageBoxSymbian::EAcceptButton )
+ CAknQueryDialog* dlg = new (ELeave) CAknQueryDialog( CAknQueryDialog::ENoTone );
+ TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Publish dialog for Secondary UI");
+ dlg->PublishDialogL(SecondaryDisplay::ECmdShowOfflineQuery,
+ SecondaryDisplay::KCatStartup);
+ if ( dlg->ExecuteLD( R_STARTUP_OFFLINE_MODE_QUERY ) )
{
TRACES("CStartupAppUi::ShowOfflineModeQueryL(): Offline Mode query: YES -> Boot to Offline");
reply = 1;
@@ -898,7 +1712,7 @@
{
TRACES1("CStartupAppUi::ShowOfflineModeQueryL(): KStartupBootIntoOffline set err %d", err);
}
-
+
TRACES("CStartupAppUi::ShowOfflineModeQueryL(): End");
}
@@ -908,13 +1722,395 @@
void CStartupAppUi::CancelAnimation()
{
TRACES("CStartupAppUi::CancelAnimation()");
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
iAnimation->Cancel();
-
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->CancelAnimation();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
TRACES("CStartupAppUi::CancelAnimation(): End");
}
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowCountryAndCityListsL()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::ShowCountryAndCityListsL()
+ {
+ TRACES("CStartupAppUi::ShowCountryAndCityListsL()");
+ TInt cityselected( EFalse );
+ while ( !cityselected )
+ {
+ TRACES1("CStartupAppUi::ShowCountryAndCityListsL(): City item to focus: %d", iCounryListIndex);
+ TInt cityGroupId = ShowCountryListL();
+ TRACES1("CStartupAppUi::ShowCountryAndCityListsL(): City group id: %d", cityGroupId);
+ if ( cityGroupId != KErrCancel )
+ {
+ cityselected = ShowCityListL(cityGroupId);
+ }
+ else
+ {
+ cityselected = ETrue;
+ }
+ }
+ TRACES("CStartupAppUi::ShowCountryAndCityListsL(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowCountryListL()
+// ---------------------------------------------------------------------------
+TInt CStartupAppUi::ShowCountryListL()
+ {
+ TRACES("CStartupAppUi::ShowCountryListL()");
+
+ CAknSinglePopupMenuStyleListBox* listBox =
+ new(ELeave) CAknSinglePopupMenuStyleListBox;
+ CleanupStack::PushL(listBox);
+
+ CStartupPopupList* popupList = CStartupPopupList::NewL(listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
+ AknPopupLayouts::EMenuGraphicHeadingWindow );
+
+ CleanupStack::PushL(popupList);
+
+ listBox->ConstructL(popupList, EAknListBoxSelectionList | EAknListBoxScrollBarSizeExcluded);
+ listBox->CreateScrollBarFrameL( ETrue );
+ listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EAuto );
+
+ listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue );
+
+ CDesCArrayFlat *items = new(ELeave)CDesCArrayFlat(1);
+
+ CleanupStack::PushL(items);
+
+ CTzLocalizer* tzLocalizer = CTzLocalizer::NewL();
+ CleanupStack::PushL(tzLocalizer);
+
+ CTzLocalizedCityGroupArray* countryList;
+ countryList = tzLocalizer->GetAllCityGroupsL(CTzLocalizer::ETzAlphaNameAscending);
+ CleanupStack::PushL(countryList);
+
+ TRACES("CStartupAppUi::ShowCountryListL(): Create list of cities");
+ for(TInt i = 0; i <countryList->Count(); i++)
+ {
+ CTzLocalizedCityGroup& cityGroup = countryList->At(i);
+
+ // Check if the country name is blank.
+ // If it is blank, ignore it. Empty name shouldn't be shown in the list.
+ if(cityGroup.Name().Compare(KEmpty) != 0)
+ {
+ TBuf<KMaxCountryLength> countryitem;
+ countryitem.Insert(0,cityGroup.Name());
+ TRACES1("CStartupAppUi::ShowCountryListL(): Create country to list: %S", &countryitem);
+ items->AppendL(countryitem);
+ }
+ }
+
+ CleanupStack::PopAndDestroy( countryList );
+
+ CTextListBoxModel* model=listBox->Model();
+ model->SetItemTextArray(items);
+ model->SetOwnershipType(ELbmOwnsItemArray);
+
+ TRACES("CStartupAppUi::ShowCountryListL(): Set title");
+ // Set title
+ HBufC* title = StringLoader::LoadLC( R_QTN_SU_SELECT_COUNTRY );
+ popupList->SetTitleL(title->Des());
+ CleanupStack::PopAndDestroy( title );
+
+ popupList->EnableAdaptiveFind();
+ listBox->SetCurrentItemIndex(iCounryListIndex);
+
+ TInt cityGroupId;
+
+ if (iCoverUISupported)
+ {
+ TRACES("CStartupAppUi::ShowCountryListL(): Publish country list for Secondary UI");
+ TPckgBuf<TInt> data( SecondaryDisplay::EShowCountryQuery );
+ iStartupMediatorObserver->RaiseEvent( SecondaryDisplay::KCatStartup,
+ SecondaryDisplay::EMsgStartupEvent,
+ data );
+ }
+
+ TRACES("CStartupAppUi::ShowCountryListL(): Show the list");
+ if (popupList->ExecuteLD())
+ {
+ iCounryListIndex = listBox->CurrentItemIndex();
+ TRACES1("CStartupAppUi::ShowCountryListL(): CurrentItemIndex: %d", iCounryListIndex);
+ TPtrC countryName = listBox->Model()->ItemText(iCounryListIndex);
+
+ CTzLocalizedCityGroup* tzLocalizedCityGroup = tzLocalizer->FindCityGroupByNameL(countryName);
+ CleanupStack::PushL(tzLocalizedCityGroup);
+
+ cityGroupId = tzLocalizedCityGroup->Id();
+ CleanupStack::PopAndDestroy( tzLocalizedCityGroup );
+
+ TRACES1("CStartupAppUi::ShowCountryListL(): Selected country %S", &countryName);
+ }
+ else
+ {
+ TRACES("CStartupAppUi::ShowCountryListL(): Country list cancelled");
+ cityGroupId = KErrCancel;
+ }
+
+ CleanupStack::PopAndDestroy( tzLocalizer );
+ CleanupStack::Pop( items );
+ CleanupStack::Pop( popupList );
+ CleanupStack::PopAndDestroy( listBox );
+
+ TRACES1("CStartupAppUi::ShowCountryListL(): End. Return city group id: %d", cityGroupId);
+ return cityGroupId;
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowCityListL()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::ShowCityListL(TUint8 cityGroupId)
+ {
+ TRACES("CStartupAppUi::ShowCityListL()");
+
+ TBool retval( ETrue );
+
+ CTzLocalizer* tzLocalizer = CTzLocalizer::NewL();
+ CleanupStack::PushL(tzLocalizer);
+
+ CTzLocalizedCityArray* cityList;
+
+ TRACES1("CStartupAppUi::ShowCityListL(): Create list of cities in group %d", cityGroupId);
+
+ cityList = tzLocalizer->GetCitiesInGroupL(cityGroupId,//cityGroup.Id(),
+ CTzLocalizer::ETzAlphaNameAscending );
+ CleanupStack::PushL(cityList);
+
+ if ( cityList->Count() == 1 )
+ {
+ TRACES("CStartupAppUi::ShowCityListL(): Only one city in citygroup. This can be selected automatically.");
+
+ CTzLocalizedCity& city = cityList->At(0);
+
+ CTzLocalizedCity* tzLocalizedCity = tzLocalizer->FindCityByNameL(city.Name());
+ CleanupStack::PushL(tzLocalizedCity);
+
+ TInt timeZoneId = tzLocalizedCity->TimeZoneId();
+
+ tzLocalizer->SetTimeZoneL(timeZoneId);
+ tzLocalizer->SetFrequentlyUsedZoneL(*tzLocalizedCity, CTzLocalizedTimeZone::ECurrentZone);
+
+ CleanupStack::PopAndDestroy( tzLocalizedCity );
+ CleanupStack::PopAndDestroy( cityList );
+ CleanupStack::PopAndDestroy( tzLocalizer );
+
+ TRACES1("CStartupAppUi::ShowCityListL(): End, returns %d", retval);
+ return retval;
+ }
+
+ CAknSinglePopupMenuStyleListBox* listBox =
+ new(ELeave) CAknSinglePopupMenuStyleListBox;
+ CleanupStack::PushL(listBox);
+
+ CStartupPopupList* popupList = CStartupPopupList::NewL(listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
+ AknPopupLayouts::EMenuGraphicHeadingWindow );
+
+ CleanupStack::PushL(popupList);
+
+ CDesCArrayFlat *items = new(ELeave)CDesCArrayFlat(1);
+
+ CleanupStack::PushL(items);
+
+ for(TInt j = 0; j < cityList->Count(); j++)
+ {
+ CTzLocalizedCity& city = cityList->At(j);
+
+ // Check if the city name is blank.
+ // If it is blank, ignore it. Empty name shouldn't be shown in the list.
+ if(city.Name().Compare(KEmpty) != 0)
+ {
+ TBuf<KMaxCityLength> homecityitem;
+ homecityitem.Insert(0,city.Name());
+ TRACES1("CStartupAppUi::ShowCityListL(): Create to list: %S", &homecityitem);
+ items->AppendL(homecityitem);
+ }
+ }
+
+ listBox->ConstructL(popupList, EAknListBoxSelectionList | EAknListBoxScrollBarSizeExcluded);
+ listBox->CreateScrollBarFrameL( ETrue );
+ listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
+ CEikScrollBarFrame::EAuto );
+
+ listBox->ItemDrawer()->FormattedCellData()->EnableMarqueeL( ETrue );
+
+ CTextListBoxModel* model=listBox->Model();
+ model->SetItemTextArray(items);
+ model->SetOwnershipType(ELbmOwnsItemArray);
+
+ TRACES("CStartupAppUi::ShowCityListL(): Set title");
+ // Set title
+ HBufC* title = StringLoader::LoadLC( R_QTN_SU_SELECT_CITY );
+ popupList->SetTitleL(title->Des());
+ CleanupStack::PopAndDestroy(title);
+
+ popupList->EnableAdaptiveFind();
+
+ if (iCoverUISupported)
+ {
+ TRACES("CStartupAppUi::ShowCountryListL(): Publish city list for Secondary UI");
+ TPckgBuf<TInt> data( SecondaryDisplay::EShowCityQuery );
+ iStartupMediatorObserver->RaiseEvent( SecondaryDisplay::KCatStartup,
+ SecondaryDisplay::EMsgStartupEvent,
+ data );
+ }
+
+ TRACES("CStartupAppUi::ShowCityListL(): Show the list");
+ if (popupList->ExecuteLD())
+ {
+ TInt index(listBox->CurrentItemIndex());
+ TRACES1("CStartupAppUi::ShowCityListL(): CurrentItemIndex: %d", index);
+ TPtrC cityName = listBox->Model()->ItemText(index);
+
+ CTzLocalizedCity* tzLocalizedCity = tzLocalizer->FindCityByNameL(cityName);
+ CleanupStack::PushL(tzLocalizedCity);
+
+ TInt timeZoneId = tzLocalizedCity->TimeZoneId();
+
+ tzLocalizer->SetTimeZoneL(timeZoneId);
+ tzLocalizer->SetFrequentlyUsedZoneL(*tzLocalizedCity, CTzLocalizedTimeZone::ECurrentZone);
+
+ CleanupStack::PopAndDestroy(tzLocalizedCity);
+
+ TRACES1("CStartupAppUi::ShowCityListL(): Selected city %S", &cityName);
+ }
+ else
+ {
+ TRACES("CStartupAppUi::ShowCityListL(): City list cancelled");
+ retval = EFalse;
+ }
+
+ CleanupStack::Pop(items);
+ CleanupStack::Pop(popupList);
+ CleanupStack::PopAndDestroy(listBox);
+ CleanupStack::PopAndDestroy(cityList);
+ CleanupStack::PopAndDestroy(tzLocalizer);
+
+
+ TRACES("CStartupAppUi::ShowCityListL(): Home city selected");
+ TRACES1("CStartupAppUi::ShowCityListL(): End, return %d", retval);
+ return retval;
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowTimeQueryL()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::ShowTimeQueryL()
+ {
+ TRACES("CStartupAppUi::ShowTimeQueryL()");
+
+ TTime time;
+ GetDefaultTimeAndDate( time );
+
+ CStartupQueryDialog* dlg = new (ELeave) CStartupQueryDialog(time, CAknQueryDialog::ENoTone);
+ TRACES("CStartupAppUi::ShowTimeQueryL(): Publish dialog for Secondary UI");
+ dlg->PublishDialogL(SecondaryDisplay::ECmdShowTimeQuery, SecondaryDisplay::KCatStartup);
+ if( dlg->ExecuteLD( R_STARTUP_TIME_SETTING_QUERY ) )
+ {
+ TTime current;
+ current.HomeTime();
+ TDateTime cTime = current.DateTime();
+ TDateTime atime = time.DateTime();
+ atime.SetYear(cTime.Year());
+ atime.SetMonth(cTime.Month());
+ atime.SetDay(cTime.Day());
+ time = atime;
+
+ RTz rtz;
+ User::LeaveIfError(rtz.Connect());
+ User::LeaveIfError(rtz.SetHomeTime(time));
+ rtz.Close();
+
+ TRACES("CStartupAppUi::ShowTimeQueryL(): End, return ETrue");
+ return ETrue;
+ }
+ else
+ {
+ //in case of poweroff key was pressed and shutdown is occuring
+ TRACES("CStartupAppUi::ShowTimeQueryL(): End, return EFalse");
+ return EFalse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::ShowDateQueryL()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::ShowDateQueryL()
+ {
+ TRACES("CStartupAppUi::ShowDateQueryL()");
+
+
+ CStartupQueryDialog* dlg = new (ELeave) CStartupQueryDialog(iTime, CAknQueryDialog::ENoTone);
+ TRACES("CStartupAppUi::ShowDateQueryL(): Publish dialog for Secondary UI");
+ dlg->PublishDialogL(SecondaryDisplay::ECmdShowDateQuery, SecondaryDisplay::KCatStartup);
+
+ TInt query( R_STARTUP_DATE_SETTING_QUERY_NOBACK );
+ if ( iFirstBoot )
+ {
+ query = R_STARTUP_DATE_SETTING_QUERY;
+ }
+
+ if( dlg->ExecuteLD( query ) )
+ {
+ TTime current;
+ current.HomeTime();
+ TDateTime cTime = current.DateTime();
+ TDateTime atime = iTime.DateTime();
+ atime.SetHour(cTime.Hour());
+ atime.SetMinute(cTime.Minute());
+ atime.SetSecond(cTime.Second());
+ atime.SetMicroSecond(cTime.MicroSecond());
+ iTime = atime;
+
+ RTz rtz;
+ User::LeaveIfError(rtz.Connect());
+ User::LeaveIfError(rtz.SetHomeTime(iTime));
+ rtz.Close();
+
+ TRACES("CStartupAppUi::ShowDateQueryL(): End, return ETrue");
+ return ETrue;
+ }
+ else
+ {
+ // Back key pressed. ( Or poweroff key was pressed and shutdown is occuring )
+ TRACES("CStartupAppUi::ShowDateQueryL(): End, return EFalse");
+ return EFalse;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::GetDefaultTimeAndDate()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::GetDefaultTimeAndDate( TTime& aTime )
+ {
+ TRACES("CStartupAppUi::GetDefaultTimeAndDate(): Get Time and Date from CenRep");
+
+ CRepository* repository(NULL);
+
+ TRAPD( err, repository = CRepository::NewL( KCRUidStartupConf ) );
+ if ( !err )
+ {
+ TBuf<KTimeFormatLength> buf;
+ err = repository->Get( KStartupDefaultTime, buf );
+ if( !err )
+ {
+ err = aTime.Set(buf); // returns error if cenrep time format not valid
+ }
+ }
+
+ if ( err )
+ {
+ TRACES("CStartupAppUi::GetDefaultTimeAndDate(): Failed to get valid data from CenRep. Using default");
+ aTime.Set(KDefaultDateTimeValue);
+ }
+
+ delete repository;
+ TRACES("CStartupAppUi::GetDefaultTimeAndDate(): End");
+ }
// ---------------------------------------------------------------------------
// CStartupAppUi::FirstBoot()
@@ -1016,7 +2212,7 @@
}
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
// CStartupAppUi::AnimationFinished()
// ---------------------------------------------------------------------------
@@ -1058,7 +2254,7 @@
}
else if ( iInternalState == EStartupShowingOperatorAnimation )
{
- TRAP(err, DoNextStartupPhaseL( EStartupFirstBootAndRTCCheck));
+ TRAP(err, DoNextStartupPhaseL( EStartupShowingUserWelcomeNote ));
}
if ( err != KErrNone )
@@ -1068,6 +2264,51 @@
TRACES("CStartupAppUi::AnimationFinished(): End");
}
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+// ---------------------------------------------------------------------------
+// CStartupAppUi::StopStartupTone()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::StopStartupTone()
+ {
+ TRACES("CStartupAppUi::StopStartupTone()");
+ if ((iStartupTone) && (iStartupTone->Playing()))
+ {
+ iStartupTone->Stop();
+ }
+ TRACES("CStartupAppUi::StopStartupTone(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::StopOperatorTone()
+// ---------------------------------------------------------------------------
+void CStartupAppUi::StopOperatorTone()
+ {
+ TRACES("CStartupAppUi::StopOperatorTone()");
+ if ((iOpStartupTone) && (iOpStartupTone->Playing()))
+ {
+ iOpStartupTone->Stop();
+ }
+ TRACES("CStartupAppUi::StopOperatorTone(): End");
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::StartupTonePlaying()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::StartupTonePlaying()
+ {
+ TRACES("CStartupAppUi::StartupTonePlaying()");
+ return iStartupTone->Playing();
+ }
+
+// ---------------------------------------------------------------------------
+// CStartupAppUi::OperatorTonePlaying()
+// ---------------------------------------------------------------------------
+TBool CStartupAppUi::OperatorTonePlaying()
+ {
+ TRACES("CStartupAppUi::OperatorTonePlaying()");
+ return iOpStartupTone->Playing();
+ }
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
// CStartupAppUi::SetCleanBoot()
@@ -1088,7 +2329,14 @@
return iSimSupported;
}
-
+// ----------------------------------------------------------------------------
+// CStartupAppUi::CoverUISupported()
+// ----------------------------------------------------------------------------
+TBool CStartupAppUi::CoverUISupported()
+ {
+ TRACES("CStartupAppUi::CoverUISupported()");
+ return iCoverUISupported;
+ }
// ---------------------------------------------------------------------------
// CStartupAppUi::DoNextStartupPhaseL( TStartupInternalState toState )
@@ -1100,14 +2348,14 @@
// 5 EStartupWaitingTouchScreenCalib
// 6 EStartupWaitingPhoneLightIdle 8, 18
// 8 EStartupOfflineModeQuery 9, 18
-// 9 EStartupWaitingCUIWelcomeAnim 10, 18 Removed
+// 9 EStartupWaitingCUIWelcomeAnim 10, 18
// 10 EStartupWaitingStartupTone 11, 18
// 11 EStartupShowingWelcomeAnimation 12, 14, 18
// 12 EStartupWaitingCUIOperatorAnim 13, 18
// 13 EStartupShowingOperatorAnimation 14, 14, 18
-// 14 EStartupShowingUserWelcomeNote 15, 18 Removed
+// 14 EStartupShowingUserWelcomeNote 15, 18
// 15 EStartupFirstBootAndRTCCheck 16, 18
-// 16 EStartupWaitingCUIStartupReady 17, 18 Removed
+// 16 EStartupWaitingCUIStartupReady 17, 18
// 17 EStartupStartupOK -
// 18 EStartupSystemFatalError -
@@ -1143,18 +2391,42 @@
{
switch( toState )
{
- case EStartupStartupOK:
- iInternalState = EStartupStartupOK;
- TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupStartupOK");
- DoStartupEndPart();
+ case EStartupWaitingCUIStartupReady:
+ iInternalState = EStartupWaitingCUIStartupReady;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIStartupReady");
+ WaitingCoverUIStartupReadySyncL();
+ break;
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupWaitingTouchScreenCalib:
+ iInternalState = EStartupWaitingTouchScreenCalib;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingTouchScreenCalib");
+ WaitingTouchScreenCalibL();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
break;
-
+ default:
+ __ASSERT_DEBUG(
+ EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
+ case EStartupWaitingTouchScreenCalib:
+ {
+ switch( toState )
+ {
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
case EStartupOfflineModeQuery:
iInternalState = EStartupOfflineModeQuery;
TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupOfflineModeQuery");
ShowOfflineModeQueryL();
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
DoNextStartupPhaseL( EStartupWaitingShowStartupAnimation );
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ DoNextStartupPhaseL( EStartupWaitingCUIWelcomeAnim );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
break;
case EStartupSystemFatalError:
SystemFatalErrorL();
@@ -1171,13 +2443,20 @@
{
switch( toState )
{
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
case EStartupWaitingShowStartupAnimation:
iInternalState = EStartupWaitingShowStartupAnimation;
TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingShowStartupAnimation");
WaitingStartupAnimationStartL();
break;
- case EStartupSystemFatalError:
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupWaitingCUIWelcomeAnim:
+ iInternalState = EStartupWaitingCUIWelcomeAnim;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIWelcomeAnim");
+ WaitingCoverUIWelcomeAnimationSyncL();
+ break;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupSystemFatalError:
SystemFatalErrorL();
break;
default:
@@ -1188,6 +2467,50 @@
}
}
break;
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupWaitingCUIWelcomeAnim:
+ {
+ switch( toState )
+ {
+ case EStartupWaitingStartupTone:
+ iInternalState = EStartupWaitingStartupTone;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingStartupTone");
+ WaitingStartupToneL();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
+ break;
+ default:
+ __ASSERT_DEBUG( EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
+ case EStartupWaitingStartupTone:
+ {
+ switch( toState )
+ {
+ case EStartupShowingWelcomeAnimation:
+ iInternalState = EStartupShowingWelcomeAnimation;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupShowingWelcomeAnimation");
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimStart );
+ iWelcomeAnimation->DrawNow();
+ DoStartupShowWelcomeAnimationL();
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeAnimEnd );
+ iWelcomeAnimation->DrawNow();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
+ break;
+ default:
+ __ASSERT_DEBUG( EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
case EStartupWaitingShowStartupAnimation:
{
switch( toState )
@@ -1212,11 +2535,19 @@
{
switch( toState )
{
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
case EStartupShowingOperatorAnimation:
iInternalState = EStartupShowingOperatorAnimation;
TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingOperatorAnimation");
DoStartupShowOperatorAnimationL();
+#else // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupWaitingCUIOperatorAnim:
+ iOperatorAnimation = CStartupOperatorAnimation::NewL( this, ClientRect());
+ AddToStackL( iOperatorAnimation);
+ iInternalState = EStartupWaitingCUIOperatorAnim;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupWaitingCUIOperatorAnim");
+ WaitingCoverUIOperatorAnimationSyncL();
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
break;
case EStartupFirstBootAndRTCCheck:
iInternalState = EStartupFirstBootAndRTCCheck;
@@ -1233,12 +2564,45 @@
}
}
break;
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ case EStartupWaitingCUIOperatorAnim:
+ {
+ switch( toState )
+ {
+ case EStartupShowingOperatorAnimation:
+ iInternalState = EStartupShowingOperatorAnimation;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingOperatorAnimation");
+ iOperatorAnimation->UpdateDrawInfo( EStartupDIOperatorAnimStart );
+ DoStartupShowOperatorAnimationL();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
+ break;
+ default:
+ __ASSERT_DEBUG( EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
case EStartupShowingOperatorAnimation:
{
switch( toState )
{
-
-
+ case EStartupShowingUserWelcomeNote:
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iUserWelcomeNote = CStartupUserWelcomeNote::NewL( *this, ClientRect());
+ AddToStackL( iUserWelcomeNote );
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iInternalState = EStartupShowingUserWelcomeNote;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState: EStartupShowingUserWelcomeNote");
+#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
+ iWelcomeAnimation->UpdateDrawInfo( EStartupDIWelcomeNoteStart );
+ iUserWelcomeNote->SetUserWelcomeNoteShowing(ETrue);
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
+ DoStartupShowUserWelcomeNoteL();
+ break;
case EStartupFirstBootAndRTCCheck:
iInternalState = EStartupFirstBootAndRTCCheck;
TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupFirstBootAndRTCCheck");
@@ -1254,15 +2618,52 @@
}
}
break;
-
+ case EStartupShowingUserWelcomeNote:
+ {
+ switch( toState )
+ {
+ case EStartupFirstBootAndRTCCheck:
+ iInternalState = EStartupFirstBootAndRTCCheck;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupFirstBootAndRTCCheck");
+ DoStartupFirstBootAndRTCCheckL();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
+ break;
+ default:
+ __ASSERT_DEBUG( EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
case EStartupFirstBootAndRTCCheck:
{
switch( toState )
{
+ case EStartupWaitingCUIStartupReady:
+ iInternalState = EStartupWaitingCUIStartupReady;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupWaitingCUIStartupReady");
+ WaitingCoverUIStartupReadySyncL();
+ break;
+ case EStartupSystemFatalError:
+ SystemFatalErrorL();
+ break;
+ default:
+ __ASSERT_DEBUG( EFalse,
+ PANIC( EStartupInvalidInternalStateChange ) );
+ break;
+ }
+ }
+ break;
+ case EStartupWaitingCUIStartupReady:
+ {
+ switch( toState )
+ {
case EStartupStartupOK:
- iInternalState = EStartupStartupOK;
- TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupInvokeAndWaitForFtu");
- DoStartupEndPart();
+ iInternalState = EStartupStartupOK;
+ TRACES("CStartupAppUi::DoNextStartupPhaseL(): InternalState : EStartupStartupOK");
+ DoStartupEndPart();
break;
case EStartupSystemFatalError:
SystemFatalErrorL();
@@ -1282,6 +2683,7 @@
case EStartupOfflineModeQuery:
case EStartupShowingWelcomeAnimation:
case EStartupShowingOperatorAnimation:
+ case EStartupShowingUserWelcomeNote:
case EStartupFirstBootAndRTCCheck:
case EStartupWaitingCUIStartupReady:
case EStartupStartupOK:
@@ -1337,7 +2739,7 @@
return ret_val;
}
-
+#ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
// ---------------------------------------------------------------------------
// CStartupAppUi::UpdateStartupUiPhase()
// ---------------------------------------------------------------------------
@@ -1352,5 +2754,5 @@
TRACES1("CStartupAppUi::UpdateStartupUiPhase(): KPSStartupUiPhase set err %d", err);
}
}
-
+#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
// End of file