d2feaf918ab0c1173d4ada182532e48d0c0d3f77 |
|
31-Oct-2013 |
Wink Saville <wink@google.com> |
When phone changes update InBoundSmsHandlers and CellBroadcastHandlers. Without this change for devices where the phone can change, for instance on N5 with Sprint the phone will change from a GSMPhone to a CDMALTEPhone and messages will not be sent to the appropriate handler. For Sprint this was most readily seen when the voice mail notification wasn't sent to the notification manager. Bug: 11254397 Change-Id: Ia0e764cf6fa04208a7e194a35435f251a177309f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|
5bc59fe360f396811723ce8f0fbb462504edda2a |
|
17-Oct-2013 |
David Braun <dabraun@google.com> |
Do not allow SMS event receivers to abort the broadcast This prevent apps from aborting the SMS related broadcasts so that all apps interested in seeing them will now receive the broadcast. Bug: 11259375 Do not allow apps to abort SMS/MMS broadcasts Change-Id: I2620899b580b8861efebcc39408c875b4033cc53
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|
5c3b6658d82f3af57161d5a34385dd95ea0f1abb |
|
16-Sep-2013 |
David Braun <dabraun@google.com> |
Implement new method for handling SMS/MMS on the platform Multi project change: The changes in this project implement the actual change in the SMS related intent behavior (defining and using the new events). Bug: 10449618 Change-Id: Ia707ed561d89428db78203a2ed54504d867a3e43
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|
8b61e10b480d3a7bae41025a97f3bd27ee5ed610 |
|
11-Sep-2013 |
Jake Hamby <jhamby@google.com> |
Fix receiving multi-part CDMA WAP messages. Fix ArrayIndexOutOfBoundsException in CDMA WAP message handling. Add a new flag to raw DB table to indicate 3GPP2 WAP PDU messages. Use the new flag to return the correct value for getIndexOffset() in InboundSmsTracker. Previously this only worked correctly for single-segment WAP PDUs of type WAP push. Bug: 10595053 Change-Id: I8820da124e8fa4707cbee0398690a475d26ff702
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|
90271d9ef1377b25b78359039fb2e87f32aba25b |
|
04-Sep-2013 |
Sungmin Choi <sungmin.choi@lge.com> |
sms: Add exception code instead of low memory status Add exceptoin code, after receiving Duplicated SMS. Bug: 10484923 Change-Id: Ic9465adeb8a09d11fdd2e5b35108410baf56a2fc Signed-off-by: daehun.ju <daehun.ju@lge.com> Signed-off-by: Sungmin Choi <sungmin.choi@lge.com>
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|
0d4bcdf379842af4b6304809156971e926f374f0 |
|
18-Mar-2013 |
Jake Hamby <jhamby@google.com> |
Refactor inbound (MT) SMS handling into new handler classes. Moved all MT SMS handling to separate StateMachine classes, which save all incoming PDUs in the SmsProvider "raw" table, previously used only for storing PDUs of concatenated messages. Then we ACK the message, before starting the ordered broadcast as usual. If a receiver of the broadcast sets the status to failure, we ignore it, but in the future we could provide a mechanism to redeliver the broadcast. New classes are (without com.android.internal.telephony prefix): - CellBroadcastHandler - InboundSmsHandler - InboundSmsTracker - SmsBroadcastUndelivered - WakeLockStateMachine - cdma.CdmaInboundSmsHandler - cdma.CdmaServiceCategoryProgramHandler - gsm.GsmCellBroadcastHandler - gsm.GsmInboundSmsHandler This fixes a bug in the SMS dispatcher. Previously we delivered incoming SM's as ordered broadcasts and then sent an acknowledgment to the SMSC after the broadcast completed. It was possible for the ordered broadcast to take over 20 seconds to complete, causing SMS retransmissions because we didn't ACK quickly enough. Also, a broadcast receiver could set the result code to failure (the AOSP MMS app never does this), causing us to negatively acknowledge the SMS, potentially leading to many retries and a backlog on the SMSC. The reason for saving all PDUs in the raw table before ACKing is so InboundSmsHandler can handle the failure case of a device crash or power failure in between ACKing the message and the delivery of the ordered broadcast to receivers. This is handled when the Phone class starts, creating a new thread to run SmsBroadcastUndelivered. This Runnable scans the raw table once, finding all complete PDUs and sending IncomingSmsTrackers to the state machine to broadcast them again to receivers. In the worst case, a message might be added twice to the MMS inbox, but it won't be lost. However, due to the current MMS app implementation, which immediately acknowledges the ordered broadcast before starting a new Service to process the message, there is a very short window of time when a message could potentially be lost, if the MMS app or device crashed after the ordered broadcast returns and the message is deleted from the raw table, but before the MMS service has added the message to its own tables. To fix this will probably require API changes. Another improvement from this change: SmsBroadcastUndelivered also deletes PDUs for incomplete multipart messages that are older than 30 days. We've never garbage collected this table in the past, so it's possible for a phone to accumulate a number of old PDUs in the raw table if not all components arrived successfully. The wake lock handling is also improved in this version, as we now acquire a wakelock when the state machine leaves the Idle state, releasing it 3 seconds after returning to the idle state, instead of the previous 5-second timeout. If a new SMS arrives while a broadcast is being delivered, we add it to the raw table and ACK the new PDU immediately, then send the InboundSmsTracker as a message to handle when the previous broadcast completes. In order to keep track of whether a PDU is in 3GPP or 3GPP2 format, the destination port column of the raw table is extended with three flags: 3GPP format, 3GPP2 format, and no destination port present. Because the destination port is a 16-bit value in both 3GPP and 3GPP2, the upper bits of the destination port can be used for flags. This saves us from having to modify the SMS provider to update the DB version and to add extra columns to keep track of these flags. Bug: 7099232 Change-Id: Ibbc01ccb83320f4b6112fe3dd31355eb6f570b67
/frameworks/opt/telephony/src/java/com/android/internal/telephony/InboundSmsHandler.java
|