Merge "Dump original-package entries."
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index c1537ca..57fdd8b 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8551,8 +8551,8 @@
     /**
      * Scroll the view with standard behavior for scrolling beyond the normal
      * content boundaries. Views that call this method should override
-     * {@link #onOverscrolled()} to respond to the results of an overscroll
-     * operation.
+     * {@link #onOverscrolled(int, int, boolean, boolean)} to respond to the
+     * results of an overscroll operation.
      * 
      * Views can use this method to handle any touch or fling-based scrolling.
      * 
diff --git a/telephony/java/android/telephony/cdma/CdmaCellLocation.java b/telephony/java/android/telephony/cdma/CdmaCellLocation.java
index 7ef7747..2a0f8cd 100644
--- a/telephony/java/android/telephony/cdma/CdmaCellLocation.java
+++ b/telephony/java/android/telephony/cdma/CdmaCellLocation.java
@@ -26,12 +26,17 @@
     private int mBaseStationId = -1;
 
     /**
+     * @hide
+     */
+    public final static int INVALID_LAT_LONG = Integer.MAX_VALUE;
+
+    /**
      * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
      * It is represented in units of 0.25 seconds and ranges from -1296000
      * to 1296000, both values inclusive (corresponding to a range of -90
      * to +90 degrees). Integer.MAX_VALUE is considered invalid value.
      */
-    private int mBaseStationLatitude = Integer.MAX_VALUE;
+    private int mBaseStationLatitude = INVALID_LAT_LONG;
 
     /**
      * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
@@ -39,7 +44,7 @@
      * to 2592000, both values inclusive (corresponding to a range of -180
      * to +180 degrees). Integer.MAX_VALUE is considered invalid value.
      */
-    private int mBaseStationLongitude = Integer.MAX_VALUE;
+    private int mBaseStationLongitude = INVALID_LAT_LONG;
 
     private int mSystemId = -1;
     private int mNetworkId = -1;
@@ -51,8 +56,8 @@
      */
     public CdmaCellLocation() {
         this.mBaseStationId = -1;
-        this.mBaseStationLatitude = Integer.MAX_VALUE;
-        this.mBaseStationLongitude = Integer.MAX_VALUE;
+        this.mBaseStationLatitude = INVALID_LAT_LONG;
+        this.mBaseStationLongitude = INVALID_LAT_LONG;
         this.mSystemId = -1;
         this.mNetworkId = -1;
     }
@@ -60,12 +65,12 @@
     /**
      * Initialize the object from a bundle.
      */
-    public CdmaCellLocation(Bundle bundleWithValues) {
-        this.mBaseStationId = bundleWithValues.getInt("baseStationId");
-        this.mBaseStationLatitude = bundleWithValues.getInt("baseStationLatitude");
-        this.mBaseStationLongitude = bundleWithValues.getInt("baseStationLongitude");
-        this.mSystemId = bundleWithValues.getInt("systemId");
-        this.mNetworkId = bundleWithValues.getInt("networkId");
+    public CdmaCellLocation(Bundle bundle) {
+        this.mBaseStationId = bundle.getInt("baseStationId", mBaseStationId);
+        this.mBaseStationLatitude = bundle.getInt("baseStationLatitude", mBaseStationLatitude);
+        this.mBaseStationLongitude = bundle.getInt("baseStationLongitude", mBaseStationLongitude);
+        this.mSystemId = bundle.getInt("systemId", mSystemId);
+        this.mNetworkId = bundle.getInt("networkId", mNetworkId);
     }
 
     /**
@@ -108,8 +113,8 @@
      */
     public void setStateInvalid() {
         this.mBaseStationId = -1;
-        this.mBaseStationLatitude = Integer.MAX_VALUE;
-        this.mBaseStationLongitude = Integer.MAX_VALUE;
+        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 637a11c..0d4e0be 100644
--- a/telephony/java/android/telephony/gsm/GsmCellLocation.java
+++ b/telephony/java/android/telephony/gsm/GsmCellLocation.java
@@ -38,8 +38,8 @@
      * Initialize the object from a bundle.
      */
     public GsmCellLocation(Bundle bundle) {
-        mLac = bundle.getInt("lac");
-        mCid = bundle.getInt("cid");
+        mLac = bundle.getInt("lac", mLac);
+        mCid = bundle.getInt("cid", mCid);
     }
 
     /**
@@ -120,5 +120,3 @@
         m.putInt("cid", mCid);
     }
 }
-
-
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index b64e5bd..c351289 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -357,8 +357,8 @@
             if (ar.exception == null) {
                 String states[] = (String[])ar.result;
                 int baseStationId = -1;
-                int baseStationLatitude = Integer.MAX_VALUE;
-                int baseStationLongitude = Integer.MAX_VALUE;
+                int baseStationLatitude = CdmaCellLocation.INVALID_LAT_LONG;
+                int baseStationLongitude = CdmaCellLocation.INVALID_LAT_LONG;
                 int systemId = -1;
                 int networkId = -1;
 
@@ -373,6 +373,11 @@
                         if (states[6] != null) {
                             baseStationLongitude = Integer.parseInt(states[6]);
                         }
+                        // Some carriers only return lat-lngs of 0,0
+                        if (baseStationLatitude == 0 && baseStationLongitude == 0) {
+                            baseStationLatitude  = CdmaCellLocation.INVALID_LAT_LONG;
+                            baseStationLongitude = CdmaCellLocation.INVALID_LAT_LONG;
+                        }
                         if (states[8] != null) {
                             systemId = Integer.parseInt(states[8]);
                         }
@@ -662,8 +667,10 @@
                 int registrationState = 4;     //[0] registrationState
                 int radioTechnology = -1;      //[3] radioTechnology
                 int baseStationId = -1;        //[4] baseStationId
-                int baseStationLatitude = Integer.MAX_VALUE;  //[5] baseStationLatitude
-                int baseStationLongitude = Integer.MAX_VALUE; //[6] baseStationLongitude
+                //[5] baseStationLatitude
+                int baseStationLatitude = CdmaCellLocation.INVALID_LAT_LONG;
+                //[6] baseStationLongitude
+                int baseStationLongitude = CdmaCellLocation.INVALID_LAT_LONG;
                 int cssIndicator = 0;          //[7] init with 0, because it is treated as a boolean
                 int systemId = 0;              //[8] systemId
                 int networkId = 0;             //[9] networkId
@@ -689,6 +696,11 @@
                         if (states[6] != null) {
                             baseStationLongitude = Integer.parseInt(states[6]);
                         }
+                        // Some carriers only return lat-lngs of 0,0
+                        if (baseStationLatitude == 0 && baseStationLongitude == 0) {
+                            baseStationLatitude  = CdmaCellLocation.INVALID_LAT_LONG;
+                            baseStationLongitude = CdmaCellLocation.INVALID_LAT_LONG;
+                        }
                         if (states[7] != null) {
                             cssIndicator = Integer.parseInt(states[7]);
                         }