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