phoneengine/loghandling/src/cpelogevent.cpp
branchRCL_3
changeset 9 8871b09be73b
parent 0 5f000ab63145
child 31 ba54057fe027
--- a/phoneengine/loghandling/src/cpelogevent.cpp	Tue Feb 02 00:10:04 2010 +0200
+++ b/phoneengine/loghandling/src/cpelogevent.cpp	Fri Feb 19 22:50:26 2010 +0200
@@ -673,6 +673,16 @@
     if ( KNullDesC() != aLogInfo.PhoneNumber() )
         {
         aEvent.SetNumber( aLogInfo.PhoneNumber() );
+       
+        if ( CPELogInfo::EPEVoIPEvent == aLogInfo.EventType() )
+            {
+            TRAPD( error, RemoveTagFromDataFieldL( KLogsDataFldTag_URL ) );
+            if( error )
+                {
+                TEFLOGSTRING2( KTAERROR, 
+                    "LOG CPELogEvent::SetRemoteContact()>RemoveTagFromDataFieldL(), error=%d", error )
+                }
+            }
         }
     
     if ( KNullDesC() != aLogInfo.VoipAddress() )
@@ -681,8 +691,40 @@
         if ( error )
             {
             TEFLOGSTRING2( KTAERROR, 
-                "LOG CPELogEvent::SetLogEvent()>SetDataFieldL(), error=%d", error )
+                "LOG CPELogEvent::SetRemoteContact()>SetDataFieldL(), error=%d", error )
             }
+        aEvent.SetNumber( KNullDesC() );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CPELogEvent::RemoveTagFromDataFieldL
+// -----------------------------------------------------------------------------
+//
+void CPELogEvent::RemoveTagFromDataFieldL( const TDesC8& aTag )
+    {
+    __ASSERT_ALWAYS( aTag.Length() != 0 ,
+        User::Leave( KErrArgument ) );
+
+    TInt index = iEvent->Data().Find( aTag );
+    if ( KErrNotFound != index  )
+        {
+        HBufC8* eventData = iEvent->Data().AllocLC();
+        TPtrC8 urlData = eventData->Mid( index );
+        TInt otherTag = urlData.Find( KLogsDataFldNameDelimiter );
+       
+        const TInt dlLen = KLogsDataFldNameDelimiter().Length();
+        if ( KErrNotFound == otherTag )
+            {
+            eventData->Des().Delete( index - dlLen, urlData.Length() + dlLen );
+            }
+        else
+            {
+            eventData->Des().Delete( index - dlLen, otherTag );
+            }
+        iEvent->SetDataL( *eventData );
+
+        CleanupStack::PopAndDestroy( eventData );
         }
     }