WebIDL
module appconfig {
interface AppConfigManager {
DOMString get (in DOMString key)
raises (SecurityError);
void set (in DOMString key,
in DOMString value)
raises (SecurityError);
};
interface AppConfigManagerObject {
readonly attribute AppConfigManager appconfig;
};
Bondi implements AppConfigManagerObject;
};
module applauncher {
[Callback=FunctionOnly, NoInterfaceObject] interface AppLauncherSuccessCallback {
void onSuccess (in StringArray obj);
};
interface AppLauncherManager {
PendingOperation launchApplication (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString appURI,
[Optional] in StringArray params);
PendingOperation getInstalledApplications (in AppLauncherSuccessCallback successCallback,
in ErrorCallback errorCallback);
DOMString getDefaultApplication (in DOMString mimeType)
raises (DeviceAPIError);
};
interface AppLauncherManagerObject {
readonly attribute AppLauncherManager applauncher;
};
Bondi implements AppLauncherManagerObject;
};
module camera {
typedef sequence<Camera> CameraArray;
typedef sequence<CameraFeature> CameraFeatureArray;
typedef sequence<FeatureValue> FeatureValueArray;
[Callback=FunctionOnly, NoInterfaceObject] interface CameraSuccessCallback {
void onSuccess (in DOMString file);
};
[Callback=FunctionOnly, NoInterfaceObject] interface CamerasRetrievedSuccessCallback {
void onSuccess (in CameraArray cameras);
};
[Callback=FunctionOnly, NoInterfaceObject] interface CameraLiveVideoSuccessCallback {
void onSuccess (in DOMString identifier);
};
interface CameraError : GenericError {
const unsigned short CAMERA_ALREADY_IN_USE_ERROR = 0;
const unsigned short CAMERA_CAPTURE_ERROR = 1;
const unsigned short CAMERA_LIVEVIDEO_ERROR = 2;
};
interface CameraManager {
PendingOperation getCameras (in CamerasRetrievedSuccessCallback successCallback,
in ErrorCallback errorCallback);
};
interface CaptureOptions {
attribute unsigned short width;
attribute unsigned short height;
attribute float frameRate;
attribute DOMString mimeType;
attribute boolean audio;
attribute unsigned long maximumBitrate;
};
interface FeatureValue {
attribute float value;
attribute DOMString description;
};
interface CameraFeature {
const unsigned short FEATURETYPE_INTERVAL = 0;
const unsigned short FEATURETYPE_BINARY = 1;
const unsigned short FEATURETYPE_ENUMERATION = 2;
attribute DOMString description;
attribute long id;
attribute short type;
attribute FeatureValue value;
attribute FeatureValue default;
attribute FeatureValueArray possibleValues;
};
interface Camera {
const unsigned short ZOOM = 0;
const unsigned short ZOOM_NOZOOM = 1;
const unsigned short CONTRAST = 2;
const unsigned short BRIGHTNESS = 3;
const unsigned short COLORTEMPERATURE = 4;
const unsigned short NIGHTMODE = 5;
const unsigned short NIGHTMODE_OFF = 0;
const unsigned short NIGHTMODE_ON = 1;
const unsigned short MANUALFOCUS = 6;
const unsigned short MANUALFOCUS_ON = 1;
const unsigned short MANUALFOCUS_OFF = 0;
const unsigned short FOCUS = 7;
const unsigned short LIGHT = 8;
const unsigned short FLASH = 9;
const unsigned short FLASH_NO_FLASH = 0;
const unsigned short FLASH_AUTO_FLASH = 1;
const unsigned short FLASH_FORCED_FLASH = 2;
readonly attribute DOMString description;
CameraFeatureArray getSupportedFeatures ();
void setFeature (in unsigned short featureID,
in float value)
raises (DeviceAPIError);
PendingOperation requestLiveVideo (in CameraLiveVideoSuccessCallback successCallback,
in ErrorCallback errorCallback);
PendingOperation takePicture (in CameraSuccessCallback successCallback,
in ErrorCallback errorCallback,
[Optional] in CaptureOptions options);
PendingOperation beginRecording (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in CameraSuccessCallback capturedCallback,
[Optional] in CaptureOptions options);
PendingOperation endRecording (in CameraSuccessCallback successCallback,
in ErrorCallback errorCallback);
};
interface CameraManagerObject {
readonly attribute CameraManager camera;
};
Bondi implements CameraManagerObject;
};
module bondi {
typedef sequence<DOMString> StringArray;
typedef sequence<DOMString> FeatureArray;
typedef sequence<octet> ByteArray;
typedef sequence<short> ShortArray;
typedef sequence<long> LongArray;
typedef sequence<float> FloatArray;
typedef Object Map;
[Callback=FunctionOnly, NoInterfaceObject] interface SuccessCallback {
void onSuccess ();
};
[Callback=FunctionOnly, NoInterfaceObject] interface RequestFeatureSuccessCallback {
void onSuccess (in Object ob);
};
[Callback=FunctionOnly, NoInterfaceObject] interface ErrorCallback {
void onError (in GenericError error);
};
[Callback=FunctionOnly, NoInterfaceObject] interface FeatureCallback {
void onFeatureLoaded (in FeatureArray loadedFeatures);
};
interface GenericError {
readonly attribute unsigned short code;
};
interface DeviceAPIError : GenericError {
const unsigned short UNKNOWN_ERROR = 10000;
const unsigned short INVALID_ARGUMENT_ERROR = 10001;
const unsigned short NOT_FOUND_ERROR = 10002;
const unsigned short PENDING_OPERATION_ERROR = 10003;
const unsigned short IO_ERROR = 10004;
const unsigned short NOT_SUPPORTED_ERROR = 10005;
};
interface SecurityError : GenericError {
const unsigned short PERMISSION_DENIED_ERROR = 20000;
};
interface PendingOperation {
boolean cancel ();
void wait ();
};
interface GenericFilter {
};
interface Bondi {
PendingOperation requestFeature (in RequestFeatureSuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString name);
FeatureArray getFeatures ();
long watchFeatures (in FeatureCallback callback);
void clearWatch (in long watch);
};
interface BondiObject {
readonly attribute Bondi bondi;
};
Window implements BondiObject;
};
module devicestatus {
[Callback=FunctionOnly, NoInterfaceObject] interface PropertyChangeSuccessCallback {
void onPropertyChange (in PropertyRef property,
in Object newValue);
};
interface DeviceStatusManager {
StringArray listVocabularies ();
void setDefaultVocabulary (in DOMString vocabulary)
raises (DeviceAPIError);
StringArray listAspects ();
StringArray getComponents (in AspectName aspect)
raises (DeviceAPIError);
StringArray listProperties (in AspectName aspect)
raises (DeviceAPIError);
Object getPropertyValue (in PropertyRef prop)
raises (SecurityError, DeviceAPIError);
unsigned long watchPropertyChange (in PropertyRef pref,
in PropertyChangeSuccessCallback listener,
in Map options)
raises (SecurityError, DeviceAPIError);
void clearPropertyChange (in unsigned long watchHandler)
raises (DeviceAPIError);
};
interface AspectName {
attribute DOMString aspect;
attribute DOMString vocabulary;
};
interface PropertyRef {
attribute DOMString vocabulary;
attribute DOMString component;
attribute DOMString aspect;
attribute DOMString property;
};
interface DeviceStatusManagerObject {
readonly attribute DeviceStatusManager devicestatus;
};
Bondi implements DeviceStatusManagerObject;
};
module filesystem {
typedef sequence<File> FileArray;
[Callback=FunctionOnly, NoInterfaceObject] interface FileSystemSuccessCallback {
void onSuccess (in File file);
};
interface FileSystemManager {
readonly attribute unsigned long maxPathLength;
DOMString getDefaultLocation (in DOMString specifier,
in unsigned long minFreeSpace)
raises (DeviceAPIError);
StringArray getRootLocations ();
PendingOperation resolve (in FileSystemSuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString location,
[Optional] in DOMString mode);
void registerEventListener (in FileSystemListener listener)
raises (DeviceAPIError);
void unregisterEventListener (in FileSystemListener listener)
raises (DeviceAPIError);
};
interface FileSystemListener {
void mountEvent (in DOMString location);
void unmountEvent (in DOMString location);
};
interface File {
readonly attribute File parent;
readonly attribute boolean readOnly;
readonly attribute boolean isFile;
readonly attribute boolean isDirectory;
readonly attribute Date created;
readonly attribute Date modified;
readonly attribute DOMString path;
readonly attribute DOMString name;
readonly attribute DOMString absolutePath;
readonly attribute unsigned long fileSize;
readonly attribute Map metadata;
FileArray listFiles ()
raises (SecurityError, DeviceAPIError);
FileStream open (in DOMString mode,
in DOMString encoding)
raises (SecurityError, DeviceAPIError);
PendingOperation copyTo (in FileSystemSuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString filePath,
in boolean overwrite);
PendingOperation moveTo (in FileSystemSuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString filePath,
in boolean overwrite);
File createDirectory (in DOMString dirPath)
raises (SecurityError, DeviceAPIError);
File createFile (in DOMString filePath)
raises (SecurityError, DeviceAPIError);
File resolve (in DOMString filePath)
raises (SecurityError, DeviceAPIError);
PendingOperation deleteDirectory (in FileSystemSuccessCallback successCallback,
in ErrorCallback errorCallback,
in boolean recursive);
boolean deleteFile ()
raises (SecurityError, DeviceAPIError);
};
interface FileStream {
readonly attribute boolean eof;
attribute unsigned long position
setraises (DeviceAPIError);
readonly attribute unsigned long bytesAvailable;
void close ();
DOMString read (in unsigned long charCount)
raises (DeviceAPIError);
ByteArray readBytes (in unsigned long byteCount)
raises (DeviceAPIError);
DOMString readBase64 (in unsigned long byteCount)
raises (DeviceAPIError);
void write (in DOMString stringData)
raises (DeviceAPIError);
void writeBytes (in ByteArray byteData)
raises (DeviceAPIError);
void writeBase64 (in DOMString base64Data)
raises (DeviceAPIError);
};
interface FileSystemManagerObject {
readonly attribute FileSystemManager filesystem;
};
Bondi implements FileSystemManagerObject;
};
module geolocation {
[Callback=FunctionOnly, NoInterfaceObject] interface PositionSuccessCallback {
void handleEvent (in Position position);
};
[Callback=FunctionOnly, NoInterfaceObject] interface PositionErrorCallback {
void handleEvent (in PositionError error);
};
interface Geolocation {
void getCurrentPosition (in PositionSuccessCallback successCallback,
[Optional] in PositionErrorCallback errorCallback,
[Optional] in PositionOptions options)
raises (SecurityError, DeviceAPIError);
long watchPosition (in PositionSuccessCallback successCallback,
[Optional] in PositionErrorCallback errorCallback,
[Optional] in PositionOptions options)
raises (SecurityError, DeviceAPIError);
void clearWatch (in long id);
};
interface Coordinates {
readonly attribute double latitude;
readonly attribute double longitude;
readonly attribute double altitude;
readonly attribute double accuracy;
readonly attribute double altitudeAccuracy;
readonly attribute double heading;
readonly attribute double speed;
};
interface Position {
readonly attribute long timestamp;
readonly attribute Coordinates coords;
};
interface PositionError {
const unsigned short PERMISSION_DENIED = 1;
const unsigned short POSITION_UNAVAILABLE = 2;
const unsigned short TIMEOUT = 3;
readonly attribute unsigned short code;
readonly attribute DOMString message;
};
[Callback, NoInterfaceObject] interface PositionOptions {
attribute long timeout;
attribute long maximumAge;
attribute boolean enableHighAccuracy;
};
interface GeolocationObject {
readonly attribute Geolocation geolocation;
};
Bondi implements GeolocationObject;
};
module messaging {
typedef sequence<SMS> SMSArray;
typedef sequence<MMS> MMSArray;
typedef sequence<Email> EmailArray;
typedef sequence<MMSSlide> MMSSlideArray;
[Callback=FunctionOnly, NoInterfaceObject] interface FindSMSsSuccessCallback {
void onSuccess (in SMSArray obj);
};
[Callback=FunctionOnly, NoInterfaceObject] interface FindMMSsSuccessCallback {
void onSuccess (in MMSArray obj);
};
[Callback=FunctionOnly, NoInterfaceObject] interface FindEmailsSuccessCallback {
void onSuccess (in EmailArray obj);
};
[Callback=FunctionOnly, NoInterfaceObject] interface EmailAccountsSuccessCallback {
void onSuccess (in StringArray obj);
};
[Callback=FunctionOnly, NoInterfaceObject] interface SubscriptionSuccessCallback {
void onSuccess (in unsigned long subscriptionID);
};
[Callback=FunctionOnly, NoInterfaceObject] interface OnIncomingSMS {
void onEvent (in SMS message);
};
[Callback=FunctionOnly, NoInterfaceObject] interface OnIncomingBinarySMS {
void onEvent (in BinarySMS message);
};
[Callback=FunctionOnly, NoInterfaceObject] interface OnIncomingMMS {
void onEvent (in MMS message);
};
[Callback=FunctionOnly, NoInterfaceObject] interface OnIncomingEmail {
void onEvent (in Email message);
};
interface MessagingError : GenericError {
const unsigned short OUT_OF_COVERAGE_ERROR = 1;
const unsigned short MMS_VIDEO_SLIDE_ERROR = 2;
const unsigned short MMS_MESSAGE_SIZE_EXCEEDED_ERROR = 3;
};
interface MessagingManager {
const unsigned short INBOX_FOLDER = 0;
const unsigned short SENT_FOLDER = 1;
const unsigned short OUTBOX_FOLDER = 2;
const unsigned short DRAFTS_FOLDER = 3;
SMS createSMS ([Optional] in SMSProperties options)
raises (DeviceAPIError);
MMS createMMS ([Optional] in MMSProperties options)
raises (DeviceAPIError);
Email createEmail ([Optional] in EmailProperties options)
raises (DeviceAPIError);
BinarySMS createBinarySMS ([Optional] in BinarySMSProperties options)
raises (DeviceAPIError);
PendingOperation updateSMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in SMS sms);
PendingOperation updateMMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in MMS mms);
PendingOperation updateEmail (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Email email);
PendingOperation sendSMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in SMS sms,
[Optional] in boolean store);
PendingOperation sendMMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in MMS mms,
[Optional] in boolean store);
PendingOperation sendEmail (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Email email,
[Optional] in boolean store);
PendingOperation sendBinarySMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in BinarySMS binary);
PendingOperation findSMSs (in FindSMSsSuccessCallback successCallback,
in ErrorCallback errorCallback,
in ShortArray messageFolders,
[Optional] in SMSFilter filter);
PendingOperation findMMSs (in FindMMSsSuccessCallback successCallback,
in ErrorCallback errorCallback,
in ShortArray messageFolders,
[Optional] in MMSFilter filter);
PendingOperation findEmails (in FindEmailsSuccessCallback successCallback,
in ErrorCallback errorCallback,
in ShortArray messageFolders,
[Optional] in EmailFilter filter);
unsigned long getNumberOfSMSs (in ShortArray messageFolders,
[Optional] in boolean unread)
raises (DeviceAPIError);
unsigned long getNumberOfMMSs (in ShortArray messageFolders,
[Optional] in boolean unread)
raises (DeviceAPIError);
unsigned long getNumberOfEmails (in ShortArray messageFolders,
[Optional] in boolean unread)
raises (DeviceAPIError);
PendingOperation deleteSMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString messageID,
in unsigned short folder);
PendingOperation deleteMMS (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString messageID,
in unsigned short folder);
PendingOperation deleteEmail (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString messageID,
in unsigned short folder);
PendingOperation getAvailableEmailAccounts (in EmailAccountsSuccessCallback successCallback,
in ErrorCallback errorCallback);
PendingOperation subscribeToSMS (in SubscriptionSuccessCallback successCallback,
in ErrorCallback errorCallback,
in OnIncomingSMS listener,
in SMSFilter filter,
in boolean exclusive);
void unsubscribeFromSMS (in unsigned long subscriptionID)
raises (SecurityError, DeviceAPIError);
PendingOperation subscribeToBinarySMS (in SubscriptionSuccessCallback successCallback,
in ErrorCallback errorCallback,
in OnIncomingBinarySMS listener,
in BinarySMSFilter filter,
in boolean exclusive);
void unsubscribeFromBinarySMS (in unsigned long subscriptionID)
raises (DeviceAPIError);
PendingOperation subscribeToMMS (in SubscriptionSuccessCallback successCallback,
in ErrorCallback errorCallback,
in OnIncomingMMS listener,
in MMSFilter filter,
in boolean exclusive);
void unsubscribeFromMMS (in unsigned long subscriptionID)
raises (DeviceAPIError);
PendingOperation subscribeToEmail (in SubscriptionSuccessCallback successCallback,
in ErrorCallback errorCallback,
in OnIncomingEmail listener,
in EmailFilter filter,
in boolean exclusive);
void unsubscribeFromEmail (in unsigned long subscriptionID)
raises (DeviceAPIError);
};
interface SMS : SMSProperties {
readonly attribute DOMString id;
};
interface MMSSlide {
attribute unsigned long duration;
attribute DOMString image
setraises (MessagingError);
attribute unsigned long imageBegin;
attribute unsigned long imageEnd;
attribute DOMString audio
setraises (MessagingError);
attribute unsigned long audioBegin;
attribute unsigned long audioEnd;
attribute DOMString text
setraises (MessagingError);
attribute unsigned long textBegin;
attribute unsigned long textEnd;
attribute DOMString video;
attribute unsigned long videoBegin;
attribute unsigned long videoEnd;
};
interface MMS : MMSProperties {
const unsigned short MULTIPART_MIXED = 0;
const unsigned short MULTIPART_RELATED = 1;
readonly attribute DOMString id;
attribute unsigned short messageType;
attribute MMSSlideArray slides;
};
interface Email : EmailProperties {
readonly attribute DOMString id;
};
[Callback, NoInterfaceObject] interface SMSProperties {
attribute StringArray to;
readonly attribute DOMString from;
readonly attribute Date datetime;
attribute DOMString body;
readonly attribute unsigned short folder;
readonly attribute boolean read;
};
[NoInterfaceObject] interface SMSFilter : GenericFilter {
};
[Callback, NoInterfaceObject] interface MMSProperties {
attribute StringArray to;
attribute StringArray cc;
attribute StringArray bcc;
readonly attribute DOMString from;
attribute DOMString subject;
attribute StringArray attachments;
readonly attribute Date datetime;
attribute DOMString body;
readonly attribute unsigned long folder;
readonly attribute boolean read;
};
[NoInterfaceObject] interface MMSFilter : GenericFilter {
};
[Callback, NoInterfaceObject] interface EmailProperties {
attribute StringArray to;
attribute StringArray cc;
attribute StringArray bcc;
readonly attribute DOMString from;
attribute DOMString subject;
attribute StringArray attachments;
readonly attribute Date datetime;
attribute DOMString body;
readonly attribute unsigned long folder;
readonly attribute boolean read;
};
[NoInterfaceObject] interface EmailFilter : GenericFilter {
};
[Callback, NoInterfaceObject] interface BinarySMSProperties {
attribute DOMString to;
attribute ByteArray payload;
readonly attribute unsigned short port;
};
interface BinarySMS : BinarySMSProperties {
readonly attribute DOMString id;
};
[NoInterfaceObject] interface BinarySMSFilter : GenericFilter {
};
interface MessagingManagerObject {
readonly attribute MessagingManager messaging;
};
Bondi implements MessagingManagerObject;
};
module gallery {
typedef sequence<Gallery> GalleryArray;
typedef sequence<MediaItem> MediaItemArray;
interface GalleryError : GenericError {
const unsigned short GALLERY_OPEN_ERROR = 1;
const unsigned short GALLERY_NOT_OPEN_ERROR = 2;
};
interface GalleryManager {
GalleryArray getGalleries ();
};
interface Gallery {
const unsigned short MEDIA_SORT_NONE = 0;
const unsigned short MEDIA_SORT_BY_FILENAME = 1;
const unsigned short MEDIA_SORT_BY_FILEDATE = 2;
const unsigned short MEDIA_SORT_BY_TYPE = 3;
const unsigned short MEDIA_SORT_BY_TITLE = 20;
const unsigned short MEDIA_SORT_BY_AUTHOR = 21;
const unsigned short MEDIA_SORT_BY_ALBUM = 22;
const unsigned short MEDIA_SORT_BY_DATE = 23;
const unsigned short MEDIA_SORT_ASCENDING = 0;
const unsigned short MEDIA_SORT_DESCENDING = 1;
readonly attribute Map info;
unsigned long getNumberOfMediaItems ()
raises (SecurityError, GalleryError);
PendingOperation open (in SuccessCallback successCallback,
in ErrorCallback errorCallback);
PendingOperation refresh (in SuccessCallback successCallback,
in ErrorCallback errorCallback);
void close ()
raises (DeviceAPIError, GalleryError);
PendingOperation changeView (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in ViewFilter viewOptions);
MediaItemArray getMediaItems ()
raises (SecurityError, DeviceAPIError, GalleryError);
MediaItem getMediaItemById (in unsigned long itemId)
raises (SecurityError, DeviceAPIError, GalleryError);
};
interface MediaItem {
const unsigned short MEDIA_ITEM_TYPE_UNDEFINED = 0;
const unsigned short MEDIA_ITEM_TYPE_AUDIO = 1;
const unsigned short MEDIA_ITEM_TYPE_VIDEO = 2;
const unsigned short MEDIA_ITEM_TYPE_IMAGE = 3;
readonly attribute unsigned long id;
readonly attribute long type;
readonly attribute DOMString mimeType;
readonly attribute DOMString fileName;
readonly attribute Map metadata;
};
[Callback, NoInterfaceObject] interface ViewFilter {
attribute short order;
attribute short primarySortOrder;
attribute short secondarySortOrder;
attribute Date startDate;
attribute Date endDate;
attribute DOMString metaTag;
};
interface GalleryManagerObject {
readonly attribute GalleryManager gallery;
};
Bondi implements GalleryManagerObject;
};
module contact {
typedef sequence<AddressBook> AddressBookArray;
typedef sequence<Contact> ContactArray;
typedef sequence<PhoneNumber> PhoneNumberArray;
typedef sequence<EmailAddress> EmailAddressArray;
typedef sequence<ContactAddress> ContactAddressArray;
[Callback=FunctionOnly, NoInterfaceObject] interface ContactArraySuccessCallback {
void onSuccess (in ContactArray contacts);
};
[Callback=FunctionOnly, NoInterfaceObject] interface AddressBookArraySuccessCallback {
void onSuccess (in AddressBookArray addressbooks);
};
[NoInterfaceObject] interface ContactManager {
PendingOperation getAddressBooks (in AddressBookArraySuccessCallback successCallback,
in ErrorCallback errorCallback);
};
[NoInterfaceObject] interface AddressBook {
const unsigned short SIM_ADDRESS_BOOK = 0;
const unsigned short DEVICE_ADDRESS_BOOK = 1;
readonly attribute unsigned short type;
readonly attribute DOMString name;
Contact createContact ([Optional] in ContactProperties options)
raises (DeviceAPIError);
PendingOperation addContact (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Contact contact);
PendingOperation updateContact (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Contact contact);
PendingOperation deleteContact (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Contact contact);
PendingOperation findContacts (in ContactArraySuccessCallback successCallback,
in ErrorCallback errorCallback,
[Optional] in ContactFilter filter);
};
[NoInterfaceObject] interface Contact : ContactProperties {
readonly attribute DOMString id;
};
[NoInterfaceObject] interface ContactProperties {
attribute DOMString name;
attribute StringArray nicknames;
attribute ContactAddressArray addresses;
attribute DOMString photoURI;
attribute PhoneNumberArray phoneNumbers;
attribute EmailAddressArray emails;
};
[NoInterfaceObject] interface Address {
attribute DOMString country;
attribute DOMString region;
attribute DOMString county;
attribute DOMString city;
attribute DOMString street;
attribute DOMString streetNumber;
attribute DOMString premises;
attribute DOMString additionalInformation;
attribute DOMString postalCode;
};
[NoInterfaceObject] interface PhoneNumber {
attribute DOMString number;
attribute StringArray types;
};
[NoInterfaceObject] interface EmailAddress {
attribute DOMString email;
attribute StringArray types;
};
[NoInterfaceObject] interface ContactAddress : Address {
attribute StringArray types;
};
[NoInterfaceObject] interface ContactFilter : GenericFilter {
};
interface ContactManagerObject {
readonly attribute ContactManager contact;
};
};
module task {
typedef sequence<TaskList> TaskListArray;
typedef sequence<Task> TaskArray;
[Callback=FunctionOnly, NoInterfaceObject] interface TaskArraySuccessCallback {
void onSuccess (in TaskArray tasks);
};
[Callback=FunctionOnly, NoInterfaceObject] interface TaskListArraySuccessCallback {
void onSuccess (in TaskListArray taskLists);
};
[NoInterfaceObject] interface TaskManager {
PendingOperation getTaskLists (in TaskListArraySuccessCallback successCallback,
in ErrorCallback errorCallback);
};
[NoInterfaceObject] interface TaskList {
const unsigned short SIM_TASK_LIST = 0;
const unsigned short DEVICE_TASK_LIST = 1;
readonly attribute unsigned short type;
readonly attribute DOMString name;
Task createTask ([Optional] in TaskProperties options)
raises (DeviceAPIError);
PendingOperation addTask (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Task task);
PendingOperation updateTask (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Task task);
PendingOperation deleteTask (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Task task);
PendingOperation findTasks (in TaskArraySuccessCallback successCallback,
in ErrorCallback errorCallback,
[Optional] in TaskFilter filter);
};
[NoInterfaceObject] interface Task : TaskProperties {
readonly attribute DOMString id;
};
[NoInterfaceObject] interface TaskProperties {
const unsigned short HIGH_PRIORITY = 0;
const unsigned short MEDIUM_PRIORITY = 1;
const unsigned short LOW_PRIORITY = 2;
const unsigned short STATUS_DONE = 0;
const unsigned short STATUS_PENDING = 1;
const unsigned short STATUS_ONGOING = 2;
attribute unsigned short priority;
attribute DOMString note;
attribute DOMString summary;
attribute Date dueDate;
attribute unsigned short status;
};
[NoInterfaceObject] interface TaskFilter : GenericFilter {
};
interface TaskManagerObject {
readonly attribute TaskManager task;
};
};
module calendar {
typedef sequence<Event> EventsArray;
typedef sequence<Calendar> CalendarArray;
[Callback=FunctionOnly, NoInterfaceObject] interface EventsArraySuccessCallback {
void onSuccess (in EventsArray obj);
};
[Callback=FunctionOnly, NoInterfaceObject] interface CalendarArraySuccessCallback {
void onSuccess (in CalendarArray obj);
};
[NoInterfaceObject] interface CalendarManager {
PendingOperation getCalendars (in CalendarArraySuccessCallback successCallback,
in ErrorCallback errorCallback);
};
[NoInterfaceObject] interface Calendar {
const unsigned short SIM_CALENDAR = 0;
const unsigned short DEVICE_CALENDAR = 1;
readonly attribute unsigned short type;
readonly attribute DOMString name;
Event createEvent ([Optional] in EventProperties options)
raises (DeviceAPIError);
PendingOperation addEvent (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Event event);
PendingOperation updateEvent (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Event event);
PendingOperation deleteEvent (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in Event event);
PendingOperation findEvents (in EventsArraySuccessCallback successCallback,
in ErrorCallback errorCallback,
[Optional] in EventFilter filter);
};
[NoInterfaceObject] interface Event : EventProperties {
readonly attribute DOMString id;
};
[NoInterfaceObject] interface EventProperties {
const unsigned short NO_RECURRENCE = 0;
const unsigned short DAILY_RECURRENCE = 1;
const unsigned short WEEKLY_RECURRENCE = 2;
const unsigned short MONTHLY_RECURRENCE = 3;
const unsigned short YEARLY_RECURRENCE = 4;
const unsigned short TENTATIVE_STATUS = 0;
const unsigned short CONFIRMED_STATUS = 1;
const unsigned short CANCELLED_STATUS = 2;
const unsigned short NO_ALARM = 0;
const unsigned short SILENT_ALARM = 1;
const unsigned short SOUND_ALARM = 2;
attribute DOMString description;
attribute DOMString summary;
attribute Date startTime;
attribute Date endTime;
attribute DOMString location;
attribute unsigned short recurrence;
attribute DOMString status;
attribute Date alarmDate;
attribute unsigned long alarmType;
};
[NoInterfaceObject] interface EventFilter : GenericFilter {
};
interface CalendarManagerObject {
readonly attribute CalendarManager calendar;
};
};
module ui {
typedef sequence<MenuItem> Menu;
[Callback=FunctionOnly, NoInterfaceObject] interface WidgetActivateCallback {
void onActivate ();
};
[Callback=FunctionOnly, NoInterfaceObject] interface WidgetDeactivateCallback {
void onDeactivate ();
};
[Callback=FunctionOnly, NoInterfaceObject] interface WidgetKeyPressCallback {
void onKeyPress (in unsigned short keyCode);
};
[Callback=FunctionOnly, NoInterfaceObject] interface WidgetOrientationChangeCallback {
void onOrientationChange ();
};
[Callback=FunctionOnly, NoInterfaceObject] interface WidgetMenuSelectCallback {
void onSelect ();
};
interface UIManager {
const unsigned short LEFT_SOFT_KEY = 0;
const unsigned short RIGHT_SOFT_KEY = 1;
const unsigned short NAVIGATION_CURSOR = 0;
const unsigned short NAVIGATION_TABBED = 1;
const unsigned short INFINITE_DURATION = 0;
const unsigned short ORIENTATION_0 = 0;
const unsigned short ORIENTATION_90 = 90;
const unsigned short ORIENTATION_180 = 180;
const unsigned short ORIENTATION_270 = 270;
readonly attribute Preferences preferences;
attribute boolean isActive
setraises (DeviceAPIError);
attribute unsigned short navigationMode
setraises (DeviceAPIError);
readonly attribute boolean isRotationSupported;
attribute unsigned short displayOrientation;
attribute boolean softKeysVisible
setraises (DeviceAPIError);
attribute boolean statusBarVisible
setraises (DeviceAPIError);
MenuItem getSoftKey (in unsigned short id)
raises (DeviceAPIError);
void setOnActivate (in WidgetActivateCallback handler)
raises (DeviceAPIError);
void setOnDeactivate (in WidgetDeactivateCallback handler)
raises (DeviceAPIError);
void setOnKeyPress (in WidgetKeyPressCallback handler)
raises (DeviceAPIError);
void beep (in unsigned long duration,
in unsigned short frequency);
void startVibrate (in unsigned long duration,
in unsigned short intensity);
void stopVibrate ();
void setOnOrientationChange (in WidgetOrientationChangeCallback handler)
raises (DeviceAPIError);
void lightOn (in unsigned long duration,
in unsigned short intensity,
in boolean fadeIn);
void lightOff (in boolean fadeOut);
Preferences getPreferences ();
};
interface MenuItem {
readonly attribute unsigned long id;
attribute DOMString text;
readonly attribute Menu menuItems;
void setOnMenuSelect (in WidgetMenuSelectCallback handler)
raises (DeviceAPIError);
MenuItem getMenuItemById (in unsigned long id);
MenuItem appendMenuItem (in unsigned long id,
in DOMString text,
in WidgetMenuSelectCallback onSelect)
raises (DeviceAPIError);
void removeMenuItem (in unsigned long id)
raises (DeviceAPIError);
void removeAllMenuItems ();
};
interface Preferences {
attribute unsigned long callRingtoneVolume;
attribute unsigned long messageRingtoneVolume;
attribute boolean isVibrationActive;
void setWallpaper (in DOMString wallpaper)
raises (DeviceAPIError);
void setCallRingtone (in DOMString ringtone)
raises (DeviceAPIError);
void setMessageRingtone (in DOMString ringtone)
raises (DeviceAPIError);
};
interface UIManagerObject {
readonly attribute UIManager ui;
};
Bondi implements UIManagerObject;
};
module pim {
interface Pim {
};
interface PimObject {
readonly attribute Pim pim;
};
Pim implements ContactManagerObject;
Pim implements CalendarManagerObject;
Pim implements TaskManagerObject;
Bondi implements PimObject;
};
module telephony {
typedef sequence<LogEntry> LogEntries;
[Callback=FunctionOnly, NoInterfaceObject] interface LogManagerSuccessCallback {
void onSuccess (in LogEntries obj);
};
interface LogManager {
const unsigned short MISSED_CALLS_FOLDER = 0;
const unsigned short RECEIVED_CALLS_FOLDER = 1;
const unsigned short INITIATED_CALLS_FOLDER = 2;
PendingOperation findLogEntries (in LogManagerSuccessCallback successCallback,
in ErrorCallback errorCallback,
in ShortArray callFolder,
[Optional] in LogFilter filter);
unsigned long getNumberOfCalls (in ShortArray callFolders)
raises (DeviceAPIError);
PendingOperation deleteLogEntry (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in DOMString callID,
in unsigned short folder);
PendingOperation clearLog (in SuccessCallback successCallback,
in ErrorCallback errorCallback,
in unsigned short callFolder);
};
[NoInterfaceObject] interface LogEntry {
readonly attribute DOMString phoneNumber;
readonly attribute Date startTime;
readonly attribute unsigned long duration;
readonly attribute DOMString id;
readonly attribute unsigned short folder;
};
[Callback, NoInterfaceObject] interface LogFilter : GenericFilter {
};
interface LogManagerObject {
readonly attribute LogManager telephonyLog;
};
Bondi implements LogManagerObject;
};