gecko-dev/mobile/android/modules/contacts.jsm

53 строки
1.2 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
this.EXPORTED_SYMBOLS = ["Contacts"];
const Cu = Components.utils;
this.Contacts = {
_providers: [],
_contacts: [],
_load: function _load() {
this._contacts = [];
this._providers.forEach(function(provider) {
this._contacts = this._contacts.concat(provider.getContacts());
}, this)
},
init: function init() {
// Not much to do for now
this._load();
},
refresh: function refresh() {
// Pretty simple for now
this._load();
},
addProvider: function(aProvider) {
this._providers.push(aProvider);
this.refresh();
},
find: function find(aMatch) {
let results = [];
if (!this._contacts.length)
return results;
for (let field in aMatch) {
// Simple string-only partial matching
let match = aMatch[field];
this._contacts.forEach(function(aContact) {
if (field in aContact && aContact[field].indexOf(match) != -1)
results.push(aContact);
});
}
return results;
}
};