dom/mobilemessage/src/gonk/MobileMessageDatabaseService.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 "use strict";
     7 const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
     9 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
    10 Cu.import("resource://gre/modules/Services.jsm");
    12 let MMDB = {};
    13 Cu.import("resource://gre/modules/MobileMessageDB.jsm", MMDB);
    15 const RIL_MOBILEMESSAGEDATABASESERVICE_CONTRACTID =
    16   "@mozilla.org/mobilemessage/rilmobilemessagedatabaseservice;1";
    17 const RIL_MOBILEMESSAGEDATABASESERVICE_CID =
    18   Components.ID("{29785f90-6b5b-11e2-9201-3b280170b2ec}");
    20 XPCOMUtils.defineLazyServiceGetter(this, "gDiskSpaceWatcher",
    21                                    "@mozilla.org/toolkit/disk-space-watcher;1",
    22                                    "nsIDiskSpaceWatcher");
    24 const DB_NAME = "sms";
    26 /**
    27  * MobileMessageDatabaseService
    28  */
    29 function MobileMessageDatabaseService() {
    30   // Prime the directory service's cache to ensure that the ProfD entry exists
    31   // by the time IndexedDB queries for it off the main thread. (See bug 743635.)
    32   Services.dirsvc.get("ProfD", Ci.nsIFile);
    34   let mmdb = new MMDB.MobileMessageDB();
    35   mmdb.init(DB_NAME, 0, mmdb.updatePendingTransactionToError.bind(mmdb));
    36   mmdb.isDiskFull = function() {
    37     return gDiskSpaceWatcher.isDiskFull;
    38   };
    39   this.mmdb = mmdb;
    40 }
    41 MobileMessageDatabaseService.prototype = {
    43   classID: RIL_MOBILEMESSAGEDATABASESERVICE_CID,
    44   QueryInterface: XPCOMUtils.generateQI([Ci.nsIRilMobileMessageDatabaseService,
    45                                          Ci.nsIMobileMessageDatabaseService,
    46                                          Ci.nsIObserver]),
    48   /**
    49    * MobileMessageDB instance.
    50    */
    51   mmdb: null,
    53   /**
    54    * nsIObserver
    55    */
    56   observe: function() {},
    58   /**
    59    * nsIRilMobileMessageDatabaseService API
    60    */
    62   saveReceivedMessage: function(aMessage, aCallback) {
    63     this.mmdb.saveReceivedMessage(aMessage, aCallback);
    64   },
    66   saveSendingMessage: function(aMessage, aCallback) {
    67     this.mmdb.saveSendingMessage(aMessage, aCallback);
    68   },
    70   setMessageDeliveryByMessageId: function(aMessageId, aReceiver, aDelivery,
    71                                           aDeliveryStatus, aEnvelopeId,
    72                                           aCallback) {
    73     this.mmdb.updateMessageDeliveryById(aMessageId, "messageId", aReceiver,
    74                                         aDelivery, aDeliveryStatus,
    75                                         aEnvelopeId, aCallback);
    76   },
    78   setMessageDeliveryStatusByEnvelopeId: function(aEnvelopeId, aReceiver,
    79                                                  aDeliveryStatus, aCallback) {
    80     this.mmdb.updateMessageDeliveryById(aEnvelopeId, "envelopeId", aReceiver,
    81                                         null, aDeliveryStatus, null, aCallback);
    82   },
    84   setMessageReadStatusByEnvelopeId: function(aEnvelopeId, aReceiver,
    85                                              aReadStatus, aCallback) {
    86     this.mmdb.setMessageReadStatusByEnvelopeId(aEnvelopeId, aReceiver,
    87                                                aReadStatus, aCallback);
    88   },
    90   getMessageRecordByTransactionId: function(aTransactionId, aCallback) {
    91     this.mmdb.getMessageRecordByTransactionId(aTransactionId, aCallback);
    92   },
    94   getMessageRecordById: function(aMessageId, aCallback) {
    95     this.mmdb.getMessageRecordById(aMessageId, aCallback);
    96   },
    98   translateCrErrorToMessageCallbackError: function(aCrError) {
    99     return this.mmdb.translateCrErrorToMessageCallbackError(aCrError);
   100   },
   102   saveSmsSegment: function(aSmsSegment, aCallback) {
   103     this.mmdb.saveSmsSegment(aSmsSegment, aCallback);
   104   },
   106   /**
   107    * nsIMobileMessageDatabaseService API
   108    */
   110   getMessage: function(aMessageId, aRequest) {
   111     this.mmdb.getMessage(aMessageId, aRequest);
   112   },
   114   deleteMessage: function(aMessageIds, aLength, aRequest) {
   115     this.mmdb.deleteMessage(aMessageIds, aLength, aRequest);
   116   },
   118   createMessageCursor: function(aFilter, aReverse, aCallback) {
   119     return this.mmdb.createMessageCursor(aFilter, aReverse, aCallback);
   120   },
   122   markMessageRead: function(aMessageId, aValue, aSendReadReport, aRequest) {
   123     this.mmdb.markMessageRead(aMessageId, aValue, aSendReadReport, aRequest);
   124   },
   126   createThreadCursor: function(aCallback) {
   127     return this.mmdb.createThreadCursor(aCallback);
   128   }
   129 };
   131 this.NSGetFactory = XPCOMUtils.generateNSGetFactory([MobileMessageDatabaseService]);

mercurial