phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchercontainer.cpp
branchRCL_3
changeset 13 a6539d1e8e43
parent 11 2828b4d142c0
child 15 34879f5cfc63
--- 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
+            }
         }
     }