LGTM, but I would start implementing the parts that possible won't change
if it moves to DataStore.

Is the current spec 100% compatible with what is shipping in Firefox OS ?
(you seem to indicate that)


On Thu, Nov 14, 2013 at 7:39 AM, Huang, Deqing <deqing.hu...@intel.com>wrote:

>  Hi All,
>
> Here is updated version of the Intent to Implement:
>
> *Description*: This implemented W3C Contacts Manager API on Android
> *Affected component: *
> runtime/android/java/src/org/xwalk/runtime/extension/api
> *Related feature:* 
> *XWALK-49*<https://crosswalk-project.org/jira/browse/XWALK-49>
> *Target Release:* Crosswalk-3
> *Target Platform:* Android
>
> *Implementation details:*
>
> Spec: 
> *http://www.w3.org/2012/sysapps/contacts-manager-api/*<http://www.w3.org/2012/sysapps/contacts-manager-api/>
>
> *Summary:*
> This API is designed as an internal extension inherited from
> XWalkExtension.
>
> *Status of the Spec:*
> The outstanding question since the last F2F (August) is whether to use
> DataStore API for Contacts and Messaging (and CallHistory):
> *https://wiki.mozilla.org/WebAPI/DataStore*<https://wiki.mozilla.org/WebAPI/DataStore>
>
> *Support from other venders:*
> AFAIK Firefox Mobile(Gecko) supports this API since 18.0
> Not supported on Android, Opera, Safari, Chrome, and Firefox desktop.
>
> *Compatibility Risk:*
> Low. This is a new feature, which implemented as an individual internal
> extension.
>
> *JSAPI part:*
> *Promise * <http://dom.spec.whatwg.org/>will be used as per spec
> indicates. This Promise interface would be the same as other extensions
> which also has Promise defined in their specs.
>
> *Java part:*
> Most operations are based on *Content 
> Provider*<http://developer.android.com/guide/topics/providers/content-providers.html>,
> which is, using 
> *ContentResolver*<http://developer.android.com/reference/android/content/ContentResolver.html>to
>  access and modify system's *Contact
> data table 
> *<http://developer.android.com/reference/android/provider/ContactsContract.html>as
> required. There are several major parts described below:
> 1> For saving or updating a contact, will build an array list of 
> *ContentProviderOperation
> *<http://developer.android.com/reference/android/content/ContentProviderOperation.html>and
> apply to the system's contact table in batch in order to increase
> performance.
> 2> For finding a contact, will construct a SQL clause by find option to
> query contact data table and build results to JSON string to post back to
> caller. Similarly when removing one or more contacts, will construct a SQL
> selection clause to delete rows of contact data table.
> 3> For message handler of Contacts change, will register a *Content
> Observer*<http://developer.android.com/reference/android/database/ContentObserver.html>to
>  listen change of contact data table by
> *ContentResolver*<http://developer.android.com/reference/android/content/ContentResolver.html>
> .
>
> Regards,
> Deqing
>
>
> _____________________________________________
> *From:* Huang, Deqing
> *Sent:* Friday, November 08, 2013 3:19 PM
> *To:* crosswalk-dev@lists.crosswalk-project.org
> *Subject:* Intent to Implement: [Android] W3C SysApps Contacts API
>
>
> *Description*: This implemented W3C Contacts Manager API on Android
> *Affected component: *N/A
> *Related feature:* 
> *XWALK-49*<https://crosswalk-project.org/jira/browse/XWALK-49>
> *Target Release:* Crosswalk M4
>
> *Implementation details:*
>
> Spec: 
> *http://www.w3.org/2012/sysapps/contacts-manager-api/*<http://www.w3.org/2012/sysapps/contacts-manager-api/>
>
> Summary:
> This API is designed as an internal extension based the
> *XWalkExtensionBridge*<https://github.com/crosswalk-project/crosswalk/pull/513>
> .
>
> JSAPI part:
> *Promise * <http://dom.spec.whatwg.org/>will be used as per spec
> indicates. This Promise interface would be the same as other extensions
> which also has Promise defined in their specs.
>
> Java part:
> Most operations are based on *Content 
> Provider*<http://developer.android.com/guide/topics/providers/content-providers.html>,
> which is, using 
> *ContentResolver*<http://developer.android.com/reference/android/content/ContentResolver.html>to
>  access and modify system's *Contact
> data table 
> *<http://developer.android.com/reference/android/provider/ContactsContract.html>as
> required. There are several major parts described below:
> 1> For saving or updating a contact, will build an array list of 
> *ContentProviderOperation
> *<http://developer.android.com/reference/android/content/ContentProviderOperation.html>and
> apply to the system's contact table in batch in order to increase
> performance.
> 2> For finding a contact, will construct a SQL clause by find option to
> query contact data table and build results to JSON string to post back to
> caller. Similarly when removing one or more contacts, will construct a SQL
> selection clause to delete rows of contact data table.
> 3> For message handler of Contacts change, will register a *Content
> Observer*<http://developer.android.com/reference/android/database/ContentObserver.html>to
>  listen change of contact data table by
> *ContentResolver*<http://developer.android.com/reference/android/content/ContentResolver.html>
> .
>
> Regards,
> Deqing
>
>
>
>
> _______________________________________________
> Crosswalk-dev mailing list
> Crosswalk-dev@lists.crosswalk-project.org
> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
>
>


-- 
Kenneth Rohde Christiansen
Web Platform Architect, Intel Corporation.
Phone  +45 4294 9458 ﹆﹆﹆
_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev

Reply via email to