Confirmed users
483
edits
(Initial population) |
(Shared indexedDBs for certified apps) |
||
Line 23: | Line 23: | ||
=== Hard to integrate with 3rd party contacts providers === | === Hard to integrate with 3rd party contacts providers === | ||
We added extra support for Gmail and Hotmail contacts but this is embedded in the Contacts application itself, which is not scalable. We want to make any 3rd party app capable of providing contacts to have a seamless integration with the Contacts APP. | We added extra support for Gmail and Hotmail contacts but this is embedded in the Contacts application itself, which is not scalable. We want to make any 3rd party app capable of providing contacts to have a seamless integration with the Contacts APP. | ||
=== New potential features === | |||
= Architecture = | = Architecture = | ||
Line 126: | Line 128: | ||
=== Initial population of the GCDS === | === Initial population of the GCDS === | ||
Once we move to this model we will need a way to do the initial launch of the GCDS app to do the first population of the currently existing Contact Providers (i.e. local contacts datastore, Fb datastore, etc.). This process needs to be atomic. | Once we move to this model we will need a way to do the initial launch of the GCDS app to do the first population of the currently existing Contact Providers (i.e. local contacts datastore, Fb datastore, etc.). This process needs to be atomic. | ||
=== Shared indexedDBs for certified apps === | |||
I know, I know. We already have DataStore to share data between apps. But unfortunately, with the approach we are proposing here we will be duplicating contacts data in quite a massive way for very similar needs. Every Contact Consumer will need to have its own indexedDB built from the data obtained from the Contact Providers datastores and with its own indexes. The [[Gaia/Contacts/Data_Refactor#Contacts_data_consumers_.28in_Gaia.29|Contact Consumers that we currently have in Gaia]] have or will have very similar, if not identical, needs, so the indexedDBs that each app will be maintaining will have exactly the same data and the same indexes. This is a lot of duplication for the same purpose. Having a way to share a indexedDB between Gaia certified Contact Consumers containing the information about all the contacts shared by Contact Providers will allow us to save a high amount of disk space. | |||
== FAQ == | == FAQ == | ||
* What happen if a new app is installed and offers contacts? | * What happen if a new app is installed and offers contacts? | ||
We | Check the Notification about datastore changes mechanism section. We need a datastore-change-* system message to be fired as soon as a new app exposing a 'contacts' datastore is installed. This will wake up the GCDS app which should get the list of 'contacts' datastores and add the ones that are not already registered. | ||
* Where | * Where does the data live? | ||
In each application. This works | In each application. This works on both sides, providers, and consumers as well. | ||
Each Contact Provider will contain their specific data. The FB provider will contain FB contacts only, the Gmail provider Gmail contacts only and so on. | |||
Each Contact Consumer will contain a copy of the data resulting of the mixture of all the data owned by all Contact Providers they are allowed to access. We are aware of what this could mean in terms of disk usage, check the Shared indexedDBs for certified apps for a potential fix for this issue. | |||
* What happen if I create a new contact? | * What happen if I create a new contact? |