357 Commits

Author SHA1 Message Date
Android (Google) Code Review
a28948d754 Merge change 24754 into eclair
* changes:
  Handle secondary APN connect failures.
2009-09-11 20:53:43 -04:00
Robert Greenwalt
89bd269975 Handle secondary APN connect failures.
Without this we'd only try a secondary APN once and the stop silently, leaving
no APN connected.

Adds a second retry manager with configuration strings to do a more approriate
retry.  Don't retry secondary apn forever.

On permanent failure or retry count hit, we send a Phone.REASON_APN_FAILED
disconnect status.

bug: 2112114
2009-09-11 17:35:50 -07:00
Android (Google) Code Review
b942db35c5 Merge change 24773 into eclair
* changes:
  Fix NPE in TelephonyManager.
2009-09-11 18:26:02 -04:00
johnwang
5f1f26a7ff Fix NPE in TelephonyManager.
It is for bug 1971628 but affects almost every API function in TelephonyManager. When phone is not ready (for example, after crash and restart) the getSubscriberInfo and getITelephony returns null and causes NPE.
2009-09-11 14:49:47 -07:00
Tammo Spalink
d304ae583d Fix CDMA SMS delivery status reporting.
CDMA SMS status reports are messages with bearer data message type
DELIVERY_ACK.  Identify these messages after parsing during demux,
update the deliveryPendingList and generate a RESULT_OK intent in the
same manner as GSM.

Addresses issue:
http://buganizer/issue?id=2047571

Change-Id: Ia38718b0bb169a0f3398f50c27a95e8bce7e4c99
2009-09-11 13:42:31 +08:00
Wink Saville
88e3f827e6 Allow an alternate eri file.
For testing purposes it is deseriable to allow
vendors to provide an alternate eri file. This
fixes Part A of bug 2108379.

Bug:2108379
Change-Id: I51703c9ac211ced053418e28e277dfab68deea21
2009-09-10 14:51:09 -07:00
Dmitri Plotnikov
84b4d37dd1 [Issue 2099206] Encoding phone number prior to sending it to the phone lookup filter
Change-Id: I80327febe7134ac1bdef958251943a9777879d53
2009-09-10 11:47:10 -07:00
Tammo Spalink
7a043b351b Make Phone.updateServiceLocation acquire a one-shot wake lock.
Phone.updateServiceLocation() is the internal routine triggered by
external calls to CellLocation.requestLocationUpdate().

addresses bug http://b/issue?id=1724246

Change-Id: Id3d5cab1a77df12d3e94373a58ae94688a8630c6
2009-09-10 15:38:01 +08:00
Tammo Spalink
98a5ba78f9 Avoid CDMA messages with IDs of zero.
In reference to issue:
http://buganizer/issue?id=2047571

Change-Id: I88b5cdbb988f12206663bbb3fdc9508a437b19ad
2009-09-09 13:50:07 +08:00
Robert Greenwalt
bf87c9e7d4 Fix mncLength in cases with a malformed AD_DONE msg from SIM
Several cases error out and skip our guessing of the mcnLength.  This
results in no operator_numeric being set and no APN's matching.

bug: 2101770
2009-09-04 15:08:37 -07:00
Android (Google) Code Review
ccc41a26b8 Merge change 23870 into eclair
* changes:
  Allow hasIccCard to be useable by any processes.
2009-09-03 15:54:22 -07:00
Jaikumar Ganesh
34efc39f25 Implement USIM and add support for importing emails from USIM.
Refer to 3GPP Spec 31.102 for more details.
We read and parse USIM records instead of the RIL doing it for us.
We only support reading of USIM Phonebook records.
2009-09-03 13:55:36 -07:00
Wink Saville
e40f66ffc1 Allow hasIccCard to be useable by any processes.
This is accomplished by adding hasIccCard to ITelephony and do
the implemenation in PhoneInterfaceManager.java. Then change
TelephonyManager to use getITelephony().hasIccCard().

Change-Id: I26970fdf92a058502b8156a4f52c14e213217fc6
2009-09-03 13:34:04 -07:00
Robert Greenwalt
1c1ffa0cab Promote MccTable to telephony and use it for both gsm/cdma
This adds timezone/locale/wifi-regulator-channels initialization to cdma (gsm already had it).

bug: 2071211
2009-09-03 12:34:15 -07:00
Libin Tang
9b62851c3f Exit Emergency Callback Mode if phone process crashes/restarts
If the phone process crashes while the phone is in ECM, there
is currently no way to get out of ECM without rebooting the
phone.  This change forces the phone out of ECM if the phone
process restarts.

Change-Id: Ie4eb103fdc151ca20aa0b29dec43e60ad819e5b7
2009-09-03 09:29:16 -07:00
Android (Google) Code Review
558340f214 Merge change 23793 into eclair
* changes:
  add conditional verbose logging for when sending a SMS message.
2009-09-03 01:33:44 -07:00
Wei Huang
8be9ccdc5c add conditional verbose logging for when sending a SMS message.
Change-Id: I969e4cbee87ce5a42eaf5809292442e90db294cf
2009-09-03 01:29:34 -07:00
Libin Tang
aace799b9c Fix the issue that dialing *86 during call, the dialing voicemail screen is not shown.
The change fixes the issue that dialing *86 during the call, the dialing voicemail
screen is not shown, instead it shows feature code screen.

For CDMA, when flash is sent to the network, there is no response from the
network to indicate if the feature code is completed or not. This is different
from MMI code in GSM network. So it's confusing to show any UI to indicate MMI
(feature code) for CDMA.

The change is to remove the feature code handling in CDMAPone, and handle the
feature code dialing the same way as the 3 way call dialing. Basically, when
feature code is dialed, the dialing screen will be shown.
2009-09-02 20:48:02 -07:00
Android (Google) Code Review
fb16e5ccdb Merge change 23607 into eclair
* changes:
  Reject (NAK) CDMA SMS with unknown teleservice ids.
2009-09-02 20:29:09 -07:00
Android (Google) Code Review
983b837ea1 Merge change 23510 into eclair
* changes:
  SMS-to-email fix for messages from the web
2009-09-02 15:29:26 -07:00
Android (Google) Code Review
8ecd2aecf6 Merge change 23548 into eclair
* changes:
  Fix some sign in errors.
2009-09-02 13:01:59 -07:00
Satish Roddom
af6bb1ce9a SMS-to-email fix for messages from the web
Certain carrier websites allow sending SMS to phones on their network.  They allow filling
out a "Reply to Address" which can be a phone number.  The website may send that message to
the device as an SMS-to-email, but the "From" address will be an SMS short code and not a
valid email address.  When the user replies to this message, the response is directed to the
short code and not delivered correctly.

In extractEmailAddressFromMessageBody(), currently it checks if the sender is a shortcode
and an email address is present as the first word in the message body. If so, it replaces
the email address as the sender replacing the short code.

The fix to support the above case is remove the email address check and treat the first word
as FROM address regardless of what the user types.

Change-Id: Ifd39a39b352f204024c76fde293164dcd2b0896b
2009-09-02 12:36:59 -07:00
Tammo Spalink
7e207afd49 Reject (NAK) CDMA SMS with unknown teleservice ids.
Addresses issue:
http://buganizer/issue?id=2066191

Change-Id: I56124379534bf19f128b6228749c7ee2ef455fed
2009-09-02 14:25:38 +08:00
jsh
5b462477a9 Fix some sign in errors.
AccountManagerService.SimWatcher was checking if storedImsi = "initial"
instead of null as an initial condition.  Also, on NV-only CDMA devices
we were only sending SIM_STATE_CHANGED notifications when the radio
powered down, which meant storedImsi was only initialized if the radio
powered down.
2009-09-01 16:13:55 -07:00
Wink Saville
65d62c774e Add hasIccCard to IccCard and TelephonyManager.
Expose the presence/absence of IccCards in the system.
This is needed to fix bug 2033811 which needs to show
some SIM menus in the Mms app and Contact apps only if
there is a SIM and on CDMA there is no sims yet.

The current implementation assumes CDMA never has an
IccCard this is true at the moment but needs to change.

Change-Id: I4167368e364623ea68e9b2778556e6d730b1e715
2009-09-01 15:52:42 -07:00
jsh
a01726a7fd Some fixes to SMS processing in the framework.
Always process class 0 and other unstored SMS (eg, MWI).  We were
rejecting all SMS messages in storage full situations, but certain
messages do not require storage.

Also, notify apps when the framework rejects MT SMS, with new
SMS_REJECTED_ACTION intent.

b/2066775
b/2015906
2009-09-01 13:35:20 -07:00
Tammo Spalink
1f952a178d Move SMS pdu creation fully into the central Phone process.
Previously pdu creation was haphazardly done sometimes by the app and
sometimes centrally by the phone process -- specifically the phone
process did creation for multipart texts.  This change gets rid of the
previous IPC interface for sending raw pdus to SMSDispatch in the
phone process, and instead makes everything work like multipart
messages worked before, namely the structured data is passed and pdu
encoding done centrally.

The motivation for this was the need to ensure that CDMA message id
numbers were strictly monotonic, including across reboots, which
necessitated central state in the form of a system property, which
could in turn only be modified by the phone process.

Hence, this (in part) addresses issue: http://buganizer/issue?id=2075760

Change-Id: I94ca207b6e657c465e8472534704db8646ee277c
2009-09-01 13:37:03 +08:00
Tammo Spalink
95434bfaee Allow fragmentText to be called for singleton CDMA messages.
Corrects for previous partner changes, addressing issue:

http://buganizer/issue?id=2063332

Change-Id: I49e564d81c5db3e92a6bad973f21a02a7302875d
2009-09-01 11:44:08 +08:00
Android (Google) Code Review
33567c5f3d Merge change 23271 into eclair
* changes:
  Cleanup egregious style issues.
2009-08-31 19:45:05 -07:00
Tammo Spalink
00416365de Cleanup egregious style issues.
No actual code logic changes, only cosmetics.

Change-Id: I81d537610394fcb119dd80ddbc3d3f0295fd5a9a
2009-08-31 15:12:10 +08:00
Robert Greenwalt
6ce96faa0c Don't mark an APN disabled if setup fails
We need to leave the phone in a connectable state so that it connects whenever it's able
(reception or just timing).  If we mark it disabled on failure it wont try again.  The retry
comes from the phone layer, not from ConnectivityService.

Also Fix the Phone layer so it retries even if it disconnected by request (DATA_DISABLED).
This was a bug from long ago that didn't become visible until recently with fast wifi and slow
mobile teardown.

Change-Id: I04bf39fba0cb578c87d5fc6ea5d220820ff9f364
2009-08-28 14:35:28 -07:00
Android (Google) Code Review
616195a3b3 Merge change 23182 into eclair
* changes:
  MO SMS fail after sending 100 messages
2009-08-28 14:04:38 -07:00
Yong Liu
51b2b33219 MO SMS fail after sending 100 messages
After sending 100 messages, SMSDispatcher always displays dialog to user to
confirm the sending. If the user sends messages too fast then there will be more
than one dialogs waiting for the response, but SMSDisptcher can only handle one.
2009-08-28 11:58:38 -07:00
Wink Saville
a3659232ba Fix bug 2040024 phone rings only once sometimes.
The phone only rang once on rings that did't loop. In the GSM phones
the vendor ril sends a RIL_UNSOL_CALL_RING event to cause the phone
to properly play non-looping ring tones. To reproduce select a non-looping
ring tone such as "Digital Phone" and call it from another phone, the
phone will only ring once.

Three solutions were discussed:

*) Have all ring tones loop; rejected because to more space would be taken
by the silence.

*) Require all vendor RIL's to send RIL_UNSOL_CALL_RING; rejected because
it is inefficient to send a notification from the bottom of the stack.

*) Modify the PhoneApp or the audio layer; rejected because it would be
to big of change.

*) Modify the framework; this is the solution accepted.

The framework was modified to use two now properties to control the
call ring notification.

ro.telephony.multiple_call_ring: a boolean that if true the vendor ril
is assumed to send multiple RIL_UNSOL_CALL_RING messages. If false
only one is assumed and the framework will generate additional events.
(The default if absent is true).

ro.telephony.call_ring_delay: the delay in milli-seconds between
the generated events. (default if absent is 3000)

To minimize code duplication this change does some reorganization
of the PhoneBase class hierarchy and PhoneBase becomes a handler
and implements a default handleMessage method handles events associated
with call ring notification. This handler is overridden by derived
classes, CDMAPhone and GSMPhone which will pass unknown events
to PhoneBase.handleMessage and thus handle call notification for any
derived class.

Change-Id: I5b147b2b69b647d9987052f16ada41c9b66e4bf1
2009-08-28 11:10:09 -07:00
Tammo Spalink
c18776d5bc optimize MCC table
Replace a table of objects that was created at boot
in a costly manner, with a pre-generated table of
more densely formatted numerical data.

Based on data from runhat on the phone process,
this looks to shrink the memory footprint from about
16kB to less then 2kB.

Addresses http://buganizer/issue?id=874072

Change-Id: I5a7b9d7de4c9b9a0360e8370252582969fbd8d4f
2009-08-28 14:05:04 +08:00
Android (Google) Code Review
29418e9873 Merge change 22529 into eclair
* changes:
  Track apn Enable synchronously and notice failures
2009-08-27 16:18:50 -07:00
Robert Greenwalt
868b34bd74 Track apn Enable synchronously and notice failures
Another way to fix this problem.  Notice the failures of dataSetup and mark the requesting
apn as unenabled so future attempts can be made.

bug: 2069221
2009-08-27 11:58:14 -07:00
Jim Miller
767be5f0b9 Integrate CDMA provisioning into SetupWizard 2009-08-26 13:07:38 -07:00
Robert Greenwalt
0badd0b700 Note net availability even when apn not enabled
Fixes a problem where mms apn was on when we lost the network (airplane mode) but mms was
off when airplane mode was turned off so it kept thinking we didn't have access and
future mms always failed.

bug: 2075145
2009-08-24 17:41:49 -07:00
Dianne Hackborn
4a51c20ce6 I am getting tired of the java doc warnings, so fix them.
Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
2009-08-24 17:37:32 -07:00
Wink Saville
55c6f8881f Fix missing break statement found by Motorola. 2009-08-22 22:48:46 -07:00
Android (Google) Code Review
7b0cdc8890 Merge change 22362 into eclair
* changes:
  Fix +NANP issue and cleanup plus code conversion.
2009-08-21 17:05:24 -07:00
Guo-Bin Zhang
1cef22890d Disable data call in emergency call
Same change as 79ef673d56e2599932b8b7f13695d23b4df54d09 rebased
2009-08-21 17:02:49 -07:00
Li Zhe
ebe66345e7 Framework changes to support HSDPA/HSUPA/HSPA
HSDPA: High-Speed Downlink Packet Access
HSUPA: High-Speend Uplink Packet Access
HSPA:  High-Speed Packet Access

Add support for HSDPA/HSUPA/HSPA:
 1) extend TelephonyManager.NETWORK_TYPE for HSDPA/HSUPA/HSPA
 2) extend ServiceState.RADIO_TECHNOLOGY for HSDPA/HSUPA/HSPA
 3) set radioTechnology into ServiceState in GsmServiceStateTracker
 4) change the implementation of TelephonyManager.getNetworkType to
    solve the competition timing issue between the time of setting
    system property and the time of receiving notification through
    PhoneStateListener
    4.1) add a getNetworkType interface in ITelephony.aidl
 5) add icons resources for HSDPA/HSUPA/HSPA
 6) make use of HSDPA/HSUPA/HSPA icons in StatusBarPolicy
2009-08-21 13:41:05 -07:00
Libin Tang
7850cdde66 Fix +NANP issue and cleanup plus code conversion.
This patch includes the plus code conversion clean up.
1. change the plus code conversion based on the current and default
   number systems retrieved from MCC.
2. for format such as +NANP, replace the '+' with the current IDP (011).
3. comments changes.
2009-08-21 10:26:58 -07:00
Android (Google) Code Review
c813129fe7 Merge change 22282 into eclair
* changes:
  Fix Calling screen shows "In Call" on pressing mute button
2009-08-21 09:55:41 -07:00
Yong Zhang
25254db31a Delay radio reset to wait for data cleanup in CdmaDataConnectionTracker
Issue to be addressed:
In radioRestart() method in CdmaDataConnectionTracker, if the radio is
restarted right after cleaning up connection, it is possible that the
connection setup request triggered by radio-on may happen before the
connection cleanup has been completed so that the connection may not
be set up correctly after the radio is restarted. The end result could
be that the phone lost the data capability.

The patch includes the following changes:
1) Add EVENT_RESTART_RADIO in DataConnectionTracker.
2) In CdmaDataConnectionTracker, method restartRadio(), send a message
   delayed by 20s, the purpose of which is to wait for connection cleanup
   to be completed, then to restart radio.
3) In CdmaDataConnectionTracker, method trySetupData(), don't try to setup
   data if there is pending message to restart radio.

Addtional notes:
   A system property is not used to config the delayed timer because we
   think this fix is to address the unusual error case and waiting for
   long time should not impact user experience much. 12s is the longest
   time to complete the data cleanup as we have seen so far, so we are
   using a 20s timer.
2009-08-20 18:16:02 -07:00
Guo-Bin Zhang
5abc78405f Fix Calling screen shows "In Call" on pressing mute button
Send a flash command to CDMA network for putting the other party on hold.
For CDMA networks which do not support this the user would just hear a beep
from the network.
For CDMA networks which do support this, it will put the other party on hold.
2009-08-20 17:40:40 -07:00
Tammo Spalink
49bd918dc2 more cdma sms debug logging 2009-08-20 14:40:29 -07:00
Tammo Spalink
079ad20da7 cdma sms encoding tweaks and logging / debugging annotations. 2009-08-20 11:18:04 -07:00