profilesservices/ProfileEngine/EngSrc/CProfileImpl.cpp
changeset 18 e3554c9069b6
parent 0 8c5d936e5675
child 21 851e19007849
equal deleted inserted replaced
4:3f8368f032cf 18:e3554c9069b6
    17 
    17 
    18 
    18 
    19 
    19 
    20 // INCLUDE FILES
    20 // INCLUDE FILES
    21 #include "CProfileImpl.h"
    21 #include "CProfileImpl.h"
       
    22 #include "CProfileNameImpl.h"
       
    23 #include "CProfileTonesImpl.h"
       
    24 #include "CProfileExtraTonesImpl.h"
       
    25 #include "CProfileExtraSettingsImpl.h"
       
    26 #include "CProfilePresenceImpl.h"
       
    27 #include "ProfileEngUtils.h"
       
    28 #include "ProfileEnginePrivateCRKeys.h"
    22 #include <e32svr.h>
    29 #include <e32svr.h>
    23 #include <cntitem.h>
    30 #include <cntitem.h>
    24 #include <CPbkContactEngine.h>
       
    25 #include <cntdb.h>
    31 #include <cntdb.h>
    26 #include <cntdef.h>
    32 #include <cntdef.h>
    27 #include <TProfileToneSettings.h>
    33 #include <TProfileToneSettings.h>
    28 #include <MProfilePttSettings.h>
    34 #include <MProfilePttSettings.h>
    29 #include <featmgr.h>
    35 #include <featmgr.h>
    30 #include <bldvariant.hrh>
    36 #include <bldvariant.hrh>
    31 #include <RSSSettings.h>
    37 #include <RSSSettings.h>
    32 #include <pathinfo.h>
    38 #include <pathinfo.h>
    33 #include "CProfileNameImpl.h"
    39 #include <MProfilesLocalFeatures.h>
    34 #include "CProfileTonesImpl.h"
    40 #include <MProfileUtilitySingleton.h>
    35 #include "CProfileExtraTonesImpl.h"
    41 #include <ProfilesVariant.hrh>
    36 #include "CProfileExtraSettingsImpl.h"
       
    37 #include "CProfilePresenceImpl.h"
       
    38 #include "MProfilesLocalFeatures.h"
       
    39 #include "MProfileUtilitySingleton.h"
       
    40 #include "ProfilesVariant.hrh"
       
    41 #include "ProfileEngUtils.h"
       
    42 #include "ProfileEnginePrivateCRKeys.h"
       
    43 #include <ProfileEngineDomainConstants.h>
    42 #include <ProfileEngineDomainConstants.h>
    44 
    43 
    45 // CONSTANTS
    44 // CONSTANTS
    46 // Max. number of Alert for groups:
    45 // Max. number of Alert for groups:
    47 const TInt KProfilesMaxAlertForGroups = 512;
    46 const TInt KProfilesMaxAlertForGroups = 512;
   214 // -----------------------------------------------------------------------------
   213 // -----------------------------------------------------------------------------
   215 //
   214 //
   216 const TArray<TContactItemId> CProfileImpl::AlertForL()
   215 const TArray<TContactItemId> CProfileImpl::AlertForL()
   217     {
   216     {
   218     TInt contactIdListCount( iAlertFor.Count() );
   217     TInt contactIdListCount( iAlertFor.Count() );
   219     if( contactIdListCount > 0 )
   218 
   220         {
       
   221         // create CPbkContactEngine
       
   222         CPbkContactEngine* contactEngine = CPbkContactEngine::NewL( &iFs );
       
   223         CleanupStack::PushL( contactEngine );
       
   224         CContactIdArray* groupIds = contactEngine->Database().GetGroupIdListL();
       
   225 
       
   226         if( !groupIds )
       
   227             { // There are no groups in Contacts db -> clear the alert for IDs:
       
   228             iAlertFor.Reset();
       
   229             }
       
   230         else
       
   231             {
       
   232             CleanupStack::PushL( groupIds );
       
   233             TInt err;
       
   234             for( TInt i( 0 ) ; i < contactIdListCount ; ++i )
       
   235                 {
       
   236                 err = groupIds->Find( iAlertFor[i] );
       
   237 
       
   238                 if( err == KErrNotFound )
       
   239                     {
       
   240                     // remove this
       
   241                     iAlertFor.Remove( i );
       
   242                     --contactIdListCount;
       
   243                     --i;
       
   244                     err = KErrNone;
       
   245                     }
       
   246                 User::LeaveIfError( err );
       
   247                 }
       
   248             CleanupStack::PopAndDestroy();  // groupIds
       
   249             }
       
   250         CleanupStack::PopAndDestroy();  // contactEngine
       
   251         }
       
   252 
   219 
   253     return iAlertFor.Array();
   220     return iAlertFor.Array();
   254     }
   221     }
   255 
   222 
   256 // -----------------------------------------------------------------------------
   223 // -----------------------------------------------------------------------------