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