phonebookui/Phonebook2/CommonUI/src/CPbk2ContactRelocator.cpp
branchRCL_3
changeset 5 81f8547efd4f
parent 0 e686773b3f54
--- a/phonebookui/Phonebook2/CommonUI/src/CPbk2ContactRelocator.cpp	Fri Feb 19 22:40:27 2010 +0200
+++ b/phonebookui/Phonebook2/CommonUI/src/CPbk2ContactRelocator.cpp	Fri Mar 12 15:41:25 2010 +0200
@@ -348,7 +348,23 @@
     {
     iTargetStoreOpen = ETrue;
     // Safe to ignore error
-    TRAP_IGNORE( DoRelocateContactL() );
+    TRAPD( err, DoRelocateContactL() );
+    if ( err == KErrDiskFull )
+        {
+        IssueRequest();
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CPbk2ContactRelocator::IssueRequest
+// Inform failure asynchronously
+// --------------------------------------------------------------------------
+//
+void CPbk2ContactRelocator::IssueRequest()
+    {
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete( status, KErrNone );
+    SetActive();
     }
 
 // --------------------------------------------------------------------------
@@ -485,7 +501,7 @@
         // One contact from given link array was retrieved, now it has
         // to be stored and then relocated
         iSourceContact = aContact;
-        TRAP_IGNORE( DoRelocateContactL() );
+        DoRelocateContactL();
         }
     }
 
@@ -497,11 +513,18 @@
 void CPbk2ContactRelocator::VPbkSingleContactOperationFailed
         ( MVPbkContactOperationBase& /*aOperation*/, TInt aError )
     {
-    iObserver->ContactRelocationFailed( aError, iSourceContact );
-    iSourceContact = NULL; // ownership was given away
+    if ( aError != KErrDiskFull )
+        {
+        iObserver->ContactRelocationFailed( aError, iSourceContact );
+        iSourceContact = NULL; // ownership was given away
 
-    // Move to next request, if any
-    TRAP_IGNORE( DoRelocateContactL() );
+        // Move to next request, if any
+        TRAP_IGNORE( DoRelocateContactL() );
+        }
+    else
+        {
+        IssueRequest();
+        }
     }
 
 // --------------------------------------------------------------------------
@@ -889,10 +912,7 @@
 
         if ( iErrorCode != KErrNone )
             {
-            // Inform failure asynchronously
-            TRequestStatus* status = &iStatus;
-            User::RequestComplete( status, KErrNone );
-            SetActive();
+            IssueRequest();
             }
         else
             {