History log of /frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e7c29ee85e324289d247d6e28a8c1a216c3658c4 19-Dec-2016 Amit Mahajan <amitmahajan@google.com> Client (framework) side HAL changes for RIL unsolicited responses.

Test: WIP
Bug: 32020264
Change-Id: I94300f56cd46bdad81271cb44113bcc72591394f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
5eccb26b2bcf3a51326596e1b0bb49b073d2f9fc 23-Feb-2016 Abhijith Shastry <ashastry@google.com> Suppress blocks after texting emergency services.

BUG: 26989170
Change-Id: I73216e5c433ba4ffb613d88b1d3fe3c81f3acba9
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
5d5ca33a24e6b73a48b575a0e1a5e790784d0bb7 27-Jan-2016 Amit Mahajan <amitmahajan@google.com> Unit test for CdmaSmsDispatcher

Bug: 25691379
Change-Id: I9d4f209ad1a20435ae8841e5f15ce8a94b52fa42
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
1a87ab3d7170d618f048c4f5af8c7504a587aaa5 10-Dec-2015 Jack Yu <jackyu@google.com> Merge from master

Change-Id: Ifbd86600111d2c444031ff608fab62fb2ee4b236
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
a8f8c5a113a66de4854f4fb13a5825eb0705bd59 23-Jul-2015 Ji Yang <yangji@google.com> Add API to let carrier app send SMS without auto persisting.

Bug: 22773702
Change-Id: Ib126e79b0d1e2f9a9a44afe2b3f1895c150bd86b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
52a98d0a37731f48a316bc79fbc2c5a0f00a5e58 27-Jan-2015 Ye Wen <ywen@google.com> Fix regression that stores data SMS automatically

A previous CL (ag/586092) accidentally auto persists data SMS sent by
non-default SMS app (which should only do that for text SMS).

b/19150134

Change-Id: I2f907b22aea2ce01bae3455a656f0e5a31978328
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
8215559cd1141ac90c478fd3df75e43c9d755c6c 01-Nov-2014 Cheuksan Wang <edwang@google.com> Use the AIDL based API to communicate with the carrier app.

Implements SMS sending.

BUG: 18005911

Change-Id: I467036b59b51905532e7ce1591dcb2e2856ef2d3
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
4bd1dec4138ac11a91a8ec606a27fc4c5c63f14b 12-Nov-2014 Ye Wen <ywen@google.com> Stop persisting SMS into OUTBOX before sending

Persisting SMS into OUTBOX before sending proved to cause
problems with Messaging app (and potentially other apps) that could try
sending messages in OUTBOX without being asked as manifested in bug
b/18155366. This CL only presists SMS after it is being sent.

b/18202414

Change-Id: Ie0d0e088549bf0853b364e4d33eed2a5d79a7758
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
6ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7 24-Sep-2013 Chaitanya Saggurthi <csaggurt@codeaurora.org> Send SMS using RIL_REQUEST_SEND_SMS_EXPECT_MORE

1) New commandinterface API sendSMSExpectMore to send sms using
ril request RIL_REQUEST_SEND_SMS_EXPECT_MORE.
2) sendSMSExpectMore API to send multisegment sms pdu's except
last pdu in GSM. In case of retry use sendSms even for
multi segment message, because don't know how many
segments are failed to send

Bug: 17570854
Change-Id: Icfc200a9c9c5940f0e10668b4385d1633a6c943b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
78d39a9fab86a26f4f39585af5cfe2a07c756fce 30-Jul-2014 Shishir Agrawal <shishir@google.com> For long SMS pass SMS header concat ref details to the carrier app.

For Long SMS, either all the SMSes need to be sent by the carrier app or none.
To do this the carrier app needs to know information about the segmentation of
the message.

BUG: 16653081

Change-Id: I659ceafcbf93b3a88405174d4503b9eb30ad2764
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
a0c22039b77054d659151537896c1db90c7057f7 22-Jul-2014 Shishir Agrawal <shishir@google.com> Make SMS outbound over carrier app work in airplane mode over WIFI.

Also fixes a security bug where an outbound message could be delivered to any
app, not just the carrier app for delivery.

Change-Id: Ic395b9340d88e5f00e38636f821bb5e2da89cddf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
f1aeeb51f2c62420012122e0ccc75b3940c570e4 15-Jul-2014 Ye Wen <ywen@google.com> Messaging auto persist switch (2/4)

b/14095333

Change-Id: I9dccdadd72d951d86f83cb7adea9b2f09fad08ce
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
c9394399180abbc32d04f6a3652ce22d5931e0b8 14-Jul-2014 Shishir Agrawal <shishir@google.com> Protecting messagings APIs for carrier access.

APIs protected by this CL:
- SMS injection.
- SMS filtering.
- SMS outbound broadcast.
- SMS outbound broadcast result.

Also moved much of the carrier checking logic from PhoneInterfaceManager to
the UiccCarrierPrivilegeRules for reusability.

BUG=15993876

Change-Id: I8309a1de23426dcc66a10383335cff9242920410
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
b29851580bba4a13ddbf7a534d8b09295eb2c60f 10-Jul-2014 Ye Wen <ywen@google.com> New SMS and MMS APIs and semantics (2/4)

1. Rest of the new SMS and MMS APIs
2. Auto persisting MMS WAP Push
3. Partial multi-sim support
4. New SMS/MMS database columns: archived and creator
5. Record message creator
6. Mms config access APIs

b/14095333

Change-Id: Idb0ab75384b2c949f1a6ebe8f1c33e90a06a4d9b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
cafda9904d2804959d51697cdc63a185e687cb98 12-Jul-2014 Colin Cross <ccross@google.com> Revert "New SMS and MMS APIs and semantics (2/4)"

This reverts commit c5f9236283882b8e08390ac52e5b1fab2d3bc2fb.

Change-Id: I9585dabfc31611e68718859ea509b8f52535d9b5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
c5f9236283882b8e08390ac52e5b1fab2d3bc2fb 10-Jul-2014 Ye Wen <ywen@google.com> New SMS and MMS APIs and semantics (2/4)

1. Rest of the new SMS and MMS APIs
2. Auto persisting MMS WAP Push
3. Partial multi-sim support
4. New SMS/MMS database columns: archived and creator
5. Record message creator
6. Mms config access APIs

b/14095333

Change-Id: I9a4261753a803f520933b643c0bac708ab9f40a9
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
c99dab56e20222b28cbc6238645feac938f1c333 20-Jun-2014 Ye Wen <ywen@google.com> SMS message auto persisting for sending

1. Added auto persisting when sending SMS messages. This feature is
enabled by a system property to avoid breaking existing apps.
2. Removed SMSDispatcher.mRemainingMessages and added per message
sending part count for sending multipart messages.
3. Refactored code to handle message sent or failed. Fixed bug that in
some situation SendNextMsg is not sent for failures.

Change-Id: I3298b139e484f1238a5c04dcc39fa88398bba679
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
d6bf802a1afd6dbd99b35804ec0ec565f2ac8e9e 23-Jun-2014 Cheuksan Wang <edwang@google.com> Merge "Send outbound messages via the default carrier app. Initially, the message will go into a pending state. There is a new API call to update the status of a message. If the carrier app cannot send the message, it will fall back to the default GSM/CDMA network."
8d8e8f45200d17b78d196d8cba389fd9c547ac11 21-Jun-2014 Cheuksan Wang <edwang@google.com> Send outbound messages via the default carrier app. Initially, the
message will go into a pending state. There is a new API call to
update the status of a message. If the carrier app cannot send the
message, it will fall back to the default GSM/CDMA network.

This is the same cl as 476721 which has already been approved by jsh@

Change-Id: I51d732b9cc40b371f77fd26d28e0836a466afc71
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
d498f853cb523efef7bd06629e222ea105104b11 20-Jun-2014 Ji Yang <yangji@google.com> Merge "Sorry, clicked the wrong button."
f653f91baeb35b18a47c8f80b6ca1b1361dea238 20-Jun-2014 Ji Yang <yangji@google.com> Sorry, clicked the wrong button.

Revert "Send outbound message via the default carrier app. Initially, the message will go into a pending state. There is a new API call to update the status of a message. If the carrier app cannot send the message, it will fall back to the default GSM/CDMA networ"

This reverts commit 112c36a6080b6902925d317218acc14183e29842.

Change-Id: I087672cf17551bcef438df30e97e8859e1060a2a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
7fac90e635330be124a709db5774b71ff3892348 20-Jun-2014 Ji Yang <yangji@google.com> Merge "Send outbound message via the default carrier app. Initially, the message will go into a pending state. There is a new API call to update the status of a message. If the carrier app cannot send the message, it will fall back to the default GSM/CDMA network."
112c36a6080b6902925d317218acc14183e29842 30-May-2014 Cheuksan Wang <edwang@google.com> Send outbound message via the default carrier app. Initially, the
message will go into a pending state. There is a new API call to
update the status of a message. If the carrier app cannot send the
message, it will fall back to the default GSM/CDMA network.

Change-Id: I12e4c16ee1f934561c453e125805d59a151271b4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
91f8e19cdafe6382ec1469167e208e2e928123cc 13-Jun-2014 Wink Saville <wink@google.com> Merge "Merge kwd to master"
a8467dd0c524787104b1ccdddc5e8af10ba729ed 13-Jun-2014 Wink Saville <wink@google.com> Merge kwd to master

Change-Id: Idb607c0aa32f80fe4fe1539aedea7a221e9e7f04
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
63418bbd2a9d7cc88ae24cc5ae776c01d688fc3a 03-Jun-2014 Anil Muthineni <anilmuthineni@google.com> Add api to inject SMS PDUs

Change-Id: I58a518a7a6d6f43fef3d989bc0c8b21959404ed0
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
ace9a749c5a2a5e07527f728b7331423d16c36cd 30-Oct-2013 Sukanya Rajkhowa <srajkh@codeaurora.org> SMS over IMS bug fixes

This change includes the following:
1) SMS over IMS remaining patches which address review comments

2) Fix for Bug:11378993
For MT SMS over IMS, if an application uses the createFromPdu(byte[] pdu) API
instead of createFromPdu(byte[] pdu,String format) API, we first try to create
SmsMessage from raw PDU with the format of active phone. That either returns a
valid SmsMessage object or throws a RuntimeException causing the correct format
to be used the next time. If GsmSmsAddress is not valid, we should throw
a RuntimeException which is handled by createFromPdu(byte[] pdu)

3) Fix for Bug:11424054
Register for ICC changes and handle new SMS on ICC

Bug: 11378993, 11424054
Change-Id: I94bcfcf93d8205c2916997091617899c6ebdd5e5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
0217e2d6e60f7edd95407c7b385a627da9f1c1e3 17-Oct-2013 David Braun <dabraun@google.com> Persist SMS messages sent by other than the default SMS app

Bug: 11256715 SmsManger.sendTextMessage() and SmsManager.sendMultiPartTextMessage() need to store the message in SmsProvider if called from non-default SMS app
Change-Id: I9f08435edd767f39863d018d59ec1d44e3d2128b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
1260f1c6c909f2940989b72afe1b91fd83845eaa 14-Sep-2013 Sukanya Rajkhowa <srajkh@codeaurora.org> Support SMS over IMS

ImsSMSDispatcher is part of IccSmsInterfaceManager.
It always receives calls to send sms first and decides
whether to use ims call flow or gsm/cdma based on response
to REQUEST_IMS_REGISTRATION_STATE.

When ims is registered and sms is supported, the request also returns
sms format to use.

In case of sms over ims failure, RIL_REQUEST_IMS_SEND_SMS sets
messageRef from RIL_SMS_RESPONSE of corresponding failed MO SMS, and
sets retry field to non-zero. If voice is available, sends
RIL_REQUEST_IMS_SEND_SMS retries with data encoded based on voice tech
available. If voice is not available, sets retry counter to max and
skips retries and sends failure to client.

Bug: 9626411

Change-Id: I4c63c8fc0eb2191847b509e66772e3de27d491ed
Signed-off-by: Ed Tam <etam@google.com>

Conflicts:
src/java/com/android/internal/telephony/gsm/GSMPhone.java
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.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/gsm/GsmSMSDispatcher.java
5a176f73dbb2bff2ca8b8f86af86a17be6863b87 11-Mar-2013 Wink Saville <wink@google.com> Merge commit '958e7316' into fix-merge-conflict

* commit '958e7316':
Telephony: Set TP-RD to 1 in case of retry

Change-Id: I298e588b1076686e2c7c4b3714b46d2637b04079
454c5783e7695feec276325920550b2d4dcc3e16 07-Jun-2012 Rika Brooks <rbrooks@codeaurora.org> Telephony: Set TP-RD to 1 in case of retry

per TS 23.040 Section 9.2.3.6: In the case where no response or an
RP-ERROR with an appropriate cause value (see 3GPP TS 24.011 [13]) is
received in response to an SMS-SUBMIT, then the MS shall automatically
repeat the SMS-SUBMIT but must use the same TP-MR value
and set the TP-RD bit to 1 (see 9.2.3.25)

Bug: 8323645
Change-Id: I1c7ebc67f80a6eeba456ab0dc5f6331a038d7ab2
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
22d85a8e3a575a6d01d2c788587971657dfe20c6 23-Feb-2013 Wink Saville <wink@google.com> Clean up member variables.

Change-Id: Ib60f350131ade626aca682407ea0b4377b16f6c6
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
cbaa45bbf2cab852b6c9c3a887e9f803d4e857ea 23-Feb-2013 Wink Saville <wink@google.com> Clean up

- Add @Overrides where needed.
- Update javadoc comments
- Remove extra semi-colons
- Rename DataConnection.java to DataConnectionBase.java
- Rename GsmDataConnection.java to DataConnection.java
- Add defaults to switch statements
- Remove/fix most "if (false)" statements. Fixed by using a CONSTANT
- Fix hidden variables by hoisting to base class or renaming
- Tweak some debug output

Change-Id: If38de2fdeaacafbf40cdfd7f84dc5c52030ba2a3
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
d720945f2be5ea5fe0faf67e67d9ea0e184eba67 01-Aug-2012 Alex Yakavenka <ayakav@codeaurora.org> Telephony: Move uicc classes into uicc package

Reduce constructor visibility to package where
possible

Dependent Changes:
I3b718b9aea1f21c7906c8243b4ca0db6af495a08
I80204a2f3dc57cac875abeab390bb9db7a636ff7
Ib9c19e8b157dc7ec74eb14baca5bd3b5caf08c47

Change-Id: Ib4f43374c041cb5eaf2e3883e5ea28b2eb2c9a69
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
ded9c0af7fa49504c047275ed34c2d3b22bf0c3a 07-Dec-2012 Wink Saville <wink@google.com> Use Rlog

Change-Id: Ie013f51215de8380b8de74161b6056b010711cfd
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
0fd49b6b31960a768702d202a066b1088ec489a1 15-Aug-2012 Alex Yakavenka <ayakaven@codeaurora.org> Telephony: Fix LTE CB Sms for dual-mode devices

Ignore 3gpp location information when it is not available.
This is required to support dual-mode devices such as CDMA/LTE devices
that require support for both 3GPP and 3GPP2 format messages.

Change-Id: Ie5d6372ef7e8da6893800e05a83ba840b7fd31f6
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
c38bb60d867c5d61d90b7179a9ed2b2d1848124f 12-Jul-2012 Wink Saville <wink@google.com> Create telephony-common - DO NOT MERGE

telephony-common was created by moving some of
frameworks/base/telephony
to:
frameworks/opt/telephony

Change-Id: I32cbb5eec1fa239c1587e055c8f7ef4fc48fb62c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java