104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville/* 204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Copyright (C) 2006 The Android Open Source Project 304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * you may not use this file except in compliance with the License. 604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * You may obtain a copy of the License at 704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * http://www.apache.org/licenses/LICENSE-2.0 904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 1004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Unless required by applicable law or agreed to in writing, software 1104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * distributed under the License is distributed on an "AS IS" BASIS, 1204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * See the License for the specific language governing permissions and 1404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * limitations under the License. 1504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 1604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 1704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savillepackage android.telephony.cdma; 1804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 1904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savilleimport android.os.Bundle; 2004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savilleimport android.telephony.CellLocation; 2104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 2204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville/** 231b90def3c683afaea528a0ee705b14df6ce2e2c7Mike Lockwood * Represents the cell location on a CDMA phone. 2404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 2504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Savillepublic class CdmaCellLocation extends CellLocation { 2604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville private int mBaseStationId = -1; 27d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla 28d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla /** 299384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde * @hide 309384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde */ 319384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde public final static int INVALID_LAT_LONG = Integer.MAX_VALUE; 329384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde 339384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde /** 34d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 35d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * It is represented in units of 0.25 seconds and ranges from -1296000 36d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * to 1296000, both values inclusive (corresponding to a range of -90 37d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * to +90 degrees). Integer.MAX_VALUE is considered invalid value. 38d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla */ 399384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde private int mBaseStationLatitude = INVALID_LAT_LONG; 40d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla 41d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla /** 42d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 43d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * It is represented in units of 0.25 seconds and ranges from -2592000 44d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * to 2592000, both values inclusive (corresponding to a range of -180 45d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * to +180 degrees). Integer.MAX_VALUE is considered invalid value. 46d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla */ 479384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde private int mBaseStationLongitude = INVALID_LAT_LONG; 48d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla 49a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood private int mSystemId = -1; 50a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood private int mNetworkId = -1; 5104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 5204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 531b90def3c683afaea528a0ee705b14df6ce2e2c7Mike Lockwood * Empty constructor. 54d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * Initializes the BID, SID, NID and base station latitude and longitude 55d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * to invalid values. 5604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 5704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public CdmaCellLocation() { 5804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville this.mBaseStationId = -1; 599384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLatitude = INVALID_LAT_LONG; 609384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLongitude = INVALID_LAT_LONG; 61a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mSystemId = -1; 62a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mNetworkId = -1; 6304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 6404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 6504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 6604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Initialize the object from a bundle. 6704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 689384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde public CdmaCellLocation(Bundle bundle) { 699384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationId = bundle.getInt("baseStationId", mBaseStationId); 709384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLatitude = bundle.getInt("baseStationLatitude", mBaseStationLatitude); 719384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLongitude = bundle.getInt("baseStationLongitude", mBaseStationLongitude); 729384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mSystemId = bundle.getInt("systemId", mSystemId); 739384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mNetworkId = bundle.getInt("networkId", mNetworkId); 7404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 7504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 7604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 7704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * @return cdma base station identification number, -1 if unknown 7804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 7904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public int getBaseStationId() { 8004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return this.mBaseStationId; 8104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 8204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 8304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 849a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 859a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * (http://www.3gpp2.org/public_html/specs/C.S0005-A_v6.0.pdf) 869a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * It is represented in units of 0.25 seconds and ranges from -1296000 879a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * to 1296000, both values inclusive (corresponding to a range of -90 889a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * to +90 degrees). Integer.MAX_VALUE is considered invalid value. 899a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * 909a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * @return cdma base station latitude in units of 0.25 seconds, Integer.MAX_VALUE if unknown 9104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 9204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public int getBaseStationLatitude() { 9304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return this.mBaseStationLatitude; 9404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 9504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 9604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 979a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. 989a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * (http://www.3gpp2.org/public_html/specs/C.S0005-A_v6.0.pdf) 999a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * It is represented in units of 0.25 seconds and ranges from -2592000 1009a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * to 2592000, both values inclusive (corresponding to a range of -180 1019a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * to +180 degrees). Integer.MAX_VALUE is considered invalid value. 1029a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * 1039a18320ef4c9019807423ea05d350a005e136bccSean Barbeau * @return cdma base station longitude in units of 0.25 seconds, Integer.MAX_VALUE if unknown 10404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 10504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public int getBaseStationLongitude() { 10604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return this.mBaseStationLongitude; 10704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 10804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 10904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 110a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood * @return cdma system identification number, -1 if unknown 111a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood */ 112a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood public int getSystemId() { 113a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood return this.mSystemId; 114a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood } 115a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood 116a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood /** 117a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood * @return cdma network identification number, -1 if unknown 118a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood */ 119a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood public int getNetworkId() { 120a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood return this.mNetworkId; 121a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood } 122a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood 123a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood /** 124d393184ac595ab5490c77305a27fd049badf9a5dNaveen Kalla * Invalidate this object. The cell location data is set to invalid values. 12504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 12604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public void setStateInvalid() { 12704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville this.mBaseStationId = -1; 1289384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLatitude = INVALID_LAT_LONG; 1299384b145e625b3bb6ff8b829ddb1466e16a78f49Mark Vandevoorde this.mBaseStationLongitude = INVALID_LAT_LONG; 130a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mSystemId = -1; 131a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mNetworkId = -1; 13204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 13304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 13404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 13504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Set the cell location data. 13604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 13704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public void setCellLocationData(int baseStationId, int baseStationLatitude, 13804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville int baseStationLongitude) { 13904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville // The following values have to be written in the correct sequence 14004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville this.mBaseStationId = baseStationId; 14104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville this.mBaseStationLatitude = baseStationLatitude; //values[2]; 14204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville this.mBaseStationLongitude = baseStationLongitude; //values[3]; 14304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 14404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 145a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood /** 146a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood * Set the cell location data. 147a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood */ 148a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood public void setCellLocationData(int baseStationId, int baseStationLatitude, 149a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood int baseStationLongitude, int systemId, int networkId) { 150a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood // The following values have to be written in the correct sequence 151a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mBaseStationId = baseStationId; 152a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mBaseStationLatitude = baseStationLatitude; //values[2]; 153a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mBaseStationLongitude = baseStationLongitude; //values[3]; 154a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mSystemId = systemId; 155a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood this.mNetworkId = networkId; 156a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood } 157a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood 15804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville @Override 15904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public int hashCode() { 160a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood return this.mBaseStationId ^ this.mBaseStationLatitude ^ this.mBaseStationLongitude 161a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood ^ this.mSystemId ^ this.mNetworkId; 16204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 16304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 16404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville @Override 16504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public boolean equals(Object o) { 16604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville CdmaCellLocation s; 16704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 16804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville try { 16904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville s = (CdmaCellLocation)o; 17004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } catch (ClassCastException ex) { 17104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return false; 17204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 17304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 17404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville if (o == null) { 17504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return false; 17604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 17704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 17804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return (equalsHandlesNulls(this.mBaseStationId, s.mBaseStationId) && 17904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville equalsHandlesNulls(this.mBaseStationLatitude, s.mBaseStationLatitude) && 180a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood equalsHandlesNulls(this.mBaseStationLongitude, s.mBaseStationLongitude) && 181a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood equalsHandlesNulls(this.mSystemId, s.mSystemId) && 182a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood equalsHandlesNulls(this.mNetworkId, s.mNetworkId) 18304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville ); 18404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 18504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 18604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville @Override 18704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public String toString() { 18804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return "[" + this.mBaseStationId + "," 18904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville + this.mBaseStationLatitude + "," 190a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood + this.mBaseStationLongitude + "," 191a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood + this.mSystemId + "," 192a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood + this.mNetworkId + "]"; 19304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 19404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 19504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 19604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Test whether two objects hold the same data values or both are null 19704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 19804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * @param a first obj 19904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * @param b second obj 20004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * @return true if two objects equal or both are null 20104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 20204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville private static boolean equalsHandlesNulls(Object a, Object b) { 20304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville return (a == null) ? (b == null) : a.equals (b); 20404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 20504e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 20604e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville /** 20704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * Fill the cell location data into the intent notifier Bundle based on service state 20804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * 20904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville * @param bundleToFill intent notifier Bundle 21004e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville */ 21104e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville public void fillInNotifierBundle(Bundle bundleToFill) { 21204e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville bundleToFill.putInt("baseStationId", this.mBaseStationId); 21304e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville bundleToFill.putInt("baseStationLatitude", this.mBaseStationLatitude); 21404e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville bundleToFill.putInt("baseStationLongitude", this.mBaseStationLongitude); 215a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood bundleToFill.putInt("systemId", this.mSystemId); 216a4d2fb5ef6bb5dfb6e26ac6a139de389984db5d3Mike Lockwood bundleToFill.putInt("networkId", this.mNetworkId); 21704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville } 21804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 21941a46718b3deec95661e149b3acea2a9e54016beJohn Wang /** 22041a46718b3deec95661e149b3acea2a9e54016beJohn Wang * @hide 22141a46718b3deec95661e149b3acea2a9e54016beJohn Wang */ 22241a46718b3deec95661e149b3acea2a9e54016beJohn Wang public boolean isEmpty() { 22341a46718b3deec95661e149b3acea2a9e54016beJohn Wang return (this.mBaseStationId == -1 && 22441a46718b3deec95661e149b3acea2a9e54016beJohn Wang this.mBaseStationLatitude == INVALID_LAT_LONG && 22541a46718b3deec95661e149b3acea2a9e54016beJohn Wang this.mBaseStationLongitude == INVALID_LAT_LONG && 22641a46718b3deec95661e149b3acea2a9e54016beJohn Wang this.mSystemId == -1 && 22741a46718b3deec95661e149b3acea2a9e54016beJohn Wang this.mNetworkId == -1); 22841a46718b3deec95661e149b3acea2a9e54016beJohn Wang } 22941a46718b3deec95661e149b3acea2a9e54016beJohn Wang 23067662767d98c42c34519767956aebe9d90f31c3aSean Barbeau /** 23167662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * Converts latitude or longitude from 0.25 seconds (as defined in the 23267662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * 3GPP2 C.S0005-A v6.0 standard) to decimal degrees 23367662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * 23467662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * @param quartSec latitude or longitude in 0.25 seconds units 23567662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * @return latitude or longitude in decimal degrees units 23667662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * @throws IllegalArgumentException if value is less than -2592000, 23767662767d98c42c34519767956aebe9d90f31c3aSean Barbeau * greater than 2592000, or is not a number. 23867662767d98c42c34519767956aebe9d90f31c3aSean Barbeau */ 23967662767d98c42c34519767956aebe9d90f31c3aSean Barbeau public static double convertQuartSecToDecDegrees(int quartSec) { 24067662767d98c42c34519767956aebe9d90f31c3aSean Barbeau if(Double.isNaN(quartSec) || quartSec < -2592000 || quartSec > 2592000){ 24167662767d98c42c34519767956aebe9d90f31c3aSean Barbeau // Invalid value 24267662767d98c42c34519767956aebe9d90f31c3aSean Barbeau throw new IllegalArgumentException("Invalid coordiante value:" + quartSec); 24367662767d98c42c34519767956aebe9d90f31c3aSean Barbeau } 24467662767d98c42c34519767956aebe9d90f31c3aSean Barbeau return ((double)quartSec) / (3600 * 4); 24567662767d98c42c34519767956aebe9d90f31c3aSean Barbeau } 24641a46718b3deec95661e149b3acea2a9e54016beJohn Wang 24704e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville} 24804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 24904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville 250