diff options
author | John Wang <johnwang@google.com> | 2010-03-09 15:48:58 -0800 |
---|---|---|
committer | John Wang <johnwang@google.com> | 2010-03-11 13:53:46 -0800 |
commit | 41a46718b3deec95661e149b3acea2a9e54016be (patch) | |
tree | fe1771c002b9a0a197b76b7f447ad4da1cfaf368 /telephony | |
parent | 3eda9799a162765dd49f481cc303fc5702a9c5fe (diff) | |
download | frameworks_base-41a46718b3deec95661e149b3acea2a9e54016be.zip frameworks_base-41a46718b3deec95661e149b3acea2a9e54016be.tar.gz frameworks_base-41a46718b3deec95661e149b3acea2a9e54016be.tar.bz2 |
Make getCellLocation return null if not available.
For bug 2422284.
Check the cell location and return null if the location is not available.
Change-Id: Ie9a331b906a8253c9a9596365af8705dc03823ce
Diffstat (limited to 'telephony')
4 files changed, 28 insertions, 1 deletions
diff --git a/telephony/java/android/telephony/CellLocation.java b/telephony/java/android/telephony/CellLocation.java index f763d3f..2edfc23 100644 --- a/telephony/java/android/telephony/CellLocation.java +++ b/telephony/java/android/telephony/CellLocation.java @@ -79,6 +79,11 @@ public abstract class CellLocation { public abstract void fillInNotifierBundle(Bundle bundle); /** + * @hide + */ + public abstract boolean isEmpty(); + + /** * Return a new CellLocation object representing an unknown * location, or null for unknown/none phone radio types. * diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 6685c18..a6b1d93 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -203,7 +203,10 @@ public class TelephonyManager { public CellLocation getCellLocation() { try { Bundle bundle = getITelephony().getCellLocation(); - return CellLocation.newFromBundle(bundle); + CellLocation cl = CellLocation.newFromBundle(bundle); + if (cl.isEmpty()) + return null; + return cl; } catch (RemoteException ex) { return null; } catch (NullPointerException ex) { diff --git a/telephony/java/android/telephony/cdma/CdmaCellLocation.java b/telephony/java/android/telephony/cdma/CdmaCellLocation.java index 2a0f8cd..84db830 100644 --- a/telephony/java/android/telephony/cdma/CdmaCellLocation.java +++ b/telephony/java/android/telephony/cdma/CdmaCellLocation.java @@ -204,6 +204,18 @@ public class CdmaCellLocation extends CellLocation { bundleToFill.putInt("networkId", this.mNetworkId); } + /** + * @hide + */ + public boolean isEmpty() { + return (this.mBaseStationId == -1 && + this.mBaseStationLatitude == INVALID_LAT_LONG && + this.mBaseStationLongitude == INVALID_LAT_LONG && + this.mSystemId == -1 && + this.mNetworkId == -1); + } + + } diff --git a/telephony/java/android/telephony/gsm/GsmCellLocation.java b/telephony/java/android/telephony/gsm/GsmCellLocation.java index 0d4e0be..fa1f985 100644 --- a/telephony/java/android/telephony/gsm/GsmCellLocation.java +++ b/telephony/java/android/telephony/gsm/GsmCellLocation.java @@ -119,4 +119,11 @@ public class GsmCellLocation extends CellLocation { m.putInt("lac", mLac); m.putInt("cid", mCid); } + + /** + * @hide + */ + public boolean isEmpty() { + return (mLac == -1 && mCid == -1); + } } |