diff --git a/b2g/chrome/content/settings.js b/b2g/chrome/content/settings.js index 8459611668d..7a182a29bc1 100644 --- a/b2g/chrome/content/settings.js +++ b/b2g/chrome/content/settings.js @@ -138,6 +138,11 @@ SettingsListener.observe('language.current', 'en-US', function(value) { Services.prefs.setBoolPref('dom.mms.requestStatusReport', value); }); + SettingsListener.observe('ril.mms.requestReadReport.enabled', true, + function(value) { + Services.prefs.setBoolPref('dom.mms.requestReadReport', value); + }); + SettingsListener.observe('ril.cellbroadcast.disabled', false, function(value) { Services.prefs.setBoolPref('ril.cellbroadcast.disabled', value); diff --git a/dom/mobilemessage/src/gonk/MmsService.js b/dom/mobilemessage/src/gonk/MmsService.js index c619043e97e..9783df0bbc9 100644 --- a/dom/mobilemessage/src/gonk/MmsService.js +++ b/dom/mobilemessage/src/gonk/MmsService.js @@ -952,7 +952,12 @@ function SendTransaction(cancellableId, msg, requestDeliveryReport) { msg.headers["x-mms-message-class"] = "personal"; msg.headers["x-mms-expiry"] = 7 * 24 * 60 * 60; msg.headers["x-mms-priority"] = 129; - msg.headers["x-mms-read-report"] = true; + try { + msg.headers["x-mms-read-report"] = + Services.prefs.getBoolPref("dom.mms.requestReadReport"); + } catch (e) { + msg.headers["x-mms-read-report"] = true; + } msg.headers["x-mms-delivery-report"] = requestDeliveryReport; if (!gMmsTransactionHelper.checkMaxValuesParameters(msg)) { diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index e17ead3078b..43c32e4970f 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -4476,6 +4476,9 @@ pref("dom.mms.defaultServiceId", 0); // Debug enabler for MMS. pref("mms.debugging.enabled", false); +// Request read report while sending MMS. +pref("dom.mms.requestReadReport", true); + // Number of RadioInterface instances to create. pref("ril.numRadioInterfaces", 0);