camerauis/cameraapp/generic/GsCamcorderPlugin/src/GSCamVideoSettingsList.cpp
branchRCL_3
changeset 31 8f559c47d7fd
parent 20 38fb6f7eacd5
child 35 e32fcfe0045f
--- 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: