coreapplicationuis/SysAp/Inc/SysApAppUi.h
branchRCL_3
changeset 63 c2c61fdca848
parent 62 924385140d98
child 82 4610cd70c542
equal deleted inserted replaced
62:924385140d98 63:c2c61fdca848
     1 /*
     1 /*
     2  * Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). 
     3  * All rights reserved.
     3 * All rights reserved.
     4  * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5  * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6  * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8  *
     8 *
     9  * Initial Contributors:
     9 * Initial Contributors:
    10  * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11  *
    11 *
    12  * Contributors:
    12 * Contributors:
    13  *
    13 *
    14  * Description:
    14 * Description:  CSysApAppUi class definition. This class handles all user
    15  *
    15 *                actions and also System Agent events.
    16  */
    16 *
       
    17 */
       
    18 
    17 
    19 
    18 #ifndef SYSAPAPPUI_H
    20 #ifndef SYSAPAPPUI_H
    19 #define SYSAPAPPUI_H
    21 #define SYSAPAPPUI_H
    20 
    22 
       
    23 // INCLUDES
    21 #include <aknappui.h>
    24 #include <aknappui.h>
       
    25 #include <aknkeylock.h>
       
    26 #ifndef RD_MULTIPLE_DRIVE
       
    27  #include <aknmemorycarddialog.h>
       
    28 #endif // RD_MULTIPLE_DRIVE
       
    29 #include <starterclient.h>
       
    30 #include <starter.hrh>
       
    31 #include <babackup.h>
       
    32 #include <rmmcustomapi.h>
       
    33 
       
    34 #include <DosSvrServices.h>
    22 #include "SysAp.hrh"
    35 #include "SysAp.hrh"
    23 #include <f32file.h> 
    36 #include "SysApMMCObserver.h"
    24 #include <W32STD.H>
    37 #include "MSysApPropertyResponder.h"
    25 #include <coedef.h>
    38 #include "SysApTimer.h"
    26 #include <e32property.h>
    39 #include <e32property.h>
       
    40 #include "CoreApplicationUIsPrivateCRKeys.h"
    27 #include <sysapcallback.h>
    41 #include <sysapcallback.h>
    28 #include <starterclient.h>
    42 
    29 #include <rmmcustomapi.h>
    43 #include "SysApAccessoryObserver.h"
    30 
    44 #ifdef RD_MULTIPLE_DRIVE
    31 
    45   #include "sysapdrivelist.h"
    32 #include "SysApTimer.h"
    46 #endif // RD_MULTIPLE_DRIVE
    33 #include "SysApLightsController.h"
    47 
    34 #include "coreapplicationuisprivatecrkeys.h"
       
    35 #include "sysapusbchargerdetector.h"
    48 #include "sysapusbchargerdetector.h"
    36 #include "SysApAccessoryObserver.h"
       
    37 #include <hbsymbianvariant.h>
       
    38 #include <hbindicatorsymbian.h>
       
    39 //For Powermenu--CHbDevicePowerMenuSymbian
       
    40 #include "hbdevicepowermenusymbian.h"
       
    41 
       
    42 #include "sysappsmcontroller.h"
    49 #include "sysappsmcontroller.h"
    43 #include "SysApMMCObserver.h"
    50 
    44 
    51 // FORWARD DECLARATIONS
    45 #ifdef RD_MULTIPLE_DRIVE
    52 class CAknSmallIndicator;
    46 #include "sysapdrivelist.h"
    53 class CAknSignalNotify;
    47 #endif // RD_MULTIPLE_DRIVE
    54 class CAknBatteryNotify;
    48 
    55 class CAknGlobalListQuery;
    49 #include <eikappui.h>
    56 class CAknGlobalNote;
    50 
    57 class CSystemLock;
    51 
    58 class CSysApLightsController;
       
    59 class CSysApPubSubObserver;
       
    60 class CSysApProfileObserver;
       
    61 class CSysApConnectionMonitorObserver;
       
    62 class CSysApCenRepLightSettingsObserver;
       
    63 class CSysApCenRepLogsObserver;
       
    64 class CSysApCenRepBtObserver;
       
    65 class CSysApCenRepFmTxObserver;
       
    66 class CSysApCenRepController;
       
    67 class CSysApStartupController;
       
    68 class CSysApPowerKeyMenuObserver;
       
    69 class CSysApWaitNote;
       
    70 class CSysApSsSettingsObserver;
       
    71 class CSysApShutdownImage;
       
    72 class CSysApShutdownAnimation;
       
    73 class CSysApEtelConnector;
       
    74 class CSysApMsgSimMemLowQuery;
       
    75 class CSysApNspsHandler;
       
    76 class CSysApConfirmationQuery;
    52 class CSysApFeatureManager;
    77 class CSysApFeatureManager;
    53 class CSysApNspsHandler;
       
    54 class CSysApPubSubObserver;
       
    55 class CSysApStartupController;
       
    56 class CSysApDefaultKeyHandler;
       
    57 class CSysApKeyManagement; 
       
    58 class MSysApOfflineModeController;
    78 class MSysApOfflineModeController;
    59 class CHbDevicePowerMenuSymbian;
    79 class MSysApBtController;
    60 class CSysApShutdownImage;
    80 class MSysApBtSapController;
       
    81 class MSysApUsbIndicator;
       
    82 class MSysApLocationPrivacyIndicator;
       
    83 class MProfileEngine;
       
    84 class MProfilesNamesArray;
    61 class CSysApKeySndHandler;
    85 class CSysApKeySndHandler;
    62 class CSysApCenRepController;
    86 class CSysApKeyManagement;  // KEF
    63 class CSysApCenRepLightSettingsObserver;
    87 class CSysApMediatorObserver;
    64 class CSysApCenRepBtObserver;
    88 class CAknAppUiBase;
    65 class CSysApCenRepHacSettingObserver;
    89 class CSysApCenRepHacSettingObserver;
    66 class CSysApAudioRoutingObserver;
    90 class CSysApAudioRoutingObserver;
    67 class CSysApSsSettingsObserver;
       
    68 class CSystemLock;
       
    69 class CSysApCenRepCallForwardingObserver;
    91 class CSysApCenRepCallForwardingObserver;
    70 class CSysApBatteryInfoController;
    92 class CSysApCenRepMsgWaitingObserver;
    71 class MSysApBtSapController;
    93 
    72 class MSysApBtController;
    94 // POC launching
    73 class CSysApCenRepLogsObserver;
    95 class CAiwServiceHandler;
    74 class MSysApUsbIndicator;
       
    75 class CKeyguardAccessApi;
       
    76 class CHbIndicatorSymbian;	
       
    77 class CSysApShutdownAnimation;
       
    78 
    96 
    79 class CSysApDefaultKeyHandler;
    97 class CSysApDefaultKeyHandler;
    80 class CSysApDriveUnlockHandler;
    98 class CSysApDriveUnlockHandler;
    81 class CSysApDriveEjectHandler;
    99 class CSysApDriveEjectHandler;
    82 class CHbDeviceInputDialogSymbian;
   100 
    83 class CSysApEtelConnector;
   101 class CSysApGanHandler;
    84 
   102 
       
   103 class CSysApBatteryInfoController;
       
   104 
       
   105 //CONSTANTS
       
   106 const TInt KDummyReason( -1 );
    85 const TInt KBluetoothModulePowerModeOn ( 1 );
   107 const TInt KBluetoothModulePowerModeOn ( 1 );
    86 const TInt KDummyReason( -1 );
   108 const TInt KBluetoothModulePowerModeOff ( 0 );
       
   109 const TInt KGeneralProfileId ( 0 );
       
   110 const TInt KOfflineModeProfileId ( 5 );
       
   111 const TInt KApplicationScanningInterval( 1 ); // 1 second
       
   112 _LIT( KFSName, "Fat" );                 // MMC file system name
       
   113 const TDriveNumber KMMCDrive = EDriveE; // MMC drive number
       
   114 
    87 
   115 
    88 
   116 
    89 //CLASS DECLARATION
   117 //CLASS DECLARATION
    90 /**
   118 /**
    91 *  CSysApAppUi class. This class serves as a link between the other
   119 *  CSysApAppUi class. This class serves as a link between the other
    94 *
   122 *
    95 *  @lib   sysap
   123 *  @lib   sysap
    96 *  @since 1.0
   124 *  @since 1.0
    97 */
   125 */
    98 
   126 
    99 class CSysApAppUi : public CAknAppUi,
   127 class CSysApAppUi :
       
   128                     public CAknAppUi,
       
   129 #ifndef RD_MULTIPLE_DRIVE
       
   130                     public MAknMemoryCardDialogObserver,
       
   131 #endif // RD_MULTIPLE_DRIVE
   100                     public MSysApMemoryCardObserver,
   132                     public MSysApMemoryCardObserver,
   101                     public MSysApTimerResponder,
   133                     public MSysApTimerResponder,
   102                     public MSysapCallback,
   134                     public MSysapCallback,
   103                     public MSysApPsmControllerNotifyCallback
   135                     public MSysApPsmControllerNotifyCallback
   104 	{
   136 {
   105 		public:
   137     public:
   106         /**
   138         /**
   107         * C++ default constructor.
   139         * C++ default constructor.
   108         * @param None
   140         * @param None
   109         * @return void
   141         * @return void
   110         */
   142         */
   114         * Destructor
   146         * Destructor
   115         * @param None
   147         * @param None
   116         * @return void
   148         * @return void
   117         */
   149         */
   118         virtual ~CSysApAppUi();
   150         virtual ~CSysApAppUi();
       
   151 
       
   152     protected: // From MSysApTimerResponder
       
   153 
       
   154         /**
       
   155         * Handle events from CSysApTimer
       
   156         * @param None
       
   157         * @return void
       
   158         */
       
   159         void TimerExpiredL();
       
   160 
       
   161     public:
       
   162 
       
   163         /**
       
   164         * Gets called when shutdown continues after shutdown animation
       
   165         * @param None
       
   166         * @return void
       
   167         */
       
   168         void ContinueShutdown();
       
   169 
       
   170         /**
       
   171         * Gets called when there is need to shutdown the device initiated by Symbian side
       
   172         * @param None
       
   173         * @return void
       
   174         */
       
   175         void DoShutdownL( const TBool aReset, const TInt aResetReason );
       
   176 
       
   177         /**
       
   178         * Gets called by CSysApSharedDataObserver if user has selected "No" in
       
   179         * "Do you want to use the phone in Off-line mode?" query in startup.
       
   180         * @param aDoProfileChange if ETrue, the last active profile is restored
       
   181         * @return void
       
   182         */
       
   183         void GoOnlineL( TBool aDoProfileChange = ETrue );
       
   184 
       
   185         /**
       
   186         * Gets called by CSysApSharedDataObserver in Simless Offline Mode startup.
       
   187         * @param None
       
   188         * @return void
       
   189         */
       
   190         void GoOfflineL();
       
   191 
       
   192         /**
       
   193         * Calls CSysApOfflineModeController::SwitchFromOnlineToOfflineModeL()
       
   194         * @param None
       
   195         * @return void
       
   196         */
       
   197         void SwitchFromOnlineToOfflineModeL();
       
   198 
       
   199         /**
       
   200         * Called when offline mode change has been finished.
       
   201         */
       
   202         void OfflineModeChangedL();
       
   203 
       
   204         /**
       
   205         * Gets called after changing the SW state.
       
   206         * @param aSwState The new state
       
   207         * @return void
       
   208         */
       
   209         void DoStateChangedL( const RStarterSession::TGlobalState aSwState  );
       
   210 
       
   211 #ifdef SYSAP_USE_STARTUP_UI_PHASE        
       
   212         /**
       
   213         * Called when UI is ready after boot.
       
   214         */
       
   215         void HandleUiReadyAfterBootL();
       
   216 
       
   217 #endif // SYSAP_USE_STARTUP_UI_PHASE
   119         
   218         
   120         // from CCoeAppUiBase
   219         /**
   121         void PrepareToExit();
   220         * Returns whether UI is ready after boot.
   122         
   221         */
   123     protected: // From MSysApTimerResponder
   222         TBool UiReady() const;
   124 
   223 
   125         /**
   224         /**
   126         * Handle events from CSysApTimer
   225         * Gets called when any case selection on powerkey menu is done.
   127         * @param None
   226         * Does what is needed per selection.
   128         * @return void
   227         * @param TInt aSelection
   129         */
   228         * @return void
   130         void TimerExpiredL();
   229         */
   131         
   230         void PowerKeyPopUpMenuSelectionDoneL( TInt aSelection );
       
   231 
       
   232         /**
       
   233         * Gets called when Alarm is being shown to user and lights need to be blinked.
       
   234         * @param TBool aAlerting
       
   235         * @return void
       
   236         */
       
   237         void AlertUiAlertingL( const TBool aAlerting );
       
   238 
       
   239         /**
       
   240         * Gets called when Alarm is being shown to user and keylock need to be turned off.
       
   241         * @param TBool aKeyLockOff
       
   242         * @return void
       
   243         */
       
   244         void AlertUiKeyLockOff( const TBool aKeyLockOff );
       
   245 
       
   246         /**
       
   247         * Notifies changes in KPSUidCoreApplicationUIs::KLightControl to light controller.
       
   248         */
       
   249         void HandleLightsRequireL() const;
       
   250 
       
   251         /**
       
   252         * Notifies changes in KPSUidCoreApplicationUIs::KCoreAppUIsLightsRawKeyEvent to light controller.
       
   253         *
       
   254         * @since S60 3.2
       
   255         */
       
   256         void HandleRawKeyEventLightsRequireL() const;
       
   257 
       
   258         /**
       
   259         * Gets called when Video Telephony requests to force/cancel lights on/
       
   260         * @param const TInt aLightsParameter
       
   261         * @return void
       
   262         */
       
   263         void HandleForcedLightsVTRequireL( const TInt aLightsParameter ) const;
       
   264 
       
   265         /**
       
   266         * Gets called when Screen Saver requests to force lights on/off
       
   267         * @param const TInt aLightsParameter
       
   268         * @return void
       
   269         */
       
   270         void HandleForcedLightsSSRequireL( const TInt aLightsParameter ) const;
       
   271 				
       
   272 				/**
       
   273         * Gets called when AT Command requests to force lights on/off
       
   274         * @param const TInt aLightsParameter
       
   275         * @return void
       
   276         */
       
   277 				void HandleForcedLightsATCRequireL( const TInt aLightsParameter ) const;
       
   278         /**
       
   279         * Calls SysApLightsController::SwitchLightsOnSoftRejectL
       
   280         *
       
   281         * @since S60 3.1
       
   282         * @param None.
       
   283         * @return None.
       
   284         */
       
   285         void SwitchLightsOnSoftRejectL();
       
   286 
       
   287         /**
       
   288         * Asks state of one property from PubSub
       
   289         * @param const TUid&
       
   290         * @param const TUint
       
   291         * @return const TInt ( value of property or error code )
       
   292          */
       
   293         TInt StateOfProperty( const TUid& aCategory, const TUint aKey ) const;
       
   294 
       
   295         /**
       
   296         * Sets the indicator's aIndicator state to state aState.
       
   297         * @param TInt aIndicator
       
   298         * @param TInt aState
       
   299         * @return void
       
   300         */
       
   301         void SetIndicatorStateL( const TInt aIndicator, const TInt aState ) const;
       
   302 
       
   303         /**
       
   304         * Returns the state of keylock
       
   305         * @param none
       
   306         * @return TBool the state of keylock
       
   307         */
       
   308         TBool KeyLockState() const;
       
   309 
       
   310         /**
       
   311         * Returns the state of devicelock
       
   312         * @param none
       
   313         * @return TBool the state of devicelock
       
   314         */
       
   315         TBool DeviceLockState() const;
       
   316 
       
   317         /*
       
   318         * @param None
       
   319         * @return void
       
   320         */
       
   321         void SetIhfIndicatorL();
       
   322 
       
   323         /*
       
   324         * Handles actions needed when either SIM memory gets too full to receive any more SMS's.
       
   325         * @param aSimStoreFull If true, SIM memory is full.
       
   326         * @return void
       
   327         */
       
   328         void HandleSmsStorageNotificationL( TBool aSimStoreFull );
       
   329 
       
   330         void HandleNspsRawKeyEventL();
       
   331 
       
   332         void HandleNetworkNspsNotification( RMmCustomAPI::TNspsStatus aNspsStatus );
       
   333 
       
   334         void HandleMessageTonePlayingQuitability( TInt aTonePlayingStatus );
       
   335 
       
   336         /*
       
   337         * Called by SysApLightsController when the lights are switced on/off
       
   338         * @param aActivate If ETrue forwarding is activated, otherwise deactivated
       
   339         * @return void
       
   340         */
       
   341         void ActivateKeyeventForwardingForLights(TBool aActivate);
       
   342 
       
   343         /**
       
   344         * Gets called when shutdown requested when sw state == ESWStateAlarm
       
   345         * context active.
       
   346         * @param None
       
   347         * @return void
       
   348         */
       
   349         void StartShutDownTimerOnAlarmAndChargingStates();
       
   350         static TInt DoShutdownOnAlarmStateAfterCallBack( TAny* aObject );
       
   351 
       
   352 #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
       
   353         /**
       
   354         * Starts shutdown animation timing after shutdown tone sync is done
       
   355         */
       
   356         void StartAnimTiming();
       
   357 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
       
   358 
       
   359         /**
       
   360         * Stops shutdown animation timing and continues shutdown.
       
   361         */
       
   362         static TInt DoStopAnimTiming( TAny* aObject );
       
   363 
       
   364         /**
       
   365         * Gets called when GPRS is suspended because of a phone call established while
       
   366         * context active. Delay (KDelayBeforeShowingGprsSuspendedNote) required to ensure
       
   367         * that the phone call was really established.
       
   368         * @param None
       
   369         * @return void
       
   370         */
       
   371         void StartGprsSuspendedTimer();
       
   372         static TInt ShowGprsSuspendedNoteAfterCallBack( TAny* aObject );
       
   373 
       
   374         /**
       
   375         * Gets called when an accessory was connected to device. The indicator
       
   376         * is shown and profile gets changed if needed.
       
   377         * @param aAccessoryState Indicates the new accessory state
       
   378         * @return void
       
   379         */
       
   380         void HandleAccessoryConnectedL( TAccMode aAccessoryState );
       
   381 
       
   382         /**
       
   383         * Gets called when headset/loopset was disconnected from device. The indicator
       
   384         * is hidden and the original profile gets restored if needed.
       
   385         * @param None
       
   386         * @return void
       
   387         */
       
   388         void HandleAccessoryDisconnectedL();
       
   389 
       
   390         /**
       
   391         * Gets called when SysAp receives KSysApSatRefreshStart. All
       
   392         * non-system UI applications are closed
       
   393         * and an information note is shown to the user.
       
   394         * @param None
       
   395         * @return void
       
   396         */
       
   397         void HandleSatRefreshL();
       
   398 
       
   399 #ifndef RD_MULTIPLE_DRIVE
       
   400         /**
       
   401         * Mounts MMC drive
       
   402         * @param None
       
   403         * @return TInt : error value from RFs::MountFileSystem()
       
   404         */
       
   405         TInt MountMMC();
       
   406 
       
   407         /**
       
   408         * Dismounts MMC drive
       
   409         * @param None
       
   410         * @return TInt : error value from RFs::MountFileSystem()
       
   411         */
       
   412         TInt DismountMMC();
       
   413 #endif // RD_MULTIPLE_DRIVE
       
   414 
       
   415         /**
       
   416         * MMC Hot Swap Ejection from powerkey menu
       
   417         * @param None
       
   418         * @return void
       
   419         */
       
   420         void EjectMMCL();
       
   421 
       
   422         /**
       
   423         * Disconnect BtSap from powerkey meny
       
   424         * @param None
       
   425         * @return void
       
   426         */
       
   427         void DisconnectBtSap();
       
   428 
       
   429          /**
       
   430          * Enable or disable FM transmission 
       
   431          */
       
   432          void ChangeFmTxStateL( TBool aEnable );
       
   433 
       
   434 #ifndef RD_MULTIPLE_DRIVE
       
   435     public: // from MAknMemoryCardDialogObserver
       
   436 
       
   437         /**
       
   438         * To be notified when unlock completed
       
   439         * @param TInt aResult
       
   440         * @return void
       
   441         */
       
   442         void UnlockComplete( TInt aResult );
       
   443 #endif // RD_MULTIPLE_DRIVE
       
   444 
       
   445     public:
       
   446 
       
   447         /**
       
   448         * Plays the sound EAvkonSIDInformationTone
       
   449         * @param None
       
   450         * @return void
       
   451         */
       
   452         void Beep();
       
   453 
       
   454 #ifndef RD_MULTIPLE_DRIVE
       
   455         /**
       
   456         * Unlocks MMC
       
   457         * @param None
       
   458         * @return void
       
   459         */
       
   460         void RunUnlockNotifierL( TSysApMemoryCardStatus aMemoryCardStatus = ESysApMemoryCardStatusNotKnown );
       
   461 
       
   462         /**
       
   463         * From MSysApMemoryCardObserver.
       
   464         * Gets called by CSysApMMCObserver when an MMC is inserted/removed
       
   465         * @return void
       
   466         */
       
   467         void MMCStatusChangedL();
       
   468 
       
   469         /**
       
   470         * Shows "MMC removed..." dialogs
       
   471         * @param None
       
   472         * @return void
       
   473         */
       
   474         void ShowMMCDismountedDialogL();
       
   475 #else // RD_MULTIPLE_DRIVE
       
   476 
       
   477         /**
       
   478         * Updates PS key during boot
       
   479         * @return void
       
   480         */
       
   481         void MMCInsertedL();
       
   482 
       
   483         /**
       
   484         * Unlocks MMC
       
   485         * @param None
       
   486         * @return void
       
   487         */
       
   488         void RunUnlockNotifierL();
       
   489 
       
   490         /**
       
   491         * From MSysApMemoryCardObserver.
       
   492         * Gets called by CSysApMMCObserver when an MMC is inserted/removed
       
   493         * @param aDrive Changed drive
       
   494         * @return void
       
   495         */
       
   496         void MMCStatusChangedL( TInt aDrive );
       
   497 
       
   498         /**
       
   499         * Shows "MMC removed..." dialogs
       
   500         * @param aDrive Drive to dismount
       
   501         * @param aEjectType Eject type used for the drive
       
   502         * @return void
       
   503         */
       
   504         TBool ShowMMCDismountedDialogL(
       
   505             TInt aDrive, CSysApDriveList::TDriveEjectType aEjectType );
       
   506 #endif // RD_MULTIPLE_DRIVE
       
   507 
       
   508         /**
       
   509         * Called after confirming dialog "MMC removed..."
       
   510         * @param None
       
   511         * @return void
       
   512         */
       
   513         void MMCDismountedDialogConfirmed();
       
   514 
       
   515         /**
       
   516         * Gets called by CSysApSharedDataObserver when "Eject" is started
       
   517         * or finished in File Manager application.
       
   518         * @param None
       
   519         * @return void
       
   520         */
       
   521         void EjectStarted( TBool ejectStarted );
       
   522 
       
   523     private:
       
   524         /**
       
   525         * EPOC default constructor.
       
   526         * @param None
       
   527         * @return void
       
   528         */
       
   529         void ConstructL();
       
   530 	
       
   531 	    /**
       
   532         * Deactivate PSM on reboot if battery level is above threshold value.
       
   533         * @param None
       
   534         * @return void
       
   535         */
       
   536 	    void DeactivatePSMifBatteryNotLowL();
       
   537 
       
   538     private:
       
   539 
       
   540 #ifndef RD_MULTIPLE_DRIVE
       
   541 
       
   542         /**
       
   543         * Resolves process UID based on its thread id
       
   544         *
       
   545         * @since S60 3.1
       
   546         * @param aThreadId id of the thread
       
   547         * @return TInt32 process UID
       
   548         */
       
   549         TInt32 ResolveUidFromThread( TUint aThreadId ) const;
       
   550 
       
   551         /**
       
   552         * Called recursively when shutting down apps in Hot Swap
       
   553         * @param None
       
   554         * @return void
       
   555         */
       
   556         void CloseUIAppsInHotSwapL();
       
   557 
       
   558         /**
       
   559         * Called by CloseUIApplicationsHotSwapL when completing
       
   560         * shutting apps
       
   561         * @param None
       
   562         * @return void
       
   563         */
       
   564         void CompleteAppsShuttingInHotSwapL();
       
   565 #endif // RD_MULTIPLE_DRIVE
       
   566 
       
   567      public:
       
   568 
       
   569         /**
       
   570         * Initializes parameters used in shutting down apps in BT SAP
       
   571         * @param None
       
   572         * @return void
       
   573         */
       
   574         void InitCloseSimApplicationsL();
       
   575 
       
   576       private:
       
   577 
       
   578         /**
       
   579         * Called recursively when shutting down apps in BT SAP
       
   580         * @param None
       
   581         * @return void
       
   582         */
       
   583         void CloseSimApplicationsL();
       
   584 
       
   585         /**
       
   586         * Called to re-envoke CloseSimApplicationsL()
       
   587         * @param None
       
   588         * @return void
       
   589         */
       
   590         static TInt DoCloseSimApplicationsAfterCallBack( TAny* aObject );
       
   591 
       
   592     private:
       
   593         /**
       
   594         * Takes care of command handling.
       
   595         * @param aCommand command to be handled
       
   596         * @return void
       
   597         */
       
   598         void HandleCommandL( TInt aCommand);
       
   599 
       
   600         /**
       
   601         * handles key events
       
   602         * @param TKeyEvent& aKeyEvent
       
   603         * @param TEventCode aType
       
   604         * @return TKeyResponse
       
   605         */
       
   606         TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
       
   607 
       
   608     private:
       
   609         // By default, prohibit copy constructor
       
   610         CSysApAppUi( const CSysApAppUi& );
       
   611 
       
   612         // Prohibit assigment operator
       
   613         CSysApAppUi& operator= ( const CSysApAppUi& );
       
   614 
       
   615     private:
       
   616         void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
       
   617         /**
       
   618         * Gets called by ConstructL function to set initial states to indicators etc
       
   619         * Needed state information is got from Shared Data and status pane's components
       
   620         * are set to the correct states.
       
   621         * @param None
       
   622         * @return void
       
   623         */
       
   624         void InitializeStatusPaneAreaL();
       
   625 
       
   626         /**
       
   627         * Gets called by HandleKeyEventL after detecting a long press of powerkey.
       
   628         * According to current state of the device desides if it is time to either
       
   629         * shutdown or make startup (from charging state ) to normal state
       
   630         * @param None
       
   631         * @return void
       
   632         */
       
   633         void HandleLongPowerKeyPressedL();
       
   634 
       
   635         /**
       
   636         * Gets called by HandleKeyEventL after a short press of powerkey.
       
   637         * According to current state of the device desides if it is time to
       
   638         * either switch lights on and show mode selection dialog(normal state)
       
   639         * or to shutdown the phone (in alarm state).
       
   640         * @param None
       
   641         * @return void
       
   642         */
       
   643         void HandleShortPowerKeyPressedL();
       
   644 
       
   645         /**
       
   646         * Frees SysAp's reserved memory, closes connections to servers etc.
       
   647         * @param None
       
   648         * @return void
       
   649         */
       
   650         void FreeResources();
       
   651 
       
   652     public:
       
   653 
       
   654         /**
       
   655         * Displays a UI query.
       
   656         * @param TSysApConfirmationQueryIds
       
   657         * @param aValue query related value
       
   658         * @return void
       
   659         */
       
   660         void ShowQueryL( const TSysApConfirmationQueryIds aQueryId,
       
   661             const TDesC& aValue = KNullDesC );
       
   662 
       
   663         /**
       
   664         * Displays a UI note.
       
   665         * @param TSysApNoteIds aSysApNoteIds
       
   666         * @return void
       
   667         */
       
   668         void ShowUiNoteL( const TSysApNoteIds aNote ) const;
       
   669 
       
   670         /**
       
   671         * Displays a "Charger connected" note.
       
   672         * @param None
       
   673         * @return void
       
   674         */
       
   675         void ShowChargingNoteL();
       
   676 
       
   677         /**
       
   678         * Handles charger related notes
       
   679         * @param TInt : KPSUidChargerCStatusValue
       
   680         * @return void
       
   681         */
       
   682         void HandleChargerNotesL( const TInt aValue );
       
   683 
       
   684         /**
       
   685         * Displays a "Selected profile" note.
       
   686         * @param None
       
   687         * @return void
       
   688         */
       
   689         void ShowProfileNoteL();
       
   690 
       
   691         /**
       
   692         * Cancels a UI wait note.
       
   693         * @param None
       
   694         * @return void
       
   695         */
       
   696         void CancelWaitNote();
       
   697 
       
   698         /**
       
   699         * Cancels the global list query
       
   700         * @param None
       
   701         * @return void
       
   702         */
       
   703         void CancelGlobalListQuery();
       
   704 
       
   705         /**
       
   706         * Updates signal bars to the value cached by Etel connector.
       
   707         * @return void
       
   708         */
       
   709         void UpdateSignalBarsL();
       
   710 
       
   711         /**
       
   712         * Updates signal bars to specified state.
       
   713         * @param TInt aState Number of bars or KAknSignalOffLineMode
       
   714         * @return void
       
   715         */
       
   716         void UpdateSignalBarsL( const TInt aState );
       
   717 
       
   718         /**
       
   719         * Gets called by HandleSystemAgentEventL to singal availability indicator
       
   720         * ie. Gprs state icon or common signal icon.
       
   721         * @param None
       
   722         * @return void
       
   723         */
       
   724         void SetSignalIndicatorL();
       
   725 
       
   726         /**
       
   727         * Gets called by SetSignalIndicatorL() when in GSM network
       
   728         * @param None
       
   729         * @return void
       
   730         */
       
   731         void SetSignalIndicatorGsmL();
       
   732 
       
   733         /**
       
   734         * Gets called by SetSignalIndicatorL() when in Wcdma network
       
   735         * @param None
       
   736         * @return void
       
   737         */
       
   738         void SetSignalIndicatorWcdmaL();
       
   739 
       
   740         /**
       
   741         * Gets called by SetSignalIndicatorL() when in Gan network
       
   742         * @param None
       
   743         * @return void
       
   744         */
       
   745         void SetSignalIndicatorGanL();
       
   746 
       
   747         /**
       
   748         * Handles GPRS suspend/resume notes if feature supported.
       
   749         * ie. Gprs state icon or common signal icon.
       
   750         * @param None
       
   751         * @return void
       
   752         */
       
   753         void HandleGprsNotesL();
       
   754 
       
   755         /**
       
   756         * Returns the current bluetooth power mode setting using CSysApSharedDataObserver
       
   757         * @param None
       
   758         * @return TInt
       
   759         */
       
   760         TInt BluetoothPowerMode() const;
       
   761 
       
   762         /**
       
   763         * Activates the profile given as a parameter
       
   764         * @param TInt aProfileId
       
   765         * @return void
       
   766         */
       
   767         void ActivateProfileL( const TInt aProfileId ) const;
       
   768 
       
   769         /**
       
   770         * Activates the profile saved in iProfileToBeActivated.
       
   771         * @param None
       
   772         * @return void
       
   773         */
       
   774         void ActivateOnlineProfileL() const;
       
   775 
       
   776         /**
       
   777         * Checks whether Offline Mode is activated
       
   778         * @param TBool
       
   779         * @return void
       
   780         */
       
   781         TBool OfflineModeActive();
       
   782 
       
   783         /**
       
   784         * Tolds Offline Mode controller not to activate BT
       
   785         * when next going online.
       
   786         * @param None
       
   787         * @return void
       
   788         */
       
   789         void DoNotActivateBt();
       
   790 
       
   791         /**
       
   792         * Switches BT module on/off using BT Engine
       
   793         * @param TBool: ETrue = on, EFalse = off
       
   794         * @return void
       
   795         */
       
   796         TInt SetBtPowerState( TBool aBtState );
       
   797 
       
   798         /**
       
   799         * Sets iKeyLockOnBeforeCall = EFalse.
       
   800         * @param None
       
   801         * @return void
       
   802         */
       
   803         void DoNotEnableKeylock();
       
   804 
       
   805 #ifdef RD_MULTIPLE_DRIVE
       
   806         /*
       
   807         * Starts wait note for eject
       
   808         */
       
   809         void ShowEjectWaitNoteL(  TInt aDriveToEject );
       
   810 
       
   811         /*
       
   812         * Checks is eject query visible
       
   813         */
       
   814         TBool IsEjectQueryVisible();
       
   815 #endif // RD_MULTIPLE_DRIVE
       
   816 
       
   817         /**
       
   818         * Gets called by CSysApSharedDataObserver when "Eject" is selected
       
   819         * in File Manager application.
       
   820         * @param aDrive Drive to eject
       
   821         * @return void
       
   822         */
       
   823         void EjectUsed( TInt aDrive );
       
   824 
       
   825         /**
       
   826         * MMC Hot Swap Ejection from powerkey menu was canceled
       
   827         * @param None
       
   828         * @return void
       
   829         */
       
   830         void EjectMMCCanceled();
       
   831 
       
   832     private:
       
   833 
       
   834         /**
       
   835         * Gets currently active profile's name.
       
   836         * @param TPtr aProfileName
       
   837         * @return void
       
   838         */
       
   839         void ActiveProfileNameL( TPtr aProfileName );
       
   840 
       
   841     public:
       
   842 
       
   843         /**
       
   844         * Gets called by HandleSystemAgentEventL to update battery bars.
       
   845         * @param TInt aState
       
   846         * @return void
       
   847         */
       
   848         void UpdateBatteryBarsL( const TInt aState );
       
   849 
       
   850         /**
       
   851         * Gets called by HandleSystemAgentEventL when profile was changed.
       
   852         * Profile selected Global Note is shown.
       
   853         * @param TInt aValue
       
   854         * @return void
       
   855         */
       
   856         void HandleProfileChangedL( const TInt aValue );
       
   857 
       
   858         /**
       
   859         * Checks if the active profile is silent and updates CSysApLightsController
       
   860         * if needed.
       
   861         * @param None
       
   862         * @return void
       
   863         */
       
   864         void CheckSilentModeL();
       
   865 
       
   866         /**
       
   867         * Gets called by CSysApOfflineModeController when activation/deactivation
       
   868         * of Offline Mode fails
       
   869         * @param TBool aOffline
       
   870         * @return void
       
   871         */
       
   872         void RestoreProfileL( const TBool aOffline );
       
   873 
       
   874         /**
       
   875         * Returns the id of the active profile.
       
   876         * @param None
       
   877         * @return Int
       
   878         */
       
   879         TInt ActiveProfileId();
       
   880 
       
   881         /**
       
   882         * Gets called when the value of the SD key KGSDisplayLightsTimeout
       
   883         * changes
       
   884         * @param TInt : lights timeout in seconds
       
   885         * @return void
       
   886         */
       
   887         void DoLightsTimeoutChangedL( const TInt aTimeout );
       
   888 
       
   889     private:
       
   890 
       
   891         /**
       
   892         * Checks whether it is necessary to change profiles in case an accessory
       
   893         * was connected/disconnected while the device was powered down.
       
   894         *
       
   895         * @param TInt aValue
       
   896         * @return void
       
   897         */
       
   898         void HandleAccessoryProfileInStartupL( );
       
   899 
       
   900     public:
       
   901         /**
       
   902         * Gets called by HandleSystemAgentEventL to Disable keylock when devicelock is activated.
       
   903         * This is done already when device lock is activated because this
       
   904         * @param None
       
   905         * @return void
       
   906         */
       
   907         void SetDeviceLockEnabledL( const TBool aLockEnabled );
       
   908 
       
   909     private:
       
   910 
       
   911         /**
       
   912         * Gets called by HandleShortPowerKeyPressedL to display the power key popup menu
       
   913         * @param None
       
   914         * @return void
       
   915         */
       
   916         void ShowPowerKeyPopUpMenuL();
       
   917 
       
   918         /**
       
   919         * Does what is needed to do inside SysAp before actually doing
       
   920         * other shutdown related things. This is used when shutdown image is enabled.
       
   921         * @param None
       
   922         * @return void
       
   923         */
       
   924         void PrepareForShutdownImage();
       
   925 
       
   926         /**
       
   927         * Does what is needed to do inside SysAp before actually doing
       
   928         * other shutdown related things. This is used when shutdown animation is enabled.
       
   929         * @param None
       
   930         * @return void
       
   931         */
       
   932         void PrepareForShutdownAnimation();
       
   933 
       
   934         /**
       
   935         * Show shutdown animation
       
   936         *
       
   937         * @param
       
   938         * @return ETrue if animation is enabled
       
   939         */
       
   940     #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
       
   941         void
       
   942     #else // RD_STARTUP_ANIMATION_CUSTOMIZATION
       
   943         TBool
       
   944     #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
       
   945         ShowAnimationL();
       
   946 
       
   947         /**
       
   948         * Makes Status pane visible/invisible when needed and changes it's layout between Charging/Alarm
       
   949         * @param None
       
   950         * @return void
       
   951         */
       
   952         void SetStatusPaneLayoutL( const TSysApPhoneState aState );
       
   953 
       
   954         /**
       
   955         * Checks from current Symbian swstate if it is ok to initiate shutdown
       
   956         * @param None
       
   957         * @return const TBool
       
   958         */
       
   959         TBool OkToInitiateShutdown();
       
   960 
       
   961         /**
       
   962         * Shows shutdown animation or shutdown image
       
   963         * @param None
       
   964         * @return void
       
   965         */
       
   966         void PrepareForCompleteShutdown();
       
   967 
       
   968         /**
       
   969         * Makes the end part of shutdown sequence.
       
   970         * @param None
       
   971         * @return void
       
   972         */
       
   973         void CompleteShutdown( const TBool aReset = EFalse, const TInt aResetReason = KDummyReason );
       
   974 
       
   975         /**
       
   976         * Sets calls forwarding indicators on/off accrding to aCallsForwardingState
       
   977         * @param TInt aCallsForwardingState
       
   978         * @return void
       
   979         */
       
   980         void DoSwStateNormalConstructionL();
       
   981 
       
   982     public:
       
   983 
       
   984         /**
       
   985         * Starts an application or brings an already running application
       
   986         * to foreground.
       
   987         * @param TUid: UID of the application that is activated
       
   988         * @return void
       
   989         */
       
   990         void ActivateApplicationL( const TUid aUid );
       
   991 
       
   992         void HandleCurrentCallStateChangeL( TInt aCurrentCallState );
       
   993 
       
   994         void DoSimChangedFromPreviousBootL();
       
   995 
       
   996         /**
       
   997         * Gets called in SysAp construction or when SysAp gets a SA/P&S notification
       
   998         * @param const TInt: indicator status
       
   999         * @return void
       
  1000         */
       
  1001         void HandleLocationPrivacyIndicatorL( const TInt aState );
       
  1002 
       
  1003         /**
       
  1004         * Return value of the__SIMCARD feature
       
  1005         * @param None
       
  1006         * @return TBool
       
  1007         */
       
  1008         TBool SimSupported();
       
  1009 
       
  1010         /**
       
  1011         * Notify CSysApLightController of the empty battery.
       
  1012         * @param None
       
  1013         * @return void
       
  1014         */
       
  1015         void BatteryEmptyL();
       
  1016 
       
  1017         /**
       
  1018         * Prompt starter to change mode
       
  1019         * @param aState The new state
       
  1020         * @return KErrArgument if the state change is illegal (from current state
       
  1021         * it is not possible to change to the requested state), KErrNone if the
       
  1022         * global state change has been successfully initiated.
       
  1023         */
       
  1024         TInt SetStarterState( const RStarterSession::TGlobalState aState );
       
  1025 
       
  1026         /**
       
  1027         * Creates the device name string for BT Sap disconnect prompt.
       
  1028         * @return device name string.
       
  1029         */
       
  1030         HBufC* GetBtSapDeviceNameL();
       
  1031 
       
  1032         /**
       
  1033         * Handle alarm indicator
       
  1034         * @param aShowIndicator If ETrue, indicator is show, otherwise it is hidden.
       
  1035         */
       
  1036         void ShowAlarmIndicatorL( TBool aShowIndicator );
       
  1037 
       
  1038         /**
       
  1039         * Informs lights controller that flip has been opened/close
       
  1040         * @param aFlipOpen ETrue if flip is open, EFalse otherwise
       
  1041         */
       
  1042         void SetFlipOpenL( TBool aFlipOpen );
       
  1043 
       
  1044         /**
       
  1045         * Creates a virtual flip key event that is passed to the key management
       
  1046         * of SysAp.
       
  1047         *
       
  1048         * @since S60 3.2
       
  1049         * @param aFlipOpen ETrue if flip is open, EFalse otherwise
       
  1050         * @return None
       
  1051         */
       
  1052         void SimulateFlipKeyEventL( TBool aFlipOpen );
       
  1053 
       
  1054         /**
       
  1055         * Informs lights controller that grip has been opened/close
       
  1056         * @param aGripOpen ETrue if grip is open, EFalse otherwise
       
  1057         */
       
  1058         void SetGripOpenL( TBool aGripOpen );
       
  1059 
       
  1060         /**
       
  1061         * Sets the status of the Central Repository key
       
  1062         * KCRUidCoreApplicationUIs / KCoreAppUIsNetworkConnectionAllowed
       
  1063         * @param TInt
       
  1064         * @return void
       
  1065         */
       
  1066         void SetNetworkConnectionAllowed( TCoreAppUIsNetworkConnectionAllowed aNetworkConnectionAllowed );
       
  1067 
       
  1068         /**
       
  1069         * Get pointer to RTelServer
       
  1070         *
       
  1071         * @return pointer to RTelServer if iSysApEtelConnector is initialized. Otherwise return NULL.
       
  1072         */
       
  1073         RTelServer* GetTelServer();
       
  1074 
       
  1075         /**
       
  1076         * Show WLan indicator
       
  1077         *
       
  1078         * @param aValue The value of KPSWlanIndicator PS key.
       
  1079         */
       
  1080         void HandleWlanIndicatorL( TInt aValue );
       
  1081 
       
  1082         /**
       
  1083         * Show TARM indicator
       
  1084         *
       
  1085         * @param aValue The value of KCoreAppUIsTarmIndicator PS key
       
  1086         */
       
  1087         void HandleTarmIndicatorL( TInt aValue );
       
  1088 
       
  1089 #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1090         /**
       
  1091         * Continue shutdown animation showing after sync request
       
  1092         */
       
  1093         void ShutdownAnimationSyncOK();
       
  1094 #endif RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1095 
       
  1096         /**
       
  1097         * Skip shutdown animation (i.e. stop showing it). Initiated by CoverUI.
       
  1098         */
       
  1099         void SkipShutdownAnimation();
       
  1100 
       
  1101         /**
       
  1102         * Notifies CoverUI about skipping shutdown animation.
       
  1103         */
       
  1104         void NotifyShutdownAnimationSkip();
       
  1105 
       
  1106         /**
       
  1107         * Check cover display support
       
  1108         *
       
  1109         * @return ETrue if cover display is supported, EFalse otherwise
       
  1110         */
       
  1111         TBool CoverDisplaySupported();
       
  1112 
       
  1113         /**
       
  1114         * Returns reference to RStarterSession
       
  1115         * RStarterSession is connected when this method is called
       
  1116         * for the first time.
       
  1117         *
       
  1118         * Always (except when freeing resources) access the starter session via this method,
       
  1119         * don't use the member variable directly.
       
  1120         *
       
  1121         * @return reference to RStarterSession
       
  1122         */
       
  1123         RStarterSession& StarterSession();
       
  1124 
       
  1125         /**
       
  1126         * Returns reference to SysAp's CenRep controller
       
  1127         *
       
  1128         * @since S60 3.1
       
  1129         * @param None
       
  1130         * @return reference to CSysApCenRepController
       
  1131         */
       
  1132         CSysApCenRepController& CenRepController();
       
  1133 
       
  1134         /**
       
  1135         * Ignore zero network bars signal notifies.
       
  1136         * This is needed in BT SAP mode.
       
  1137         *
       
  1138         * @param aIgnore If ETrue, ignore any future zero network bars notifications.
       
  1139         */
       
  1140         void IgnoreZeroNetworkBarNotifications(TBool aIgnore);
       
  1141 
       
  1142         /**
       
  1143         * Check if BT SAP is enabled
       
  1144         *
       
  1145         * @return ETrue if BT SAP is enabled, EFalse otherwise
       
  1146         */
       
  1147         TBool BtSapEnabled();
       
  1148 
       
  1149         /**
       
  1150         * Deactivate BT when changing to normal mode.
       
  1151         * Can only be used during startup, has no effect after that.
       
  1152         */
       
  1153         void DeactivateBT();
       
  1154 
       
  1155     private:
       
  1156         /**
       
  1157         * Returns reference to SysAp's keylock session
       
  1158         * RAknKeylock2 session is connected when this method is called
       
  1159         * for the first time.
       
  1160         *
       
  1161         * Always (except when freeing resources) access the keylock session via this method,
       
  1162         * don't use the member variable directly.
       
  1163         *
       
  1164         * @since S60 3.1
       
  1165         * @param None
       
  1166         * @return reference to RAknKeylock2
       
  1167         */
       
  1168         RAknKeylock2& KeyLock();
       
  1169 
       
  1170 
       
  1171 
       
  1172 #ifdef __SYSAP_MODULE_TEST
       
  1173 
       
  1174         /**
       
  1175         * Can be used for showing a CAknGlobalNote in module tests
       
  1176         * @param noteText : text to be shown in the note
       
  1177         * @return void
       
  1178         */
       
  1179         void ModuleTestShowUiNoteL( const TDesC& noteText ) const;
       
  1180 #endif
       
  1181 
       
  1182         /**
       
  1183         * shows power down note before displaying shutdown image
       
  1184         * @param: none
       
  1185         * @return void
       
  1186         */
       
  1187         void ShowShutdownNoteL();
       
  1188 
       
  1189         /** Return ETrue if the global system state is one of the 'normal'
       
  1190         * states: ESwStateNormalRfOn, ESwStateNormalRfOff or
       
  1191         * ESwStateNormalBTSap.
       
  1192         */
       
  1193         TBool IsStateNormal() const;
       
  1194 
       
  1195         /**
       
  1196         * Returns max of three integers
       
  1197         * @param: TInt
       
  1198         * @return void
       
  1199         */
       
  1200         TInt Max( const TInt aA, const TInt aB, const TInt aC );
       
  1201 
       
  1202         /**
       
  1203         * Displays shutdown image.
       
  1204         * This method is just a nonleaving implementation,
       
  1205         * calls ShowShutdownImageL for performing the task.
       
  1206         *
       
  1207         * @since S60 3.1
       
  1208         * @param aBitmapId  bitmap identifier
       
  1209         * @return TInt an error value
       
  1210         * @see CSysApAppUi::ShowShutdownImageL
       
  1211         */
       
  1212         TInt ShowShutdownImage( TInt aBitmapId );
       
  1213 
       
  1214         /**
       
  1215         * Displays shutdown image. If a CSysApShutdownImage instance
       
  1216         * does not exist, it will be created.
       
  1217         *
       
  1218         * @since S60 3.1
       
  1219         * @param aBitmapId  bitmap identifier
       
  1220         * @return None
       
  1221         * @leave Symbian error code
       
  1222         */
       
  1223         void ShowShutdownImageL( TInt aBitmapId );
       
  1224 
   132     private: // from MSysapCallback
  1225     private: // from MSysapCallback
   133         /**
  1226         /**
   134         * Executes a command in SysAp.
  1227         * Executes a command in SysAp.
   135         *
  1228         *
   136         * @since S60 3.1
  1229         * @since S60 3.1
   179         * @leave an error code, system wide/command specific
  1272         * @leave an error code, system wide/command specific
   180         *
  1273         *
   181         * @see MSysapCallback::TSysapQuery
  1274         * @see MSysapCallback::TSysapQuery
   182         */
  1275         */
   183         void ExecQueryL( TSysapQuery aQuery, TDes8& aReturn, const TDesC8& aParam );
  1276         void ExecQueryL( TSysapQuery aQuery, TDes8& aReturn, const TDesC8& aParam );
       
  1277 
       
  1278     public:
       
  1279         /**
       
  1280         * Sets HAC (Hearing Aid Compatibility) indicator according to its CenRep-setting
       
  1281         * state.
       
  1282         * HAC indicator is not displayed if an accessory is connected.
       
  1283         *
       
  1284         * @param None
       
  1285         * @return None
       
  1286         */
       
  1287         void SetHacIndicatorL();
       
  1288 
       
  1289         /**
       
  1290         * Returns reference to SysAp's internal feature manager.
       
  1291         *
       
  1292         * @since S60 3.1
       
  1293         * @return CSysApFeatureManager&
       
  1294         */
       
  1295         CSysApFeatureManager& SysApFeatureManager();
   184         
  1296         
   185 //    private:
  1297         /**
   186         /**
  1298         * Handles response to power save activation query.
   187         * EPOC default constructor.
  1299         *
   188         * @param None
  1300         * @param aEnable If ETrue, the user has accepted the query.
   189         * @return void
  1301         */
   190         */
  1302         void HandleActivatePsmQueryResponse( TBool aEnable );
   191         
  1303 
   192 #ifdef RD_STARTUP_ANIMATION_CUSTOMIZATION
  1304         /**
   193     void
  1305         * Handles response to power save deactivation query.
   194 #else // RD_STARTUP_ANIMATION_CUSTOMIZATION
  1306         *
   195     TBool
  1307         * @param aDisable If ETrue, the user has accepted the query.
   196 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
  1308         */
   197     ShowAnimationL();
  1309         void HandleDeactivatePsmQueryResponse( TBool aDisable );
   198     
  1310 
   199     void PrepareForShutdownAnimation();
  1311     private: // from CAknAppUi
   200         
       
   201     public: 
       
   202         void ConstructL();
       
   203         
       
   204     private: // from CEikAppUi
       
   205         /**
  1312         /**
   206         * Handles a change to the application's resources which are shared across the environment.
  1313         * Handles a change to the application's resources which are shared across the environment.
   207         *
  1314         *
   208         * @since S60 3.1
  1315         * @since S60 3.1
   209         * @param aType The type of resources that have changed.
  1316         * @param aType The type of resources that have changed.
   210         * @return None.
  1317         * @return None.
   211         */
  1318         */
   212 //        void HandleResourceChangeL(TInt aType);
  1319         void HandleResourceChangeL(TInt aType);
   213         
  1320 
   214     private:
  1321     private:
   215         /**
  1322         /**
   216         * Takes care of command handling.
  1323         * Shows and hides the memory card indicator depending on whether the memory card is inserted or not.
   217         * @param aCommand command to be handled
       
   218         * @return void
       
   219         */
       
   220         void HandleCommandL( TInt aCommand);
       
   221 
       
   222         /**
       
   223         * handles key events
       
   224         * @param TKeyEvent& aKeyEvent
       
   225         * @param TEventCode aType
       
   226         * @return TKeyResponse
       
   227         */
       
   228         TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
       
   229         void HandleApplicationSpecificEventL(TInt aType,const TWsEvent& aEvent);
       
   230       
       
   231      public:
       
   232      	//	void CallFromMain();
       
   233      		
       
   234      		 /**
       
   235         * Returns the state of keylock
       
   236         * @param none
       
   237         * @return TBool the state of keylock
       
   238         */
       
   239         TBool KeyLockState() const;
       
   240 
       
   241         /**
       
   242         * Returns the state of devicelock
       
   243         * @param none
       
   244         * @return TBool the state of devicelock
       
   245         */
       
   246         TBool DeviceLockState() const;
       
   247         
       
   248         /**
       
   249         * Returns reference to SysAp's internal feature manager.
       
   250         *
  1324         *
   251         * @since S60 3.1
  1325         * @since S60 3.1
   252         * @return CSysApFeatureManager&
  1326         * @param None.
   253         */
  1327         * @return None.
   254         CSysApFeatureManager& SysApFeatureManager();
  1328         */
   255         
  1329         void SetMemoryCardIndicatorL();
   256                 /*
  1330 
   257         * Called by SysApLightsController when the lights are switced on/off
  1331         /**
   258         * @param aActivate If ETrue forwarding is activated, otherwise deactivated
  1332         * Returns whether IHF has been enabled.
   259         * @return void
  1333         * Creates audio routing observer if it does not exist..
   260         */
  1334         *
   261         void ActivateKeyeventForwardingForLights(TBool aActivate);
  1335         * @since S60 3.2
   262         
  1336         * @return TBool ETrue if IHF is enabled
   263         TBool IsEncryptionOperationOngoingL() const;
  1337         */
   264 //        void ConnectToFileServerL();
  1338         TBool IhfEnabledL();
   265 //        void ConnectToWindowServerL();
  1339 
   266         void ShowExampleUiNoteL ( const TDesC& noteText )const;
       
   267         void ShowNotificationDialog(const TDesC& noteText)const;
       
   268         void PopupNote();
       
   269 //        void CreateWindowGroup();
       
   270         TBool ResourcesFreed() const;
       
   271         void ShowUiNoteL( const TSysApNoteIds aNote ) const;        
       
   272         TInt StateOfProperty( const TUid& aCategory, const TUint aKey ) const;
       
   273         TBool OfflineModeActive();
       
   274         void GoOnlineL( TBool aDoProfileChange = ETrue );
       
   275         void GoOfflineL();
       
   276         void SwitchFromOnlineToOfflineModeL();
       
   277         
       
   278         void DoStateChangedL( const RStarterSession::TGlobalState aSwState  );
       
   279         TInt SetStarterState( const RStarterSession::TGlobalState aState );
       
   280         TInt BluetoothPowerMode() const;
       
   281         void SetNetworkConnectionAllowed( TCoreAppUIsNetworkConnectionAllowed aNetworkConnectionAllowed );
       
   282         RStarterSession& StarterSession();
       
   283         TInt SetBtPowerState( TBool aBtState );
       
   284         TBool SimSupported();
       
   285         TBool BtSapEnabled();
       
   286         void OfflineModeChangedL();
       
   287         TBool UiReady() const;
       
   288         void DoShutdownL( const TBool aReset, const TInt aResetReason );
       
   289         TBool IsDeviceModeKey( const TKeyEvent& aKeyEvent ) const;
       
   290         void SetUsbAttachStatus( const TBool aUsbAttached );
       
   291         TSysApUsbChargerDetector& UsbChargerDetector();
       
   292         
       
   293         void HandleAccessoryConnectedL( TAccMode aAccessoryState, TInt aPhysicalConnectionType );
       
   294 
       
   295         void HandleAccessoryDisconnectedL();
       
   296         void DoLightsTimeoutChangedL( const TInt aTimeout );
       
   297         void SetHacIndicatorL();
       
   298         void DoNotActivateBt();
       
   299         void SetIhfIndicatorL();
       
   300 		void HandleLongPowerKeyPressedL();
       
   301         void IgnoreZeroNetworkBarNotifications(TBool aIgnore);
       
   302         void InitCloseSimApplicationsL();
       
   303         void CloseSimApplicationsL();
       
   304         void DoSimChangedFromPreviousBootL();
       
   305         void ShowAlarmIndicatorL( TBool aShowIndicator );
       
   306         void AlertUiAlertingL( const TBool aAlerting );
       
   307         void HandleForcedLightsVTRequireL( const TInt aLightsParameter ) const;
       
   308         void HandleForcedLightsSSRequireL( const TInt aLightsParameter ) const;
       
   309         void HandleForcedLightsATCRequireL( const TInt aLightsParameter ) const;
       
   310         void HandleLightsRequireL() const;
       
   311         void AlertUiKeyLockOff( const TBool aKeyLockOff );
       
   312         void DoNotEnableKeylock();
       
   313         void SwitchLightsOnSoftRejectL();
       
   314         void SetDeviceLockEnabledL( const TBool aLockEnabled );
       
   315         void HandleBatteryStatusL( const TInt aValue );
       
   316         void BatteryEmptyL();
       
   317         void ShowQueryL( const TSysApConfirmationQueryIds aQueryId,
       
   318             const TDesC& aValue = KNullDesC );
       
   319         void HandleChargingStatusL( const TInt aValue );
       
   320         void HandleChargerNotesL( const TInt aValue );
       
   321         void UpdateBatteryBarsL( const TInt aState );
       
   322         void ShowChargingNoteL();
       
   323         void HandleCurrentCallStateChangeL( TInt aCurrentCallState );
       
   324         TBool IsEmergencyCall();
       
   325         CSysApCenRepController& CenRepController();
       
   326         void HandleWlanIndicatorL( TInt aValue );
       
   327 
       
   328         void SetKeyLockEnabledL();
       
   329         void SetKeyLockDisabledL();
       
   330         void SetLightsOnUnlockNoteL();
       
   331         void SetLightsOnEcsQueryL();
       
   332         void SetLightsOnSecurityQueryL();  
       
   333         TBool CheckLongPowerKeyPressed();
       
   334         TBool ReleasePowerMenuCustomDialogMemory();
       
   335         TBool NotifiedDialogIfRequiredAndReleaseMemory();
       
   336         static TInt DoStopAnimTiming( TAny* aObject );
       
   337         CEikStatusPane* StatusPane();
       
   338         
       
   339         void EjectUsed( TInt aDrive );
       
   340         
       
   341         void EjectMMCL();
       
   342         
       
   343 #ifndef RD_MULTIPLE_DRIVE
       
   344         /**
       
   345         * Mounts MMC drive
       
   346         * @param None
       
   347         * @return TInt : error value from RFs::MountFileSystem()
       
   348         */
       
   349         TInt MountMMC();
       
   350 
       
   351         /**
       
   352         * Dismounts MMC drive
       
   353         * @param None
       
   354         * @return TInt : error value from RFs::MountFileSystem()
       
   355         */
       
   356         TInt DismountMMC();
       
   357 #endif // RD_MULTIPLE_DRIVE
       
   358         
       
   359 #ifndef RD_MULTIPLE_DRIVE
       
   360         /**
       
   361         * Unlocks MMC
       
   362         * @param None
       
   363         * @return void
       
   364         */
       
   365         void RunUnlockNotifierL( TSysApMemoryCardStatus aMemoryCardStatus = ESysApMemoryCardStatusNotKnown );
       
   366 
       
   367         /**
       
   368         * From MSysApMemoryCardObserver.
       
   369         * Gets called by CSysApMMCObserver when an MMC is inserted/removed
       
   370         * @return void
       
   371         */
       
   372         void MMCStatusChangedL();
       
   373 
       
   374         /**
       
   375         * Shows "MMC removed..." dialogs
       
   376         * @param None
       
   377         * @return void
       
   378         */
       
   379         void ShowMMCDismountedDialogL();
       
   380 #else // RD_MULTIPLE_DRIVE
       
   381 
       
   382         /**
       
   383         * Updates PS key during boot
       
   384         * @return void
       
   385         */
       
   386         void MMCInsertedL();
       
   387 
       
   388         /**
       
   389         * Unlocks MMC
       
   390         * @param None
       
   391         * @return void
       
   392         */
       
   393         void RunUnlockNotifierL();
       
   394 
       
   395         /**
       
   396         * From MSysApMemoryCardObserver.
       
   397         * Gets called by CSysApMMCObserver when an MMC is inserted/removed
       
   398         * @param aDrive Changed drive
       
   399         * @return void
       
   400         */
       
   401         void MMCStatusChangedL( TInt aDrive );
       
   402 
       
   403         /**
       
   404         * Shows "MMC removed..." dialogs
       
   405         * @param aDrive Drive to dismount
       
   406         * @param aEjectType Eject type used for the drive
       
   407         * @return void
       
   408         */
       
   409         TBool ShowMMCDismountedDialogL(
       
   410             TInt aDrive, CSysApDriveList::TDriveEjectType aEjectType );
       
   411 #endif // RD_MULTIPLE_DRIVE
       
   412         
       
   413 #ifdef RD_MULTIPLE_DRIVE
       
   414         /*
       
   415         * Starts wait note for eject
       
   416         */
       
   417         void ShowEjectWaitNoteL(  TInt aDriveToEject );
       
   418 
       
   419         /*
       
   420         * Checks is eject query visible
       
   421         */
       
   422         TBool IsEjectQueryVisible();
       
   423 #endif // RD_MULTIPLE_DRIVE
       
   424         
       
   425         
       
   426 #ifdef SYSAP_USE_STARTUP_UI_PHASE        
       
   427         /**
       
   428         * Called when UI is ready after boot.
       
   429         */
       
   430         void HandleUiReadyAfterBootL();
       
   431 
       
   432 #endif // SYSAP_USE_STARTUP_UI_PHASE
       
   433 
       
   434        
       
   435         void MMCDismountedDialogConfirmed();
       
   436         
       
   437         void EjectStarted( TBool ejectStarted );
       
   438         
       
   439         void EjectMMCCanceled();
       
   440         
       
   441         void HandleNspsRawKeyEventL();
       
   442 
       
   443         void HandleNetworkNspsNotification( RMmCustomAPI::TNspsStatus aNspsStatus );
       
   444         
       
   445         void HandleRawKeyEventLightsRequireL() const;
       
   446         
       
   447         void HandleSmsStorageNotificationL( TBool aSimStoreFull );
       
   448         
       
   449         void UpdateSignalBarsL();
       
   450         
       
   451         void ReleaseMemoryForMemoryCardDialog();
       
   452         
       
   453      private:
       
   454          /**
       
   455          * Frees SysAp's reserved memory, closes connections to servers etc.
       
   456          * @param None
       
   457          * @return void
       
   458          */
       
   459          void FreeResources();
       
   460          TBool OkToInitiateShutdown();
       
   461 
       
   462 
       
   463          void CompleteShutdown( const TBool aReset = EFalse, const TInt aResetReason = KDummyReason );
       
   464          void PrepareForShutdownImage();
       
   465          TInt ShowShutdownImage( TInt aBitmapId );
       
   466          void ShowShutdownImageL( TInt aBitmapId );
       
   467          TBool IhfEnabledL();
       
   468          void DoSwStateNormalConstructionL();
       
   469          static TInt DoCloseSimApplicationsAfterCallBack( TAny* aObject );
       
   470          
       
   471          // from MSysApPsmControllerNotifyCallback
       
   472          void NotifyPowerSaveModeL( TSysApPsmStatus aStatus );
       
   473          
       
   474          void HandleUsbCharger( const TInt aValue );
       
   475          TBool IsStateNormal() const;
       
   476          void HandleAccessoryProfileInStartupL( );
       
   477          
       
   478          CSysApCenRepLogsObserver& CSysApAppUi::LogsObserverL();
       
   479          void ContinueShutdown();
       
   480          
       
   481 #ifdef RD_MULTIPLE_DRIVE
  1340 #ifdef RD_MULTIPLE_DRIVE
   482         void UpdateInsertedMemoryCardsL();
  1341         void UpdateInsertedMemoryCardsL();
   483 #endif // RD_MULTIPLE_DRIVE
  1342 #endif // RD_MULTIPLE_DRIVE
       
  1343 
       
  1344     	/**
       
  1345     	* Handles setup of USB charger from given charging status.
       
  1346     	*
       
  1347     	* @since S60 3.2
       
  1348     	* @param aValue Given charging status
       
  1349     	*/
       
  1350         void HandleUsbCharger( const TInt aValue );
       
  1351 
       
  1352     public:
       
  1353         /**
       
  1354         * Sets USB connection attach status.
       
  1355         * This prevents double beep when USB file transfer gets activated.
       
  1356         *
       
  1357         * @since S60 3.2
       
  1358         * @param aUsbConnected ETrue if USB cable has just been attached, otherwise EFalse
       
  1359         */
       
  1360         void SetUsbAttachStatus( const TBool aUsbAttached );
       
  1361 
       
  1362         /**
       
  1363     	* Returns whether the key event is considered to be a device mode key event,
       
  1364     	* which usually causes a transition in the device mode (e.g. grip, flip or twist).
       
  1365     	*
       
  1366     	* @since S60 3.2
       
  1367     	* @param aKeyEvent key event
       
  1368     	* @return TBool ETrue key event is considered to be a device mode key
       
  1369     	*               EFalse not a device moed key
       
  1370     	*/
       
  1371     	TBool IsDeviceModeKey( const TKeyEvent& aKeyEvent ) const;
       
  1372 
       
  1373     	/**
       
  1374     	* Returns whether resources (objects, server connections) owned by this
       
  1375     	* class has been freed.
       
  1376     	*
       
  1377     	* @since S60 3.2
       
  1378     	* @return TBool ETrue if resource deallocation has been performed.
       
  1379     	*/
       
  1380     	TBool ResourcesFreed() const;
       
  1381 
       
  1382     	/**
       
  1383     	* Returns pointer to CSysApEtelConnector.
       
  1384     	*
       
  1385     	* @since S60 3.2
       
  1386     	* @return pointer to CSysApEtelConnector instance owned by this class.
       
  1387     	*         NULL if the object creation has failed.
       
  1388     	*/
       
  1389     	CSysApEtelConnector* EtelConnector() const;
       
  1390     	
       
  1391     	/**
       
  1392     	* Returns reference to USB charger detector, TSysApUsbChargerDetector.
       
  1393     	*
       
  1394     	* @since S60 3.2
       
  1395     	* @return Reference to USB charger detector.
       
  1396     	*/
       
  1397         TSysApUsbChargerDetector& UsbChargerDetector();
       
  1398 
       
  1399     	/**
       
  1400     	* Sets envelope indicator according to current messaging status.
       
  1401     	*
       
  1402     	* @since S60 3.2
       
  1403     	*/
       
  1404         void SetEnvelopeIndicatorL();
       
  1405 
       
  1406     	/**
       
  1407     	* Handles value changes of the key KHWRMBatteryStatus.
       
  1408     	*
       
  1409     	* @since S60 3.2
       
  1410     	* @param aValue the updated key value
       
  1411     	*/
       
  1412     	void HandleBatteryStatusL( const TInt aValue );
   484         
  1413         
   485      private:
  1414         /**
   486 //          CSysApWsClient*                 iSysApWsClient;
  1415     	* Handles value changes of the key KHWRMChargingStatus.
   487           CSysApLightsController*         iSysApLightsController;
  1416     	*
   488           CSysApFeatureManager*           iSysApFeatureManager;
  1417     	* @since S60 3.2
   489           CSysApNspsHandler*              iSysApNspsHandler;
  1418     	* @param aValue the updated key value
   490           CSysApPubSubObserver*           iSysApPubSubObserver;
  1419     	*/
       
  1420         void HandleChargingStatusL( const TInt aValue );
       
  1421         
       
  1422         /**
       
  1423         * Cancel the specified query if it is active.
       
  1424         *
       
  1425         * @param aQueryId ID of the query that must be cancelled.
       
  1426         *                 If ESysApNoQuery is given, the active query is cancelled.
       
  1427         *                 without checking its ID.
       
  1428         */
       
  1429         void CancelQuery( TSysApConfirmationQueryIds aQueryId );
   491     
  1430     
   492           CSysApDefaultKeyHandler*          iSysApDefaultKeyHandler;
  1431     private:
   493 //          RWindowGroup                      groupWin;
  1432         // from MSysApPsmControllerNotifyCallback
   494           CSysApStartupController*        iSysApStartupController;
  1433         void NotifyPowerSaveModeL( TSysApPsmStatus aStatus );
   495           MSysApOfflineModeController*    iSysApOfflineModeController;
  1434 
   496           RStarterSession                 iStarterSession;
  1435     private:
   497           TSysApUsbChargerDetector        iSysApUsbChargerDetector;
  1436         /**
   498           CSysApAccessoryObserver*        iSysApAccessoryObserver;
  1437         * Get the logs observer. Created if does not exist.
   499           CSysApShutdownImage*            iSysApShutdownImage;
  1438         * 
   500           CSysApShutdownAnimation*        iSysApShutdownAnimation;
  1439         * @since S60 3.2
   501           CSysApKeySndHandler*            iSysApKeySndHandler;
  1440         * @return reference to CSysApCenRepLogsObserver object
   502           CSysApCenRepController*                  iSysApCenRepController;
  1441         */
   503           CSysApCenRepLightSettingsObserver*  iSysApCenRepLightSettingsObserver;
  1442         CSysApCenRepLogsObserver& LogsObserverL();
   504           CSysApCenRepBtObserver*                  iSysApCenRepBtObserver;
  1443 
   505           CSysApCenRepHacSettingObserver* iSysApCenRepHacSettingObserver;
  1444     /**
   506           
  1445      * Adds MMC removal item(s) to power menu.
   507           CSysApAudioRoutingObserver* iSysApAudioRoutingObserver;
  1446      * 
   508           CSysApPsmController* iSysApPsmController;
  1447      * @since S60 5.2
   509 		  CHbSymbianVariant* iVariantAccState ;
  1448      * 
   510           CSysApSsSettingsObserver*       iSysApSsSettingsObserver;
  1449      * @param aProfileNameCDesCArray Array holding menu item labels
   511           CSystemLock*                    iSysApSystemLock;
  1450      * @param aItemIdArray Item labels for cover ui
   512           CSysApCenRepCallForwardingObserver* iSysApCenRepCallForwardingObserver;
  1451      * @param aPowerMenuItemIndex last used index in power menue 
   513           CSysApBatteryInfoController* iSysApBatteryInfoController;
  1452      */
   514           MSysApBtSapController*          iSysApBtSapController;
  1453     void AddMmcMenuItemsL( CDesCArray*& aProfileNameCDesCArray,
   515           CPeriodic*                      iSapTimer;
  1454                            RArray<TInt>& aItemIdArray, 
   516           MSysApBtController*             iSysApBtController;
  1455                            TInt& aPowerMenuItemIndex );
   517           CSysApCenRepLogsObserver*                iSysApCenRepLogsObserver;
  1456 						   
   518 		  MSysApUsbIndicator*             iSysApUsbIndicatorController;
  1457 	public:
   519 		  CKeyguardAccessApi*             iKeyguardController;
  1458 	/**
   520 		  CHbDevicePowerMenuSymbian*            iPowerMenuDialog;
  1459     * Starts the charging animation in the battery pane.
   521 	      CSysApKeyManagement*            iSysApKeyManagement;
  1460     */
   522 	      CSysApMMCObserver*              iSysApMMCObserver;
  1461 	void StartChargingBatteryL();
   523 	      CSysApEtelConnector*            iSysApEtelConnector;
  1462 	
   524 		  
  1463 	/**
   525 	public:		  
  1464     * Stops the charging animation in the battery pane.
   526 		  CHbIndicatorSymbian* 			  iHbIndicatorSymbian;
  1465     */
   527 		  
  1466 	void StopChargingBatteryL();
   528 
  1467 	
   529      private:         
  1468 private:
   530         TBool                           iPowerKeyPopupMenuActive;   
  1469     //Data members
       
  1470 
       
  1471         /*****************************************************
       
  1472          * Series 60 Customer / DOS
       
  1473          * Series 60 Domestic OS API
       
  1474          *****************************************************/
       
  1475 
       
  1476         CSysApLightsController*         iSysApLightsController;
       
  1477 
       
  1478         CSysApPubSubObserver*           iSysApPubSubObserver;
       
  1479         CSysApProfileObserver*          iSysApProfileObserver;
       
  1480 
       
  1481         CSysApCenRepLightSettingsObserver*  iSysApCenRepLightSettingsObserver;
       
  1482         CSysApCenRepLogsObserver*                iSysApCenRepLogsObserver;
       
  1483         CSysApCenRepBtObserver*                  iSysApCenRepBtObserver;
       
  1484         CSysApCenRepHacSettingObserver* iSysApCenRepHacSettingObserver;
       
  1485         CSysApCenRepFmTxObserver*      iSysApCenRepFmTxObserver;
       
  1486         CSysApCenRepController*                  iSysApCenRepController;
       
  1487         CSysApStartupController*        iSysApStartupController;
       
  1488         CSysApConnectionMonitorObserver*	iSysApConnectionMonitorObserver;
       
  1489         CSysApPowerKeyMenuObserver*     iSysApPowerKeyMenuObserver;
       
  1490         CSysApSsSettingsObserver*       iSysApSsSettingsObserver;
       
  1491         CSysApShutdownImage*            iSysApShutdownImage;
       
  1492         CSysApShutdownAnimation*        iSysApShutdownAnimation;
       
  1493         CSysApEtelConnector*            iSysApEtelConnector;
       
  1494         CSysApAccessoryObserver*        iSysApAccessoryObserver;
       
  1495         CSysApMsgSimMemLowQuery*        iSysApMsgSimMemLowQuery;
       
  1496         CSysApWaitNote*                 iSysApWaitNote;
       
  1497         CSysApConfirmationQuery*        iSysApConfirmationQuery;
       
  1498         CSysApConfirmationQuery*        iSysApConfirmationQueryForRestart;
       
  1499         CSysApFeatureManager*           iSysApFeatureManager;
       
  1500         MSysApOfflineModeController*    iSysApOfflineModeController;
       
  1501         CSysApMMCObserver*              iSysApMMCObserver;
       
  1502         CSysApNspsHandler*              iSysApNspsHandler;
       
  1503         MSysApUsbIndicator*             iSysApUsbIndicatorController;
       
  1504         MSysApBtController*             iSysApBtController;
       
  1505         MSysApBtSapController*          iSysApBtSapController;
       
  1506         MSysApLocationPrivacyIndicator* iSysApLocationPrivacyIndicator;
       
  1507         CAknBatteryNotify*              iBatteryNotify;
       
  1508         CAknSignalNotify*               iSignalNotify;
       
  1509         CAknGlobalListQuery*            iGlobalListQuery;
       
  1510 
       
  1511         CSystemLock*                    iSysApSystemLock;
       
  1512         MProfileEngine*                 iProfileEngine;
       
  1513         MProfilesNamesArray*            iProfileNamesArray;
       
  1514         RStarterSession                 iStarterSession;
       
  1515         RAknKeylock2                    iKeyLock;
       
  1516 #ifndef RD_MULTIPLE_DRIVE
       
  1517         CAknMemoryCardDialog*           iMemoryCardDialog;
       
  1518 #endif // RD_MULTIPLE_DRIVE
       
  1519         TInt                            iCapturedEKeyPowerOff;
       
  1520         TInt                            iCapturedEKeyPowerOffUpAndDowns;
       
  1521         TInt                            iCapturedAppskey;
       
  1522         TInt                            iCapturedAppskeyUpAndDowns;
       
  1523 
       
  1524 
       
  1525         TInt                            iNumberOfProfileNamesInPowerKeyMenu;
       
  1526 
       
  1527         TBool                           iPowerkeyMenuLockKeypadShown;
       
  1528         TBool                           iPowerkeyMenuExitSapShown;
       
  1529         TBool                           iPowerkeyMenuLockSystemShown;
       
  1530         TBool                           iPowerkeyMenuEjectShown;
       
  1531 
       
  1532         TInt                            iPowerkeyMenuLockKeypadSelection;
       
  1533         TInt                            iPowerkeyMenuExitSapSelection;
       
  1534         TInt                            iPowerkeyMenuLockSystemSelection;
       
  1535 #ifndef RD_MULTIPLE_DRIVE
       
  1536         TInt                            iPowerkeyMenuEjectSelection;
       
  1537 #endif // RD_MULTIPLE_DRIVE
       
  1538 
       
  1539         TInt                            iProfileToBeActivated;
       
  1540         TInt                            iActiveProfileBeforeOfflineMode;
       
  1541 
       
  1542         TInt                            iApplicationScanningRoundNumberInBtSap;
       
  1543         TBool                           iTimeToKillInBtSap;
       
  1544 
       
  1545         TBool                           iLastPowerKeyWasShort;
       
  1546         TBool                           iIgnoreNextPowerKeyUpEvent;
       
  1547         TBool                           iIgnoreNextPowerKeyRepeats;
       
  1548         TBool                           iPowerKeyPopupMenuActive;
       
  1549         TBool                           iDisablePowerkeyMenu;
       
  1550         TBool                           iPowerkeyMenuPowerOffShown;
       
  1551 
   531         TBool                           iDeviceLockEnabled;
  1552         TBool                           iDeviceLockEnabled;
   532         TBool                           iKeyLockEnabled;
  1553         TBool                           iKeyLockEnabled;
   533         TBool                           iKeyLockOnBeforeCall;
  1554         TBool                           iKeyLockOnBeforeCall;
   534         TBool                           iKeyLockOnBeforeAlarm;
  1555         TBool                           iKeyLockOnBeforeAlarm;
   535         TBool                           iKeyLockOnBeforeCradle;
  1556         TBool                           iKeyLockOnBeforeCradle;
   536         TBool                           iResourcesFreed;        
  1557         TBool                           iShowkeypadActivatedNoteAfterSoftReject;
   537         TInt                            iCapturedEKeyPowerOff;
  1558 
   538         TInt                            iCapturedEKeyPowerOffUpAndDowns;
  1559         TBool                           iEmergencyCallActive;
   539         TBool                           iOfflineModeActive;
       
   540         TBool                           iShutdownStarted;
       
   541         
       
   542         TBool                           iIgnoreNextPowerKeyUpEvent;  // need to be added this flag in maliks client side apis.
       
   543         TBool                           iLastPowerKeyWasShort;
       
   544         TBool                           iPowerKeyPopupMenuDismissed; // need to be added this flag in malik implementation.
       
   545         TInt                            iKeyBoardRepeatCount;
       
   546         TBool                           iIgnoreNextPowerKeyRepeats;
       
   547         TInt                            iActiveProfileBeforeOfflineMode;
       
   548         
       
   549         TBool                           iSimChangedDone;
  1560         TBool                           iSimChangedDone;
   550         TBool                           iIgnoreZeroNetworkBarNotifications;
  1561         TBool                           iResourcesFreed;
   551         TInt                            iApplicationScanningRoundNumberInBtSap;
       
   552         TBool                           iTimeToKillInBtSap;
       
   553         TBool                           iShowkeypadActivatedNoteAfterSoftReject;
       
   554         TBool                           iCharging;  // Indicates if charging is currently on
       
   555         TBool                           iEmergencyCallActive;
       
   556         TBool                           iCallActivated; // used    in defining whether to show GPRS suspended note
       
   557 
       
   558         TBool                           iActivateBt;
       
   559         TBool                           iDeactivateBt;
       
   560         
       
   561         TBool                           iIgnoreAccessorySpecificProfileChanges;
       
   562         TBool                           iCheckLongPowerKeyEvent;
       
   563         TInt                            iCapturedAppskey;
       
   564         TInt                            iCapturedAppskeyUpAndDowns;
       
   565         TBool                           iShutdownContinued;
       
   566         TBool                           iNsps;
  1562         TBool                           iNsps;
   567         
       
   568         
       
   569         //CPeriodic*                      iTimer;
       
   570 #ifndef RD_MULTIPLE_DRIVE
       
   571         TInt                            iPowerkeyMenuEjectSelection;
       
   572 #endif // RD_MULTIPLE_DRIVE
       
   573         
       
   574 #ifndef RD_MULTIPLE_DRIVE
  1563 #ifndef RD_MULTIPLE_DRIVE
   575         TBool                           iHideFirstBeep;
  1564         TBool                           iHideFirstBeep;
   576 #endif // RD_MULTIPLE_DRIVE
  1565 #endif // RD_MULTIPLE_DRIVE
   577         
  1566         TBool                           iShutdownStarted;
       
  1567         TBool                           iAlarmOrChargingStateShutdownStarted;
       
  1568 
       
  1569         TBool                           iIgnoreAccessorySpecificProfileChanges;
       
  1570         TBool                           iAccessoryJustConnected;
       
  1571 
       
  1572         TBool                           iHandleNextProfileEvent;
       
  1573         TBool                           iActivateBt;
       
  1574         TBool                           iDeactivateBt;
   578 #ifndef RD_MULTIPLE_DRIVE
  1575 #ifndef RD_MULTIPLE_DRIVE
   579         TBool                           iTimeToKill;                     // MMC Hot Swap
  1576         TBool                           iTimeToKill;                     // MMC Hot Swap
   580         TInt                            iApplicationScanningRoundNumber; // MMC Hot Swap
  1577         TInt                            iApplicationScanningRoundNumber; // MMC Hot Swap
   581 #endif // RD_MULTIPLE_DRIVE
  1578 #endif // RD_MULTIPLE_DRIVE
   582         
  1579         TBool                           iGprsActivated; // used    in defining whether to show GPRS suspended note
       
  1580         TBool                           iGprsSuspended; // used    in defining whether to show GPRS suspended note
       
  1581         TBool                           iCallActivated; // used    in defining whether to show GPRS suspended note
       
  1582         TBool                           iGprsSuspendedNoteShown;
       
  1583 
       
  1584         TBool                           iMMCEjectUsed;
   583 #ifndef RD_MULTIPLE_DRIVE
  1585 #ifndef RD_MULTIPLE_DRIVE
   584         TBool                           iMMCPowerMenuEjectUsed;
  1586         TBool                           iMMCPowerMenuEjectUsed;
   585         TBool                           iMMCInserted;
  1587         TBool                           iMMCInserted;
   586 #endif // RD_MULTIPLE_DRIVE
  1588 #endif // RD_MULTIPLE_DRIVE
   587         
  1589 
       
  1590         CPeriodic*                      iTimer;
       
  1591         CPeriodic*                      iSapTimer;
       
  1592 #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1593         CPeriodic*                      iAnimTimer;
       
  1594 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1595         CSysApTimer*                    iSysApTimer;
       
  1596 
       
  1597 #ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1598         TInt                            iAnimationShowingTime;
       
  1599 #endif // RD_STARTUP_ANIMATION_CUSTOMIZATION
       
  1600 
       
  1601         CSysApKeySndHandler*            iSysApKeySndHandler;
       
  1602 
       
  1603         TBool                           iIgnoreZeroNetworkBarNotifications;
       
  1604 
       
  1605         TBool                           iCharging;  // Indicates if charging is currently on
       
  1606         CSysApKeyManagement* 			iSysApKeyManagement;
       
  1607 
       
  1608         CSysApMediatorObserver*         iSysApMediatorObserver;
       
  1609         TBool                           iShutdownContinued;
       
  1610 
       
  1611         /**
       
  1612         * The default key handler.
       
  1613         * Own.
       
  1614         */
       
  1615         CSysApDefaultKeyHandler* iSysApDefaultKeyHandler;
       
  1616 
       
  1617         TBool iPowerKeyPopupMenuDismissed; // Indicates if the popup menu has been dismissed
       
  1618 
   588 #ifndef RD_MULTIPLE_DRIVE
  1619 #ifndef RD_MULTIPLE_DRIVE
   589         TBool iHideNextBeep; // Prevents double beep when USB file transfer gets activated
  1620         TBool iHideNextBeep; // Prevents double beep when USB file transfer gets activated
   590         TBool iFileManagerCloseDisabled; // Prevents File Manager to close on hotswap
  1621         TBool iFileManagerCloseDisabled; // Prevents File Manager to close on hotswap
   591 #endif // RD_MULTIPLE_DRIVE
  1622 #endif // RD_MULTIPLE_DRIVE
   592         
  1623 
       
  1624         CSysApAudioRoutingObserver* iSysApAudioRoutingObserver;
       
  1625 
       
  1626         /**
       
  1627         * Call forwarding status CenRep key observer.
       
  1628         * Own.
       
  1629         */
       
  1630         CSysApCenRepCallForwardingObserver* iSysApCenRepCallForwardingObserver;
       
  1631 
       
  1632         /**
       
  1633         * Message waiting status CenRep key observer.
       
  1634         * Own.
       
  1635         */
       
  1636         CSysApCenRepMsgWaitingObserver* iSysApCenRepMsgWaitingObserver;
       
  1637 
   593 #ifdef RD_MULTIPLE_DRIVE
  1638 #ifdef RD_MULTIPLE_DRIVE
   594         // First power menu index used for eject
  1639         // First power menu index used for eject
   595         TInt iPowerkeyMenuEjectSelectionBase;
  1640         TInt iPowerkeyMenuEjectSelectionBase;
   596 
  1641 
   597         /**
  1642         /**
   622         TInt iDriveToDismount;
  1667         TInt iDriveToDismount;
   623 
  1668 
   624         // Stores drive for eject query
  1669         // Stores drive for eject query
   625         TInt iDriveToEject;
  1670         TInt iDriveToEject;
   626 #endif // RD_MULTIPLE_DRIVE
  1671 #endif // RD_MULTIPLE_DRIVE
       
  1672 
       
  1673         /**
       
  1674         * For USB charger detection.
       
  1675         */
       
  1676         TSysApUsbChargerDetector iSysApUsbChargerDetector;
       
  1677 
       
  1678         /**
       
  1679         * SysAp power save mode controller.
       
  1680         * Own.
       
  1681         */
       
  1682         CSysApPsmController* iSysApPsmController;
   627         
  1683         
   628         TBool                           iMMCEjectUsed;
  1684         /**
   629         CHbDeviceInputDialogSymbian* iMemCardPwdDialog;
  1685         * SysAp battery info controller.
       
  1686         * Own.
       
  1687         */
       
  1688         CSysApBatteryInfoController* iSysApBatteryInfoController;
       
  1689 
       
  1690     /**
       
  1691      * Returns whether a de/encrypting operation is ongoing
       
  1692      *
       
  1693      * @since S60 3.1
       
  1694      * @return TBool ETrue if a de/encrypting operation is in progress
       
  1695      */
       
  1696     TBool IsEncryptionOperationOngoingL() const;
       
  1697     TInt iKeyBoardRepeatCount;
       
  1698  
       
  1699     //Offset of profile-related menu items in power key menu
       
  1700     TInt iProfileItemsOffset;
       
  1701     //Flag to record if the TD network is enalbed.
       
  1702 		TBool iTDEnable;
       
  1703 		TBool IsDefaultPowerKeyBehavior();
       
  1704 		
       
  1705     // Are we in GAN mode
       
  1706     TBool iGanEnabled;
   630         
  1707         
   631 	};
  1708     // Handler for GAN events
   632 	
  1709     CSysApGanHandler* iSysApGanHandler;
   633 #endif
  1710 
       
  1711     };
       
  1712 
       
  1713 #endif      // SYSAPAPPUI_H
       
  1714 
       
  1715 // End of File