diff -r 2e1adbfc62af -r ee64f059b8e1 internetradio2.0/favoritesdbsrc/irfavoritesdb.cpp --- a/internetradio2.0/favoritesdbsrc/irfavoritesdb.cpp Mon May 03 12:25:23 2010 +0300 +++ b/internetradio2.0/favoritesdbsrc/irfavoritesdb.cpp Fri May 14 15:43:29 2010 +0300 @@ -27,7 +27,6 @@ const TInt KNullId = 0; const TInt KNineteen = 19; -const TInt KFifty = 50; namespace PresetHandler { @@ -106,11 +105,6 @@ iFavPresetList.Close(); iServ.Close(); - if (iSettings) - { - iSettings->Close(); - } - IRLOG_DEBUG( "CIRFavoritesDb::~CIRFavoritesDb - Exiting." ); } @@ -146,18 +140,17 @@ else { searchResult = SearchPreset( aPreset.GetId(), KNullId ); - } - - if( KErrNotFound != searchResult) - { - //Eventhough the preset exists in the favorites db, replace the - //same with the new preset i.e. aPreset. Because the db should - //contain the updated values of the preset. - ReplacePresetL(aPreset); - - aRetVal = KErrAlreadyExists; + if( KErrNotFound != searchResult) + { + //Eventhough the preset exists in the favorites db, replace the + //same with the new preset i.e. aPreset. Because the db should + //contain the updated values of the preset. + ReplacePresetL(aPreset); + + aRetVal = KErrAlreadyExists; - return; + return; + } } if ( EmptyPresetCount()<=0 ) @@ -237,6 +230,18 @@ IRLOG_DEBUG( "CIRFavoritesDb::DeletePresetL" ); iMoveStatus=EFalse; iServ.DeletePresetL( aId); + + TInt count = iFavPresetList.Count(); + //when we delete one preset in the server's db, we also + //need to delete it in the favorite list. + for( TInt i=0; iId()) + { + iFavPresetList.Remove(i); + break; + } + } IRLOG_DEBUG( "CIRFavoritesDb::DeletePresetL - Exiting." ); } @@ -585,15 +590,16 @@ { IRLOG_DEBUG( "CIRFavoritesDb::ConstructL" ); //cenrep handle - iSettings = CIRSettings::OpenL(); - iSettings->SetMaxPresetCountL(KFifty); + CIRSettings *settings = CIRSettings::OpenL(); + iMaxPresetCount=settings->MaxPresetCount(); + settings->Close(); + User::LeaveIfError( iServ.Connect() ); //a session to the client of the preset server iServ.GetPresetsL( iFavPresetList, KIRPreset ); //notifier iNotifier = CPSPresetNotifier::NewL( iServ, *this ); - //cenrep. - iMaxPresetCount=iSettings->MaxPresetCount(); + //initialization of the list for UI use //iFavPresetList=new(ELeave)CArrayPtrFlat(KGranularity) iMoveStatus=EFalse;