NS_IMETHODIMP SmsParent::Observe(nsISupports* aSubject, const char* aTopic, const char16_t* aData) { if (!strcmp(aTopic, kSmsReceivedObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-received' topic without a valid message!"); return NS_OK; } unused << SendNotifyReceivedMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsRetrievingObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-retrieving' topic without a valid message!"); return NS_OK; } unused << SendNotifyRetrievingMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsSendingObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sending' topic without a valid message!"); return NS_OK; } unused << SendNotifySendingMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsSentObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sent' topic without a valid message!"); return NS_OK; } unused << SendNotifySentMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsFailedObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-failed' topic without a valid message!"); return NS_OK; } unused << SendNotifyFailedMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsDeliverySuccessObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sending' topic without a valid message!"); return NS_OK; } unused << SendNotifyDeliverySuccessMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsDeliveryErrorObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-delivery-error' topic without a valid message!"); return NS_OK; } unused << SendNotifyDeliveryErrorMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSilentSmsReceivedObserverTopic)) { nsCOMPtr<nsIDOMMozSmsMessage> smsMsg = do_QueryInterface(aSubject); if (!smsMsg) { return NS_OK; } nsString sender; if (NS_FAILED(smsMsg->GetSender(sender)) || !mSilentNumbers.Contains(sender)) { return NS_OK; } MobileMessageData msgData = static_cast<SmsMessage*>(smsMsg.get())->GetData(); unused << SendNotifyReceivedSilentMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsReadSuccessObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-read-success' topic without a valid message!"); return NS_OK; } unused << SendNotifyReadSuccessMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsReadErrorObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-read-error' topic without a valid message!"); return NS_OK; } unused << SendNotifyReadErrorMessage(msgData); return NS_OK; } return NS_OK; }
NS_IMETHODIMP SmsParent::Observe(nsISupports* aSubject, const char* aTopic, const PRUnichar* aData) { if (!strcmp(aTopic, kSmsReceivedObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-received' topic without a valid message!"); return NS_OK; } unused << SendNotifyReceivedMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsRetrievingObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-retrieving' topic without a valid message!"); return NS_OK; } unused << SendNotifyRetrievingMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsSendingObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sending' topic without a valid message!"); return NS_OK; } unused << SendNotifySendingMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsSentObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sent' topic without a valid message!"); return NS_OK; } unused << SendNotifySentMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsFailedObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-failed' topic without a valid message!"); return NS_OK; } unused << SendNotifyFailedMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsDeliverySuccessObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-sending' topic without a valid message!"); return NS_OK; } unused << SendNotifyDeliverySuccessMessage(msgData); return NS_OK; } if (!strcmp(aTopic, kSmsDeliveryErrorObserverTopic)) { MobileMessageData msgData; if (!GetMobileMessageDataFromMessage(aSubject, msgData)) { NS_ERROR("Got a 'sms-delivery-error' topic without a valid message!"); return NS_OK; } unused << SendNotifyDeliveryErrorMessage(msgData); return NS_OK; } return NS_OK; }