--- 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<TDriveNumber>(0); //Doesn't matter
}
- TInt includedMedias = AknCommonDialogsDynMem::EMemoryTypeMMCExternal |
- AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage;
+ TInt includedMedias(0);
+ CGSCamcorderPlugin* parent = static_cast<CGSCamcorderPlugin*>
+ ( 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<CAknMemorySelectionSettingItemMultiDrive*>(settingItem)
- ->SetIncludedMediasL(includedMedias);
+ ->SetIncludedMediasL(includedMedias);
+ if( driveCount <= 1 )
+ {
+ settingItem->SetHidden( ETrue );
+ }
break;
}
case ECamSettingItemVideoNameBaseType: