diff -r acef663c1218 -r b73a2e62868f metadataengine/server/src/mdsmaintenanceengine.cpp --- a/metadataengine/server/src/mdsmaintenanceengine.cpp Tue Jan 26 12:13:20 2010 +0200 +++ b/metadataengine/server/src/mdsmaintenanceengine.cpp Tue Feb 02 00:24:33 2010 +0200 @@ -16,6 +16,8 @@ */ // INCLUDE FILES +#include + #include "mdsmaintenanceengine.h" #include "mdslogger.h" #include "mdsmanipulationengine.h" @@ -153,7 +155,7 @@ TRAP_IGNORE( ImportMetadataL( aManipulate, aSchema, KMdsDefaultRomImportFile ) ); } - StoreCDriveMediaIdL(); + StoreDriveMediaIdsL(); } else { @@ -226,10 +228,10 @@ } // ------------------------------------------------ -// StoreCDriveMediaIdL +// StoreDriveMediaIdsL // ------------------------------------------------ // -void CMdSMaintenanceEngine::StoreCDriveMediaIdL() +void CMdSMaintenanceEngine::StoreDriveMediaIdsL() { RFs fs; User::LeaveIfError( fs.Connect() ); @@ -238,6 +240,26 @@ 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; + fs.Volume( massStorageVolumeInfo, drive ); + const TUint32 massStorageMediaId( massStorageVolumeInfo.iUniqueID ); + massStorageError = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ); + if( massStorageError == KErrNone ) + { + fs.Volume( massStorageVolumeInfo, drive ); + // Update mass storage media id if the mass storage is not memory card + if( massStorageVolumeInfo.iUniqueID != massStorageMediaId && massStorageMediaId != 0 ) + { + MMdsPreferences::InsertL( KMassStorageMediaIdKey, MMdsPreferences::EPreferenceValueSet, + (TUint32) massStorageMediaId ); + } + } + } CleanupStack::PopAndDestroy( &fs ); }