# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1271249924 -10800 # Node ID fc313e1df071a897fab7866b5d01214f56730daf # Parent b2f9a76933e1ee3f4ba857547111184b8a778725 Revision: 201013 Kit: 201015 diff -r b2f9a76933e1 -r fc313e1df071 srsf/nssvasapi/nssvascore/src/vascvpbkhandler.cpp --- a/srsf/nssvasapi/nssvascore/src/vascvpbkhandler.cpp Wed Mar 31 21:32:56 2010 +0300 +++ b/srsf/nssvasapi/nssvascore/src/vascvpbkhandler.cpp Wed Apr 14 15:58:44 2010 +0300 @@ -1076,6 +1076,12 @@ { accept = EFalse; } + else if ( aCommandType == EVoipCommand && + aField.BestMatchingFieldType()->FieldTypeResId() != R_VPBK_FIELD_TYPE_MOBILEPHONEGEN && + aField.BestMatchingFieldType()->FieldTypeResId() != R_VPBK_FIELD_TYPE_LANDPHONEGEN ) + { + accept = EFalse; + } RUBY_DEBUG0( "CVasVPbkHandler::AcceptDefaultField EXIT" ); diff -r b2f9a76933e1 -r fc313e1df071 voiceui/pbkinfoviewimpl/group/pbkinfoview.mmp --- a/voiceui/pbkinfoviewimpl/group/pbkinfoview.mmp Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/pbkinfoviewimpl/group/pbkinfoview.mmp Wed Apr 14 15:58:44 2010 +0300 @@ -82,6 +82,9 @@ LIBRARY pbkeng.lib LIBRARY nssttscommon.lib +LIBRARY VPbkEng.lib +LIBRARY Pbk2Presentation.lib +LIBRARY Pbk2CommonUI.lib //EXPORTUNFROZEN diff -r b2f9a76933e1 -r fc313e1df071 voiceui/pbkinfoviewimpl/inc/pbkinfoviewdialog.h --- a/voiceui/pbkinfoviewimpl/inc/pbkinfoviewdialog.h Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/pbkinfoviewimpl/inc/pbkinfoviewdialog.h Wed Apr 14 15:58:44 2010 +0300 @@ -39,16 +39,17 @@ */ NONSHARABLE_CLASS (CPbkInfoViewDialog) : public CAknDialog, public MEikListBoxObserver { - enum TInfoViewDialogIconIndex + enum TInfoViewDialogIconIndex { - EIconIndexMobile = 0, - EIconIndexPhone, + EIconIndexPhone = 0, + EIconIndexMobile, EIconIndexVideo, + EIconIndexVoip, EIconIndexEmail, - EIconIndexVoip, + EIconIndexXsp, EIconIndexEmpty - }; - + }; + public:// Constructors and destructor /** @@ -203,6 +204,11 @@ */ void CallInProgressNoteL(); + /** + * Create field icons + */ + void CreateFieldIconsL(CArrayPtr* aIconArray); + private: // from MEikListBoxObserver /** * From MEikListBoxObserver, called by framework. @@ -243,6 +249,9 @@ // SIND handler CPbkInfoViewSindHandler* iSindHandler; + + // Xsp flag + TBool isXsp; }; #endif // PBKINFOVIEWDIALOG_H diff -r b2f9a76933e1 -r fc313e1df071 voiceui/pbkinfoviewimpl/inc/pbkinfoviewsindhandler.h --- a/voiceui/pbkinfoviewimpl/inc/pbkinfoviewsindhandler.h Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/pbkinfoviewimpl/inc/pbkinfoviewsindhandler.h Wed Apr 14 15:58:44 2010 +0300 @@ -120,6 +120,12 @@ * @return TInt the icon id */ TInt IconIdL( TInt aIndex ); + + /** + * Returns an field id + * @return TInt the field id + */ + TInt FieldIdL(); /** * Calls CompareL and catches possible leaves 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 diff -r b2f9a76933e1 -r fc313e1df071 voiceui/pbkinfoviewimpl/src/pbkinfoviewsindhandler.cpp --- a/voiceui/pbkinfoviewimpl/src/pbkinfoviewsindhandler.cpp Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/pbkinfoviewimpl/src/pbkinfoviewsindhandler.cpp Wed Apr 14 15:58:44 2010 +0300 @@ -33,7 +33,25 @@ #include "rubydebug.h" - +// ---------------------------------------------------------------------------- +// RemapCommand +// Remap command to the correct order. +// @param aCommandId +// ---------------------------------------------------------------------------- +static TInt RemapCommand( TInt aCommandId ) + { + switch (aCommandId) + { + case EEmailCommand: + return EMessageCommand; + case EVoipCommand: + return EEmailCommand; + case EMessageCommand: + return EVoipCommand; + default: + return aCommandId; + } + } // ================= MEMBER FUNCTIONS ======================= inline CPbkInfoViewSindHandler::CPbkInfoViewSindHandler() @@ -485,6 +503,16 @@ } // ---------------------------------------------------------------------------- +// CPbkInfoViewSindHandler::FieldIdL +// Returns an field id for the contact field. +// @return TInt the field id +// ---------------------------------------------------------------------------- +TInt CPbkInfoViewSindHandler::FieldIdL( ) + { + return iPbkHandler->FieldIdL(); + } + +// ---------------------------------------------------------------------------- // CPbkInfoViewSindHandler::CreateVoiceTagListL // Fetches voice tag list from vas db. // @param aContactId Contact id for the contact whose voice tags are @@ -812,26 +840,29 @@ return 1; } - // compare the two neighbors - TInt ret = field1->Compare( *field2 ); - - // Sorting for normal call, sms, and multimedia msg fields - if ( ret == 0) - { - TInt actionId1 = tag1.RRD()->IntArray()->At( KVasExtensionRrdLocation ); - TInt actionId2 = tag2.RRD()->IntArray()->At( KVasExtensionRrdLocation ); - - if ( actionId1 != actionId2 ) - { - if ( actionId1 < actionId2 ) - { - return -1; - } - return 1; - } - } - - return ret; +// // compare the two neighbors +// TInt ret = field1->Compare( *field2 ); +// +// // Sorting for normal call, sms, and multimedia msg fields +// if ( ret == 0) +// { +// TInt actionId1 = tag1.RRD()->IntArray()->At( KVasExtensionRrdLocation ); +// TInt actionId2 = tag2.RRD()->IntArray()->At( KVasExtensionRrdLocation ); +// +// if ( actionId1 != actionId2 ) +// { +// if ( actionId1 < actionId2 ) +// { +// return -1; +// } +// return 1; +// } +// } +// +// return ret; + TInt cmdId1 = tag1.RRD()->IntArray()->At( KVasExtensionCommandRrdLocation ); + TInt cmdId2 = tag2.RRD()->IntArray()->At( KVasExtensionCommandRrdLocation ); + return ( RemapCommand( cmdId1 ) - RemapCommand( cmdId2 )); } // ----------------------------------------------------------------------------- diff -r b2f9a76933e1 -r fc313e1df071 voiceui/vcommand/data/vcommand.rss --- a/voiceui/vcommand/data/vcommand.rss Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/vcommand/data/vcommand.rss Wed Apr 14 15:58:44 2010 +0300 @@ -275,7 +275,8 @@ buttons = { CBA_BUTTON {id=0; txt=""; }, - CBA_BUTTON {id=EVCommandSoftKeyQuit; txt=text_softkey_quit;} + //CBA_BUTTON {id=EVCommandSoftKeyQuit; txt=text_softkey_quit;} + CBA_BUTTON {id=EAknSoftkeyDone; txt=text_softkey_quit;} }; } diff -r b2f9a76933e1 -r fc313e1df071 voiceui/vcommand/src/vcplaybackdialog.cpp --- a/voiceui/vcommand/src/vcplaybackdialog.cpp Wed Mar 31 21:32:56 2010 +0300 +++ b/voiceui/vcommand/src/vcplaybackdialog.cpp Wed Apr 14 15:58:44 2010 +0300 @@ -142,7 +142,8 @@ break; } - case EVCommandSoftKeyQuit: + //case EVCommandSoftKeyQuit: + case EAknSoftkeyDone: { iOkToExit = ETrue;