diff -r 51035f0751c2 -r 4740b34b83ce mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Wed Apr 14 16:28:17 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Tue Apr 27 17:09:22 2010 +0300 @@ -105,7 +105,7 @@ // CMmMtpDpMetadataMpxAccess::~CMmMtpDpMetadataMpxAccess() { - if ( iCollectionHelper ) + if ( iCollectionHelper != NULL ) { iCollectionHelper->Close(); iCollectionHelper = NULL; @@ -118,6 +118,36 @@ } // --------------------------------------------------------------------------- +// CMmMtpDpMetadataMpxAccess::OpenSession +// This is introduced to fix CollectionHelper Flush problem +// --------------------------------------------------------------------------- +// +void CMmMtpDpMetadataMpxAccess::OpenSession() + { + // do nothing + } + +// --------------------------------------------------------------------------- +// CMmMtpDpMetadataMpxAccess::CloseSession +// This is introduced to fix CollectionHelper Flush problem +// --------------------------------------------------------------------------- +// +void CMmMtpDpMetadataMpxAccess::CloseSession() + { + PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::CloseSession" ) ); + + // flush cache + if ( iCollectionHelper != NULL ) + { + PRINT( _L( "MM MTP <> Delete & Close CollectionHelper" ) ); + iCollectionHelper->Close(); + iCollectionHelper = NULL; + } + + PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::CloseSession" ) ); + } + +// --------------------------------------------------------------------------- // CMmMtpDpMetadataMpxAccess::GetObjectMetadataValueL // Gets a piece of metadata from the collection // --------------------------------------------------------------------------- @@ -644,6 +674,7 @@ TParsePtrC parse( aFullFileName ); media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); + media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse ); PERFLOGSTART( KSetMetadataValue ); SetMetadataValueL( aPropCode, aNewData, *media ); @@ -1018,10 +1049,7 @@ CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes abstractMediaAttributes.AppendL( KMPXMediaGeneralId ); abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle ); - if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB - { - abstractMediaAttributes.AppendL( KMPXMediaGeneralUri ); - } + abstractMediaAttributes.AppendL( KMPXMediaGeneralUri ); PERFLOGSTART( KMpxCollectionFindAllLBeforeAdd ); CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia, @@ -1067,10 +1095,7 @@ TParsePtrC parse( aFullFileName ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); - if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB - { - media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() ); - } + media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() ); media->SetTObjectValueL( KMPXMediaGeneralSynchronized, ETrue ); media->SetCObjectValueL( KMPXMediaArrayContents, abstractMediaArray ); media->SetTObjectValueL( KMPXMediaArrayCount, abstractMediaArray->Count() ); @@ -1132,7 +1157,8 @@ // TODO: need to confirm that should set drive letter or storage root path. TParsePtrC parse( aRefFileArray[j] ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); - + media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse ); + // Add media into array contents abstractMediaArray->AppendL( media ); @@ -1313,10 +1339,8 @@ CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes abstractMediaAttributes.AppendL( KMPXMediaGeneralId ); abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle ); - if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB - { - abstractMediaAttributes.AppendL( KMPXMediaGeneralUri ); - } + + abstractMediaAttributes.AppendL( KMPXMediaGeneralUri ); PERFLOGSTART( KMpxCollectionGetAbstractMedia ); CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia, @@ -1447,7 +1471,7 @@ { PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) ); HBufC* name = NULL; - if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB + if ( aCategory == EMPXPlaylist || aCategory == EMPXAbstractAlbum ) { if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) ) { @@ -1455,14 +1479,6 @@ } name = aAbstractMedia->ValueText( KMPXMediaGeneralUri ).AllocL(); } - else if ( aCategory == EMPXAbstractAlbum ) - { - if ( !aAbstractMedia->IsSupported( KMPXMediaGeneralTitle ) ) - { - User::Leave( KErrNotSupported ); - } - name = aAbstractMedia->ValueText( KMPXMediaGeneralTitle ).AllocL(); - } else { User::Leave( KErrNotSupported );