History log of /frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ce06370fc58f59abda3cb072326e9425da3d755d 13-Nov-2013 Wink Saville <wink@google.com> Telephony: unchange SIM info from CDMAPhone when SIM exists

This change is to prevent for updating the properties of 3GPP SIM
from the CDMAPhone when the 3GPP SIM exists on the card.

Bug: 11189478
Bug: 11360679
Change-Id: If849f8e0d6d6a1750cae045e35f3f92d73db4a20
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.java
6651da75a59ee54f154b2a82c76392a3385108bb 02-Apr-2013 Robert Greenwalt <rgreenwalt@google.com> Merge "make new API to retrieve group identifier level1" into jb-mr2-dev
c6bbea82bf74ebb492508199b6f3e172b7ce860a 28-Mar-2013 Wink Saville <wink@google.com> Map DcConstants.RETRYING to PhoneConstants.State.DISCONNECTED.

Previously RETRYING was mapped to CONNECTING this means that
ConnectivityService will not remove the route and a subsequent
change in IP addresses won't work because an old route has not
been removed.

By mapping to DISCONNECTED ConnectivityService will remove the
route. Another alternative would be to add PhoneConstants.State.RETRYING
but this is a simpler change so we'll try it first.

Bug: 8486114
Change-Id: I1c9946a1e441feda83f13730e835445624a87218
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
0e4abef0d7e978d4c3dea5199f451a1c69158d03 21-Mar-2013 Sungmin Choi <sungmin.choi@lge.com> make new API to retrieve group identifier level1

For mvno, user can add or edit mvno data field. To pre-provide
the mvno data of the edited apn when the user selects one of
the mvno types, need to support IMSI, SPN, and GID1 data.
To support GID1, make API to retrieve group identifier level1.

bug:6445254
Change-Id: I1bc280054cc7cd37e78a279866cefd62872a19fb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
454b1dfd508844b42eb775e4ab2359be74d3672b 23-Mar-2013 Wink Saville <wink@google.com> Rename a few files and variables.

Change-Id: I4e90dbf57797b9485920f943e24fa7a4c29d070b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6a 22-Mar-2013 Wink Saville <wink@google.com> Move retrying into DC.

This is the first step in refactoring for bug 4772191.

Bug: 4772191
Change-Id: Id54a20ab192783c63939158670faaf531a527640
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.java
1d272b4f018e5d7a0f70b70d76398c20d33e234b 12-Dec-2012 Robert Greenwalt <rgreenwalt@google.com> Merge "Remove unused INITING state."
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/cdma/CDMALTEPhone.java
ded9c0af7fa49504c047275ed34c2d3b22bf0c3a 07-Dec-2012 Wink Saville <wink@google.com> Use Rlog

Change-Id: Ie013f51215de8380b8de74161b6056b010711cfd
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
13cf7e43f92022a7bb71950b388805c60726589f 06-Dec-2012 Robert Greenwalt <rgreenwalt@google.com> Remove unused INITING state.

Change-Id: I56dd80988a064836f9171021f57a7bbf367090c8
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
99c2e1d6749cfad2a8ca94a47857d8c3bfc09454 27-Nov-2012 Wink Saville <wink@google.com> Use Rlog instead of Log.

Change-Id: I2f44193b294513e743526e5c163e7d9a45308b28
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
e287feac673ff68565b766e0e463d105fa9cef9d 10-Jul-2012 Alex Yakavenka <ayakav@codeaurora.org> Telephony: Remove CdmaLteUicc objects

-Pass IccCard object to GsmMmiCode
-Create IccCardProxy
-Make IccCard an interface and pass instance of IccCardProxy to
external applications (PhoneApp). IccCardProxy will use internal
UiccCard to map Icc requests to current active application on
UiccCard to maintain backwards compatibility for external
applications
-Add documentation to UiccController

The primary advantage of UiccController is that we can work with
multiple uicc applications at the same time. And that is a
requirement for modes like Cdma/Lte. The existing code supports
Cdma/Lte only partially and with guessing on modem side. However,
some things modem can guess, while others - it can't.

For instance, when a user tries to edit the fdn list the current
code will pass ef_id for fdn (0x6F3B). But the modem will have no
clue which fdn list the user wants to edit (csim or usim, both
have path 7FFF), and it's impossible for modem to guess correctly
all the time. All the modem can do is try to be consistent and
hope another device is doing same things. Imagine you bring your
card from another Cdma/Lte device to your new Cdma/Lte device:
if this modem uses different fdn file, it won't work as all
existing entries won't be there.

Another example is when the modem's guess is wrong for files like
csim/ef_li (7FFF 6F3A) versus usim/ef_adn (7FFF 6F3A). They have
same ef_ids so Android really should pass aid of the app it wants
to access. Without aids there is no way modem can know for sure
which file Android wants to read! However, in the current code
even Android doesn't know which aid it wants to read file from
since CdmaLteRecords has only 1 aid.

All of these problems cause more and more hacks, both in the modem
and in Android side. UiccController cleans up current code and
provides framework to work with multiple Uicc applications at the
same time.

Change-Id: I60216887b14140bdf833a8ed579ba16cad932bdc
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.java
bb36adde615d3d85fa0fc23935197c6bc6a799ed 27-Jul-2012 Alex Yakavenka <ayakav@codeaurora.org> Telephony: Dynamically instantiate IccCard

Instantiate when get_sim_status request returns

Change-Id: I9c9333d23f1e0b23256731b245577d1a25721647
/frameworks/opt/telephony/src/java/com/android/internal/telephony/cdma/CDMALTEPhone.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/cdma/CDMALTEPhone.java