<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to AndroidCardDAVSync</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>Recent changes to AndroidCardDAVSync</description><atom:link href="https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 02 Dec 2012 22:24:55 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v17
+++ v18
@@ -9,6 +9,8 @@
 __User Agent String:__ CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) dataaccessd/1.0) gzip
 __OpenGrouwpare Coils Client Id:__ 11e687c2-4cea-4464-a31c-5d9f97f8c6f4
 __Status__: Working, as of 0.1.49pre
+
+   - [Coils 0.1.49rc7 and CardDAV-Sync BLOG post](http://www.opengroupware.us/2012/12/0149rc7-carddav-sync.html)
 
 Appears to support [Service Discovery](ServiceDiscovery).  But it does not perform a GET and follow the 301 redirect... it performs a PROPFIND.  Is that standard?
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Sun, 02 Dec 2012 22:24:55 -0000</pubDate><guid>https://sourceforge.net33009891798e2d9142aa85e4ccf45e13044486b4</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Sun, 02 Dec 2012 15:18:58 -0000</pubDate><guid>https://sourceforge.netd4b49dbba99d8ead64588c7ec0fc72dae71e4622</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v15
+++ v16
@@ -15,7 +15,10 @@
 ##Notes.
 
    - The paid version syncs more fields than the free version.
-   - The Android platform is deliberately broken in several ways in order to push users toward use of proprietary services;  one side effect of this is to use a third-party backend you also need to install a third-party contact editor.  But you can easily make this your default editor.  The recommended editor is "Contact Editor Pro"; either the [free](http://dmfs.org/editor/?free) version or the [paid](http://dmfs.org/editor/) version.  The free version is the same as the stock editor - only with the breakage regarding third-party backends triaged.
+   - The Android 3.x platform was deliberately broken in several ways in order to push users toward use of proprietary services;  one side effect of this is to use a third-party backend you also need to install a third-party contact editor.  But you can easily make this your default editor.  The recommended editor is "Contact Editor Pro"; either the [free](http://dmfs.org/editor/?free) version or the [paid](http://dmfs.org/editor/) version.  The free version is the same as the stock editor - only with the breakage regarding third-party backends triaged.
+      - The native contact editor in Android 4.x works with CardDAV backends.
+   - There are known issues regarding the HTC One device.
+   - Contact lists do not work. These appear to be deliberately broken.
    - The user principal needs to be a collections.  So user agent definition maps the user principal to "/dav/Contacts/"
    - It requires that collection paths end in a "/".
    - Requires that contact collections publish an "addressbook" resource type.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Wed, 28 Nov 2012 16:58:54 -0000</pubDate><guid>https://sourceforge.net8c8af3bc7aadfa605556de8946d57a1e6471b5cb</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v14
+++ v15
@@ -16,6 +16,9 @@
 
    - The paid version syncs more fields than the free version.
    - The Android platform is deliberately broken in several ways in order to push users toward use of proprietary services;  one side effect of this is to use a third-party backend you also need to install a third-party contact editor.  But you can easily make this your default editor.  The recommended editor is "Contact Editor Pro"; either the [free](http://dmfs.org/editor/?free) version or the [paid](http://dmfs.org/editor/) version.  The free version is the same as the stock editor - only with the breakage regarding third-party backends triaged.
+   - The user principal needs to be a collections.  So user agent definition maps the user principal to "/dav/Contacts/"
+   - It requires that collection paths end in a "/".
+   - Requires that contact collections publish an "addressbook" resource type.
 
 ##Related Bugs
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Wed, 28 Nov 2012 13:36:26 -0000</pubDate><guid>https://sourceforge.net6c1e63a7e990f92b737f2134c0fed618a65323a3</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v13
+++ v14
@@ -14,7 +14,8 @@
 
 ##Notes.
 
-   - It doesn't appear that the "notes" field is saved.
+   - The paid version syncs more fields than the free version.
+   - The Android platform is deliberately broken in several ways in order to push users toward use of proprietary services;  one side effect of this is to use a third-party backend you also need to install a third-party contact editor.  But you can easily make this your default editor.  The recommended editor is "Contact Editor Pro"; either the [free](http://dmfs.org/editor/?free) version or the [paid](http://dmfs.org/editor/) version.  The free version is the same as the stock editor - only with the breakage regarding third-party backends triaged.
 
 ##Related Bugs
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Wed, 28 Nov 2012 11:22:16 -0000</pubDate><guid>https://sourceforge.net8bd617be1af4bdd6549b44f93e311dea03ee95c0</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v12
+++ v13
@@ -1,19 +1,28 @@
 [Clients] [WebDAV](wiki:WebDAV) [CardDAV](wiki:CardDAV)
+
+#CardDAV-Sync (Android)
+
+[TOC]
 
 [Product Home Page](http://dmfs.org/carddav/)
 
 __User Agent String:__ CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) dataaccessd/1.0) gzip
 __OpenGrouwpare Coils Client Id:__ 11e687c2-4cea-4464-a31c-5d9f97f8c6f4
+__Status__: Working, as of 0.1.49pre
 
 Appears to support [Service Discovery](ServiceDiscovery).  But it does not perform a GET and follow the 301 redirect... it performs a PROPFIND.  Is that standard?
 
-Related Bugs
-------------
+##Notes.
+
+   - It doesn't appear that the "notes" field is saved.
+
+##Related Bugs
+
    - [#70] :  Support addressbook-home-set WebDAV property 
 
 
-Discovery Request
------------------
+##Discovery Request
+
 
 Coils correctly responds to the well_known PROPFIND with a 301 to /dav/Contacts.  This results in a PROPFIND of /dav/Contacts/ asking about the current user principal.
 
@@ -135,7 +144,7 @@
             &lt;D:propstat&gt;
               &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
               &lt;D:prop&gt;
-                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
+                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;E:addressbook/&gt;&lt;/D:resourcetype&gt;
                 &lt;D:displayname&gt;All&lt;/D:displayname&gt;
               &lt;/D:prop&gt;
             &lt;/D:propstat&gt;
@@ -144,11 +153,27 @@
             &lt;D:propstat&gt;
               &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
               &lt;D:prop&gt;
-                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
+                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;E:addressbook/&gt;&lt;/D:resourcetype&gt;
                 &lt;D:displayname&gt;Favorites&lt;/D:displayname&gt;
               &lt;/D:prop&gt;
             &lt;/D:propstat&gt;
         &lt;/D:response&gt;
     &lt;/D:multistatus&gt;
 
-Then the client seems to send a stray PROPFIND request to /dav and stop.
+The client then displays a list of Contact folders from which to create an address book!
+
+##Payload
+
+___Example VCard___
+
+    BEGIN:VCARD
+    VERSION:3.0
+    N:Smith;George;;;
+    ADR;TYPE=HOME:;;555 Pandora Dr;Podunk;Gr;99999;
+    EMAIL;TYPE=INTERNET;TYPE=HOME:george@example.net
+    FN:George Smith
+    TEL;TYPE=CELL:1 11.222.3333
+    PRODID:-//dmfs.org//mimedir.vcard//EN
+    REV:20121128T110559Z
+    UID:4ef1363f-0aac-4bec-ab2f-72498d74af49
+    END:VCARD
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Wed, 28 Nov 2012 11:12:45 -0000</pubDate><guid>https://sourceforge.net97d6fca9fda8821a46c55f6ff8b20af174a89dab</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v11
+++ v12
@@ -89,7 +89,7 @@
     &lt;/D:multistatus&gt;
 
 
-___Request__
+___Request___
 
     PROPFIND /dav/Contacts/ HTTP/1.0
     Host: coils.wmmi.net
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Tue, 27 Nov 2012 23:44:04 -0000</pubDate><guid>https://sourceforge.net4c56f09c146f3e72df5f4fd81d342c16eeb35328</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v10
+++ v11
@@ -15,9 +15,9 @@
 Discovery Request
 -----------------
 
-Coils correctly responds to the well_known PROPFIND with a 301 to /dav/Contacts.  This results in a PROPFIND of /dav/Contacts asking about the current user principal.
+Coils correctly responds to the well_known PROPFIND with a 301 to /dav/Contacts.  This results in a PROPFIND of /dav/Contacts/ asking about the current user principal.
 
-
+    PROPFIND /dav/Contacts/ HTTP/1.0
     Connection: close
     Content-Type: application/xml; charset="utf-8"
     Depth: 0
@@ -40,7 +40,7 @@
             &lt;D:propstat&gt;
               &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
               &lt;D:prop&gt;
-                &lt;D:current-user-principal&gt;&lt;D:href&gt;/dav/Contacts/23330.vcf&lt;/D:href&gt;&lt;/D:current-user-principal&gt;
+                &lt;D:current-user-principal&gt;&lt;D:href&gt;/dav/Contacts/&lt;/D:href&gt;&lt;/D:current-user-principal&gt;
               &lt;/D:prop&gt;
             &lt;/D:propstat&gt;
          &lt;/D:response&gt;
@@ -48,6 +48,7 @@
 
 The client then sends a PROPFIND to the URL of the current user principal.
 
+    PROPFIND /dav/Contacts/ HTTP/1.0
     Connection: close
     Content-Type: application/xml; charset="utf-8"
     Depth: 0
@@ -66,29 +67,40 @@
 
 ___Response___
 
+    HTTP/1.0 207 Multistatus
+    Server: BaseHTTP/0.3 Python/2.7.3
+    Date: Tue, 27 Nov 2012 23:30:07 GMT
+    Content-Length: 530
+    Content-Type: text/xml; charset="utf-8"
+    X-Dav-Error: 200 No error
+    Ms-Author-Via: DAV
+    
     &lt;?xml version="1.0" encoding="utf-8"?&gt;
     &lt;D:multistatus xmlns:G="http://groupdav.org/" xmlns:E="urn:ietf:params:xml:ns:carddav" xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:B="http://icewarp.com/ns/" xmlns:A="http://apache.org/dav/props/"&gt;
-        &lt;D:response&gt;&lt;D:href&gt;/dav/Contacts/23330.vcf&lt;/D:href&gt;
-            &lt;D:propstat&gt;
-              &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
-              &lt;D:prop&gt;
-                &lt;E:addressbook-home-set&gt;&lt;D:href&gt;/dav/Contacts&lt;/D:href&gt;&lt;/E:addressbook-home-set&gt;
-              &lt;/D:prop&gt;
-            &lt;/D:propstat&gt;
-          &lt;/D:response&gt;
+      &lt;D:response&gt;
+        &lt;D:href&gt;/dav/Contacts/&lt;/D:href&gt;
+        &lt;D:propstat&gt;
+          &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
+          &lt;D:prop&gt;
+            &lt;E:addressbook-home-set&gt;&lt;D:href&gt;/dav/Contacts&lt;/D:href&gt;&lt;/E:addressbook-home-set&gt;
+          &lt;/D:prop&gt;
+        &lt;/D:propstat&gt;
+      &lt;/D:response&gt;
     &lt;/D:multistatus&gt;
 
-The client then goes on to make PROPFIND requests to "/dav" and then activity stops.
 
-The requests to "/dav" look like:
+___Request__
 
+    PROPFIND /dav/Contacts/ HTTP/1.0
+    Host: coils.wmmi.net
+    Connection: close
     Content-Type: application/xml; charset="utf-8"
-    Depth: 0
+    Depth: 1
     Content-Length: 129
     User-Agent: CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) dataaccessd/1.0) gzip
-    Authorization: Basic YXdpbGxpYW06OmZyZWQxMg==
+    Authorization: Basic YXdpbGxpYW06ZnJlZDEy
     Accept-Encoding: gzip
-
+    
     &lt;?xml version="1.0" encoding="utf-8" ?&gt;
     &lt;A:propfind xmlns:A="DAV:"&gt;
         &lt;A:prop&gt;
@@ -97,28 +109,46 @@
         &lt;/A:prop&gt;
     &lt;/A:propfind&gt;
 
-To which the server responds:
+___Response___
 
-    207 Multistatus
+    HTTP/1.0 207 Multistatus
     Server: BaseHTTP/0.3 Python/2.7.3
-    Date: Mon, 26 Nov 2012 12:54:12 GMT
-    Content-Length: 532
+    Date: Tue, 27 Nov 2012 23:30:07 GMT
+    Content-Length: 1109
     Content-Type: text/xml; charset="utf-8"
     X-Dav-Error: 200 No error
     Ms-Author-Via: DAV
-
+    
     &lt;?xml version="1.0" encoding="utf-8"?&gt;
     &lt;D:multistatus xmlns:G="http://groupdav.org/" xmlns:E="urn:ietf:params:xml:ns:carddav" xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:B="http://icewarp.com/ns/" xmlns:A="http://apache.org/dav/props/"&gt;
-      &lt;D:response&gt;&lt;D:href&gt;/dav&lt;/D:href&gt;
-        &lt;D:propstat&gt;
-          &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
-          &lt;D:prop&gt;
-            &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
-            &lt;D:displayname&gt;dav&lt;/D:displayname&gt;
-          &lt;/D:prop&gt;
-        &lt;/D:propstat&gt;
-      &lt;/D:response&gt;
+        &lt;D:response&gt;
+            &lt;D:href&gt;/dav/Contacts/&lt;/D:href&gt;
+            &lt;D:propstat&gt;
+              &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
+              &lt;D:prop&gt;
+                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
+                &lt;D:displayname&gt;Contacts&lt;/D:displayname&gt;
+              &lt;/D:prop&gt;
+            &lt;/D:propstat&gt;
+        &lt;/D:response&gt;
+        &lt;D:response&gt;&lt;D:href&gt;/dav/Contacts/All/&lt;/D:href&gt;
+            &lt;D:propstat&gt;
+              &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
+              &lt;D:prop&gt;
+                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
+                &lt;D:displayname&gt;All&lt;/D:displayname&gt;
+              &lt;/D:prop&gt;
+            &lt;/D:propstat&gt;
+        &lt;/D:response&gt;
+        &lt;D:response&gt;&lt;D:href&gt;/dav/Contacts/Favorites/&lt;/D:href&gt;
+            &lt;D:propstat&gt;
+              &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
+              &lt;D:prop&gt;
+                &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
+                &lt;D:displayname&gt;Favorites&lt;/D:displayname&gt;
+              &lt;/D:prop&gt;
+            &lt;/D:propstat&gt;
+        &lt;/D:response&gt;
     &lt;/D:multistatus&gt;
 
-   - I don't know why it is going back to doing a PROPFIND of /dav, a resource that is never pointed to in a response.
-   - Why it just stops, rather than querying /dav/Contacts for sub-folders or at least supported address book data.
+Then the client seems to send a stray PROPFIND request to /dav and stop.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Tue, 27 Nov 2012 23:42:13 -0000</pubDate><guid>https://sourceforge.netc18cdc7f5d9db0de03e9c6dcd3ceead643cf3382</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Mon, 26 Nov 2012 14:32:55 -0000</pubDate><guid>https://sourceforge.net6914fb860bf538b250a3734f9fe085284de70a8d</guid></item><item><title>WikiPage AndroidCardDAVSync modified by Adam Tauno Williams</title><link>https://sourceforge.net/p/coils/wiki/AndroidCardDAVSync/</link><description>&lt;pre&gt;--- v8
+++ v9
@@ -1,4 +1,4 @@
-[Clients] [WebDAV][wiki:WebDAV] [CardDAV][wiki:CardDAV]
+[Clients] [WebDAV](wiki:WebDAV) [CardDAV](wiki:CardDAV)
 
 [Product Home Page](http://dmfs.org/carddav/)
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Adam Tauno Williams</dc:creator><pubDate>Mon, 26 Nov 2012 14:32:44 -0000</pubDate><guid>https://sourceforge.net5591f6de8ed238756a0a0a05e003720ff730bd69</guid></item></channel></rss>