381 Commits

Author SHA1 Message Date
Tammo Spalink
3cc97f8dbc Add Phone.getPhoneType() operation.
This routine returns integer values defined in the Phone interface,
derived from RILConstants values.  Direct references to the
RILConstants are replaced by references to these new ones for
consistency.

API CHANGE:
  unhide TelephonyManager.PHONE_TYPE_CDMA

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

Change-Id: Icfec6d457231b098c031677a66770b5e57be4a44
2009-09-24 13:19:08 +08:00
Yong Zhang
e4e8e4d4f2 Resolve race conditions with disconnect of CDMA data and airplane mode
Specifically, wait for data to be deactivated when setPowerStateToDesired()
is called during data activation.

Bug: 2101430
Change-Id: Ia97dd799f779c3f88f66bc1235e7a65958e1e04f
2009-09-21 15:31:09 -07:00
Android (Google) Code Review
8451c25b91 Merge change 26171 into eclair
* changes:
  Fix several CDMA call collision cases
2009-09-21 13:50:27 -04:00
Wink Saville
b14300140d Fix several CDMA call collision cases
1. Continous ringing after receiving a call waiting while in a call,
and before user answers the call waiting, the 1st call drops.  If another
MT call comes in, while it rings, it also drops, the phone will keep
ringing.

2. Data call is not re-initiated if emergency MO call collides with an MT call.

Bug: 2123287
Change-Id: I6b12a900ec60b478691544ab5326eac4952ce834
2009-09-21 09:25:45 -07:00
Wei Huang
02b5948a43 make PhoneNumberUtils.compareLoosely use MIN_MATCH of 7 instead of 5.
Change-Id: Id4a08c3834b727e253ab189293d5715ffbbe8f35
2009-09-20 21:13:45 -07:00
John Wang
bbd754b8fe Add ring back tone notification.
Some networks may not play ring back tone, RIL will send UNSOL ringback notification.

Apps can register for ring back tone msg and play tone to user for receiving ALERTING message.

The return value indicates to play or stop ring tone.
2009-09-20 13:40:38 -07:00
Daisuke Miyakawa
9a24bc563f Implement compareStrictly() using phone_number_compare() written in C.
As per several discussions, we stick to the default behavior now.
In stead, we provide compareStrictly() as a hidden method, so that some
internal components are able to use the method if needed.

Since these are static methods, they cannot refer to the configuration files,
whose values can be obtained only via Resources object.

Please make callers' side if you want to use strict version of compare().

Internal issue number: 1892808
2009-09-19 14:44:02 -07:00
Nicolas Catania
338c48554f Moved the toString method in the parent Connection class.
Beefed up the output to get more info in the logs about
a connection.
Personal data is only logged at debug level.
2009-09-19 07:48:06 -07:00
jsh
001d0abd3e Fix potential ArrayIndexOutOfBoundsException.
When parsing an SMS message as email, extractEmailAddressFromMessageBody()
checks parts.length >= 1, but then proceeds to access parts[1] (which
may not exist).  Instead, check for parts.length >= 2, and treat
parts.length = 1 as non-email.

b/2122698
2009-09-18 15:31:10 -07:00
Android (Google) Code Review
6286f311c3 Merge change 25810 into eclair
* changes:
  Fix pause-wait dial string conversion error
2009-09-18 17:02:56 -04:00
Libin Tang
963558b0f3 Fix pause-wait dial string conversion error
Resolves these specific cases:
- 8475766800;,1234
- 8475766800,;1234

Both of these should be converted to 8475766800;1234

Change-Id: Ic329007a3a6e99b1dd55cd8cdec7239dd734c3ca
2009-09-18 11:30:05 -07:00
Robert Greenwalt
aad261730c Fix typo in SECONDARY_DATA_RETRY_CONFIG
The parser doesn't like ';'.

bug: 2130639
2009-09-18 11:23:58 -07:00
Mike Lockwood
1b90def3c6 telephony: Add CdmaCellLocation class to the public API.
Its twin sister GsmCellLocation is public, so this really should be in the SDK too.

Change-Id: If6f5899047546a7398f1e4191c67acf15555c21b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-17 19:23:15 -04:00
Satish Roddom
ea803b8e0c Message Reject notification shouldn't be shown in Emergency Calling Mode
Issue: While in emergency mode, if we receive a message, there is a notification
being shown as "Text Message rejected".

Fix: In CdmaSMSDispatcher.java, send RESULT_OK response instead of RESULT_SMS_GENERIC_ERROR
for messages during Emergency mode. So, that SMS_REJECTED action is not broadcasted.

If the result is RESULT_OK from CdmaSMSDispatcher, the function notifyAndAcknowledgeLastIncomingSms()
is not called from SMSDispatcher.java and hence SMS_REJECTED_ACTION intent is not broadcast.
Consequently SMSRejectReceiver.java will not receive the broadcast and will not show reject
notification.

Change-Id: I2aa8f239393b3e6eeac6b0c2bb69799018e9ae9d
2009-09-17 11:59:47 -07:00
Android (Google) Code Review
8460be7a57 Merge change 25535 into eclair
* changes:
  CDMA Check for network duplicate sms
2009-09-17 14:53:45 -04:00
Christian Gustafsson
9d34319f1c CDMA Check for network duplicate sms
In some cases a sms acknowledgement might be lost. The network will then resend
the same sms. These duplicate sms should be acknowledged but not shown to the
user.

C.S0015-B  4.3.1.6 Unique Message Identification.

The fields used to identify a message are:
* Message Identifier,
* Originating Address,
* Originating Subaddress, and
* Message Center Time Stamp.

Since some of the fields are optional, the Teleservice Layer shall use as
many of the fields as are present in the SMS message to determine message
uniqueness. Mobile stations should discard repeated messages.

1. Add a fingerprint function to SmsMessage.java. This returns a byte array
   to be used as a unique identifier. Parts that make up the identifier are
   the originating address, teleservice id and the bearerdata. Using all of
   the bearerdata saves parsing time. There are no random bits allowed in
   the standard. This makes binary comparison possible. Using all of the
   bearerdata accounts for the message id, smsc timestamp and "... shall
   use as many of the fields as are present in the SMS message".
2. Have CdmaSMSDispatcher.dispatchMessage() pull a fingerprint and check if
   it matches the last acknowledged fingerprint. When it matches return and
   signal that message was handled.
3. Have CdmaSMSDispatcher.acknowledgeLastIncomingSms() take the last
   dispatched fingerprint move it to the last acknowledged fingerprint.
   Only do this if processing of the sms was successful.

Change-Id: If79f8fe40896cd290940b7ccd5a17531ab937b60
2009-09-17 10:36:05 -07:00
Nicolas Catania
60d45f0f03 Added a field to track if the call is to a voicemail instance.
Refactored common code between CallerInfo and CallerInfoAsyncQuery that deal
with voicemail number comparison.

In CallerInfo.java added a new field mIsVoiceMail to indicate this is a
voicemail call.
Added a new method to convert the CallerInfo into a VM instance.
Added a new method to generate a debug string from an instance.

PhoneNumberUtils has a new method "isVoiceMailNumber" to check if a number
is a VM one. I left the method as hidden. Previously any security exception
failure was cached in a static variable. I removed that and
privilege the optmistic scenario. I am not sure if the security exception
is only for the 'regular' telephony layer and if it applies if a 3rd party
VM app is installed (e.g googlevoice), hence i removed the cashing to make
sure we can pick up new voicemail providers when installed/enabled/disabled.

Bug:2112640
2009-09-16 11:11:05 -07:00
Android (Google) Code Review
d9e28017f6 Merge change 25092 into eclair
* changes:
  New field in CallerInfo to cache if the call is an emergency one.
2009-09-15 22:11:57 -04:00
Nicolas Catania
e22415817f New field in CallerInfo to cache if the call is an emergency one.
Fixed a bug in the sync call, the photo resource was not set to picture_emergency.

Added tests to check the correct emergency fields are set in the caller info instance.

Bug 2112640
2009-09-15 18:33:34 -07:00
Libin Tang
2189daf50c Fix call collision issue
This patch is to fix the call collision issue between an MT call
and an MO call causing the MT call screen shown with the MO call info.
The fix is to add the condition of foreground call to determine the
call collision on top of the pendingMO call only.

Bug ID: 2116865
Change-Id: I73aa310d39ebea97e6183281821bf941b5890ccf
2009-09-15 16:02:00 -07:00
jsh
50f7ea53c3 Some SMS logging improvements.
Use Log.isLoggable() to enable logs at runtime.  Implement SmsResponse.toString()
so we can see what's returned.

Hopefully helps with debugging b/2086832.
2009-09-15 13:11:25 -07:00
Christian Gustafsson
70f74b79c3 Assemble WAP datagram correctly when segments arrive out of order
The WAP assembly code will always attach the last received segment at the end
of the WAP datagram. Change the code to add the current segment at the correct
location during the WAP datagram assembly.

Change-Id: I4cc18bf33bc68ab9a328a0107f21e3670b5026ac
2009-09-15 10:57:15 -07:00
Android (Google) Code Review
53793416d4 Merge change 24662 into eclair
* changes:
  Fix URI returned by IccProvider.
2009-09-14 20:30:43 -04:00
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
jsh
12f413d29e Fix URI returned by IccProvider.
insert() had a typo in the URI it returned.

b/2113186
2009-09-10 22:59:11 -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