diff -r ff3acec5bc43 -r 8118492f1bdf mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Thu Dec 17 08:45:05 2009 +0200 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Thu Jan 07 12:45:53 2010 +0200 @@ -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; }