--- 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
{