diff -r cb62a4f66ebe -r 6297cdf66332 codhandler/codeng/src/CodEngBase.cpp --- a/codhandler/codeng/src/CodEngBase.cpp Thu Jan 07 13:31:38 2010 +0200 +++ b/codhandler/codeng/src/CodEngBase.cpp Mon Jan 18 21:20:18 2010 +0200 @@ -482,7 +482,7 @@ // EXPORT_C TBool CCodEngBase::RemovableMedia() const { - return iRemovableMedia; + return ( KDriveAttRemovable == iRemovableMediaStatus ) ? ETrue : EFalse ; } // --------------------------------------------------------- @@ -580,7 +580,7 @@ iPhoneMemoryOk( EFalse ), iMmcOk( EFalse ), #endif - iRemovableMedia( EFalse ), + iRemovableMediaStatus( KDriveAttLocal ), iStatusCode( KHttp902UserCancelled ), iResult( KErrGeneral ), iContentTypeCheck ( EFalse ), @@ -2008,16 +2008,39 @@ (*iData)[iData->ActiveDownload()]->iTempPath.Append(rootPath.Drive()); (*iData)[iData->ActiveDownload()]->iTempPath.Append(tempBuf); - TDriveInfo info; + TDriveUnit unit( rootPath.Drive() ); - User::LeaveIfError( iFs.Drive( info, unit ) ); - // Create the temp directory earlier in case it's not created yet - iFs.MkDirAll( (*iData)[iData->ActiveDownload()]->iTempPath ); + +#ifdef RD_MULTIPLE_DRIVE + TUint aStatus ; + + if( KErrNone == DriveInfo::GetDriveStatus( iFs, unit , aStatus )) + { + iRemovableMediaStatus = (aStatus & DriveInfo::EDriveExternallyMountable) ? aStatus : 0 ; + if( iRemovableMediaStatus ) + { + iRemovableMediaStatus = (aStatus & DriveInfo::EDriveRemovable) ? KDriveAttRemovable : KDriveAttInternal ; + } + else + { + iRemovableMediaStatus = KDriveAttLocal ; + } + } +#else + TDriveInfo info; + User::LeaveIfError( iFs.Drive( info, unit ) ); if ( info.iDriveAtt & KDriveAttRemovable ) { - iRemovableMedia = ETrue; + iRemovableMediaStatus = KDriveAttRemovable; } - + else + { + iRemovableMediaStatus = KDriveAttLocal; + } +#endif + // Create the temp directory earlier in case it's not created yet + iFs.MkDirAll( (*iData)[iData->ActiveDownload()]->iTempPath ); + CLOG(( ECodEng, 2, _L("<- CCodEngBase::SetPathsL root<%S> temp<%S>"), \ &(*iData)[iData->ActiveDownload()]->iRootPath, &(*iData)[iData->ActiveDownload()]->iTempPath )); } @@ -2038,7 +2061,8 @@ #endif //(*iData)[iData->ActiveDownload()]->iTempPath = KNullDesC; //(*iData)[iData->ActiveDownload()]->iRootPath = KNullDesC; - iRemovableMedia = EFalse; + + iRemovableMediaStatus = KDriveAttLocal; } #ifdef RD_MULTIPLE_DRIVE