diff -r 53c8aa5d97a3 -r 8f559c47d7fd camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp --- a/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp Tue May 25 12:22:04 2010 +0300 +++ b/camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp Wed Jun 09 09:21:41 2010 +0300 @@ -240,15 +240,61 @@ { iDrive = static_cast(0); //Doesn't matter } - TInt includedMedias = AknCommonDialogsDynMem::EMemoryTypeMMCExternal | - AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; + TInt includedMedias(0); + CGSCamcorderPlugin* parent = static_cast + ( AppUi->View( KGSCamcorderGSPluginUid ) ); + TInt driveCount(0); + if( !parent->IntegerSettingValue(ECamSettingItemRemovePhoneMemoryUsage) ) + { + includedMedias |= AknCommonDialogsDynMem::EMemoryTypePhone; + driveCount++; + } + + TInt drive(0); + TUint driveStatus(0); + TInt err(0); + err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultMassStorage, drive ); + if( err == KErrNone ) + { + err = DriveInfo::GetDriveStatus( CCoeEnv::Static()->FsSession(), + drive, + driveStatus ); + if( err == KErrNone ) + { + if( ( driveStatus & DriveInfo::EDrivePresent) == DriveInfo::EDrivePresent ) + { + includedMedias |= AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage; + driveCount++; + } + } + } + + err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive ); + if( err == KErrNone ) + { + err = DriveInfo::GetDriveStatus( CCoeEnv::Static()->FsSession(), + drive, + driveStatus ); + if( err == KErrNone ) + { + if( ( driveStatus & DriveInfo::EDrivePresent) == DriveInfo::EDrivePresent ) + { + includedMedias |= AknCommonDialogsDynMem::EMemoryTypeMMCExternalInDevice; + driveCount++; + } + } + } settingItem = new ( ELeave ) CAknMemorySelectionSettingItemMultiDrive( aIdentifier, iDrive ); static_cast(settingItem) - ->SetIncludedMediasL(includedMedias); + ->SetIncludedMediasL(includedMedias); + if( driveCount <= 1 ) + { + settingItem->SetHidden( ETrue ); + } break; } case ECamSettingItemVideoNameBaseType: