зеркало из https://github.com/mozilla/gecko-dev.git
Bug 943350 - [B2G][DSDS] Gecko needs to properly download MMS for non-active SIM (follow-up fix). r=vicamo
This commit is contained in:
Родитель
0b34dbba67
Коммит
7ba509dc4d
|
@ -1431,7 +1431,8 @@ MmsService.prototype = {
|
|||
* @param intermediate
|
||||
* Intermediate MMS message parsed from PDU.
|
||||
*/
|
||||
convertIntermediateToSavable: function convertIntermediateToSavable(mmsConnection,
|
||||
convertIntermediateToSavable:
|
||||
function convertIntermediateToSavable(mmsConnection,
|
||||
intermediate,
|
||||
retrievalMode) {
|
||||
intermediate.type = "mms";
|
||||
|
@ -1682,7 +1683,8 @@ MmsService.prototype = {
|
|||
/**
|
||||
* Callback for saveReceivedMessage.
|
||||
*/
|
||||
saveReceivedMessageCallback: function saveReceivedMessageCallback(mmsConnection,
|
||||
saveReceivedMessageCallback:
|
||||
function saveReceivedMessageCallback(mmsConnection,
|
||||
retrievalMode,
|
||||
savableMessage,
|
||||
rv,
|
||||
|
@ -1706,21 +1708,13 @@ MmsService.prototype = {
|
|||
|
||||
this.broadcastReceivedMessageEvent(domMessage);
|
||||
|
||||
// In the roaming environment, we send notify response only for the
|
||||
// automatic retrieval mode.
|
||||
if ((retrievalMode !== RETRIEVAL_MODE_AUTOMATIC) &&
|
||||
// To avoid costing money, we only send notify response when it's under
|
||||
// the "automatic" retrieval mode or it's not in the roaming environment.
|
||||
if (retrievalMode !== RETRIEVAL_MODE_AUTOMATIC &&
|
||||
mmsConnection.isVoiceRoaming()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Under the "automatic" retrieval mode, for the non-active SIM, we have to
|
||||
// download the MMS as if it is downloaded by the "manual" retrieval mode.
|
||||
if ((retrievalMode == RETRIEVAL_MODE_AUTOMATIC ||
|
||||
retrievalMode == RETRIEVAL_MODE_AUTOMATIC_HOME) &&
|
||||
mmsConnection.serviceId != this.mmsDefaultServiceId) {
|
||||
retrievalMode = RETRIEVAL_MODE_MANUAL;
|
||||
}
|
||||
|
||||
if (RETRIEVAL_MODE_MANUAL === retrievalMode ||
|
||||
RETRIEVAL_MODE_NEVER === retrievalMode) {
|
||||
let mmsStatus = RETRIEVAL_MODE_NEVER === retrievalMode
|
||||
|
@ -1777,14 +1771,30 @@ MmsService.prototype = {
|
|||
retrievalMode = Services.prefs.getCharPref(kPrefRetrievalMode);
|
||||
} catch (e) {}
|
||||
|
||||
// Under the "automatic"/"automatic-home" retrieval mode, we switch to
|
||||
// the "manual" retrieval mode to download MMS for non-active SIM.
|
||||
if ((retrievalMode == RETRIEVAL_MODE_AUTOMATIC ||
|
||||
retrievalMode == RETRIEVAL_MODE_AUTOMATIC_HOME) &&
|
||||
serviceId != this.mmsDefaultServiceId) {
|
||||
if (DEBUG) {
|
||||
debug("Switch to 'manual' mode to download MMS for non-active SIM: " +
|
||||
"serviceId = " + serviceId + " doesn't equal to " +
|
||||
"mmsDefaultServiceId = " + this.mmsDefaultServiceId);
|
||||
}
|
||||
|
||||
retrievalMode = RETRIEVAL_MODE_MANUAL;
|
||||
}
|
||||
|
||||
let mmsConnection = gMmsConnections.getConnByServiceId(serviceId);
|
||||
|
||||
let savableMessage = this.convertIntermediateToSavable(mmsConnection,
|
||||
notification,
|
||||
retrievalMode);
|
||||
|
||||
gMobileMessageDatabaseService
|
||||
.saveReceivedMessage(savableMessage,
|
||||
this.saveReceivedMessageCallback.bind(this,
|
||||
this.saveReceivedMessageCallback
|
||||
.bind(this,
|
||||
mmsConnection,
|
||||
retrievalMode,
|
||||
savableMessage));
|
||||
|
|
Загрузка…
Ссылка в новой задаче