Bug 1114937 - Part 1: Define new IDL for IccContacts. r=echen

This commit is contained in:
Bevis Tseng 2015-06-16 17:29:50 +08:00
Родитель 08645287bd
Коммит c65efc9f00
3 изменённых файлов: 127 добавлений и 3 удалений

Просмотреть файл

@ -5,6 +5,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
XPIDL_SOURCES += [
'nsIIccContact.idl',
'nsIIccInfo.idl',
'nsIIccProvider.idl', # TODO: Bug 815526, deprecate RILContentHelper.
'nsIIccService.idl',

Просмотреть файл

@ -0,0 +1,60 @@
/* 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/. */
#include "nsISupports.idl"
[scriptable, uuid(0f3dbcd1-9f7b-40a8-aa3c-b5701978ec53)]
interface nsIIccContact : nsISupports
{
/**
* The unique identifier of this ICC Contact.
*
* Note: This id is composed of the iccid and its record index of EF_ADN.
*/
readonly attribute DOMString id;
/**
* Name list.
*
* The container of Alpha-Id in EF_ADN and Second Name in EF_SNE of this contact,
* where EF_SNE provides the possibility to store a name in different language.
*
* @see 10.2.1 Support of two name fields per entry, 3GPP TS 21.111.
*
* @param aCount
* The number of names.
*
* @returns the array of names.
*/
void getNames([optional] out unsigned long aCount,
[array, size_is(aCount), retval] out wstring aNames);
/**
* Phone number list.
*
* The container of the dialing numbers of this contact in EF_ADN and EF_ANR.
*
* @see 10.2.2 Support of multiple phone numbers per entry, 3GPP TS 21.111.
*
* @param aCount
* The number of phone numbers.
*
* @returns the array of phone numbers.
*/
void getNumbers([optional] out unsigned long aCount,
[array, size_is(aCount), retval] out wstring aNumbers);
/**
* Email list.
*
* The container of the emails of this contact in EF_EMAIL.
*
* @param aCount
* The number of emails.
*
* @returns the array of emails.
*/
void getEmails([optional] out unsigned long aCount,
[array, size_is(aCount), retval] out wstring aEmails);
};

Просмотреть файл

@ -5,6 +5,7 @@
#include "nsISupports.idl"
interface nsIIcc;
interface nsIIccContact;
interface nsIIccInfo;
interface nsIStkDownloadEvent;
interface nsIStkProactiveCmd;
@ -22,7 +23,7 @@ interface nsIIccListener : nsISupports
/**
* A callback interface for handling asynchronous response.
*/
[scriptable, uuid(b0e2899a-adc3-11e4-89cf-1b60eaa35b06)]
[scriptable, uuid(b7b0623f-fb2c-4cec-b0dc-00ac2fe7b296)]
interface nsIIccCallback : nsISupports
{
/**
@ -45,9 +46,28 @@ interface nsIIccCallback : nsISupports
*/
void notifyGetCardLockRetryCount(in long aCount);
/**
* The success callback of |readContacts|.
*
* @param aContacts
* The list of contacts retrieved from ICC.
* @param aCount
* The number of contacts retrieved from ICC.
*/
void notifyRetrievedIccContacts([array, size_is(aCount)] in nsIIccContact aContacts,
in uint32_t aCount);
/**
* The success callback of |updateContact|.
*
* @param aContact
* The contact with the updated result.
*/
void notifyUpdatedIccContact(in nsIIccContact aContact);
/**
* The error callback of |getCardLockEnabled|, |getCardLockRetryCount|,
* |matchMvno|, and |getServiceStateEnabled|.
* |matchMvno|, |getServiceStateEnabled|, |readContacts| and |updateContact|.
*
* @param aErrorMsg
* The error message.
@ -138,7 +158,7 @@ NS_CreateIccService();
/**
* XPCOM component that provides the access to the selected ICC.
*/
[scriptable, uuid(6ded322c-fadd-11e4-9cb6-3f4fc3f241d3)]
[scriptable, uuid(1791f102-b081-4435-8555-37eb035fa4e2)]
interface nsIIcc : nsISupports
{
/**
@ -235,6 +255,15 @@ interface nsIIcc : nsISupports
*/
const unsigned long CARD_SERVICE_FDN = 0;
/**
* Icc Contact Type Constants
*
* Note: MUST be matched with enum IccContactType in MozIcc.webidl!
*/
const unsigned long CONTACT_TYPE_ADN = 0;
const unsigned long CONTACT_TYPE_FDN = 1;
const unsigned long CONTACT_TYPE_SDN = 2;
/**
* Called to register icc-related changes.
*
@ -472,4 +501,38 @@ interface nsIIcc : nsISupports
* The event that ICC listening to in STK_CMD_SET_UP_EVENT_LIST.
*/
void sendStkEventDownload(in nsIStkDownloadEvent aEvent);
/**
* Read Specified type of Contact from ICC.
*
* @param aContactType
* One of CONTACT_TYPE_*.
*
* @param aCallback
* An instance of nsIIccCallback:
* nsIIccCallback::notifyRetrievedIccContacts() if success.
* nsIIccCallback::notifyError(), otherwise.
*/
void readContacts(in unsigned long aContactType,
in nsIIccCallback aCallback);
/**
* Update Specified type of Contact in ICC.
*
* @param aContactType
* One of CONTACT_TYPE_*.
* @param aContact
* an nsIIccContact instance with information to be updated.
* @param aPin2 (Optional)
* The PIN2 required to update FDN contact.
*
* @param aCallback
* An instance of nsIIccCallback:
* nsIIccCallback::notifyUpdatedIccContact() if success.
* nsIIccCallback::notifyError(), otherwise.
*/
void updateContact(in unsigned long aContactType,
in nsIIccContact aContact,
in DOMString aPin2,
in nsIIccCallback aCallback);
};