284 Commits

Author SHA1 Message Date
Wink Saville
82e6ee62b2 Unhide some CellSignalStrength methods.
When submitting originally I'd missed unhiding these methods.

Change-Id: I627a5ea0c8c29b6ddfe5b1c49f9c0789d5e86456
2012-08-28 12:05:16 -07:00
Wink Saville
2900a3fae6 Fix build.
I tried to get these into the merge conflict resolution,
but didn't succeed.

Change-Id: Id474415869182da438c09f7a75ee54c098fbc81e
2012-08-13 16:50:30 -07:00
Wink Saville
c1e68d133c Merge commit 'e0df2c4f' into fix-merge-conflict
* commit 'e0df2c4f':
  Telephony: Signal Strength cleanup & LTE support

Change-Id: I655fcc0cf430820a50a8751ac132c73f7d8e0c6f
2012-08-13 15:53:19 -07:00
Wink Saville
e0df2c4f5d am eca64977: Merge "Telephony: Signal Strength cleanup & LTE support"
* commit 'eca64977041c5df0c987bdae56006ebbe86de677':
  Telephony: Signal Strength cleanup & LTE support
2012-08-13 12:00:30 -07:00
Uma Maheswari Ramalingam
a44b137648 Telephony: Signal Strength cleanup & LTE support
Make signal strength parsing common for all modes

Add Support to calculate LTE
level for UI signal bar display

Update the lowest of Evdo/ CDMA dbm value
in phone status instead of using only CDMA dbm

Change-Id: I41bce658c536dc30558224c8ca76d6d70afb78ee
2012-08-10 15:44:31 -07:00
Wink Saville
9742553603 Merge "Unhide the new location API's" into jb-mr1-dev 2012-08-01 16:43:36 -07:00
Robert Greenwalt
432139b5c3 Reduce log spam.
Turn off DBG in SignalStrength.java

Change-Id: Ida1bded2551272956115aef5f3eda0f2a8cf3aed
2012-07-27 15:44:16 -07:00
Wink Saville
3caf66d2ea Unhide the new location API's
Change-Id: I41cc89998b8bd1e6686ea30475ab8905a133e312
2012-07-26 11:48:12 -07:00
Jake Hamby
6f65b6ee71 am 0c8a7768: am 893d93d2: Implement CMAS service category program results.
* commit '0c8a7768e04513f5175add42c7be6240a703ff73':
  Implement CMAS service category program results.
2012-07-25 23:05:36 -07:00
Wink Saville
b208a24cf5 Revise and update CellInfo API's
Change-Id: I25a46076a244f50edb9da65816b3717e00820b34
2012-07-25 14:08:09 -07:00
Jake Hamby
893d93d207 Implement CMAS service category program results.
Correctly handle CDMA Service Category Program Data requests,
and send the SCPT response to the message center. Parcel SCPD
operations as an ArrayList instead of an array (current version
will throw ClassCastException when the array is cast).

Bug: 6853691
Change-Id: I949ea68891c78306059248832e59a593ab606e11
2012-07-25 14:01:52 -07:00
Wink Saville
33034b13ca Create telephony-common and mms-common - DO NOT MERGE
These have been created to reduce the size and complexity
of frameworks/base.

mms-common was created by moving all of
  frameworks/base/core/java/com/google/android/mms
to:
   frameworks/opt/mms

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

Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
2012-07-17 12:23:09 -07:00
Wink Saville
a639b311e9 Create telephony-common and mms-common
These have been created to reduce the size and complexity
of frameworks/base.

mms-common was created by moving all of
  frameworks/base/core/java/com/google/android/mms
to:
   frameworks/opt/mms

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

Change-Id: If6cb3c6ff952767fc10210f923dc0e4b343cd4ad
2012-07-11 16:02:08 -07:00
Wink Saville
e0f8b91e04 am 4853f944: am 3fe79dfd: Merge "Adds utility method to convert 0.25 secs to decimal degrees"
* commit '4853f944ac4befba42219f6db8ed02b44a3e0d2b':
  Adds utility method to convert 0.25 secs to decimal degrees
2012-06-11 16:36:46 -07:00
Wink Saville
f75e3e01f6 am c07055c4: am bc69f97c: Merge "Adds documentation to CdmaCellLocation get lat/long methods"
* commit 'c07055c4a6e92a6c82e193c5b87b35d97418a73b':
  Adds documentation to CdmaCellLocation get lat/long methods
2012-06-11 16:36:39 -07:00
Wink Saville
3fe79dfdf4 Merge "Adds utility method to convert 0.25 secs to decimal degrees" 2012-06-11 15:58:26 -07:00
Wink Saville
bc69f97c66 Merge "Adds documentation to CdmaCellLocation get lat/long methods" 2012-06-11 15:57:03 -07:00
Daisuke Miyakawa
e69ec2253c Remove STOPSHIP part of the logging in telephony
We still need the log itself to trap the exceptional case.

Bug: 6201805
Change-Id: I62d12f6a1ed41817ee12c0f5c7fc4aa0a967a60f
2012-05-09 11:44:58 -07:00
Sean Barbeau
67662767d9 Adds utility method to convert 0.25 secs to decimal degrees
This patch adds a utility method that converts latitude and longitude
in quarter seconds units to decimal degrees units.  The Telephony API
returns CDMA base station latitude and longitude in quarter seconds
due to a 3GPP telecom standard, while the Android Location API, and
the vast majority of application-level code, uses decimal degrees.

For example, to measure the distance from the user's current location
to the base station using the Location API Location.distanceBetween()
method (http://goo.gl/YjO8O), the base station lat and long would need
to be converted to decimal degrees first.

Since most application developers will likely never use lat/long information
in quarter seconds units, and instead will need this information in decimal
degrees, this utility method will frequently be used by anyone querying
base station location data from CdmaCellLocation.

Sample values to test conversion:

0.25 seconds: lat = 399491, long = -1189145
is equivalent to
decimal degrees: lat = 27.742430555555554, long = -82.57951388888888

Change-Id: If03e741f5035a37519f50d4fb2fb3e3eef2505da
Signed-off-by: Sean Barbeau <sjbarbeau@gmail.com>
2012-05-02 16:22:16 -07:00
Daisuke Miyakawa
0205537536 Add debug log for 5914560 and 6383850
This won't be shown in usual condition since in most cases the method
will just use the block just above the logging and return true/false
there. On the other hand this might be useful if the case is truely
exceptional and thus this path is really used.

Bug: 5914560
Bug: 6383850
Change-Id: I2242f93a9b905b5a39d997aa30d9fd6f5bfbdf49
2012-04-25 08:03:22 -07:00
Jake Hamby
c3296ffdfc Add ContentProvider for apps to read received SMS cell broadcasts.
The CellBroadcastReceiver app will allow apps with the new permission
"android.permission.READ_CELL_BROADCASTS" to read previously received
cell broadcast messages from a new ContentProvider database at URI
"content://cellbroadcasts". This will enable third parties to provide
additional information to users in the event of emergencies without
delaying or interfering with the initial system alert dialog to warn
the user when the alert is received.

Includes a new android.telephony.CellBroadcastMessage class which
can be instantiated from the Cursor retrieved from the ContentProvider.
This was previously a part of the CellBroadcastReceiver app, but can now
be used by third party apps with read permission on the ContentProvider.

Change-Id: I2c31f62b63c050c7946de2d81c28a5f4dc6f00b0
2012-04-18 16:41:19 -07:00
jshin
f80310d3c5 Added API to replace unicoded digits to ascii numbers
Users can enter arabic phone number or click arabic phone number
to send MMS. Works for generic Unicode digits (full-width, etc.).

bug:5615791
Change-Id: Ieec8c5c6c3736ee2b4ac8ddf17f8c41b2001460e

Signed-off-by: Jake Hamby <jhamby@google.com>
2012-04-16 15:06:40 -07:00
Jake Hamby
e333c82da3 Convert Arabic phone numbers to ASCII when sending SMS.
Modify PhoneNumberUtils to automatically convert non-ASCII digits,
such as Arabic-Indic numbers, CJK full-width digits, etc., to ASCII
in normalizeNumber(), extractNetworkPortion(), and stripSeparators().

This enables the SMS application to support sending SMS's to phone
numbers written with Arabic, or other non-ASCII digits. The number will
be converted to ASCII digits and formatted for the user according to the
country formatting rules.

Bug: 5615791
Change-Id: I42039285db5795b1dda22e4251f54af302e27f13

Signed-off-by: Jake Hamby <jhamby@google.com>
2012-04-16 15:06:40 -07:00
John Wang
2119ade6d7 Merge "Enhance Cell Location Api." 2012-04-05 16:51:32 -07:00
Jeff Sharkey
8fc27e8b87 Support metered Wi-Fi NetworkPolicy.
Add networkId field to NetworkIdentity to identify Wi-Fi networks by
SSID.  Add support for policies without usage cycles.

Only apply mobile policies when SIM state is ready, which is cleaner
than just checking for airplane mode.  Also avoids creating no-op
default policies when subscriberId is null.

Bug: 3001465, 3291052
Change-Id: I1f8aaa49a5db306df022c402ea7f3f5d4bc0cfc7
2012-04-05 16:02:25 -07:00
John Wang
963db55d59 Enhance Cell Location Api.
To boost accurary and enhance capability of cell location api,
two new APIs, TelephonyManager.getAllCellInfo() and
TelephonyManager.listen(LISTEN_CELL_INFO), are added. Two new
Class, CellInfo and CellIdentity, are created.

This API change returns all information of one cell locaiton
at the same time. It also provides additional LTE and timestamp information.

Change-Id: I4d0f813107e625ec4ac88c8d980ffd171aa5fc30
2012-04-05 11:30:37 -07:00
Jake Hamby
3e3c3f80a9 Add support for CMAS warning notifications over CDMA.
Refactor SMS Cell Broadcast support to enable receiving CMAS warning
notifications over CDMA. The CellBroadcastReceiver app must also be
updated with the corresponding change. All cell broadcasts are now
delivered as a Parcelable SmsCbMessage object in the "message" extra
of the SMS_CB_RECEIVED_ACTION or SMS_EMERGENCY_CB_RECEIVED_ACTION,
instead of as a GSM/UMTS "pdu" byte array.

Existing functionality for ETWS and CMAS alerts over GSM/UMTS continues
to be supported using the new radio-technology independent SmsCbMessage
and related objects. Test cases are added to verify that valid and
invalid broadcast data is handled appropriately.

Unit testing discovered a bug in the BitwiseOutputStream utility class
used by the added test cases. When the BitwiseOutputStream object must be
expanded (in the private possExpand() method), the mEnd field is not
updated to the new array size. This causes a new array to be allocated
on every new write, and for all data beyond the original array allocation
to be replaced with zeroes. Fixed by adding a line to possExpand() to
update mEnd. Added a test case to BitwiseStreamsTest to verify the fix.
Besides the test cases, BitwiseOutputStream is only used by BearerData in
two places, both of which allocate a sufficient initial buffer. So the
bug in BitwiseOutputStream is not critical to fix for normal operation,
but should be fixed so that the test cases using it function correctly.

Bug: 5856308
Change-Id: I201ecbf11607fd200aaae3cbb32561efabf65672
2012-03-13 15:31:33 -07:00
Todor Kalaydjiev
26a92257b4 Support auto-complete in PhoneNumberFormattingTextWatcher. Also, simplify logic.
Previously, the assumption was that only a deletion or an insertion can happen
at a time; but with auto-complete, a deletion and insertion happen at the same time.

Needed for bug 5992672 in the Messaging app and is nice to have in the platform.

Change-Id: I2d80cecc486e7a1ceeaeb34866bcd834074f5ead
2012-03-08 10:22:42 -08:00
Jake Hamby
efba344b5a Revert "Add support for CMAS warning notifications over CDMA." I'll submit again when the app change is ready.
This reverts commit 0c49f03a0429b5c0c4a619256f7bca86a4997ae8
2012-02-29 14:00:12 -08:00
Jake Hamby
0c49f03a04 Add support for CMAS warning notifications over CDMA.
Refactor SMS Cell Broadcast support to enable receiving CMAS warning
notifications over CDMA. The CellBroadcastReceiver app must also be
updated with the corresponding change. All cell broadcasts are now
delivered as a Parcelable SmsCbMessage object in the "message" extra
of the SMS_CB_RECEIVED_ACTION or SMS_EMERGENCY_CB_RECEIVED_ACTION,
instead of as a GSM/UMTS "pdu" byte array.

Existing functionality for ETWS and CMAS alerts over GSM/UMTS continues
to be supported using the new radio-technology independent SmsCbMessage
and related objects. Test cases are added to verify that valid and
invalid broadcast data is handled appropriately.

Unit testing discovered a bug in the BitwiseOutputStream utility class
used by the added test cases. When the BitwiseOutputStream object must be
expanded (in the private possExpand() method), the mEnd field is not
updated to the new array size. This causes a new array to be allocated
on every new write, and for all data beyond the original array allocation
to be replaced with zeroes. Fixed by adding a line to possExpand() to
update mEnd. Added a test case to BitwiseStreamsTest to verify the fix.
Besides the test cases, BitwiseOutputStream is only used by BearerData in
two places, both of which allocate a sufficient initial buffer. So the
bug in BitwiseOutputStream is not critical to fix for normal operation,
but should be fixed so that the test cases using it function correctly.

Bug: 5856308
Change-Id: Ie3e6af747976ce9b8a3e71e76fec71709cf86545
2012-02-28 16:49:17 -08:00
Mathias Agopian
d13f9aa8b1 attempt to fix IMSFramework crash
Change-Id: Iad6dd85afe8f37c1e443c116162d75f116c24316
2012-02-24 19:32:03 -08:00
Robert Greenwalt
6513daef5e Merge "Seperate RIL constants from the framework." 2012-02-24 15:02:30 -08:00
Robert Greenwalt
1434d7b855 Seperate RIL constants from the framework.
We have two sets of constants for network type.  One used by the RIL can't
be changed without big pains with OEM/Radio vendors.  The other has been published
as part of the framework and can't be easily changed either.

Separate the two so it's clear where one should be used versus the other.

bug:5717664
Change-Id: Ibf21f9165662e75557c7254fc9ad9a4870ba4af9
2012-02-24 09:37:37 -08:00
Daisuke Miyakawa
510db8feb6 Introduce convertAndStrip()
Phone app will use this for actual phone calling, coping with
IccProvider, etc.

Add unit tests for the method, and stripSeparators() which is missing

Bug: 5546664
Change-Id: I49b996abe7a44f7db4301b62f667189281fc40e9
2012-02-15 11:29:21 -08:00
Makoto Onuki
75400e775e Merge "Fix the 3-parameter formatNumber to correctly handle IDDs." 2012-02-13 15:20:40 -08:00
John Wang
17cbdd39ea am 7e6295b3: am 9ad528d5: am 48ac0f14: Merge "Don\'t use SNR in the invalid check." into ics-mr1
* commit '7e6295b32310afddccf5fb030d4c475ed3678e0f':
  Don't use SNR in the invalid check.
2012-02-06 17:06:16 -08:00
John Wang
7c70cefcae Don't use SNR in the invalid check.
Since some RILs use -1 instead of INVALID_SNR as invalid vlue for
LTE SNR, SignalStrength will not use LTE SNR to check if LTE valid.

bug:5970403
Change-Id: Ia948e076f8f5878e081e87680076b187857879c8
2012-02-06 14:03:57 -08:00
Shaopeng Jia
26cd243601 Fix the 3-parameter formatNumber to correctly handle IDDs.
Also added more unittests.

Bug: 5726454

Change-Id: I7fd96b47e7b0c34b66a2fe698308342e125ec0f3
2012-02-06 15:46:10 +01:00
Justin Ho
7f8ab4b786 am 66146c4f: am 792d83c5: Merge "Use LTE SNR and RSRP to set signal level bar." into ics-mr1
* commit '66146c4f5b3930f7f5f08b845fb30f2bc24f8c3d':
  Use LTE SNR and RSRP to set signal level bar.
2012-01-31 14:05:26 -08:00
John Wang
5e39519396 Use LTE SNR and RSRP to set signal level bar.
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
2012-01-31 11:15:28 -08:00
John Wang
7a41c7013d am 136704a8: am b069833e: Merge "Adjust the LTE signal bar mapping." into ics-mr1
* commit '136704a803ed7dd419a452315d1c0fe4885ce441':
  Adjust the LTE signal bar mapping.
2012-01-30 11:25:48 -08:00
John Wang
2c911b2416 Adjust the LTE signal bar mapping.
The new mapping are

  Four  bars: RSRP >= -95dBm
  Three bars: -105 dBm <= RSRP < -95 dBm
  Two   bars: -115 dBm <= RSRP < -105 dBm
  One   bars: RSRP < -115 dBm
  No    bars: No Service

bug:5640958
Change-Id: I9efabaeac33b624ea0a58a4d3760169dff6544f6
2012-01-27 11:05:24 -08:00
Sean Barbeau
9a18320ef4 Adds documentation to CdmaCellLocation get lat/long methods
Adds better documentation to the getBaseStationLatitude() and
getBaseStationLongitude() methods to indicate the units for latitude
and longitude in CdmaCellLocation. Unlike the Android Location API
methods, latitude and longitude in CdmaCellLocation are not in decimal
degrees but instead in 0.25 seconds due to a more obscure 3GPP standard
underlying the Telephony API.  The current Javadocs on the Android
developer page (http://goo.gl/hvWo6) do not indicate the units for
latitude and longitude in CdmaCellLocation, making it very difficult
for developers to interpret the output of these methods, especially
since 0.25 seconds is not a commonly used unit for latitude and longitude
in application-level code.  This patch adds clear documentation to
these methods so developers can clearly understand the units for
latitude and longitude without having to dig through the Android
platform source code.

Change-Id: I259bfe3b68e3999804877821680fb99a22937651
Signed-off-by: Sean Barbeau <sjbarbeau@gmail.com>
2012-01-12 22:53:01 -05:00
John Wang
1f7b23dda2 am 70205788: am 6ad68ba9: Adjust the mapping of LTE signal bars.
* commit '70205788fa39968b8331085597e3d3b61e271fbe':
  Adjust the mapping of LTE signal bars.
2012-01-11 16:05:14 -08:00
John Wang
6ad68ba9d9 Adjust the mapping of LTE signal bars.
bug:5640958
Change-Id: I91efc5a81b505aae59dac9b1d69314efaffda6b6
2012-01-11 14:47:19 -08:00
Naveen Kalla
fc2cbe9b46 Separate SIM states from Radio states
Radio state reflects the state of the modem. SIM_READY, RUIM_READY,
NV_READY are subscription states and it is possible that the new cards
have multiple subscriptions. Remove the SIM states from Radio State and
introduce a new VOICE_RADIO_TECH message to identify the exact voice
technology. SIM states will continue to be identified from the
SIM_STATUS messages.

Change-Id: Ia67d54f43b6c3340d9cf5c27fcb6f7ef49ef4d40
2011-12-29 15:08:20 -08:00
Shaopeng Jia
ab971d3c26 Add support for country specific emergency number handling.
Bug: 5247602, 5615428
Change-Id: I1bdfbc987f45e0f2ebbe68adaab215395c83ca35
2011-11-20 14:52:59 +01:00
David Brown
158f116eb7 Fix a crash caused by SIP addresses containing "%40" instead of "@"
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
2011-11-17 15:39:21 -08:00
David Brown
277b13e091 SIP addresses containing "911" shouldn't be considered emergency calls
This change updates isEmergencyNumberInternal() to always return false if
you pass in a SIP address, since the concept of "emergency numbers" is
only meaningful for calls placed over the cell network.

Previously we *did* try to compare SIP addresses against the list of known
emergency numbers, which caused bad behavior with SIP addresses that even
contained "911"/"112"/etc as a substring (since we were filtering out
non-dialable characters before doing the comparison!)

TESTED:

  - Before this change, calls to "abc911def@example.com" or
    "911abcdef@example.com" were incorrectly detected as emergency
    numbers, and fail.

  - After this change, SIP addresses like "abc911def@example.com" and
    "911abcdef@example.com" work fine.

  - Also, confirmed that this change doesn't break the restriction that
    3rd party apps shouldn't be able to make emergency calls.

    Specifically, I fired off ACTION_CALL intents (using the CallDialTest
    activity) for a bunch of numbers *similar* to emergency numbers, and
    confirmed that none of them actually resulted in an emergency call
    being placed.
    The specific ACTION_CALL intents I tested were:
      "911"         ==> Didn't place the call; brought up dialer instead
      "tel:911"     ==> Didn't place the call; brought up dialer instead
      "911@foo"     ==> Tried to start a SIP call (which failed)
      "911%40foo"     ==> Tried to start a SIP call (which failed)
      "tel:911@foo" ==> Tried to start a SIP call (which failed)
      "tel:911%40foo" ==> Tried to start a SIP call (which failed)
      "911@example.com" ==> Tried to start a SIP call (which failed)
      "sip:911"     ==> Didn't place the call; brought up dialer instead
      "sip:911@foo" ==> Tried to start a SIP call (which failed)
      "sip:911%40foo" ==> Tried to start a SIP call (which failed)

Bug: 5515452
Change-Id: I6f9f8690b08564c53c7a76f480654477b475d94d
2011-11-16 21:14:11 -08:00
Robert Greenwalt
8f4f814beb Fix TelephonyManager to grab the best context
It may not be called from an app so the app context may not exist.
Check and grab the best one.
Also remove the log that nobody paid attention to if the constructor
is called again from the same process.  One context seems to be as
useful as another.

bug:5572369
bug:5622514
Change-Id: Iad23b30c7c8fe5b8d1f81a1e060eaf0cd0e3019d
2011-11-16 11:36:08 -08:00