Add timestamp support for call history vcard
diff --git a/core/java/android/syncml/pim/vcard/ContactStruct.java b/core/java/android/syncml/pim/vcard/ContactStruct.java
index 687c1b4..9782111 100644
--- a/core/java/android/syncml/pim/vcard/ContactStruct.java
+++ b/core/java/android/syncml/pim/vcard/ContactStruct.java
@@ -22,7 +22,9 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.net.Uri;
+import android.provider.CallLog;
 import android.provider.Contacts;
+import android.provider.CallLog.Calls;
 import android.provider.Contacts.ContactMethods;
 import android.provider.Contacts.Extensions;
 import android.provider.Contacts.GroupMembership;
@@ -88,6 +90,8 @@
     /** Only for GET. Use addExtension() to PUT */
     public Map<String, List<String>> extensionMap;
 
+    public String timeStamp;
+
     // Use organizationList instead when handling ORG.
     @Deprecated
     public String company;
@@ -148,6 +152,32 @@
     }
 
     /**
+     * Add call history time stamp and call type.
+     * @param type call type
+     * @param timeStamp timeStamp
+     */
+    public void addCallHistoryTimeStamp(int type, String date) {
+        // Extension for call history as defined in
+        // in the Specification for Ic Mobile Communcation - ver 1.1,
+        // Oct 2000. This is used to send the details of the call
+        // history - missed, incoming, outgoing along with date and time
+        // to the requesting device (For example, transferring phone book
+        // when connected over bluetooth)
+        // X-IRMC-CALL-DATETIME;MISSED:20050320T100000
+        String strCallType;
+        if (type == Calls.INCOMING_TYPE) {
+            strCallType = "INCOMING";
+        } else if (type == Calls.OUTGOING_TYPE) {
+            strCallType = "OUTGOING";
+        } else if (type == Calls.MISSED_TYPE) {
+            strCallType = "MISSED";
+        } else {
+            strCallType = "";
+        }
+        timeStamp = "X-IRMC-CALL-DATETIME;" + strCallType + ":" + date;
+    }
+
+    /**
      * Add a contactmethod info to contactmethodList.
      * @param kind integer value defined in Contacts.java
      * (e.g. Contacts.KIND_EMAIL)
diff --git a/core/java/android/syncml/pim/vcard/VCardComposer.java b/core/java/android/syncml/pim/vcard/VCardComposer.java
index 9823015..a5dd053 100644
--- a/core/java/android/syncml/pim/vcard/VCardComposer.java
+++ b/core/java/android/syncml/pim/vcard/VCardComposer.java
@@ -149,6 +149,10 @@
             appendContactMethodStr(struct.contactmethodList, vcardversion);
         }
 
+        if (!isNull(struct.timeStamp)) {
+            mResult.append(struct.timeStamp).append(mNewline);
+        }
+
         mResult.append("END:VCARD").append(mNewline);
         return mResult.toString();
     }