diff -r 4ae315f230bc -r a6539d1e8e43 phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontainer.cpp --- a/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontainer.cpp Tue May 25 12:26:45 2010 +0300 +++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontainer.cpp Wed Jun 09 09:26:27 2010 +0300 @@ -447,7 +447,9 @@ iPlugin.CancelTimer(); TInt index; - if ( iListBox->View()->XYPosToItemIndex( aPointerEvent.iPosition, index ) ) + // start iLongTapDetector in listbox area and handle PointerEvent when dragged + if ( iListBox->View()->XYPosToItemIndex( aPointerEvent.iPosition, index ) + || ( aPointerEvent.iType == TPointerEvent::EDrag ) ) { if ( iLongTapDetector ) { @@ -471,52 +473,48 @@ void CCCAppCommLauncherContainer::HandleLongTapEventL( const TPoint& /*aPenEventLocation*/, const TPoint& /*aPenEventScreenLocation*/ ) { - CCAContactorService* contactorService = iPlugin.ContactorService(); - if ( contactorService ) + if ( iPlugin.CommandState().IsRunning() ) + { + return; + } + else if ( CommMethodsAvailable() ) { - if ( contactorService->IsBusy() ) - { - return; + TPtrC fullName; + iPlugin.ContactHandler().ContactFieldItemDataL( + CCmsContactFieldItem::ECmsFullName, fullName ); + + TUint paramFlag = 0;//CCAContactorService::TCSParameter::EEnableDefaults; + + VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector + contactActionType = iPlugin.Container().SelectedCommunicationMethod(); + + if ( !iLongTap && contactActionType + == VPbkFieldTypeSelectorFactory::EFindOnMapSelector ) + { + iLongTap = ETrue; + DoShowMapCmdL( (TPbk2CommandId)EPbk2ExtensionShowOnMap ); } - else if ( CommMethodsAvailable() ) + else { - TPtrC fullName; - iPlugin.ContactHandler().ContactFieldItemDataL( - CCmsContactFieldItem::ECmsFullName, fullName ); - - TUint paramFlag = 0;//CCAContactorService::TCSParameter::EEnableDefaults; - - VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector - contactActionType = iPlugin.Container().SelectedCommunicationMethod(); + CCAContactorService::TCSParameter param( + contactActionType, + *iPlugin.ContactHandler().ContactIdentifierLC(),//contactlinkarray + paramFlag, + fullName ); + + iPlugin.ExecuteServiceL( param ); - if ( !iLongTap && contactActionType - == VPbkFieldTypeSelectorFactory::EFindOnMapSelector ) - { - iLongTap = ETrue; - DoShowMapCmdL( (TPbk2CommandId)EPbk2ExtensionShowOnMap ); - } - else + //The Timer can be started after user selected any call item + if ( iPlugin.ContactorService()->IsSelected() && + (contactActionType == VPbkFieldTypeSelectorFactory::EVoiceCallSelector || + contactActionType == VPbkFieldTypeSelectorFactory::EVideoCallSelector || + contactActionType == VPbkFieldTypeSelectorFactory::EVOIPCallSelector) ) { - CCAContactorService::TCSParameter param( - contactActionType, - *iPlugin.ContactHandler().ContactIdentifierLC(),//contactlinkarray - paramFlag, - fullName ); - - contactorService->ExecuteServiceL( param ); - - //The Timer can be started after user selected any call item - if ( contactorService->IsSelected() && - (contactActionType == VPbkFieldTypeSelectorFactory::EVoiceCallSelector || - contactActionType == VPbkFieldTypeSelectorFactory::EVideoCallSelector || - contactActionType == VPbkFieldTypeSelectorFactory::EVOIPCallSelector) ) - { - iPlugin.StartTimerL(); - } - - - CleanupStack::PopAndDestroy( 1 );// contactlinkarray + iPlugin.StartTimerL(); } + + + CleanupStack::PopAndDestroy( 1 );// contactlinkarray } } } @@ -552,9 +550,7 @@ iHasBeenDragged = EFalse; } - CCAContactorService* contactorService = iPlugin.ContactorService(); - - if ( executeContactAction && contactorService && contactorService->IsBusy()) + if ( executeContactAction && iPlugin.CommandState().IsRunning() ) { executeContactAction = EFalse; } @@ -578,35 +574,32 @@ } else { - if(contactorService) - { - TPtrC fullName; - - iPlugin.ContactHandler().ContactFieldItemDataL( - CCmsContactFieldItem::ECmsFullName, fullName); - - TUint paramFlag = CCAContactorService::TCSParameter::EEnableDefaults; - - CCAContactorService::TCSParameter param( - contactActionType, - *iPlugin.ContactHandler().ContactIdentifierLC(),//contactlinkarray - paramFlag, - fullName); + TPtrC fullName; + + iPlugin.ContactHandler().ContactFieldItemDataL( + CCmsContactFieldItem::ECmsFullName, fullName); + + TUint paramFlag = CCAContactorService::TCSParameter::EEnableDefaults; + + CCAContactorService::TCSParameter param( + contactActionType, + *iPlugin.ContactHandler().ContactIdentifierLC(),//contactlinkarray + paramFlag, + fullName); + + iPlugin.ExecuteServiceL(param); - contactorService->ExecuteServiceL(param); - - //The Timer can be started after user selected any call item - if ( contactorService->IsSelected() && - (contactActionType == VPbkFieldTypeSelectorFactory::EVoiceCallSelector || - contactActionType == VPbkFieldTypeSelectorFactory::EVideoCallSelector || - contactActionType == VPbkFieldTypeSelectorFactory::EVOIPCallSelector) ) - { - iPlugin.StartTimerL(); - } - - CleanupStack::PopAndDestroy(1);// contactlinkarray - } - } + //The Timer can be started after user selected any call item + if ( iPlugin.ContactorService()->IsSelected() && + (contactActionType == VPbkFieldTypeSelectorFactory::EVoiceCallSelector || + contactActionType == VPbkFieldTypeSelectorFactory::EVideoCallSelector || + contactActionType == VPbkFieldTypeSelectorFactory::EVOIPCallSelector) ) + { + iPlugin.StartTimerL(); + } + + CleanupStack::PopAndDestroy(1);// contactlinkarray + } } }