diff -r b2f9a76933e1 -r fc313e1df071 voiceui/pbkinfoviewimpl/src/pbkinfoviewdialog.cpp --- a/voiceui/pbkinfoviewimpl/src/pbkinfoviewdialog.cpp Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/pbkinfoviewimpl/src/pbkinfoviewdialog.cpp Wed Apr 14 15:58:44 2010 +0300 @@ -38,6 +38,29 @@ #include // For information note #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const TUint KFieldIds[] = + { + R_VPBK_FIELD_TYPE_LANDPHONEGEN, + R_VPBK_FIELD_TYPE_MOBILEPHONEGEN, + R_VPBK_FIELD_TYPE_VIDEONUMBERGEN, + R_VPBK_FIELD_TYPE_VOIPGEN, + R_VPBK_FIELD_TYPE_EMAILGEN, + R_VPBK_FIELD_TYPE_IMPP + }; + // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -447,45 +470,13 @@ CleanupStack::PopAndDestroy( des ); // Set icons - TFileName bitmapName; - CPbkInfoViewResHandler::GetBitmapFileName( bitmapName ); + CArrayPtr* icons = new (ELeave) CAknIconArray( KDefaultArraySize ); CleanupStack::PushL( icons ); - // NOTE: icons must be appended in the order of enumeration - // TInfoViewDialogIconIndex - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnPropNrtypMobile, bitmapName, - EMbmAvkonQgn_prop_nrtyp_mobile, - EMbmAvkonQgn_prop_nrtyp_mobile_mask ) ); - - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnPropNrtypPhone, bitmapName, - EMbmAvkonQgn_prop_nrtyp_phone, - EMbmAvkonQgn_prop_nrtyp_phone_mask ) ); - - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnPropFolderVideo, bitmapName, - EMbmAvkonQgn_prop_nrtyp_video, - EMbmAvkonQgn_prop_nrtyp_video_mask ) ); - - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnPropMceEmailTitle, bitmapName, - EMbmAvkonQgn_prop_nrtyp_email, - EMbmAvkonQgn_prop_nrtyp_email_mask ) ); - - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnIndiVoipCallActive, bitmapName, - EMbmAvkonQgn_prop_nrtyp_voip, - EMbmAvkonQgn_prop_nrtyp_voip_mask ) ); - - icons->AppendL( TDialogUtil::CreateIconL( - KAknsIIDQgnLogoEmpty, bitmapName, - EMbmAvkonQgn_prop_empty, - EMbmAvkonQgn_prop_empty_mask ) ); - - iListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL( icons ); - CleanupStack::Pop( icons ); + CreateFieldIconsL( icons ); + + CleanupStack::Pop( icons ); CreateListBoxItemsL(); @@ -543,7 +534,14 @@ iconIndex = EIconIndexEmail; break; case EPbkqgn_prop_nrtyp_voip: - iconIndex = EIconIndexVoip; + if ( isXsp ) + { + iconIndex = EIconIndexXsp; + } + else + { + iconIndex = EIconIndexVoip; + } break; default: iconIndex = EIconIndexEmpty; @@ -576,6 +574,11 @@ HBufC* firstLine = iSindHandler->VoiceTagLabelLC( i ); // Phone number, email address, etc... HBufC* secondLine = iSindHandler->VoiceTagValueL( i ).AllocLC(); + isXsp = EFalse; + if( iSindHandler->FieldIdL() == EPbkFieldIdXsp ) + { + isXsp = ETrue; + } TInt iconIndex = IconIndex( iSindHandler->IconIdL( i ) ); TPtr ptr1 = firstLine->Des(); @@ -702,4 +705,59 @@ CleanupStack::PopAndDestroy( noteText ); } +void CPbkInfoViewDialog::CreateFieldIconsL(CArrayPtr* aIconArray) + { + CPbk2StoreConfiguration* configuration = CPbk2StoreConfiguration::NewL(); + CleanupStack::PushL(configuration); + + CVPbkContactStoreUriArray* uriArray = configuration->CurrentConfigurationL(); + CleanupStack::PushL( uriArray ); + if ( uriArray->IsIncluded(VPbkContactStoreUris::DefaultCntDbUri()) == EFalse ) + { + uriArray->AppendL( VPbkContactStoreUris::DefaultCntDbUri() ); + } + + CVPbkContactManager* contactManager = CVPbkContactManager::NewL(*uriArray); + CleanupStack::PushL( contactManager ); + + TInt arraySize = sizeof KFieldIds / sizeof KFieldIds[0]; + TInt count =0; + const MVPbkFieldType* fieldType = NULL; + CGulIcon* icon = NULL; + + CVPbkFieldTypeRefsList* fieldTypeList = CVPbkFieldTypeRefsList::NewL(); + CleanupStack::PushL( fieldTypeList ); + + for( count = 0; count < arraySize; ++count ) + { + fieldType = contactManager->FieldTypes().Find( KFieldIds[count] ); + fieldTypeList->AppendL(*fieldType); + } + + MPbk2FieldPropertyArray* propertyArray = Pbk2FieldPropertiesFactory::CreateLC(*fieldTypeList, + &contactManager->FsSession() ); + + CPbk2IconFactory* pbk2IconFactory = CPbk2IconFactory::NewL(); + CleanupStack::PushL( pbk2IconFactory ); + + for( count = 0; count < propertyArray->Count(); ++ count) + { + icon = pbk2IconFactory->CreateIconL( propertyArray->At(count).IconId()); + aIconArray->AppendL(icon); + } + + iListBox->ItemDrawer()->FormattedCellData()->SetIconArrayL( aIconArray ); + + //Destroy: configuration,uriArray,contactManager + //fieldTypeList,propertyArray,pbk2IconFactory + CleanupStack::PopAndDestroy( 6,configuration ); + + TFileName bitmapName; + CPbkInfoViewResHandler::GetBitmapFileName( bitmapName ); + + aIconArray->AppendL( TDialogUtil::CreateIconL( + KAknsIIDQgnLogoEmpty, bitmapName, + EMbmAvkonQgn_prop_empty, + EMbmAvkonQgn_prop_empty_mask ) ); + } // End of File