metadataengine/server/src/mdsmaintenanceengine.cpp
branchRCL_3
changeset 63 e538444823de
parent 53 29d87345eaeb
--- a/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Sep 15 12:40:59 2010 +0300
+++ b/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Oct 13 15:02:02 2010 +0300
@@ -16,6 +16,8 @@
 */
 
 // INCLUDE FILES
+#include <driveinfo.h>
+
 #include "mdsmaintenanceengine.h"
 #include "mdslogger.h"
 #include "mdsmanipulationengine.h"
@@ -77,7 +79,6 @@
 CMdSMaintenanceEngine::~CMdSMaintenanceEngine()
     {
     delete iMaintenance;
-    iMaintenance = NULL;
     }
 
 // ------------------------------------------------
@@ -120,7 +121,7 @@
     TBool isValid(EFalse);
     TRAPD(err, isValid = iMaintenance->ValidateL( ));
     
-    if( err == KErrCorrupt )
+    if(err == KErrCorrupt)
         {
         DeleteDatabase();
         User::Leave( err );
@@ -174,6 +175,11 @@
 				User::Leave( schemaError );
 				}
 			}
+
+		if ( FailedImports() != 0 )
+  			{
+	       	User::Leave( KErrBadName );
+       		}
 		
 		// try to read default import file from C drive
        	TRAPD( err, ImportMetadataL( aManipulate, aSchema, KMdsDefaultImportFile ) );
@@ -183,13 +189,6 @@
        		// and ignore errors
        		TRAP_IGNORE( ImportMetadataL( aManipulate, aSchema, KMdsDefaultRomImportFile ) );
        		}
-
-#ifdef _DEBUG
-        if ( FailedImports() != 0 )
-            {
-            User::Leave( KErrBadName );
-            }
-#endif
        	
        	__LOG1( ELogAlways, "MDS DB tables created %d", 0 );
 
@@ -208,12 +207,6 @@
 			DeleteDatabase();
 			User::Leave( err );
         	}
-        
-        if( !iMaintenance->CheckForCorruptionL() )
-            {
-            DeleteDatabase();
-            User::Leave( KErrCorrupt );
-            }
         }
     __LOG1( ELogAlways, "CMdSMaintenanceEngine::InstallL complete: %d", 0 );
     }
@@ -289,6 +282,31 @@
     User::LeaveIfError( fs.Volume( volumeInfo, EDriveC ) );
     MMdsPreferences::InsertL( KCMediaIdKey, MMdsPreferences::EPreferenceValueSet,
     		(TUint32) volumeInfo.iUniqueID );
+
+    TInt drive( -1 );
+    TInt massStorageError( DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, drive ) );
+    if( massStorageError == KErrNone )
+        {
+        TVolumeInfo massStorageVolumeInfo;
+        massStorageError = fs.Volume( massStorageVolumeInfo, drive );
+        if( massStorageError == KErrNone )
+            {
+            const TUint32 massStorageMediaId( massStorageVolumeInfo.iUniqueID );
+            massStorageError = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive );
+            if( massStorageError == KErrNone )
+                {
+                massStorageError = fs.Volume( massStorageVolumeInfo, drive );
+                // Update mass storage media id if the mass storage is not memory card
+                if( massStorageError == KErrNone &&
+                    massStorageVolumeInfo.iUniqueID != massStorageMediaId &&
+                    massStorageMediaId != 0 )
+                    {
+                    MMdsPreferences::InsertL( KMassStorageMediaIdKey, MMdsPreferences::EPreferenceValueSet,
+                            (TUint32) massStorageMediaId );
+                    }        
+                }
+            }
+        }
     
     CleanupStack::PopAndDestroy( &fs );
 	}