In GSMPhone handler for message EVENT_RADIO_OFF_OR_NOT_AVAILABLE,
the for loop was trying to remove all pending MMI code starting
from the index 0 of the ArrayList mPendingMMIs. When mPendingMMIs
has more than 1 item in the list, after the 1st one in the list was
removed, the rest in the list were shifted. The 2nd one became 1st.
Assume the list size is 2, if now the for loop goes to index 1,
access to mPendingMMIs.get(1) will result a null pointer access,
and cause a Force Close.
To fix it, make the for loop to begin with the last one in the
ArrayList mPendingMMIs.
Change-Id: I3e60086186851b1d6c10fefdb086aa0ae3e16048
Bearer Independent Protocol (BIP) connections as defined in
ETSI TS 102 223 "Smart Cards; Card Application Toolkit (CAT) (Release 11)"
need to be able to establish data connections even when not provisioned.
This can occur when trying to provision on via and EVDO network.
Bug: 6110632
Change-Id: I85722e0ba2e2606ffcf2516b8f00be6ff5271adf
Backported from master, including a bug fix and a cdma enhancement.
Even if other people are sharing the connection (ie, carrier wants
default and tethered traffic on the same APN) stop using a carrier-
described APN when the tethering stops.
bug:5972599
Change-Id: I25e4831855e6b62c0c3ab3a6f4d4846aaee6ac50
Since CDMA doesn't use APN settings there was no place to say what a cdma
device's DUN connection would support, so by default normal device
originating traffic would be blocked on a tethering single-connection device.
With this change you can (via overlay) say that it supports everything
so mms and on-device browsing/email will still work even when on a dun connection.
The reason to allow both: some carriers will charge per byte for dun access
and so they don't want lots of non-tethering traffic used (costs the user alot)
but other carriers just use a dun connection to limit access to tethering, but
once there give unlimited data, so it makes sense to support everything there.
bug:5972599
Change-Id: I78fd7f3ac63c51a0560b659ed5ec219b10a93f8d
The LTE signal strength level is the smaller one
between lte rsrp level and lte snr level if both
rsrp and snr are valid.
The lte snr mapping are
Four bars: SNR >= 45
Three bars: 10 <= SNR < 45
Two bars: -30 <= SNR < 10
One bars: SNR < -30
No bars: No Service
The invalid value of lte snr is changed to INVALID_SNR
from -1, since -1 is a valid value of lte snr.
bug:5640958
Change-Id: If26aaba0c7fcc0fee3db488b5adfa02922f06715
Solving the issue that setting preferred APN from GDCT triggers
back APN change event and force unnecessary data call disconnects
and setups.
The new URI is added in Telephony Provider so ContentObserver
callback (results in onApnChanged) will not be triggered.
Bug:5448858
Change-Id: I4c0bcf32cec69cf1d0a0430f7a27495b89e93625
Restores functionallity from Gingerbread. We should tear down when the
enabledcount goes to zero, but we should always notify and attempt to
switch back to default when indicated.
bug:5830081
Change-Id: Ib8469bb5369da21e8cc05fb755b2d7e24c8e02a6
Instead of throwing an exception when the connection between
the DCT and a DC is broken (i.e. its null) it is treated as
an error with a new cause. And thus will be handled as other
typical errors.
Bug: 5798643
Change-Id: I46f1660ae78f118b54ab62504809723ca302b2ef
Put enhancements on data stall polling logic in ICS so that
stall recovery can kick in earler while screen is on.
Bug: 5767897
Change-Id: I4683fc45c0161f4374749c8e5840261c19a48f77
While BIP data call setup is still handled in RIL/Modem,
this patch is adding support of Alpha tag display on UI.
Alpha tag is optionally included in "OPEN Channel", "Close Channel",
"Send Data" or "Receive Data" command.
"Open channel" will be notified via RIL_UNSOL_STK_PROACTIVE_COMMAND
which requires TERMINAL RESPONSE based on user input.
"Close channel", "Send Data" and "Receive Data" commands
are send via RIL_UNSOL_STK_EVENT_NOTIFY just to display
transient notice.
Bug:5165510
Change-Id: I873e55274c860886bc816ce6fb07cb882d339214
This looks to fix a problem where the nv_data.bin file
file gets corrupted. When greping a radio log for "md5" if something
like following is seen:
RIL(s) : load_md5_state: MD5 state 1
RIL(s) : check_md5:
RIL(s) : compute_md5: path /efs/nv_data.bin
RIL(s) : check_md5: MD5 fail. orignal md5 '628647a8e5c6cac2d586199417c0103c' computed md5 '58a635cbaf5fe4ffb2797aeaa2b32709' (rild)
RIL(s) : check_md5:
RIL(s) : compute_md5: path /efs/.nv_data.bak
It means that corruption was detected and a back version was used
which is ok. Apparently that backup version can have the default
network type revert to 2G only thus causing the symptoms reported
in b/5695729 where after taking an OTA 2G becomes the default.
By calling setCurrentPreferredNetworkType when the sim is ready we
can reset the the network type to 3G.
Note: I also tried calling setCurrentPreferredNetworkType in
EVENT_RADIO_AVAILABLE but that didn't work and we would see
the response to setPreferredNetworkType failing as the ril wasn't ready.
RILJ : setCurrentPreferredNetworkType: 0
RILJ : [0004]> REQUEST_SET_PREFERRED_NETWORK_TYPE : 0
RILJ : [0004]< REQUEST_SET_PREFERRED_NETWORK_TYPE error: com.android.internal.telephony.CommandException: RADIO_NOT_AVAILABLE
Bug: 5695729
Change-Id: Ibbd29cda0b201a8c08f4dcfa5cec211611e1d599
According to TS 22.030 6.5.2 "Structure of the MMI", the dialing number
can not end with #. The format is like *SC*SI#DN. Correct the mmi pattern
to exclude DN# case. With this fix, processCode() will tread *NNN#DN#,
e.g. *400#16 digit number# in bug 5622718, as USSD and send via
RIL_REQUEST_SEND_USSD.
bug:5622718
Change-Id: Ifc8d0edff4308602a5f3fc651cf116bf6bad3cbc
A request for a DUN connection should only use the carriers requested dun connection. Don't
share another connection unless it matches the carriers settings.
bug:5701374
Change-Id: I75a65fcfce1b218bd9ca4ce2ab85cbe850813321
Don't report that we're disconnected immediately if we're disconnecting when another
disconnect comes in. Remove this behavior from the default handler and add a catch
all "yeah, we're disconnected already" to the inactive state.
bug:5568633
Change-Id: Iff7ccde2069b47f8ad8255f3bca0292b80041388
Secondary nets sometimes come up with no routes, but parsing errors end up with null
routes getting added. Trim that away. Also added some dumpstate logging of the secondary
route tables and rules.
bug:5615697
Change-Id: I94c9d888bab958df44891b9117236436e046cc7f
CallerInfo.doSecondaryLookupIfNecessary() was assuming that SIP addresses
would always contain the character '@', but that's not always true since
the username/domainname delimiter can actually be "%40" (the URI-escaped
equivalent.)
This would cause the in-call UI to crash if you ever called a SIP address
like "xyz%40example.com".
TESTED:
- Make an outgoing call to the SIP address "xyz%40example.com"
==> The call ultimately fails, but the in-call UI no longer crashes when
it first comes up.
Bug: 5637074
Change-Id: I62d15a7ccd509924d38b780b92e657b9efa26125
Fix a NullPointerException when sending a single-part SMS containing
characters in one of the enabled national language tables.
Also added a few log messages for several error cases to help with
debugging any future problems in the SMS dispatcher.
Bug: 5553544
Change-Id: I61c1cbe297b2e222027f0db7c833df6a03c2974a
Initially set to 3 minutes this raised the standby current
by 12.5% so changing to 6 minutes.
Bug: 5534004
Change-Id: I602f5fe4de35d0db2dbacf0c615c300c57dd2d0d
1. Fix the ClassCastException while handling spec out 'Setup menu'
-Ghana MTN simcard and JDI simcard sends abnormal 'setup menu'cmd.
-Those 'setup menu' is spec out.
-At the end of the proactive cmd,extra bytes '0x00 0x00 0x00 0x00' is
followed.
- That cause ClassCastException and phone crash.
Bug: 5574160
Change-Id: Ieafb6c4efd94bb4e2a39a04612a6761c958654bb
Signed-off-by: dujin.cha <dujin.cha@samsung.com>
For devices with both CDMA and GSM stack, ConnectivityService only
connects with the GSM variant. Making this flag static communicates
the policy state between all DCT.
Bug: 5586935
Change-Id: Iff0384027303470dd382d5173558d2d091ce4bf6
- Precondition: config_sms_enabled_single_shift_tables is configured as
1 (Turkish) in frameworks/base/core/res/res/values/config.xml
- Cause: There is no consideration for National Language Shift Tables in
SmsMessage::fragmentText function.
- Solution: The header length is calculated properly according to
National Language Shift Table
- modified to add test cases and fix calculation bug (jhamby@google.com)
Bug: 5553544
Change-Id: I9eaefbbd6b3d75f8c41cbf9d0cb03a701cfa1cb3
While offhook, even the call is on hold, setAudioMode() remains in
MODE_IN_CALL (or MODE_IN_COMMUNICATION for SIP) rather than
switching back to NORMAL.
bug:5546901
Change-Id: I0189dc010d1109895cc38e17b1b80418445d514a
Also use the AlarmManager instead of messages so the delays
are consistent whether sleeping or not.
Bug: 5534004
Change-Id: I24118b30214dddf8183c1200a89555d6c528e606
When enabling/disabling SMS cell broadcast channels, we were not calling
setGsmBroadcastActivation() with the correct value after updating the
message IDs. It should be called with true if any message IDs are enabled,
or false if the list is empty.
Added an isEmpty() method to IntRangeManager, and moved the call to
setGsmBroadcastActivation() in SimSmsInterfaceManager to the end of the
enableCellBroadcastRange() and disableCellBroadcastRange() methods,
where it sets the correct value using the new isEmpty() method to test
if there are any message IDs enabled after updating the range list.
Bug: 5525441
Change-Id: I7d1ebd54dacf1de20910947efbf5e87e1957fd1a
To allow a operator test to pass we need to manually select
a network. Therefore getAvailableNetworks needs to be implemented
on CDMALTEPhone so that RIL_REQUEST_QUERY_AVAILABLE_NETWORKS is
sent to the RIL/radio.
Bug: 5420630
Change-Id: I8e138b211d42755399a9e30f3e45dde2f579401e
Devices supporting IMS may receive SMS-PP data download messages
which are normally handled in the radio baseband. Add support to
framework for these messages, passing the data to the UICC and
sending the response data as part of the SMS ACK.
Change-Id: I1da76982c6f8c402f82a6f535591e614f4e0de18
The USIM application on the UICC contains an EF for the USIM service table,
a byte array containing a bit field of available services on the USIM.
IccServiceTable is an abstract class to manage a byte array containing a
service table and map it to human-readable enum values defined in the
subclass, e.g. UsimServiceTable. The availability of a service can be
tested with isAvailable(), which is implemented in the subclass to take
an enum, e.g. UsimService, as a parameter, and passes the ordinal to the
generic isAvailable() in the parent. IccServiceTable also provides a
toString() method that returns a human-readable list of enabled services.
The ISIM application for IMS contains a similar ISIM service table.
This can be supported with a new IsimServiceTable class in the future.
Change-Id: I9c3134672ed306e297dd35d633235cffca510aad
On an LTE device where incoming SMS messages over IMS are sent to
the framework via RIL_UNSOL_RESPONSE_NEW_SMS responses sent to
the RIL, it may be necessary to process USIM data download SM's
(message class 2). This requires the RIL to implement two new requests.
1) RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS:
send an ENVELOPE command to the UICC, receiving the SW1 and SW2
status bytes in addition to the command response.
2) RIL_REQUEST_SMS_ACKNOWLEDGE_WITH_PDU:
send an RP-ACK or RP-ERROR acknowledgement to the incoming SM,
including an acknowledgement PDU containing the envelope response.
Change-Id: If597a14fa8c4780c75da84fa96c49abcb05960f2
Fixed onApnChanged method to handle multiple APN scenario.
Non-default links also needs to be cleaned up once telephony db
is updated.
Bug: 5333303
Change-Id: I6d8d2b4e2f5b07ebf0e22669c910e4ebaddfe392