diff -r 82baf59ce8dd -r ecf06a08d4d9 mpserviceplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp --- a/mpserviceplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Fri Apr 16 14:56:30 2010 +0300 +++ b/mpserviceplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Mon May 03 12:29:20 2010 +0300 @@ -134,15 +134,25 @@ TUint32 episodeId(MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), EMPXCollection, aMedia.ValueText(KMPXMediaGeneralUri), EFalse)); - if (EpisodeExistsL(episodeId)) + if ( EpisodeExistsL( episodeId )) { - DoUpdateEpisodeL(episodeId, aMedia, NULL); + // Return deleted file paths to caller + CDesCArray* fp = new( ELeave ) CDesCArrayFlat( 1 ); + CleanupStack::PushL( fp ); + + // a list of change event messages a result of the item being removed + CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL(); + CleanupStack::PushL( itemChangedMessages ); + + DeleteEpisodeL( episodeId, *fp, *itemChangedMessages, ETrue ); + + CleanupStack::PopAndDestroy( itemChangedMessages ); + CleanupStack::PopAndDestroy( fp ); } - else - { - // add the song - DoAddEpisodeL(episodeId, aMedia, aDrive, NULL); - } + // add the song + DoAddEpisodeL(episodeId, aMedia, aDrive, NULL); + + return episodeId; }