Revision: 201019 RCL_3 PDK_3.0.0
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 25 May 2010 12:28:34 +0300
branchRCL_3
changeset 20 efe289f793e7
parent 19 5181328fad28
child 23 18e505e3f370
Revision: 201019 Kit: 2010121
deviceencryption/DevEncGsPlugin/src/devencgsplugin.cpp
deviceencryption/DevEncNotifPlugin/src/DevEncPasswdDlg.cpp
deviceencryption/DevEncUi/data/DevEncUi_reg.rss
deviceencryption/DevEncUi/group/DevEncUi.mmp
deviceencryption/DevEncUi/src/DevEncUiAppui.cpp
deviceencryption/DevEncUi/src/DevEncUiCreateKeyProcess.cpp
deviceencryption/DevEncUi/src/DevEncUiDecrView.cpp
deviceencryption/DevEncUi/src/DevEncUiDecrViewContainer.cpp
deviceencryption/DevEncUi/src/DevEncUiEncrView.cpp
deviceencryption/DevEncUi/src/DevEncUiEncrViewContainer.cpp
deviceencryption/DevEncUi/src/DevEncUiEncryptionOperator.cpp
deviceencryption/DevEncUi/src/DevEncUiMainView.cpp
deviceencryption/DevEncUi/src/DevEncUiMainViewContainer.cpp
deviceencryption/DevEncUi/src/DevEncUiSecretMinMaxCodeQuery.cpp
deviceencryption/DevEncUi/src/DevEncUiSettingItemList.cpp
filemanager/App/data/FileManager.rss
filemanager/App/data/FileManager_reg.rss
filemanager/App/data/filemanager_caption.rss
filemanager/App/inc/CFileManagerAppUi.h
filemanager/App/src/CFileManagerAppUi.cpp
filemanager/App/src/CFileManagerBackupView.cpp
filemanager/App/src/CFileManagerFileListContainer.cpp
filemanager/App/src/CFileManagerFoldersView.cpp
filemanager/App/src/CFileManagerMainView.cpp
filemanager/App/src/CFileManagerMemoryStoreView.cpp
filemanager/App/src/CFileManagerRestoreView.cpp
filemanager/App/src/CFileManagerSchBackupHandler.cpp
filemanager/App/src/CFileManagerSettingListContainer.cpp
filemanager/App/src/CFileManagerStringCache.cpp
filemanager/App/src/CFileManagerViewBase.cpp
filemanager/App/src/Cfilemanagersearchresultsview.cpp
filemanager/BWINS/FILEMANAGERENGINEU.DEF
filemanager/EABI/FileManagerEngineU.DEF
filemanager/Engine/inc/CFileManagerEngine.h
filemanager/Engine/src/CFileManagerBackupSettingsFull.cpp
filemanager/Engine/src/CFileManagerEngine.cpp
filemanager/Engine/src/CFileManagerItemFilter.cpp
filemanager/Engine/src/CFileManagerRemovableDriveHandler.cpp
filemanager/Engine/src/CFileManagerRestoreSettingsFull.cpp
filemanager/Engine/src/CFileManagerUtils.cpp
filemanager/Engine/src/Cfilemanageractivesize.cpp
filemanager/GFLM/src/CGflmDirectoryListingCache.cpp
filemanager/GFLM/src/CGflmFileRecognizer.cpp
filemanager/View/src/CFileManagerFileNameQueryDlg.cpp
filemanager/View/src/CFileManagerFullOmaDrmInfo.cpp
filemanager/View/src/CFileManagerIconArray.cpp
filemanager/View/src/CFileManagerInfoPopup.cpp
filemanager/View/src/CFileManagerMMCInfoPopup.cpp
filemanager/View/src/CFileManagerPopupBase.cpp
filemanager/View/src/Cfilemanagerfoldernamequerydlg.cpp
filemanager/View/src/Cfilemanagerfoldernavigationpane.cpp
filemanager/View/src/FileManagerDlgUtils.cpp
filemanager/bkupengine/src/MMCScBkupSBEUtils.cpp
filemanager/group/FileManager.mmp
filemanager/group/bld.inf
filemanager/group/filemanagerschbkup.mmp
filemanager/loc/FileManager.loc
filemanager/schbkup/inc/filemanagerschbackuptask.h
filemanager/schbkup/inc/fmsystemstatemonitor.h
filemanager/schbkup/src/filemanagerschbackuptask.cpp
filemanager/schbkup/src/fmsystemstatemonitor.cpp
filesystemuis/memscaneng/serversrc/msenginfoarray.cpp
filesystemuis/memscaneng/serversrc/msengscanner.cpp
filesystemuis/memstatepopup/group/bld.inf
filesystemuis/memstatepopup/src/CMemStatePopup.cpp
filesystemuis/memstatepopup/src/cmemstatepopupimpl.cpp
--- a/deviceencryption/DevEncGsPlugin/src/devencgsplugin.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncGsPlugin/src/devencgsplugin.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,6 @@
 #include    <gsparentplugin.h>
 #include    <gscommon.hrh>
 #include    <devencgspluginrsc.rsg> // GUI Resource
-//#include    <DevEncUi.rsg>
 #include    <devencgsplugin.mbg>
 #include    <gsprivatepluginproviderids.h>
 #include    <hwrmvibrasdkcrkeys.h>
--- a/deviceencryption/DevEncNotifPlugin/src/DevEncPasswdDlg.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncNotifPlugin/src/DevEncPasswdDlg.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 #include "DevEncUids.hrh"
 #include "DevEncDef.h"
 #include <eiksrvui.h>
-#include <DevEncNotifPlugin.rsg>
+#include <devencnotifplugin.rsg>
 #include <StringLoader.h>
 #include <bautils.h>         // BAFL utils (for language file)
 #include <data_caging_path_literals.hrh>
--- a/deviceencryption/DevEncUi/data/DevEncUi_reg.rss	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/data/DevEncUi_reg.rss	Tue May 25 12:28:34 2010 +0300
@@ -17,7 +17,7 @@
 
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <devenc.loc>
 #include "DevEncUids.hrh"
 
--- a/deviceencryption/DevEncUi/group/DevEncUi.mmp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/group/DevEncUi.mmp	Tue May 25 12:28:34 2010 +0300
@@ -58,7 +58,7 @@
 END //RESOURCE
 
 START RESOURCE    DevEncUi_reg.rss
-DEPENDS           DevEncUi.rsg
+DEPENDS           devencui.rsg
 HEADER
 TARGETPATH 	      /private/10003a3f/apps
 END //RESOURCE
--- a/deviceencryption/DevEncUi/src/DevEncUiAppui.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiAppui.cpp	Tue May 25 12:28:34 2010 +0300
@@ -18,7 +18,7 @@
 // INCLUDE FILES
 #include <avkon.hrh>
 #include <centralrepository.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <csxhelp/devenc.hlp.hrh>
 #include <e32event.h>
 #include <hlplch.h> // Help launcher
--- a/deviceencryption/DevEncUi/src/DevEncUiCreateKeyProcess.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiCreateKeyProcess.cpp	Tue May 25 12:28:34 2010 +0300
@@ -17,7 +17,7 @@
 
 #include "DevEncLog.h"
 #include "DevEncUiCreateKeyProcess.h"
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 
 CDevEncUiCreateKeyProcess::CDevEncUiCreateKeyProcess()
     {
--- a/deviceencryption/DevEncUi/src/DevEncUiDecrView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiDecrView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 
 // System includes
 #include <aknViewAppUi.h>	// CAknViewAppUi
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 
 // User includes
 #include "DevEncLog.h"
--- a/deviceencryption/DevEncUi/src/DevEncUiDecrViewContainer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiDecrViewContainer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -24,7 +24,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <coemain.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <eikenv.h>
 
 // User Includes
--- a/deviceencryption/DevEncUi/src/DevEncUiEncrView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiEncrView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 
 // System includes
 #include <aknViewAppUi.h>	// CAknViewAppUi
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 
 // User includes
 #include "DevEncLog.h"
--- a/deviceencryption/DevEncUi/src/DevEncUiEncrViewContainer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiEncrViewContainer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -24,7 +24,7 @@
 #include <aknlists.h>
 #include <barsread.h>
 #include <coemain.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <eikenv.h>
 
 // User Includes
--- a/deviceencryption/DevEncUi/src/DevEncUiEncryptionOperator.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiEncryptionOperator.cpp	Tue May 25 12:28:34 2010 +0300
@@ -33,7 +33,7 @@
 #include <centralrepository.h>
 #include <coemain.h>
 #include <data_caging_path_literals.hrh> // for resource files dir
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <eikenv.h>
 #include <e32property.h>
 #include <etelmm.h>
--- a/deviceencryption/DevEncUi/src/DevEncUiMainView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiMainView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -23,7 +23,7 @@
 // System includes
 #include <aknnotewrappers.h>
 #include <aknViewAppUi.h>	// CAknViewAppUi
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <e32cmn.h>
 #include <StringLoader.h>
 #include <DevEncExternalCRKeys.h>
--- a/deviceencryption/DevEncUi/src/DevEncUiMainViewContainer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiMainViewContainer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -27,7 +27,7 @@
 #include <eikenv.h>
 #include <DevEncEngineConstants.h>
 #include <StringLoader.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 
 //User includes
 #include "DevEncLog.h"
--- a/deviceencryption/DevEncUi/src/DevEncUiSecretMinMaxCodeQuery.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiSecretMinMaxCodeQuery.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 #include <aknQueryControl.h>
 #include <AknQueryDialog.h>
 #include <aknsoundsystem.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 #include <eikseced.h>
 
 #include "DevEncLog.h"
--- a/deviceencryption/DevEncUi/src/DevEncUiSettingItemList.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/deviceencryption/DevEncUi/src/DevEncUiSettingItemList.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 
 // System include
 #include <StringLoader.h>
-#include <DevEncUi.rsg>
+#include <devencui.rsg>
 
 // User include
 
--- a/filemanager/App/data/FileManager.rss	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/data/FileManager.rss	Tue May 25 12:28:34 2010 +0300
@@ -33,6 +33,7 @@
 #include <CommonDialogs.rh>
 #include <filemanager.mbg>
 #include <drmcommon.loc>
+#include <activeidle3.loc>
 #include <filemanager.loc>
 #include "FileManagerEngine.hrh" // filemanager_mbm_file_location
 #include "FileManager.hrh"
@@ -1510,4 +1511,6 @@
 RESOURCE TBUF r_qtn_fmgr_delete_backup_title         { buf = qtn_fmgr_delete_backup_title; }
 RESOURCE TBUF r_qtn_fmgr_delete_backup_query         { buf = qtn_fmgr_delete_backup_query; }
 RESOURCE TBUF r_qtn_fmgr_usb_memory_default_name     { buf = qtn_fmgr_usb_memory_default_name; }
+
+RESOURCE TBUF r_qtn_fmgr_system_not_ready            { buf = qtn_hs_operation_failed_no_disk ; }
 // End of File
--- a/filemanager/App/data/FileManager_reg.rss	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/data/FileManager_reg.rss	Tue May 25 12:28:34 2010 +0300
@@ -18,7 +18,7 @@
 
 #include <appinfo.rh>
 #include <data_caging_paths_strings.hrh>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include "FileManagerUID.h"
 
 UID2 KUidAppRegistrationResourceFile
--- a/filemanager/App/data/filemanager_caption.rss	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/data/filemanager_caption.rss	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <apcaptionfile.rh>
-#include <FileManager.loc>
+#include <filemanager.loc>
 
 
 //  RESOURCE DEFINITIONS 
--- a/filemanager/App/inc/CFileManagerAppUi.h	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/inc/CFileManagerAppUi.h	Tue May 25 12:28:34 2010 +0300
@@ -23,6 +23,8 @@
 //  INCLUDES
 #include <aknViewAppUi.h>       // CAknViewAppUi
 #include <TFileManagerDriveInfo.h>
+#include <ssm/ssmstateawaresession.h>
+
 #include "MFileManagerSchBackupObserver.h"
 
 // FORWARD DECLARATIONS
@@ -299,6 +301,13 @@
         */
         void ResetBackupOrRestoreEndTime();
         
+        /**
+        * after startup finish, the system state will get normal, backup/restore need check the status before get started.
+        * @since 5.2
+		* @return ETrue if system state is normal, EFalse if not
+        */
+        TBool IsSystemStateNormal() const;
+        
     public: // MCoeForegroundObserver
 
         /** Handles the application coming to the foreground. */
@@ -402,6 +411,10 @@
         TTime iManualBackupOrRestoreStarted;
         // Own: Stores the end time
         TTime iManualBackupOrRestoreEnded;
+        
+        // State aware session.
+        RSsmStateAwareSession iSAS;
+        
     };
 
 #endif // CFILEMANAGERAPPUI_H
--- a/filemanager/App/src/CFileManagerAppUi.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerAppUi.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 #include <aknnavi.h>    // CAknNavigationControlContainer 
 #include <aknnavide.h>  // CAknNavigationDecorator
 #include <sendui.h>     // CSendAppUi
-#include <Sendnorm.rsg>
+#include <sendnorm.rsg>
 #include <avkon.rsg>
 #include <barsread.h>
 #include <hlplch.h>     // HlpLauncher
@@ -36,10 +36,13 @@
 #include <bautils.h>
 #include <pathinfo.h>
 #include <driveinfo.h>
+#include <ssm/ssmstate.h>
+#include <ssm/ssmdomaindefs.h>
+
 #include <CFileManagerEngine.h>
 #include <CFileManagerIRReceiver.h>
-#include <FileManager.rsg>
-#include <FileManagerView.rsg>
+#include <filemanager.rsg>
+#include <filemanagerview.rsg>
 #include <FileManagerDebug.h>
 #include <FileManagerUID.h>
 #include <CFileManagerFeatureManager.h>
@@ -141,6 +144,7 @@
     CFileManagerEngine& engine =
         static_cast< CFileManagerDocument* >( Document() )->Engine();
     engine.SetObserver( NULL );
+    iSAS.Close();
     }
 
 // -----------------------------------------------------------------------------
@@ -168,6 +172,8 @@
     CleanupStack::Pop( view );
     SetDefaultViewL( *view );
     iActiveView = view->Id();
+ 
+    User::LeaveIfError( iSAS.Connect( KSM2GenMiddlewareDomain3 ) );
 
 #ifdef RD_FILE_MANAGER_BACKUP
     CFileManagerDocument* doc =
@@ -579,10 +585,6 @@
         {
         ExitEmbeddedAppIfNeededL();
         CreateAndActivateLocalViewL( KFileManagerMainViewId );
-                
-        //Fix for EDMO-7JMH7V
-        //File manager:The phone displays "no data" in File manager 
-        //when cancel installing ".sis" file
         iActiveView = KFileManagerMainViewId;
         }
     }
@@ -717,6 +719,7 @@
 void CFileManagerAppUi::CloseRestoreViewL()
     {
     CreateAndActivateLocalViewL( KFileManagerBackupViewId );
+    iActiveView = KFileManagerBackupViewId;
     }
 
 // -----------------------------------------------------------------------------
@@ -1297,5 +1300,17 @@
     iManualBackupOrRestoreEnded = 0;
     }
 
+
+// ------------------------------------------------------------------------------
+// CFileManagerAppUi::IsSystemStateNormal
+//
+// ------------------------------------------------------------------------------
+//
+TBool CFileManagerAppUi::IsSystemStateNormal() const
+    {
+    TSsmState state = iSAS.State();
+    return ( state.MainState() == ESsmNormal );
+    }
+
 // End of File  
 
--- a/filemanager/App/src/CFileManagerBackupView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerBackupView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 #include <akntitle.h>
 #include <csxhelp/fmgr.hlp.hrh>
 #include <CFileManagerEngine.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <CFileManagerBackupSettings.h>
 #include <FileManagerPrivateCRKeys.h>
 #include <FileManagerDlgUtils.h>
@@ -241,6 +241,14 @@
         {
         return;
         }
+
+    TBool isSystemStateNormal = static_cast< CFileManagerAppUi* >( AppUi() )->IsSystemStateNormal();
+    if ( !isSystemStateNormal )
+       {
+        FileManagerDlgUtils::ShowErrorNoteL( R_QTN_FMGR_SYSTEM_NOT_READY );
+        return;
+       }
+
     StoreIndex();
     CFileManagerBackupSettings& settings( iEngine.BackupSettingsL() );
     TInt drive( settings.TargetDrive() );
--- a/filemanager/App/src/CFileManagerFileListContainer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerFileListContainer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -18,7 +18,7 @@
 
 
 // INCLUDE FILES
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <aknlists.h>
 #include <barsread.h>
 #include <eikclbd.h>
--- a/filemanager/App/src/CFileManagerFoldersView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerFoldersView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -27,8 +27,8 @@
 #include <AknInfoPopupNoteController.h>
 #include <csxhelp/fmgr.hlp.hrh>
 #include <CFileManagerEngine.h>
-#include <FileManager.rsg>
-#include <FileManagerView.rsg>
+#include <filemanager.rsg>
+#include <filemanagerview.rsg>
 #include <TFileManagerDriveInfo.h>
 #include <CFileManagerCommonDefinitions.h>
 #include <FileManagerDebug.h>
--- a/filemanager/App/src/CFileManagerMainView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerMainView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknlists.h>
 #include <CFileManagerEngine.h>
 #include <CFileManagerItemProperties.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <csxhelp/fmgr.hlp.hrh>
 #include <FileManagerDlgUtils.h>
 #include <FileManagerDebug.h>
@@ -284,6 +284,10 @@
         }
 #endif // RD_FILE_MANAGER_BACKUP
 
+    if( !iEngine.IsDriverMounted( drvInfo.iDrive ) )
+        {
+        aMenuPane.SetItemDimmed( EFileManagerEject, ETrue );
+        }
     CleanupStack::PopAndDestroy( prop );
     }
 
--- a/filemanager/App/src/CFileManagerMemoryStoreView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerMemoryStoreView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 #include <aknlists.h>
 #include <akntitle.h>
 #include <CFileManagerEngine.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <csxhelp/fmgr.hlp.hrh>
 #include <FileManagerDebug.h>
 #include "CFileManagerMemoryStoreView.h"
--- a/filemanager/App/src/CFileManagerRestoreView.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerRestoreView.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 #include <aknlists.h>
 #include <akntitle.h>
 #include <CFileManagerEngine.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <FileManagerDlgUtils.h>
 #include <CFileManagerRestoreSettings.h>
 #include <FileManagerDebug.h>
@@ -209,6 +209,14 @@
         {
         return;
         }
+
+    TBool isSystemStateNormal = static_cast< CFileManagerAppUi* >( AppUi() )->IsSystemStateNormal();
+    if ( !isSystemStateNormal )
+        {
+        FileManagerDlgUtils::ShowErrorNoteL( R_QTN_FMGR_SYSTEM_NOT_READY );
+        return;
+        }
+
     const CArrayFix< TInt >* items = iContainer->ListBoxSelectionIndexes();
 
     TInt count( items->Count() );
--- a/filemanager/App/src/CFileManagerSchBackupHandler.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerSchBackupHandler.cpp	Tue May 25 12:28:34 2010 +0300
@@ -23,7 +23,7 @@
 #include <centralrepository.h>
 #include <avkon.hrh>
 #include <avkon.rsg>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <FileManagerDebug.h>
 #include <FileManagerPrivateCRKeys.h>
 #include <CFileManagerEngine.h>
--- a/filemanager/App/src/CFileManagerSettingListContainer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerSettingListContainer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -18,7 +18,7 @@
 
 
 // INCLUDE FILES
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <aknlists.h>
 #include <barsread.h>
 #include <eikclbd.h>
--- a/filemanager/App/src/CFileManagerStringCache.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerStringCache.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 // INCLUDES
 #include <AknUtils.h>
 #include <StringLoader.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <CFileManagerEngine.h>
 #include <CFileManagerItemProperties.h>
 #include <CFileManagerCommonDefinitions.h>
--- a/filemanager/App/src/CFileManagerViewBase.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/CFileManagerViewBase.cpp	Tue May 25 12:28:34 2010 +0300
@@ -26,7 +26,7 @@
 #include <CAknMemorySelectionDialog.h>
 #include <CAknFileSelectionDialog.h>
 #include <sendui.h>
-#include <Sendnorm.rsg>
+#include <sendnorm.rsg>
 #include <SenduiMtmUids.h>
 #include <AknProgressDialog.h>
 #include <eikprogi.h>
@@ -57,8 +57,8 @@
 #include <CFileManagerItemProperties.h>
 #include <CFileManagerActiveExecute.h>
 #include <Cfilemanageractivedelete.h>
-#include <FileManager.rsg>
-#include <FileManagerView.rsg>
+#include <filemanager.rsg>
+#include <filemanagerview.rsg>
 #include <FileManagerDebug.h>
 #include <FileManagerDlgUtils.h>
 #include <CFileManagerFeatureManager.h>
@@ -86,7 +86,7 @@
 const TInt64 KMinToMicroSecMultiplier = KMSecToMicroSecMultiplier * 60;
 const TInt64 KHourToMicroSecMultiplier = KMinToMicroSecMultiplier * 60;
 const TUint KProgressBarAsyncStartDelay = 1500000; // microseconds
-const TInt KMinificationFactor = 1024; // Used to zoom processbar's proportion
+const TInt64 KMinificationFactor = 1024; // Used to zoom processbar's proportion
 
 // ============================ LOCAL FUNCTIONS ================================
 
@@ -4290,7 +4290,7 @@
         }
     iProgressDialogRefresh = new( ELeave ) CAknProgressDialog(
         reinterpret_cast< CEikDialog** >( &iProgressDialogRefresh ),
-        ETrue );
+        EFalse );
     iProgressDialogRefresh->SetCallback( this );
 
     if ( Id() == CFileManagerAppUi::KFileManagerSearchResultsViewId )
--- a/filemanager/App/src/Cfilemanagersearchresultsview.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/App/src/Cfilemanagersearchresultsview.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include <CFileManagerEngine.h>
-#include <FileManager.rsg>
+#include <filemanager.rsg>
 #include <aknlists.h>
 #include <aknnavi.h>
 #include <akntitle.h> 
--- a/filemanager/BWINS/FILEMANAGERENGINEU.DEF	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/BWINS/FILEMANAGERENGINEU.DEF	Tue May 25 12:28:34 2010 +0300
@@ -137,4 +137,5 @@
 	?SetCurrentItemName@CFileManagerEngine@@QAEXABVTDesC16@@@Z @ 136 NONAME ; void CFileManagerEngine::SetCurrentItemName(class TDesC16 const &)
 	?SetAppExitOb@CFileManagerEngine@@QAEXPAVMAknServerAppExitObserver@@@Z @ 137 NONAME ; void CFileManagerEngine::SetAppExitOb(class MAknServerAppExitObserver *)
 	?DeleteBackupsL@CFileManagerEngine@@QAEXXZ @ 138 NONAME ; void CFileManagerEngine::DeleteBackupsL(void)
+	?IsDriverMounted@CFileManagerEngine@@QAEHH@Z @ 139 NONAME ; int CFileManagerEngine::IsDriverMounted(int)
 
--- a/filemanager/EABI/FileManagerEngineU.DEF	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/EABI/FileManagerEngineU.DEF	Tue May 25 12:28:34 2010 +0300
@@ -145,4 +145,5 @@
 	_ZN18CFileManagerEngine18SetCurrentItemNameERK7TDesC16 @ 144 NONAME
 	_ZN18CFileManagerEngine12SetAppExitObEP25MAknServerAppExitObserver @ 145 NONAME
 	_ZN18CFileManagerEngine14DeleteBackupsLEv @ 146 NONAME
+	_ZN18CFileManagerEngine15IsDriverMountedEi @ 147 NONAME
 
--- a/filemanager/Engine/inc/CFileManagerEngine.h	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/inc/CFileManagerEngine.h	Tue May 25 12:28:34 2010 +0300
@@ -718,6 +718,14 @@
         */
         IMPORT_C void DeleteBackupsL();
         
+		/**
+        * Check if a drive is mounted
+        * @Param aDrive The target drive to check
+		* @Return TBool to indicate check result
+        * @since 5.2
+        */
+        IMPORT_C TBool IsDriverMounted( TInt aDrive );
+        
     public:
     	
         /**
--- a/filemanager/Engine/src/CFileManagerBackupSettingsFull.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerBackupSettingsFull.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include <avkon.rsg>
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #include <StringLoader.h>
 #include <centralrepository.h>
 #ifdef RD_MULTIPLE_DRIVE
--- a/filemanager/Engine/src/CFileManagerEngine.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerEngine.cpp	Tue May 25 12:28:34 2010 +0300
@@ -27,7 +27,7 @@
 //#include <cmgalbummanager.h>
 #include <pathinfo.h>
 #include <AknServerApp.h>
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #ifdef RD_MULTIPLE_DRIVE
 #include <driveinfo.h>
 #endif // RD_MULTIPLE_DRIVE
@@ -1976,7 +1976,7 @@
                 {
                 CGflmFileSystemItem* fsItem =
                     static_cast< CGflmFileSystemItem* >( item );
-                size += static_cast<TUint>(fsItem->Entry().iSize);
+                size += fsItem->Entry().FileSize();
                 break;
                 }
             case CGflmGroupItem::EDirectory:
@@ -2288,5 +2288,14 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CFileManagerEngine::IsDriverMounted()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TBool CFileManagerEngine::IsDriverMounted( TInt aDrive )
+    {
+    TVolumeInfo volInfo;
+    return ( KErrNone == iFs.Volume( volInfo, aDrive ) );
+    }
 
 //  End of File
--- a/filemanager/Engine/src/CFileManagerItemFilter.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerItemFilter.cpp	Tue May 25 12:28:34 2010 +0300
@@ -28,7 +28,7 @@
 #include "FileManagerDebug.h"
 #include "TFileManagerDriveInfo.h"
 #include "CFileManagerFeatureManager.h"
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #include <StringLoader.h>
 #include <pathinfo.h>
 #ifdef RD_MULTIPLE_DRIVE
@@ -180,11 +180,6 @@
                 }
             else if ( driveStatus & DriveInfo::EDriveUsbMemory )
                 {
-                if ( !( driveStatus & DriveInfo::EDrivePresent ) )
-                    {
-                    ERROR_LOG( "CFileManagerItemFilter::FilterItemL()-NotPresentUsbMemory" )
-                    return EFalse; // Not present USB drive is not shown
-                    }
                 icon = EFileManagerUsbMemoryMainIcon;
                 }
             else if ( driveStatus & DriveInfo::EDriveRemovable )
--- a/filemanager/Engine/src/CFileManagerRemovableDriveHandler.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerRemovableDriveHandler.cpp	Tue May 25 12:28:34 2010 +0300
@@ -18,7 +18,7 @@
 
 
 // INCLUDE FILES
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #include "CFileManagerRemovableDriveHandler.h"
 #include "MFileManagerProcessObserver.h"
 #include "CFileManagerUtils.h"
--- a/filemanager/Engine/src/CFileManagerRestoreSettingsFull.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerRestoreSettingsFull.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include <StringLoader.h>
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #include <AknUtils.h>
 #include "FileManagerEngine.hrh"
 #include "CFileManagerEngine.h"
--- a/filemanager/Engine/src/CFileManagerUtils.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/CFileManagerUtils.cpp	Tue May 25 12:28:34 2010 +0300
@@ -25,7 +25,7 @@
 #include <bautils.h>
 #include <caf/caf.h>
 #include <DcfCommon.h>
-#include <FileManagerEngine.rsg>
+#include <filemanagerengine.rsg>
 #ifdef RD_MULTIPLE_DRIVE
 #include <driveinfo.h>
 #endif // RD_MULTIPLE_DRIVE
@@ -408,10 +408,6 @@
         else
             {
             fileType |= CFileManagerItemProperties::EFile;
-            if ( IsDrmProtectedFileL( aFullPath) )
-                {
-                fileType |= CFileManagerItemProperties::EDrmProtected;
-                }
             }
         }
         
--- a/filemanager/Engine/src/Cfilemanageractivesize.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/Engine/src/Cfilemanageractivesize.cpp	Tue May 25 12:28:34 2010 +0300
@@ -110,7 +110,7 @@
     while( iFileCounter < iDir->Count() && processCount )
         {
         const TEntry& item( ( *iDir )[ iFileCounter ] );
-        iSize += item.iSize;
+        iSize += item.FileSize();
         ++iFileCounter;
         --processCount;
         }
--- a/filemanager/GFLM/src/CGflmDirectoryListingCache.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/GFLM/src/CGflmDirectoryListingCache.cpp	Tue May 25 12:28:34 2010 +0300
@@ -159,7 +159,7 @@
             for ( TInt i( 0 ); i < entryCount; i++ )
 			    {
                 const TEntry& entry( iEntryBuffer[ i ] );
-                TInt entrySize( EntrySize( entry ) );
+                TInt entrySize( EntrySize( entry, ETrue ) );
                 aPair.iListing->AppendL( entry, entrySize );
 				}
 			}
--- a/filemanager/GFLM/src/CGflmFileRecognizer.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/GFLM/src/CGflmFileRecognizer.cpp	Tue May 25 12:28:34 2010 +0300
@@ -25,7 +25,7 @@
 #include "GFLMConsts.h"
 #include <e32svr.h>
 #include <barsread.h>
-#include <GflmFileExtensionMimeTypes.rsg>
+#include <gflmfileextensionmimetypes.rsg>
 #include <data_caging_path_literals.hrh> 
 
 
--- a/filemanager/View/src/CFileManagerFileNameQueryDlg.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerFileNameQueryDlg.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknnotewrappers.h> 
 #include <bautils.h>
 #include <CFileManagerEngine.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include "CFileManagerFileNameQueryDlg.h"
 #include "CFileManagerCommonDefinitions.h"
 #include "CFileManagerItemProperties.h"
--- a/filemanager/View/src/CFileManagerFullOmaDrmInfo.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerFullOmaDrmInfo.cpp	Tue May 25 12:28:34 2010 +0300
@@ -22,7 +22,7 @@
 #include <DRMHelper.h>
 #include <DRMRights.h>
 #include <AknUtils.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <FileManagerDebug.h>
 #include <drmuihandling.h>
 #include "CFileManagerFullOmaDrmInfo.h"
--- a/filemanager/View/src/CFileManagerIconArray.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerIconArray.cpp	Tue May 25 12:28:34 2010 +0300
@@ -23,7 +23,7 @@
 #include <gulicon.h>
 #include <AknsItemID.h>
 #include <AknsUtils.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include "CFileManagerIconArray.h"
 #include "FileManagerView.hrh"
 
--- a/filemanager/View/src/CFileManagerInfoPopup.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerInfoPopup.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 #include <aknlists.h>
 #include <StringLoader.h>
 #include <cmemstatepopup.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <CFileManagerItemProperties.h>
 #include <CFileManagerFeatureManager.h>
 #include <drmuihandling.h>
--- a/filemanager/View/src/CFileManagerMMCInfoPopup.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerMMCInfoPopup.cpp	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 #include <StringLoader.h>
 #include <aknPopup.h>
 #include <aknlists.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <cmemstatepopup.h>
 #include "CFileManagerMMCInfoPopup.h"
 #include "TFileManagerDriveInfo.h"
--- a/filemanager/View/src/CFileManagerPopupBase.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/CFileManagerPopupBase.cpp	Tue May 25 12:28:34 2010 +0300
@@ -19,7 +19,7 @@
 
 // INCLUDE FILES
 #include <StringLoader.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <FileManagerDebug.h>
 #include <CFileManagerCommonDefinitions.h>
 #include "CFileManagerPopupBase.h"
--- a/filemanager/View/src/Cfilemanagerfoldernamequerydlg.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/Cfilemanagerfoldernamequerydlg.cpp	Tue May 25 12:28:34 2010 +0300
@@ -23,7 +23,7 @@
 #include <bautils.h>
 #include <CFileManagerEngine.h>
 #include <CFileManagerUtils.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include "Cfilemanagerfoldernamequerydlg.h"
 #include "CFileManagerCommonDefinitions.h"
 #include "FileManagerDlgUtils.h"
--- a/filemanager/View/src/Cfilemanagerfoldernavigationpane.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/Cfilemanagerfoldernavigationpane.cpp	Tue May 25 12:28:34 2010 +0300
@@ -26,7 +26,7 @@
 #include <AknsSkinInstance.h>
 #include <AknsUtils.h>
 #include <aknlayoutscalable_avkon.cdl.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <FileManagerEngine.hrh>
 #include "Cfilemanagerfoldernavigationpane.h"
 #include "MFileManagerFolderNaviObserver.h"
--- a/filemanager/View/src/FileManagerDlgUtils.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/View/src/FileManagerDlgUtils.cpp	Tue May 25 12:28:34 2010 +0300
@@ -25,7 +25,7 @@
 #include <aknmfnesettingpage.h>
 #include <aknmessagequerydialog.h>
 #include <aknnotewrappers.h>
-#include <FileManagerView.rsg>
+#include <filemanagerview.rsg>
 #include <CFileManagerEngine.h>
 #include "FileManagerDlgUtils.h"
 #include "CFileManagerMMCInfoPopup.h"
--- a/filemanager/bkupengine/src/MMCScBkupSBEUtils.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/bkupengine/src/MMCScBkupSBEUtils.cpp	Tue May 25 12:28:34 2010 +0300
@@ -230,20 +230,19 @@
         {
         // Must first create a generic transfer type object... sigh...
         CSBGenericTransferType* transferType = CSBGenericTransferType::NewL( nonConstOriginal->Externalise() );
-        CleanupStack::PushL( transferType );
-        switch(type)
+        CleanupStack::PushL( transferType ); 
+        if ( ESIDTransferDerivedType == type )
             {
-        case ESIDTransferDerivedType:
             ret = CSBSIDTransferType::NewL( transferType );
-            break;
-        case EPackageTransferDerivedType:
+            }
+        else if ( EPackageTransferDerivedType == type )
+            {
             ret = CSBPackageTransferType::NewL( transferType );
-            break;
-        case EJavaTransferDerivedType:
+            }
+        // Type is EJavaTransferDerivedType
+        else
+            {
             ret = CSBJavaTransferType::NewL( transferType );
-            break;
-        default:
-            break;
             }
         CleanupStack::PopAndDestroy( transferType );
         }
--- a/filemanager/group/FileManager.mmp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/group/FileManager.mmp	Tue May 25 12:28:34 2010 +0300
@@ -95,5 +95,6 @@
 LIBRARY         commonui.lib
 LIBRARY         servicehandler.lib
 LIBRARY         platformenv.lib
+LIBRARY	        ssmcmn.lib // state manager
 
 // End of File
--- a/filemanager/group/bld.inf	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/group/bld.inf	Tue May 25 12:28:34 2010 +0300
@@ -32,7 +32,7 @@
 
 ../rom/FileManager.iby          CORE_APP_LAYER_IBY_EXPORT_PATH(FileManager.iby)
 ../rom/FileManagerResources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(FileManagerResources.iby)
-../loc/FileManager.loc          APP_LAYER_LOC_EXPORT_PATH(FileManager.loc)
+../loc/FileManager.loc          APP_LAYER_LOC_EXPORT_PATH(filemanager.loc)
 
 
 PRJ_EXTENSIONS
--- a/filemanager/group/filemanagerschbkup.mmp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/group/filemanagerschbkup.mmp	Tue May 25 12:28:34 2010 +0300
@@ -29,7 +29,8 @@
 SOURCEPATH      ../schbkup/src
 SOURCE          filemanagerschbackupmain.cpp
 SOURCE          filemanagerschbackuptask.cpp
-SOURCE          filemanagerschsubscriber.cpp
+SOURCE          filemanagerschsubscriber.cpp 
+SOURCE          fmsystemstatemonitor.cpp
 
 USERINCLUDE     . ../schbkup/inc ../Engine/inc
 
@@ -43,3 +44,5 @@
 LIBRARY         apgrfx.lib
 LIBRARY         apparc.lib
 LIBRARY         centralrepository.lib
+LIBRARY	        ssmcmn.lib // state manager
+
--- a/filemanager/loc/FileManager.loc	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/loc/FileManager.loc	Tue May 25 12:28:34 2010 +0300
@@ -2128,4 +2128,11 @@
 //
 #define qtn_memc_not_available "(Memory is not available)"
 
+//d: note text when the system is not ready for user to do backup&restore operation
+//l: popup_note_window
+//w:
+//r:5.2
+// 
+#define qtn_fmgr_system_not_ready "System is not ready. Please try again"
+
 // End of File
--- a/filemanager/schbkup/inc/filemanagerschbackuptask.h	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/schbkup/inc/filemanagerschbackuptask.h	Tue May 25 12:28:34 2010 +0300
@@ -23,7 +23,7 @@
 // INCLUDE FILES
 #include <e32base.h>
 #include "filemanagerschobserver.h"
-
+#include "fmsystemstatemonitor.h"
 
 // FORWARD DECLARATIONS
 class CScheduledTask;
@@ -38,7 +38,8 @@
  *  @since S60 3.1
  */
 class CFileManagerSchBackupTask : public CActive,
-                                  public MFileManagerSchObserver
+                                  public MFileManagerSchObserver,
+                                  public MFmSystemStateMonitorObserver
     {
 
 public:
@@ -65,6 +66,13 @@
         const TUint aKey,
         const TBool aTimeout );
 
+public: // From MFmSystemStateMonitorObserver
+    /**
+     * Called when the system state changed  
+     * @since 5.2
+     */
+    void SystemStateChangedEvent();
+    
 private: // New methods
     /**
      * Constructors
@@ -125,6 +133,11 @@
      * Start attempts left
      */
     TInt iAttemptsLeft;
+    
+    /**
+     * Own: Pointer to system state monitor   
+     */
+    CFmSystemStateMonitor* iSystemStateMonitor;
 
     };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/schbkup/inc/fmsystemstatemonitor.h	Tue May 25 12:28:34 2010 +0300
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  system State monitor
+*
+*/
+
+#ifndef __FM_SYSTEMSTATE_MONITOR__
+#define __FM_SYSTEMSTATE_MONITOR__
+
+#include <e32base.h>
+#include <ssm/ssmstateawaresession.h>
+
+/**
+ * MFmSystemStateMonitorObserver
+ * 
+ * Monitor component observer.
+ * 
+ * @since S60 5.2
+ */
+class MFmSystemStateMonitorObserver
+    {    
+    public:
+        /**
+         * Called when the system State changed  
+         */
+        virtual void SystemStateChangedEvent() = 0;
+    };
+
+/**
+ * CFmSystemStateMonitor
+ * 
+ * Component for monitoring system state
+ * 
+ * @since S60 5.2
+ */  
+class CFmSystemStateMonitor : public CActive
+    {
+    public:
+        /**
+         * Create new monitor
+         * 
+         * @param aObserver monitor observer
+         * @since S60 5.2     
+         */    
+        static CFmSystemStateMonitor* NewL(
+            MFmSystemStateMonitorObserver& aObserver );   
+        
+        /**
+         * Destructor
+         * 
+         * @since S60 5.2     
+         */    
+        ~CFmSystemStateMonitor();
+    
+        /**
+         * Start monitor
+         * 
+         * @param aStateToMonitor the state needs monitored
+         * @since S60 5.2
+         */        
+        void StartMonitor( TUint aStateToMonitor );    
+        
+        /**
+         * Indicate system state is normal or not
+		 *       
+         * @since S60 5.2
+		 * @return ETrue if system state is normal, EFalse if not
+         */ 
+        TBool IsSystemStateNormal();
+
+    private:
+        /** 
+         * C++ constructor
+         *
+         * @param aObserver monitor observer.   
+         * @since S60 5.2      
+         */        
+        CFmSystemStateMonitor( MFmSystemStateMonitorObserver& aObserver );    
+
+        /**
+         * Symbian 2nd phase constructor
+         * 
+         * @since S60 5.2
+         */        
+        void ConstructL();
+
+    private: // From CActive
+        /**
+         * From CActive
+         */        
+        void RunL();
+
+        /**
+         * From CActive         
+         * @since S60 5.2
+         */        
+        void DoCancel(); 
+
+        /**
+         * From CActive         
+         * @since S60 5.2
+         */        
+        TInt RunError( TInt aError );
+
+    private:	
+        // observer used to inform try schedule backup again when system state become normal
+        MFmSystemStateMonitorObserver& iObserver;
+
+        // State aware session.
+        RSsmStateAwareSession iSAS;
+        
+        // State to monitor
+        TUint iStateToMonitor;
+    };
+
+#endif // __FM_SYSTEMSTATE_MONITOR__
--- a/filemanager/schbkup/src/filemanagerschbackuptask.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filemanager/schbkup/src/filemanagerschbackuptask.cpp	Tue May 25 12:28:34 2010 +0300
@@ -126,6 +126,7 @@
 
     delete iSubscriber;
     delete iCenRep;
+    delete iSystemStateMonitor;
     Cancel();
     }
 
@@ -198,6 +199,9 @@
         parse.Assign( data );
         User::LeaveIfError( parse.Val( iDay ) );
         }
+    
+    // Get pointer to system state monitor
+    iSystemStateMonitor = CFmSystemStateMonitor::NewL( *this );
 
     Retry();
     }
@@ -246,6 +250,15 @@
 //
 TBool CFileManagerSchBackupTask::CheckPhoneStateL()
     {
+    
+    // Check phone is normal state or not
+    if ( !iSystemStateMonitor->IsSystemStateNormal() )
+       {
+        INFO_LOG( "CFileManagerSchBackupTask::CheckPhoneStateL()-System State is not normal" )
+        iSystemStateMonitor->StartMonitor( ESsmNormal );
+        return EFalse;
+       }
+    
     // Check call state
     TInt callState( 0 );
     RProperty::Get(
@@ -471,4 +484,16 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// CFileManagerSchBackupTask::SystemStateChangedEvent
+// ---------------------------------------------------------------------------
+//
+void CFileManagerSchBackupTask::SystemStateChangedEvent()
+    {
+    FUNC_LOG
+    
+    // Backup was not started, try starting it again
+    Retry();
+    }
+
 // End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/filemanager/schbkup/src/fmsystemstatemonitor.cpp	Tue May 25 12:28:34 2010 +0300
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0""
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  system state monitor
+*
+*/
+
+#include <ssm/ssmstate.h>
+#include <ssm/ssmdomaindefs.h>
+#include "fmsystemstatemonitor.h"
+
+// ========================= MEMBER FUNCTIONS ==================================
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::NewL()
+// Two-phased constructor
+// -----------------------------------------------------------------------------
+CFmSystemStateMonitor* CFmSystemStateMonitor::NewL(
+    MFmSystemStateMonitorObserver& aObserver )
+    {
+    CFmSystemStateMonitor* self = new ( ELeave ) CFmSystemStateMonitor( aObserver );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::~CFmSystemStateMonitor()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CFmSystemStateMonitor::~CFmSystemStateMonitor()
+    {
+    Cancel();
+    iSAS.Close();
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::StartMonitor()
+// Start monitor
+// -----------------------------------------------------------------------------
+//
+void CFmSystemStateMonitor::StartMonitor( TUint aStateToMonitor )
+    {
+	if( !IsActive() )
+	    {
+	    iStateToMonitor = aStateToMonitor;
+	    iSAS.RequestStateNotification( iStatus );
+        SetActive();
+	    }
+    }   
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::IsSystemStateNormal()
+// Indicate the system state normal or not
+// -----------------------------------------------------------------------------
+//
+TBool CFmSystemStateMonitor::IsSystemStateNormal()
+    {
+    TSsmState state = iSAS.State();
+    return ( state.MainState() == ESsmNormal );
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::CFmSystemStateMonitor()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+CFmSystemStateMonitor::CFmSystemStateMonitor( MFmSystemStateMonitorObserver& aObserver ) :
+        CActive( EPriorityStandard ),iObserver( aObserver )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CFmSystemStateMonitor::ConstructL()
+    {
+    User::LeaveIfError( iSAS.Connect( KSM2GenMiddlewareDomain3 ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::RunL
+// -----------------------------------------------------------------------------
+//
+void CFmSystemStateMonitor::RunL()
+    {
+    User::LeaveIfError( iStatus.Int() );
+    	    
+    TSsmState state = iSAS.State();
+    if ( state.MainState() == iStateToMonitor )
+        {
+        iObserver.SystemStateChangedEvent();
+        iSAS.AcknowledgeStateNotification( KErrNone );
+        }
+    else
+        {
+        iSAS.AcknowledgeAndRequestStateNotification( KErrNone, iStatus );
+        SetActive();
+        }        
+    }
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::DoCancel()
+// From CActive.
+// -----------------------------------------------------------------------------
+//
+void CFmSystemStateMonitor::DoCancel()
+    {
+    iSAS.RequestStateNotificationCancel();
+    }      
+
+// -----------------------------------------------------------------------------
+// CFmSystemStateMonitor::RunError()
+// From CActive.
+// -----------------------------------------------------------------------------
+//
+TInt CFmSystemStateMonitor::RunError( TInt aError )
+    {
+    return aError;
+    }
+
+// End of File
+
--- a/filesystemuis/memscaneng/serversrc/msenginfoarray.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filesystemuis/memscaneng/serversrc/msenginfoarray.cpp	Tue May 25 12:28:34 2010 +0300
@@ -148,7 +148,8 @@
         || CMseng::IsRemovableDrive(aFsSession, iCurrentScannedDrive)),
         User::Panic(KPanic, KErrNotSupported));
 
-    if(CMseng::IsInternalDrive(aFsSession, iCurrentScannedDrive))
+    if( CMseng::IsInternalDrive(aFsSession, iCurrentScannedDrive) 
+	    && !CMseng::IsMassStorageDrive( aFsSession, iCurrentScannedDrive ) )
         {        
         theReader.OpenLC( &aResFile, C_DIRECTORIES );
         iDirArray = theReader.ReadDesCArrayL();
@@ -162,7 +163,7 @@
         // reading later...
         
         }
-    else if(CMseng::IsRemovableDrive(aFsSession, iCurrentScannedDrive))
+    else // other drives except Phone Memory should be scanned from root folder.
         {
         theReader.OpenLC( &aResFile, E_DIRECTORIES );
         iDirArray = theReader.ReadDesCArrayL();
--- a/filesystemuis/memscaneng/serversrc/msengscanner.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filesystemuis/memscaneng/serversrc/msengscanner.cpp	Tue May 25 12:28:34 2010 +0300
@@ -181,16 +181,18 @@
     RResourceReader theReader;  
     
     TBool somethingToDo = EFalse;
-    if(CMseng::IsInternalDrive(aFsSession, aDrive))
+    if( CMseng::IsInternalDrive( aFsSession, aDrive )
+        && !CMseng::IsMassStorageDrive( aFsSession, aDrive ) )
         {
         theReader.OpenLC( &iResFile, C_EXTRADATAFILES );
         somethingToDo = ETrue;
         }
-    else if(CMseng::IsRemovableDrive(aFsSession, aDrive))
+    else
         {
         theReader.OpenLC( &iResFile, E_EXTRADATAFILES );
         somethingToDo = ETrue;
         }
+    
     if(somethingToDo)
         {
         //the first WORD contains the number of elements in the resource
--- a/filesystemuis/memstatepopup/group/bld.inf	Tue May 11 16:01:48 2010 +0300
+++ b/filesystemuis/memstatepopup/group/bld.inf	Tue May 25 12:28:34 2010 +0300
@@ -21,7 +21,7 @@
 PRJ_EXPORTS
  ../rom/MemStatePopup.iby            CORE_APP_LAYER_IBY_EXPORT_PATH(MemStatePopup.iby )
  ../rom/MemStatePopupResources.iby   LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(MemStatePopupResources.iby)
- ../loc/MemStatePopup.loc            APP_LAYER_LOC_EXPORT_PATH(MemStatePopup.loc)
+ ../loc/MemStatePopup.loc            APP_LAYER_LOC_EXPORT_PATH(memstatepopup.loc)
 
 PRJ_PLATFORMS
     DEFAULT
--- a/filesystemuis/memstatepopup/src/CMemStatePopup.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filesystemuis/memstatepopup/src/CMemStatePopup.cpp	Tue May 25 12:28:34 2010 +0300
@@ -25,7 +25,7 @@
 #include <bautils.h>
 #include <StringLoader.h>
 #include <aknPopup.h>
-#include <MemStatePopup.rsg>
+#include <memstatepopup.rsg>
 #include <f32file.h>
 
 // USER INCLUDES
--- a/filesystemuis/memstatepopup/src/cmemstatepopupimpl.cpp	Tue May 11 16:01:48 2010 +0300
+++ b/filesystemuis/memstatepopup/src/cmemstatepopupimpl.cpp	Tue May 25 12:28:34 2010 +0300
@@ -24,7 +24,7 @@
 #include <bautils.h>
 #include <StringLoader.h>
 #include <aknPopup.h>
-#include <MemStatePopup.rsg>
+#include <memstatepopup.rsg>
 #include <f32file.h>
 #include <data_caging_path_literals.hrh>